TWaver®Java用户手册(版本:v3.5)2010年6月10日赛瓦软件(上海)有限公司info@servasoftware.com©2010,ServaSoftware公司保留所有版权。TWaver、servasoft、ServaSoftware和均为ServaSoftware公司的注册商标。本文中涉及的其他品牌是各自公司的注册商标,在此仅作为标识目的。修改记录版本编号日期备注A2010-6-10TWaverv3.5TWaverJavaDeveloperGuide(Chinese)Copyright(c)2010ServaSoftwareAllRightsReserved1TableofContents•概述•介绍•TWaver概述•TWaver结构•图形组件•Network组件•Tree组件•Table组件•TreeTable组件•PropertySheet组件•List组件•Chart组件•DataBox概述•管理对象•预定义管理对象•管理对象继承关系•管理对象属性•预定义对象概览•告警支持•TWaver中的告警呈现•告警级别•TWaver开发概述•安装Java和TWaver•TWaver配置•通过XML或API创建数据•通过API创建数据•通过XML创建数据•API和XML的比较•TWaver基本编程•预备知识•运行例子程序•创建简单拓扑图•创建树组件•显示设备面板•用API创建设备面板•用XML创建机架图•Element的选中机制•使用选择状态•使用选择容器SelectionModel•使用选择监听器•使用交互进行选择控制•定制交互•设置右键菜单•添加鼠标和键盘动作TWaverJavaDeveloperGuide(Chinese)Copyright(c)2010ServaSoftwareAllRightsReserved2•处理数据选择•添加告警•添加装饰图标•添加显示特效•预定义对象•通用特性•使用HTML标签•使用半透明效果•使用节点对象•通过API创建节点•通过XML创建节点•使用形状节点ShapeNode•使用连接•通过API创建连接•通过XML创建连接•使用连接捆扎•使用连接捆扎代理•使用连接类型•使用节点组对象•使用节点组•节点组属性•使用子网对象•什么是子网对象•子网和节点组的区别•使用子网背景图•使用子网数据文件•通过图形创建子网•使用BTS和BTSAntenna对象•设备面板对象•Grid网格对象•Chassis机柜对象•Rack机架对象•Shelf机框对象•Slot板卡槽位对象•Card板卡对象•Port端口对象•扩展设备对象•使用跟随者对象•使用ElementProperties•使用UserProperties•使用BusinessObject•Element复制•Element复制简介•使用拦截器•使用DataBoxTWaverJavaDeveloperGuide(Chinese)Copyright(c)2010ServaSoftwareAllRightsReserved3•更改DataBox中的元素•访问DataBox中的元素•使用ElementCallbackHandler遍历DataBox•使用DataBox监听器•使用Element属性变化监听器•使用SelectionChangeInterceptor•使用DataBoxLayerModel•LayerModel和Layer•使用LayerModel管理图层•使用LayerModelListener•使用Layer•图层预定义属性•图层的ClientProperties•图层属性变化事件•Element和Layer•Layer数据的序列化•拓扑图中的图层•使用LayerManagerPane•网元的延迟加载•DataBox和多线程•定制告警传播规则•使用QuickFinder•Undo和Redo•使用UndoRedoManager•使用UndoRedoListener•使用UndoRedoInterceptor•使用组件•TWaver的任务调度•Swing和线程•计划和任务•更改TWaver的资源文件•组件的通用特性•右击菜单•导出图片•滚动条•使用Network组件•定制工具条•Network组件的层次结构•Network组件MVC的设计模型•Network的坐标系统•Network的视角以及相关方法•通过位置获取Element•Network的打印•Network的呈现•Network上的生成器TWaverJavaDeveloperGuide(Chinese)Copyright(c)2010ServaSoftwareAllRightsReserved4•Network画布上的交互•Network上监听鼠标和键盘事件•交互模式•使用拷贝和粘贴快捷键•定制右击菜单•定制鼠标的默认动作•Network的自动布局•Network背景•Network透明度•为Network上的网元添加Swing附件•使用ElementUI•使用过滤器•双击过滤器DoubleClickableFilter•可见过滤器VisibleFilter•更改网元大小过滤器ResizableFilter•标签可编辑过滤器ElementLabelEditableFilter•移动过滤器MovableFilter•网元置顶过滤器SendToTopFilter•选择过滤器SelectableFilter•重绘网元及边框过滤器ElementBoundsInvalidatableFilter•重绘网元过滤器ElementPropertyChangeRepaintFilter•重绘选择边框过滤器PaintSelectionStateFilter•链路的布局•附件•Network的操作•全屏Network•全视图Network•拖动速度•放大镜•缩放Network•网元闪烁•更多的Network的功能•使用树组件•创建树•TWaver的树节点•使用树的生成器•切换树的根节点•定制树节点的Renderer•定制树节点的收缩&展开图标•拖拽树节点•树的右击菜单•树组件的延迟加载•树组件的简介•树节点图标的大小TWaverJavaDeveloperGuide(Chinese)Copyright(c)2010ServaSoftwareAllRightsReserved5•树节点排序•树节点的Tooltip•树节点的双击监听•树节点的索引•树节点的选择框•迭代树节点•使用表格组件•使用TableModel处理数据•使用表格的列•创建表格组件•更改表格行和列的大小•表格中列的Renderer•表格中列的编辑器•表格分页•表格分页的操作工具条•表格右击菜单•表格的列排序•表格的监听器•表格的过滤器•锁定表格•隐藏表格的列•表格上的更多功能•使用网元表组件•创建网元表•从表格中获取网元•使用visibleFilter•使用置顶&置底的过滤器•加载数据•定制网元表•使用表格树组件•使用表格树•创建表格树•使用告警表组件•创建告警表•告警表的可见过滤器•告警表的操作•定制告警表•数据容器和告警容器•使用告警统计组件•创建告警统计组件•告警统计表•使用列表组件•创建列表•列表的排序比较器TWaverJavaDeveloperGuide(Chinese)Copyright(c)2010ServaSoftwareAllRightsReserved6•可勾选的过滤器•是否可见的过滤器•选择模型•使用属性表组件•BeanInfo和BeanInfoLoader•BeanInfo文件格式•BeanInfo的继承•TWaver和JavaBeans•定制属性表样式•属性分组•通过API分组•通过XML分组•属性的显示样式•定制Renderer•管理属性表的Renderer•预定义的Renderer•属性编辑器•定制编辑器•管理属性编辑器•预定义的编辑器•属性表的事件•属性表面板•通过XML定义BeanInfo•使用Chart组件•柱状图•气泡图•表盘图•曲线图•百分比图•饼图•雷达图•使用告警•告警对象的定义•告警属性的扩展•使用AlarmUI展示告警•使用AlarmType•使用AlarmTrendIndication•使用AlarmState•使用AlarmSeverity•定制AlarmSeverity•定制AlarmSeverity比较器•自定义告警级别渲染色•使用AlarmModel•管理告警•AlarmModel监听器TWaverJavaDeveloperGuide(Chinese)Copyright(c)2010ServaSoftwareAllRightsReserved7•告警属性变化监听器•使用告警映射•使用AlarmModelQuickFinder•使用AlarmStateStatistics•使用XML创建告警•使用API创建告警•定制告警冒泡渲染颜色•使用TWaverUtil•使用资源代理•通过XML来使用TWaver•JavaBeans的XML持久化•使用XML创建数据•使用XML更新数据•使用XML删除数据•使用XML过滤器•去除网元属性•使用TWaver.XML•配置告警级别•定义图标类型附件•定义属性表上的属性分组•配置网络拓扑图工具栏•配置默认UI•国际化•改变i18n字段•添加i18n字段•网元属性添加i18n字段•定制i18n文件•TWaverJava常见问题•Chart相关问题•可以为图表添加弹出式菜单吗?•ChartValue与ChartListValues的区别•常见问题•怎样改变TWaver的本地化设置?•DataBoxElement相关问题•TWaver中BorderOutline和StateOutline的区别•为什么不能在DataBox中成功添加ElementPropertyChangeListener?•从DataBox中删除一个网元会发生什么?•如何将含有包名的Element类与ElementUI类绑定?•怎样使用DataBoxQuickFinder来查找网元和告警?•网元的javabean,clientproperty,userproperty的属性名有何区别•许可证相关问题•怎样使用许可证?•Network相关问题•Network上的网元可以单选吗?•Blingking网元的动画速度可否手动配置?TWaverJavaDeveloperGuide(Chinese)Copyright(c)2010ServaSoftwareAllRightsReserved8•可否将节点图片设置成GIF图片?•告警和消息附件能否位于网元图片之上?•怎样在Network上添加KeyListener和MouseListener?•如何设置放大镜的放大区域•其他常见问题•Applet和JavaScript怎样交互?•为什么用户在Windows中可以顺利启动web程序,而在Unix或者Linux中不能成功部署?•怎样拦截TWaver异常?•怎样设置图片文件路径?•怎样连接X11window服务器?•Swing相关问题•怎样改变TWaver树节点的连线类型?•怎样更改表格的列宽?•树,表格和属性表常见问题•TTableModel中getPublishedColumn()与getPublishedData()的区别•使用三态树的时候,所有子节点不勾选时可否设置父节点为不选中状态?•怎样为treetable设置树所在列的提示文本?•怎样添加树节点展开监听?•附录•TWaver网元属性列表•AbstractElement属性列表•BaseElement属性列表•Node属性列表•Group属性列表•Link属性列表•其他节点•其他连线•ElementAttribute类•ElementAttirbute概述•注册ElementAttribute•Ele