`

TWaver图形界面之道(五)Hello TWaver

阅读更多

继续上一章的介绍TWaver图形界面之道(四)如何申请与技术支持

本章将以一个入门示例开始,介绍TWaver的基本使用,设计思想以及开发流程,如果你已经熟悉了TWaver的使用,熟悉了TWaver的MVC的设计模式,可跳过本章节。

Hello TWaver

以一个经典示例开始,创建两个节点和一条连线,并在不同组件中展现,然后我们会追加告警,观察界面的变化。

开发环境

TWaver有多个产品分支,不同的编程语言有不同的开发环境,比如TWaver Java支持JDK1.4+,TWaver Web支持各主流浏览器,TWaver Flex要求Flex SDK 3.4.2+,TWaver .NET需要.NET Framework 3.5+,Silverlight 3.0+,而HTML5版本要求比较现代的浏览器。不同的语言开发平台也不同,这些在我们的开发手册中都有介绍,本书不再重复:

TWaver Java入门:http://doc.servasoftware.com/pages/viewpage.action?pageId=18415915

TWaver Web入门:http://doc.servasoftware.com/pages/viewpage.action?pageId=19010174

TWaver Flex入门:http://doc.servasoftware.com/pages/viewpage.action?pageId=16547882

TWaver .NET入门:http://doc.servasoftware.com/pages/viewpage.action?pageId=19008968

TWaver HTML5入门:http://doc.servasoftware.com/pages/viewpage.action?pageId=20776443

以TWaver Java为例

首先我们需要twaver.jar,这可以在TWaver Java试用包中找到,关于如何TWaver的申请可以阅读前面的章节:“TWaver如何获取”。

创建一个拓扑图

我们使用Eclipse开发工具,新建一个Java应用程序工程,引入twaver.jar,创建HelloTWaver类,编写下面的代码:

01 import java.awt.BorderLayout;
02 import java.awt.Component;
03 import javax.swing.JFrame;
04  
05 import twaver.*;
06 import twaver.network.TNetwork;
07  
08 public class HelloTWaver {
09     public static void main(String[] args) {
10         //创建DataBox
11         TDataBox box = new TDataBox();
12  
13         //增加两个节点和一条连线
14         Node node = new Node();
15         node.setName("Hello");
16         node.setLocation(1010);
17         box.addElement(node);
18  
19         Node node2 = new Node();
20         node2.setName("TWaver");
21         node2.setLocation(200150);
22         box.addElement(node2);
23  
24         Link link = new Link(node, node2);
25         link.setName("Hello TWaver");
26         link.putLinkLabelRotatable(true);
27         box.addElement(link);
28  
29         //定义拓扑图组件
30         TNetwork network = new TNetwork(box);
31  
32         //显示拓扑图组件
33         showFrame("Hello TWaver", network);
34     }
35  
36     public static JFrame showFrame(String title, Component component) {
37         JFrame frame = new JFrame();
38         frame.setTitle(title);
39         frame.getContentPane().add(component, BorderLayout.CENTER);
40         frame.setSize(800600);
41         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
42         TWaverUtil.centerWindow(frame);
43         frame.setVisible(true);
44         return frame;
45     }
46 }

细看代码,分为四部分:创建DataBox;增加两个节点和一条连线;定义拓扑图组件;显示拓扑图。

运行代码,得到如下界面:

增加树,表格和属性页

然后增加树,表格,属性页等组件,并用JSplitPane布局显示,代码如下:

01 public class HelloTWaver {
02     public static void main(String[] args) {
03         ...
04         //创建树组件
05         TTree tree = new TTree(box);
06  
07         //创建属性页组件,并设置为可编辑
08         TPropertySheet sheet = new TPropertySheet(box);
09         sheet.setEditable(true);
10  
11         //创建表格组件,设置为可编辑
12         TElementTable table = new TElementTable(box);
13         table.setElementClass(Element.class);
14         table.setEditable(true);
15  
16         //分别将属性页和表格组件放置在滚动面板中,这样可以保证表头的正确显示
17         JScrollPane tablePanel = new JScrollPane(table);
18         JScrollPane sheetPanel = new JScrollPane(sheet);
19  
20         //显示这些组件
21         showSplitPane("Hello TWaver", getSplitpane(tree, sheetPanel, 300false), getSplitpane(network, tablePanel, 300false), 100);
22     }
23  
24     public static JFrame showSplitPane(String title, JComponent left, JComponent right, int leftLocation) {
25         JSplitPane mainPane = getSplitpane(left, right, leftLocation, true);
26         return showFrame(title, mainPane);
27     }
28  
29     public static JSplitPane getSplitpane(JComponent firstPane, JComponent secondPane, int location, boolean isHorizontal) {
30         JSplitPane mainPane = new JSplitPane();
31         if (isHorizontal) {
32             mainPane.setRightComponent(secondPane);
33             mainPane.setLeftComponent(firstPane);
34             mainPane.setDividerLocation(location);
35         else {
36             mainPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
37             mainPane.setBottomComponent(secondPane);
38             mainPane.setTopComponent(firstPane);
39             mainPane.setDividerLocation(location);
40         }
41         return mainPane;
42     }
43     ...
44 }

上面的代码创建了树,表格。属性页组件,添加到窗体面板,这里有两个细节值得注意:一个是JScrollPane的使用,Swing中的表格组件需要放置在滚动面板,也就是JScrollPane中,这样表格列头才能正常显示,TWaver中的表格组件和属性页组件都是继承于Swing的JTable,所以需要用JScrollPane包装一下;还有一个细节是代码设置了表格和属性页为可编辑,简单的一行代码,就可以实现节点和连线属性的编辑。

让我们来运行程序,得到如下界面:

添加告警

最后来尝试告警的使用,为了更好的展示告警传递效果,这里修改了网员的层次结构,增加了一个分组元素,并将前面创建的两个节点和一条连线设置为这个分组的孩子节点,然后我们像告警容器中添加一条紧急告警,这个告警与节点”TWaver”关联,添加下面的代码:

01 //添加分组
02 Group group = new Group();
03 group.setExpand(true);
04 group.addChild(node);
05 group.addChild(node2);
06 group.addChild(link);
07 box.addElement(group);
08  
09 //添加告警
10 AlarmModel alarmModel = box.getAlarmModel();
11 //告警与node2关联
12 Alarm alarm = new Alarm(node2.getID(), AlarmSeverity.CRITICAL);
13 alarmModel.addAlarm(alarm);

运行界面如下,告警在拓扑图组件和树组件都有展示,节点“TWaver”被渲染为红色,它上面的红色冒泡(1C)表示有一条级别为紧急的新发告警产生,网元上的告警还会向其父节点传递,拓扑图和树图上都可以看到分组节点的渲染边框。点击节点“TWaver”属性页中可以显示它的告警状态属性。

Hello TWaver 示例的启示

每个TWaver产品分支有各自的Hello TWaver示例,这是TWaver入门的第一课,通过简单的示例,传递给大家对TWaver开发的一些启示:代码简洁,直观,实时联动,模型与视图分离。

代码简单

除了TWaver Web涉及到前后台的结合,比较复杂外,TWaver其他产品分支都很容易入门,比如TWaver Java的示例,只需要一个Java类,几行代码就可以制作一个完整的,可以操作的拓扑图界面,不需要安装第三方插件,不需要配置,都是最基本的Java编程,Flex编程或者.NET程序开发。

编码直观

界面编程最大的好处就是直观,每一行代码的设置在界面上都能直接看到效果,同样TWaver的特性很容易直观的展现,可以去尝试修改网元的样式属性,直接运行就可以看到效果,这为TWaver的学习提供了帮助,如果配合上我们的编辑器,很多图形效果都可以自己摸索和发现。

界面联动

TWaver的强大之一体现在多种界面之间的数据同步,交互同步,在Hello TWaver中我们可以看到,简单的创建组件,无需额外的代码,就能实现拓扑图的拖拽,框选,缩放等操作,各个组件中都可以同步选中网元,显示被选中网元的信息可以在属性表中显示,并且能够直接编辑,同步更新到各个组件。

M-V分离

通过Hello TWaver的示例还能了解到TWaver的开发习惯,TWaver使用MVC的设计模式,在入门示例中我们可以很明显的体会到M-V的关系,M就是数据,创建网元添加到数据容器,V是视图组件,创建组件,关联上M(数据容器)即可,如果不需要特殊的交互,组件的创建往往只是一行代码,更多的工作在于数据的填充,这正是TWaver数据驱动视图的使用习惯。

分享到:
评论

相关推荐

    TWaver图形界面之道

    ### TWaver图形界面之道——关键知识点解析 #### 一、TWaver概述 TWaver是一款专为图形用户界面(GUI)开发而设计的组件产品。它不仅适用于电信行业的网络管理系统(NMS),同样适用于非电信领域的各类图形化界面...

    TWaver的3d图形组件库,小demo

    "TWaver的3d图形组件库,小demo" 提示我们这是一个基于TWaver库的3D图形展示实例。TWaver是一个专业级的图表和数据可视化工具,它提供了HTML5版本的3D图形组件,允许开发者在Web应用中创建交互式的三维图形。 ...

    twaver.js使用示例

    5. **报警系统模拟**:“alarm”可能是一个具体的应用场景,展示如何使用twaver.js来设计和实现报警系统的图形界面,包括节点的状态变化、事件响应等。 6. **交互操作**:学习如何利用twaver.js库实现图形元素的交互...

    twaver例子

    TWaver是美国Serva Software公司的产品,是应用最为广泛的电信专业图形界面开发工具包,在电信行业应用非常广泛。TWaver关注于数据的图形展示,它是面向开发人员的,需要进行二次开发。 TWaver的图形组件库中提供了...

    TWAVER-最好的JAVA 图形设计组件-试用

    这款组件的强大之处在于其高度定制性和灵活性,使得开发人员能够轻松实现复杂图形界面的构建。 1. **拓扑展现**:TWAVER的核心功能之一是拓扑展现。它允许开发者创建和管理复杂的网络拓扑图,如电信网络、数据中心...

    twaver web实例源码

    1. HTML文件:作为Web应用的入口,可能使用ExtJS的脚本引入Twaver库,并初始化图形界面。 2. JavaScript文件:包含主要的业务逻辑,使用Twaver和ExtJS的API实现图形的创建、更新和交互逻辑。 3. CSS文件:定义图形和...

    TWaver-java-4.1最新 官网试用版jar包及Demo

    TWaver是一个强大的图形绘制和分析工具,适用于构建复杂的图表、网络图、流程图等多种图形界面,广泛应用于数据分析、业务建模、系统监控等领域。 【压缩包子文件的文件名称列表】: 1. demo.bat:这是一个Windows...

    flex Twaver组件使用

    总的来说,TWaver Flex组件是构建富互联网应用的强大工具,它简化了图形界面的开发,提高了数据管理的灵活性,尤其在处理复杂网络和业务逻辑时表现突出。通过深入理解和熟练运用TWaver Flex,开发者能够快速创建出...

    twaver-html5-5.9.0-api_html5_-5.9.0-api_twaver_

    通过这些文件,开发者可以学习如何在HTML5环境中集成Twaver,创建交互式的可视化界面,包括添加图形元素、处理用户交互、响应事件、定制样式和布局等。同时,了解API文档可以帮助开发者掌握如何利用Twaver提供的类和...

    twaver-flex-3.6.5 官方demo

    【描述】"twaver-flex-3.6.5 官方demo" 意味着用户可以通过这个Demo了解如何在Adobe Flex平台上利用Twaver库进行图形界面的开发。Flex是一种用于构建富互联网应用程序(RIA)的开源框架,它允许开发者创建具有丰富...

    TWaver HTML5 开发指南代码

    TWaver是一个强大的可视化框架,其核心特性是支持复杂的图形和网络图表的绘制,尤其适合在Web上创建交互式的机房、网络设备、服务器架构等展示。 一、TWaver概述 TWaver是一个高效且灵活的JavaScript库,专门用于...

    twaver for flex 开发手册

    这些控件允许开发者在 Flex 应用程序中轻松实现复杂的网络拓扑图、表格、树形结构等图形界面,从而极大地提高了应用程序的可读性和可用性。 #### 二、TWaverFlex 快速入门 **TWaverFlex 快速上手**:为了帮助初学...

    TWaver_Flex中文帮助文档

    TWaver Flex是基于Flex/Flash平台的一个网络可视化组件,用于构建动态的网络图形界面。文档版本为2.0,发布于2011年8月,由ServaSoftware提供。 ### TWaver Flex组成和功能 文档描述了TWaver Flex的核心功能和组成...

    TWaver文档

    - **TWaver**是由赛瓦软件开发的一款图形界面组件解决方案,主要用于数据的图形化展示,尤其是在电信行业拥有广泛的应用。 - **赛瓦软件**是赛瓦集团的子公司,自1977年成立以来一直致力于电信组件及国际制造业软件...

    twaver-java-4.1

    【标题】"TWaver-java-4.1" 是一个针对Java平台的TWaver最新开发包,旨在帮助开发者创建更加生动且具有吸引力的用户界面。TWaver是一个强大的数据可视化工具,它提供了丰富的图表类型和交互功能,让数据展示更加直观...

    TWaver_Web_4.0中文开发手册

    - **概述**:TWaver Web 是一种用于浏览器中展示图形化界面的组件,特别适用于展示电信网络管理中的拓扑图和设备面板图。TWaver Web 的广义概念涵盖了多个版本,包括 TWaver Web SVG、TWaver Flex 和 TWaver ...

    TWaver Java 3.7 Developer Guide

    TWaver Java是一个功能丰富的可视化组件库,适用于构建复杂的图形用户界面(GUI),特别是在网络监控、数据分析和展示应用中。 ### 概述 TWaver Java提供了多种图形组件,包括但不限于网络、树形、表格、树表、...

    TWaver for HTML5

    TWaver的图形组件库中提供了拓扑组件、地图组件、设备图组件,以及表格、树图、属性表、图表等丰富的通用图形界面组件,为电信运营支撑系统(OSS)的开发提供“一站式”的组件产品和解决方案,是快速设计、开发和...

    基于TWaver实现的3D机房Demo

    通过TWaver,开发者可以专注于业务逻辑和界面设计,而无需过多关注底层图形渲染的细节。 在3D机房Demo中,我们能看到以下关键功能: 1. 设备建模:每个设备(如服务器、路由器等)都被精确地建模,包括形状、颜色...

Global site tag (gtag.js) - Google Analytics