TWaver图形界面之道(二)TWaver介绍

news/2024/5/19 19:54:26 标签: 图形, flex, 电信, java, .net, 语言

接上篇:TWaver图形界面之道(一)序言与目录

TWaver介绍

TWaver是一款图形界面组件产品,电信行业的朋友用它开发网管图形界面,非电信行业的用它制作的表格,指标图表,流程图。TWaver让界面开发变得简单,几行代码就可以实现组件与数据的绑定,组件与组件间的同步交互。TWaver提供多种界面组件,支持多种编程语言,这意味着无论你使用Java,.NET,Flex,还是JavaScript,都可以选择TWaver作为图形界面的解决方案。

TWaver的图形组件

TWaver最核心的组件是的拓扑图,以图形化的方式直观展示各种设备、线路甚至逻辑元素的分布和状态,具有着丰富的表现形式:气泡信息,染色和边框,告警渲染,动画效果等等。围绕着拓扑图组件,TWaver还提供了传统的通用组件,比如树组件、表格、树表格、属性页、图表(饼图,线图,柱状图……)等等。

TWaver的数据模型

对于终端客户,所看到的TWaver是各种窗体和控件,但这些并不是TWaver的全部,对开发者而言,TWaver最核心的是它统一的数据模型和设计模式。TWaver中有一个名为DataBox(TWaver Java中的TDataBox,TWaver Flex和TWaver .NET中的DataBox<>,ElementBox)的数据容器,负责管理图形元素,就像HTML中的DOM树、Java Swing中的TableModel、ListModel那样,DataBox管理着所有的图形数据,由它驱动到所有的TWaver视图组件。从MVC设计模式的角度看,DataBox数据容器扮演的是控制器(Controller)角色,是一个中间人,协调基本数据与视图界面的通讯和交互。如果把TWaver比做人,那么DataBox就是人的大脑,各个组件就是它不同的侧面,人的喜怒哀乐都由大脑控制和反馈。

TWaver是什么?

用一句话概括:TWaver是一种高效轻量的图形界面解决方案,提供多种语言开发平台,关注于电信网管行业,但不局限于电信行业。

TWaver提供图形界面解决方案

TWaver是一款中间组件产品,专注于图形组件,需要二次开发,提供图形界面一站式解决方案。

关注于图形界面

TWaver关注于图形界面,不是后台技术,也不是系统集成,我们的目标是让枯燥冰冷的数据,直观漂亮的展现。大家看到TWaver的第一眼,就是一系列图形组件,包括拓扑图,树,表格,属性页,图表……TWaver研究界面的每一个像素,关心细微之处的呈现。

TWaver提供了多种图形元素,比如节点,连线,分组,跟随者,附件等等,每一种图形都具有数十种样式属性,设置不同的样式,实现丰富的呈现效果。以网元标签为例,它是节点的一种附件元素,一个小小的标签可以设置位置,对齐方式,颜色,字体,背景色,渐变色填充,边框,HTML支持,气泡形式等诸多属性。由此多个附加元素组合而成的节点对象,就可以展现更丰富的信息,和呈现效果。

图形数据模型

TWaver所有的数据模型都围绕图形,TWaver网元主要是图形元素,而非业务元素,如TWaver Java中的Rack,Card,Port虽然代表可某类业务类型,但具体的业务属性还需要用户去添加,TWaver提供的多是图形属性,因此为了让它变得丰满,满足实际业务需要,我们在实际使用时,需要另外封装一层,或者追加更多的业务属性,以“Port”元素为例,描述设备端口,twaver.Port类中并没有端口流量,传输速率,几针几口,双工模式之类的属性,而只是定义了端口图片,端口边框,端口所在面板等等,这些都是界面呈现需要的。也正因为如此,在TWaver Flex和TWaver .NET版本中,连Port这样的对象也不存了,只是在Demo中给与体现。

例外的是Alarm元素,在Alarm对象上你可以找到告警时间,告警原因属性,这些在界面上不一定需要, TWaver提供了一套告警机制,定义了告警对象,告警级别,告警状态,告警统计,告警模型类, 这些正是TWaver为电信网管行业的特殊扩展。

需要二次开发

TWaver不是一款最终应用软件,需要进行二次开发,就像积木搭建房子,TWaver提供漂亮的积木,协助用户搭建自己的高楼大厦。

TWaver的直接客户是谁?

TWaver的直接客户是软件集成商,面向的是开发人员,我们乐于也善于与开发人员打交道,TWaver团队以开发人员为主,这也使得我们与客户有更多共同语言。因为TWaver不是最终的应用软件,其价值需要由我们的客户来体现,经过你们的二次开发,TWaver才能有机会展现在用户的桌面和终端界面之上。

同时TWaver是一款商业软件,我们出售许可和服务,提供文档,培训和技术支持,为用户提供一站式的图形界面解决方案,让我们的客户能在更短的时间内作出更好的界面效果。

TWaver组件具备高效轻量的特点

程序界面,没人喜欢臃肿和缓慢,程序用户体验的第一要素是流畅,如果界面布局缓慢,动画假死,程序庞大,没有人愿意去使用。优秀的后台,如果让界面拖了后腿,看不到背后的故事,令人不禁惋惜,所以TWaver一直遵循高效轻量的设计理念。

高效

高效主要从界面承载能力来体现,TWaver中用呈现的节点和连线数量作为评判。因为编程语言的差异性,不同语言平台有不同的性能表现:TWaver Java 拓扑图组件支持上万数量级节点的呈现,表格组件支持十万行数据。TWaver Flex和TWaver .NET稍弱,建议Flex控制在2000数量级,.NET为5000。

下面的三张性能分析报表分别反映了TWaver Java/Flex/.NET三款产品的性能特点,完全使用TWaver自己的图表组件制作的。可以看到TWaver Java中加载8000节点和1600条连线,拓扑图在一秒钟能完全呈现;TWaver Flex下2000节点和400连线总计渲染时间为2.2秒;TWaver .NET Silverlight运行环境中4000节点和800连线呈现时间约1.4秒。

轻量

TWaver的小巧也是其受欢迎的原因之一,对于一款中间组件,控制软件体积与女生控制体重一样重要。TWaver核心包一直控制着较小的体积,TWaver Flex和TWaver .NET的核心类库大小约1MB,TWaver Java核心包(twaver.jar)稍微大些,为1.8MB。体积虽小,内容丰富,以TWaver Java为例,twaver.jar中有了十几种图形和网元类型,提供了树,表格,属性页,拓扑图,图表等多种组件,还支持数据的导入导出,图片导出,SVG导出功能。

关注于电信网管行业,但不局限于此

电信网管行业应用

TWaver一直关注于电信网管行业,针对电信行业封装了相关的业务模型,比如设备面板,子网,总线,告警机制等等。从05年到现在,我们的客户大多是电信行业,这为我们积累了大量行业经验,积攒了很多的客户案例和解决方案。很多时候客户引领我们方向,TWaver的完善得益于客户千奇百怪的需求,TWaver很多示例都是客户需求的成果,感谢客户让我们成长,同时,TWaver也将这些经验回馈给客户,用心的交流,手把手的支持,就像两种思想的对话,让彼此都能受益。

其他行业的应用

虽然TWaver更关注于电信行业,但作为基本的图形界面呈现需求,推广到其他领域是完全可行的。在不同行业,基本的图形界面元素具有通用性,拓扑图也可以应用于电力,石油,资源等领域,而表格,树,图表的应用场景更加广泛,是通用的组件。TWaver在其他行业也有精彩的案例,下图中的ERP系统广泛使用了TWaver的拓扑图组件,表格,图表:

支持多种语言平台

TWaver支持多种语言平台,目前提供了Java,Web,Flex,.NET四大分支,此外还有TWaver GIS扩展分支,TWaver GIS分支在不同语言平台有不同的扩展包实现,目前包括:TWaver GIS for Java,TWaver GIS for JS,TWaver GIS for Flex。

未来我们将提供HTML5的版本以及TWaver 3D产品,这两个产品已经在小范围试用,不久将会推广。


http://www.niftyadmin.cn/n/1765867.html

相关文章

【Android】Android 4.0 Launcher2源码分析——启动过程分析

Android的应用程序的入口定义在AndroidManifest.xml文件中可以找出&#xff1a;[html] <manifest xmlns:android"http://schemas.android.com/apk/res/android" package"com.android.launcher"> <original-package android:name"com.androi…

TWaver图形界面之道(三)TWaver产品家族

接上篇&#xff1a;TWaver图形界面之道&#xff08;二&#xff09;TWaver介绍 TWaver产品家族 TWaver Java TWaver Java是TWaver产品家族中历史最悠久、功能最强大、应用最广泛的一个分支。TWaver Java基于Java 2D和Java Swing技术&#xff0c;相比于JS、Flex、Silverlight、HT…

TWaver图形界面之道(四)如何申请与技术支持

接上篇&#xff1a;TWaver图形界面之道&#xff08;三&#xff09;TWaver产品家族 TWaver如何获取 TWaver是一款商业软件&#xff0c;面向企业用户&#xff0c;出售软件授权&#xff0c;提供支持服务&#xff0c;此外对于非商业用途的项目&#xff08; 譬如院校&#xff0c;研…

JSONObject

一、引入jar包 使用JSONObject必须引用JSON-lib.jar,同时它还依赖于其他包 common-lang.jar  common-beanuitls.jar  common-collections.jar  common-logging.jar  ezmorph.jar二、JSONObject对象使用 JSON-lib包是一个java对象、xml、JSON互相转换的包。 1.将Java对象…

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

继续上一章的介绍TWaver图形界面之道&#xff08;四&#xff09;如何申请与技术支持 本章将以一个入门示例开始&#xff0c;介绍TWaver的基本使用&#xff0c;设计思想以及开发流程&#xff0c;如果你已经熟悉了TWaver的使用&#xff0c;熟悉了TWaver的MVC的设计模式&#xff0…

Android UI系列-----EditText和AutoCompleteTextView

在这篇随笔里将主要讲解一下EditText和AutoCompleteTextView这个控件 1.EditText 首先我们先简单来说说EditText这个控件&#xff0c;这个就相当于我们平常web开发中的文本输入框&#xff0c;我们如果要使用EditText&#xff0c;可以在布局文件中声明一个<EditText>这个元…

控制TList的限量多选

大家知道TWaver Java总的TList继承自Swing的JList&#xff0c;所以我们可以很容易控制其选择&#xff0c;例如单选、多选等。但是本文介绍如何控制按指定数量进行选择。 人生就是一个不停选择的过程。所以&#xff0c;我们必须要谨慎的控制好你的选择&#xff0c;无论是TList的…

使用Code Blocks编写C++程序遇到的一些问题

1、添加头文件编译出错的问题 在"project"中添加了几个头文件&#xff0c;并且在"main.cpp"中已经将其引用(#include)了&#xff0c;如下图&#xff1a; 但是编译时却出错说头文件"random.h"中的"generate_rand_num()"函数未定义&…