deserialize method

  1. @override
void deserialize(
  1. XmlElement? xml
)
override

Deserializes the FML template elements, attributes and children

Implementation

@override
void deserialize(XmlElement? xml) {

  if (xml == null) return;

  // deserialize
  super.deserialize(xml);

  // properties
  url = Xml.get(node: xml, tag: 'url');
  title = Xml.get(node: xml, tag: 'title');

  // can window be closed?
  closeable = Xml.get(node: xml, tag: 'closeable');
  if (_closeable == null && _url == null && viewableChildren.isNotEmpty) closeable = false;

  tooltip = Xml.get(node: xml, tag: 'tooltip');
  icon = Xml.get(node: xml, tag: 'icon');

  // add framework child
  if (viewableChildren.isEmpty && url != null) {
    var uri = URI.parse(url);
    if (uri != null) {
      children ??= [];
      children!.add(FrameworkModel.fromUrl(this, uri.url));
    }
  }
}