create static method

ControlBase create(
  1. XmlElement node
)

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;

}