`
hn_liuyi
  • 浏览: 32526 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

TWaver组件之Table使用(翻译TWaver文档+补充自己使用体会)八

阅读更多

第八篇 使用 Element Table

Element Table 组件同 alarmtable 一样继承自 TWaver table,Element table 备用用于展示 TWaver element 对象, Element Table 连接着 DataBox ,并从 DataBox 中获取所有的 Element 对象信息展示到表格的每一列上,一个属性对应一列。

Element table 来源于 TWaver table 所以他拥有所有的基本 表格的特性。像自定义列,排序,分页控制,锁定,弹出菜单,和过滤器。不清楚的请参考使用表格组件。

创建一个 Element Table 组件

一般情况下,我们需要一个 DataBox 去创建一个 element table, 这样这个表格就是连接着 DataBoxd , 展示和监控着 DataBox 里面的数据。根据下面小片段来看一下创建一个 Element table 组件和展示 DataBox 里面所有的数据信息。

JFrame frame = new JFrame("TWaver Element Table");

TDataBox box = new TDataBox();

TElementTable table = new TElementTable(box);// 这样写,数 //// 据量大的话,严重影响性能

table.setElementClass(Element.class);

frame.setContentPane(new JScrollPane(table));

frame.setSize(400, 100);

TWaverUtil.centerWindow(frame);

//create several elements.

for (int i = 0; i < 5; i++) {// 自己补充,这里是插入 5 个数据,你可 // 以测试一下插入 5000 条以上数据,看看这个程序要多长 时间能 // 显示出来。

Node node = new Node("N-" + i);

node.setName("Node " + i);

node

.getAlarmState()

.addNewAlarm(AlarmSeverity.getNonClearedRandomSeverity());

box.addElement(node);

}

frame.setVisible(true);

图片

 

自定义一个 Element Table

通过 xml 定义 Bean 信 息来创建 Table

TDataBox box = new TDataBox();

TElementTable table = new TElementTable(box);

// 关键 步骤 1 :注册 xml 定 义的 Bean 信 息

table.registerElementClassXML(Person.class,”/table.xml”);

// 关键 步骤 2 :设置 element class 类型

table.setElementClass(Person.class);

// 往表 格里面放数据

box.addElement(new Person(“Sam”,89));

box.addElement(new Person(“Tom”,12));

box.addElement(new Person(“lisa”,10));

box.addElement(new Person(“pate”,20));

//Person.java

public static class Person extends Node{

   public Person(String name,int age){

  this.setName(name);

  this.putClientProperty(“age”,age);

}

public int getAge(){

  String value = this.getClientProperty(“age”).toString();

return Integer.valueOf(value).intValue();

  }

}

补充:上面这个 Person.java 类很令人费解,这事 Twaver 文档实例的一贯作风。这里可以这么简单的改一下,最简单的实现一 下:

pubic static class Person extends Node{

public Person(String name,int age){

// 因为 采用的是键值对的形式,所以下面的红色部分为 xml 配置 // bean 信 息的 name 属性对应的值保持一致

// 如果 设置 putClientProperty xml 里面必须得 clientPropertyKey

this.putClientProperty(“name ”,name);

this.putClientProperty(“age ”,age);

}

}

下面配置 table.xml 文件

<beaninfo>

<attribute

name="name"

displayName="Name"/>

<attribute

clientPropertyKey="age"

displayName="Age"/>

</beaninfo>

图片

补充: table.xml 的配置信息太简单了,这里可以配置所有的 table 属性信息。比如:

<attribute

name="name"

displayName="Name"/>

我可以这样:

<attribute

name="name"

displayName="Name"

visible=”false”// 该列不可见

editable=”false”// 该列不可编辑

// javaClass = "java.lang.Boolean" 这事设置这 一列为复选框的同 Check 隐藏列

//renderer=”com.org.listRenderer” 设置 renderer

//editor=”com.org.listEditor”// 设置 Editor

/>

提示:如果打开界面就有几千行数据呈现在一个表格里面的话,这个 表格应该这样做:

TElementTable table = new TElementTable();

TDataBox box = new TDataBox();

…….// 一 系列设置表格属性的操作,就是不要设置 TDataBox 属性。

for(){// 这里不管什么样的循环往 box 里面加载数据,举例为: for

……..

box.addElement(…);

}

// 加载 数据结束

table.setDataBox(box);

box 的加载到 table 上 的位置放到数据加载完毕之后,上面写那么多有点磨叽了。

使用过滤器

你可以使用 VisibleFilter 去控制 TElementTable 的每一行的显示与否。

List getVisibleFilters()

void addVisibleFilter(VisibleFilter visibleFilter)

void removeVisibleFilter(VisibleFilter visibleFilter)

table.addVisibleFilter(new VIisibleFilter(){

public Boolean isVisible(Element element){

   Person person = (Person)element;

  return person.getAge()>=18;

}

});

图片

加载数据

表格和他关联的 DataBox 拥有一样的 Element 存放顺序,在默认的情况下,最后添加的数据总是放在表格的最底 处,即行号最大的地方,但是,你也许想看到最后添加的数据能够呈现在表格的最顶端。例如:一个新发生的告警一般都想被放在表格的最顶端,一般调用方法 table.setConverseIncreaseOrder(true) 能做到这样。

图片

图片

补充:还有一个常用的办法就是在往表格关联的 DataBox 里面放数据的时候,一般: box.addElement(element); 这样如果是放在最低端的话,使用 box.addElement(0,element); 这样就放在表格的最前端了。原因为: box 里面其实就是存放的一个 List 数据链, list 可以从前段后端进行插入数据的嘛
0
2
分享到:
评论

相关推荐

    TWaver_Flex中文帮助文档

    TWaver Flex中的告警功能是该组件的一个重要组成部分,文档中讲解了告警的使用,包括告警级别、状态与统计、以及告警的呈现方式。 ### 版权声明和使用许可 文档中也明确了版权信息和版权声明,强调了文档是...

    TWaver HTML5 Developer Guide

    在视图组件部分,文档将介绍Network、Tree和Table三种主要组件的介绍,这些组件是构建可视化界面的核心。Network组件用于展示网络拓扑结构,Tree组件用于构建树形结构,而Table组件用于展示和操作表格数据。 数据...

    twaver flex中文文档

    3. **组件入门级实例**:TWaver Flex 提供了多种预定义的组件,如Network、Table 和 Tree等。这些组件可以通过简单的代码实例快速实现图形界面的基本功能。 #### TWaver Flex 开发环境 TWaver Flex 的开发环境主要...

    TWaver_Web_4.0中文开发手册

    - **前台 Table 组件**、**前台 Tree 组件**、**前台 Sheet 组件**、**前台 AlarmTable**、**前台 AlarmOverview 组件** 等章节详细介绍了如何将 TWaver Web 的功能与 ExtJS 的各种组件集成,以实现复杂的应用场景。...

    TWaver Java 3.7 Developer Guide

    《TWaver Java 3.7 开发者指南》是一份详尽的技术文档,旨在为开发者提供使用TWaver Java 3.7版本进行网络、图表、数据管理和用户界面设计的全面指导。TWaver Java是一个功能丰富的可视化组件库,适用于构建复杂的...

    Twaver java developer guide.pdf

    TWaver组件主要分为以下几个部分: - NetworkComponent(网络组件):用于展示网络拓扑结构,支持图形化展示网络设备和链路。 - TreeComponent(树形组件):实现树形结构的数据展示,常用于展示层次化或分组的数据...

    Flex Twaver 入门指南中文版

    通过以上详细介绍,可以看出 Flex Twaver 不仅提供了一套完整的组件库来满足电信网管系统的需求,还通过丰富的文档和示例帮助开发者快速上手。无论是对于初学者还是有经验的开发人员来说,都是一款值得深入探索的...

    TWare pdf TWare pdf

    根据提供的文件信息,我们可以推断出这是一份关于TWaver™ Java Developer Guide的文档,主要介绍了TWaver™软件的相关信息及使用指南。由于标题和描述部分的信息非常有限且重复,我们将依据这部分内容来构建相关...

Global site tag (gtag.js) - Google Analytics