TWaver学习笔记1-TWaver入门(3)

2020-04-21 00:45

ShapeNode

由一系列控制点决定形状,可以表现丰富的形态

ShapeLink

继承于Link,与Link不同,其走向有一系列控制点决定,可以定制出特殊的连线布局

Grid

在拓扑图上表现为网格,可以指定行列数,是Rack, Shelf, Slot, Card, Port的基类,可以用来表示设备面板

Group

表示分组,包含孩子网元,可以展开合并,孩子的位置和范围决定Group展开后的位置和范围

SubNetwork

子网在拓扑图中有重要意义,拓扑图通常并不会一次显示所有的网元,而只显示当前子网中的元素,通过切换子网和数据的延时加载可以解决大数据量的问题

Rack

设备面板中表示机架

Shelf

设备面板中表示机框

Slot

设备面板中表示板卡槽位

Card

设备面板中表示一个板卡

Port

设备面板中表示端口

数据管理容器

数据管理容器,顾名思义就是用来管理数据的容器,TWaverFlex中的DataBox就

是用来管理所有Data数据的容器,在TWaverFlex的设计模式中担当者Model的重要角色,一个DataBox可以驱动多个视图,DataBox中数据的变化都能够自动的反映到其关联的所有视图组件上。TWaverFlex中的DataBox支持的视图包括:twaver.controls.Tree, twaver.controls.Table,此外ElementBox还有专门的视图组件twaver.network.Network。

?

DataBox

DataBox继承于 EventDispatcher,对容器变化以及容器内数据的变化都做了监听,这样就可以通过监听DataBox掌握所有DataBox中元素的变化,用户也可以通过重写on***Changed事件回调函数处理这些事件

public function addDataBoxChangeListener(listener:Function, priority:int = 0

, useWeakReference:Boolean = false):void

public function

removeDataBoxChangeListener(listener:Function):void public function

addDataPropertyChangeListener(listener:Function,

priority:int = 0, useWeakReference:Boolean = false):void public function

removeDataPropertyChangeListener(listener:Function):void public function

addPropertyChangeListener(listener:Function, priority:int = 0

, useWeakReference:Boolean = false):void

public function

removePropertyChangeListener(listener:Function):void public function

addHiberarchyChangeListener(listener:Function, priority:int = 0

, useWeakReference:Boolean = false):void

public function

removeHiberarchyChangeListener(listener:Function):void protected function onDataPropertyChanged(data:IData, e:PropertyChangeEvent):void

protected function onClientChanged(styleProp:String, oldValue:*, newValue:*):void

一个容器,自然要提供数据管理的方法 ,DataBox中定义了下面的方法进行数据增删操作

publicfunctionadd(data:IData, index:int= -1):void public function remove(data:IData):void public function removeByID(id:Object):void public function clear():void

public function getDataByID(id:Object):IData public function contains(data:IData):Boolean

对数据的遍历查找也提供了简便的方法

publicfunctionforEach(callbackFunction:Function):void public function

forEachByDepthFirst(callbackFunction:Function, data:IData = null):void

private function depthFirst(callbackFunction:Function, data:IData):void

public function

forEachByBreadthFirst(callbackFunction:Function, data:IData = null):void

DataBox还管理着数据的层次模型 ,提供了下面的方法方便数据的移动和插入操作

publicfunctionmoveUp(data:IData):void

public function moveDown(data:IData):void public function moveToTop(data:IData):void public function moveToBottom(data:IData):void

public function moveTo(data:IData, newIndex:int):void

此外DataBox对数据元素的选中机制做了封装,实现了数据的选中模型(SelectionModel),并提供了便捷操作的方法

publicfunctionget selectionModel():SelectionModel public function moveSelectionUp(sm:SelectionModel = null):void

public function moveSelectionDown(sm:SelectionModel = null):void

public function moveSelectionToTop(sm:SelectionModel = null):void

public function moveSelectionToBottom(sm:SelectionModel = null):void

TWaverFlex中定义了LayerBox, AlarmBox, ElementBox分别用于图层管理,告警管理和网元管理,其中前两种容器都是为ElementBox服务的,用于管理网元的图层和告警信息

?

LayerBox

LayerBox是管理图层的容器,需要与一个ElementBox关联,其中定义了添加删除层的方法,还预定义了一个默认层

functionLayerBox(elementBox:ElementBox) public function get elementBox():ElementBox public function get defaultLayer():ILayer

* h3. AlarmBox

AlarmBox是管理告警的容器,首先需要与一个ElementBox相关联

functionAlarmBox(elementBox:ElementBox) public function get elementBox():ElementBox

AlarmBox还定义了AlarmElementMapping用来定义网元与告警之间的对应关系,用户可以定制这一关系,实现一个告警影响多个网元的业务需求

publicfunctionget/setalarmElementMapping():IAlarmElementMapping

此外还提供了下面的属性

//网元在ElementBox中被删除时,告警是否从AlarmBox中删除 removeAlarmWhenElementIsRemoved //告警设置为清除级别时,是否自动删除告警 removeAlarmWhenAlarmIsCleared

* h3. ElementBox

ElementBox中包含告警容器,图层容器,是管理网元数据的容器,TWaverFlex中为ElementBox定义了专有的视图组件,用于图形化的显示网元的拓扑关系。

ElementBox中封装了很多功能,是TWaverFlex中最重要和最常用的类,我们将在以后的章节中详细介绍。

ElementBox HelloWorld 示例

layout=\pageTitle=\creationComplete=\>

import twaver.Link; import twaver.Node; import twaver.ElementBox; private function init():void{

var box:ElementBox=new ElementBox(); var node1:Node=new Node(); node1.name=\; node1.setLocation(20,20);


TWaver学习笔记1-TWaver入门(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中央财经大学金融硕士考研辅导班笔记总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: