applicationComplete=\> import twaver.*; private function init():void{ var box:DataBox = table1.dataBox; var from:Node = new Node(); from.name = \; from.location = new Point(20, 20); box.add(from); var to:Node = new Node(); to.name = \; to.location = new Point(150, 60); box.add(to); var link:Link = new Link(from,to); link.name = \; box.add(link); } ]]>
运行界面
Tree组件介绍
twaver.controls.Tree继承于Flex的Tree组件,可以与任意DataBox数据容器(LayerBox, AlarmBox, ElementBox...)绑定,树视图的层次关系由数据容器中元素的父子关系决定,树图组件有自己的选中模型,也可以使用DataBox的选中模型,这样可以达到同步选中的效果。 树图组件的使用非常简单,只要关联上DataBox类型的数据容器,就可以展示这个容器中的层次结构 过滤器的使用
tree.visibleFunction = function(data:IData):Boolean{ retrun data.childrenCount > 0; };
示例:
layout=\pageTitle=\creationComplete=\> import twaver.Link; import twaver.Data; import twaver.DataBox; private function init():void{ var box:DataBox=new DataBox(); var node:Data=new Data(); node.name=\; box.add(node); var parentNode:Data=new Data(); parentNode.name=\; box.add(parentNode); var child:Data=new Data(); child.name=\; child.parent=parentNode; box.add(child); tree.dataBox=box; tree.callLater(function():void{ tree.expandChildrenOf(tree.rootTreeData, true); }); } ]]> 运行结果 数据序列化 TWaver Flex支持数据容器的导入导出,便于数据的保存和传输。TWaver Flex使用 XMLSerializer来完成这项工作,提供serialize/deserialize方法实现DataBox中数据的序列化和反序列化。 构建一个XMLSerializer var xmlSerializer:XMLSerializer=new XMLSerializer(box); 序列化与反序列化 public function serialize():String public function deserialize(xmlString:String, rootParent:IData = null):void XMLSerializer还可以设置哪些属性可以输出,哪些不输出 不输出元素id xmlSerializer.settings.registerProperty(\null); 测试例子: xmlns:twaver=\ex\ applicationComplete=\> import twaver.*; import twaver.network.Network; private var box:ElementBox; private var xmlSerializer:XMLSerializer; private function init():void{ box = network.elementBox; xmlSerializer=new XMLSerializer(box); //不输出元素id xmlSerializer.settings.registerProperty(\,null); var from:Node = new Node(); from.name = \; from.location = new Point(20, 20); box.add(from); var to:Node = new Node(); to.name = \; to.location = new Point(150, 60); box.add(to); var link:Link = new Link(from,to); link.name = \; box.add(link); } protected function output(event:MouseEvent):void { text.text=xmlSerializer.serialize(); } protected function submit(event:MouseEvent):void { box.clear(); xmlSerializer.deserialize(text.text); } ]]> backgroundColor=\ width=\ height=\>