create static method
Implementation
static ControlBase create(XmlElement node) {
final String type = node.name.local;
ControlBase? result;
switch (type) {
case 'line':
result = LineBox.deserialize(node);
break;
case 'text':
result = TextBox.deserialize(node);
break;
case 'column':
result = ColumnBox.deserialize(node);
break;
case 'row':
result = RowBox.deserialize(node);
break;
case 'stack':
result = StackBox.deserialize(node);
break;
case 'table':
result = TableBox.deserialize(node);
break;
case 'table-column':
result = TableColumn.deserialize(node);
break;
case 'row-for':
result = RowFor.deserialize(node);
break;
case 'qrcode':
result = QRCodeBox.deserialize(node);
break;
case 'page':
result = PrinterPage.deserialize(node);
break;
case 'barcode':
result = BarcodeBox.deserialize(node);
break;
case 'image':
result = ImageBox.deserialize(node);
break;
}
if (result == null) {
throw 'Unsupported control type $type';
}
// if (node.getAttribute('if') != null && result.tagName != 'row-for' && result.tagName != 'table' && result.tagName != 'table-column') {
// var ifNode = IfBox.deserialize(node);
// ifNode.child = result;
// return ifNode;
// }
return result;
}