@@ -12,22 +12,20 @@ import 'package:html/dom.dart' as dom;
12
12
/// an html document with a more complex layout. LayoutElements handle
13
13
abstract class LayoutElement extends StyledElement {
14
14
LayoutElement ({
15
- String name,
16
- List <StyledElement > children,
17
- Style style,
15
+ String name = "[[No Name]]" ,
16
+ @required List <StyledElement > children,
18
17
dom.Element node,
19
- }) : super (name: name, children: children, style: style , node: node);
18
+ }) : super (name: name, children: children, style: Style () , node: node);
20
19
21
20
Widget toWidget (RenderContext context);
22
21
}
23
22
24
23
class TableLayoutElement extends LayoutElement {
25
24
TableLayoutElement ({
26
- String name,
27
- Style style,
25
+ @required String name,
28
26
@required List <StyledElement > children,
29
- dom.Element node,
30
- }) : super (name: name, style : style, children: children, node: node);
27
+ @required dom.Element node,
28
+ }) : super (name: name, children: children, node: node);
31
29
32
30
@override
33
31
Widget toWidget (RenderContext context) {
@@ -51,8 +49,7 @@ class TableLayoutElement extends LayoutElement {
51
49
columnSizes = child.children
52
50
.where ((c) => c.name == "col" )
53
51
.map ((c) {
54
- final span =
55
- int .parse (c.attributes["span" ] ?? "1" , onError: (_) => 1 );
52
+ final span = int .tryParse (c.attributes["span" ] ?? "1" ) ?? 1 ;
56
53
final colWidth = c.attributes["width" ];
57
54
return List .generate (span, (index) {
58
55
if (colWidth != null && colWidth.endsWith ("%" )) {
@@ -145,16 +142,16 @@ class TableLayoutElement extends LayoutElement {
145
142
146
143
return LayoutGrid (
147
144
gridFit: GridFit .loose,
148
- templateColumnSizes : finalColumnSizes,
149
- templateRowSizes : rowSizes,
145
+ columnSizes : finalColumnSizes,
146
+ rowSizes : rowSizes,
150
147
children: cells,
151
148
);
152
149
}
153
150
}
154
151
155
152
class TableSectionLayoutElement extends LayoutElement {
156
153
TableSectionLayoutElement ({
157
- String name,
154
+ @required String name,
158
155
@required List <StyledElement > children,
159
156
}) : super (name: name, children: children);
160
157
@@ -167,9 +164,9 @@ class TableSectionLayoutElement extends LayoutElement {
167
164
168
165
class TableRowLayoutElement extends LayoutElement {
169
166
TableRowLayoutElement ({
170
- String name,
167
+ @required String name,
171
168
@required List <StyledElement > children,
172
- dom.Element node,
169
+ @required dom.Element node,
173
170
}) : super (name: name, children: children, node: node);
174
171
175
172
@override
@@ -184,12 +181,12 @@ class TableCellElement extends StyledElement {
184
181
int rowspan = 1 ;
185
182
186
183
TableCellElement ({
187
- String name,
188
- String elementId,
189
- List <String > elementClasses,
184
+ @required String name,
185
+ @required String elementId,
186
+ @required List <String > elementClasses,
190
187
@required List <StyledElement > children,
191
- Style style,
192
- dom.Element node,
188
+ @required Style style,
189
+ @required dom.Element node,
193
190
}) : super (
194
191
name: name,
195
192
elementId: elementId,
@@ -217,6 +214,7 @@ TableCellElement parseTableCellElement(
217
214
elementClasses: element.classes.toList (),
218
215
children: children,
219
216
node: element,
217
+ style: Style (),
220
218
);
221
219
if (element.localName == "th" ) {
222
220
cell.style = Style (
@@ -228,10 +226,10 @@ TableCellElement parseTableCellElement(
228
226
229
227
class TableStyleElement extends StyledElement {
230
228
TableStyleElement ({
231
- String name,
232
- List <StyledElement > children,
233
- Style style,
234
- dom.Element node,
229
+ @required String name,
230
+ @required List <StyledElement > children,
231
+ @required Style style,
232
+ @required dom.Element node,
235
233
}) : super (name: name, children: children, style: style, node: node);
236
234
}
237
235
@@ -246,20 +244,26 @@ TableStyleElement parseTableDefinitionElement(
246
244
name: element.localName,
247
245
children: children,
248
246
node: element,
247
+ style: Style (),
249
248
);
250
249
default :
251
- return TableStyleElement ();
250
+ return TableStyleElement (
251
+ name: "[[No Name]]" ,
252
+ children: children,
253
+ node: element,
254
+ style: Style (),
255
+ );
252
256
}
253
257
}
254
258
255
259
class DetailsContentElement extends LayoutElement {
256
260
List <dom.Element > elementList;
257
261
258
262
DetailsContentElement ({
259
- String name,
260
- List <StyledElement > children,
261
- dom.Element node,
262
- this .elementList,
263
+ @required String name,
264
+ @required List <StyledElement > children,
265
+ @required dom.Element node,
266
+ @required this .elementList,
263
267
}) : super (name: name, node: node, children: children);
264
268
265
269
@override
@@ -311,7 +315,7 @@ class DetailsContentElement extends LayoutElement {
311
315
}
312
316
313
317
class EmptyLayoutElement extends LayoutElement {
314
- EmptyLayoutElement ({String name = "empty" }) : super (name: name);
318
+ EmptyLayoutElement ({@required String name}) : super (name: name, children : [] );
315
319
316
320
@override
317
321
Widget toWidget (_) => null ;
@@ -324,7 +328,7 @@ LayoutElement parseLayoutElement(
324
328
switch (element.localName) {
325
329
case "details" :
326
330
if (children? .isEmpty ?? false ) {
327
- return EmptyLayoutElement ();
331
+ return EmptyLayoutElement (name : "empty" );
328
332
}
329
333
return DetailsContentElement (
330
334
node: element,
@@ -355,6 +359,10 @@ LayoutElement parseLayoutElement(
355
359
);
356
360
break ;
357
361
default :
358
- return TableLayoutElement (children: children);
362
+ return TableLayoutElement (
363
+ children: children,
364
+ name: "[[No Name]]" ,
365
+ node: element
366
+ );
359
367
}
360
368
}
0 commit comments