TWaver基本编程2

Element的选中机制

所有的Element数据都可以被选中。选中状态是Element的重要状态之一,它在实现人机交互过程中非常常用。理解和使用Element选择,对于熟练掌握TWaver开发具有重要意义。

  • 使用选择状态

    所有TWaver的Element都有一个选中状态。要么选中,要么没选中,它是一个boolean值。可以使用函数isSelected/setSelected进行获取或设置。一个对象处于选中状态时,其外观会有一定的变化,对于不同的组件,这种变化也有所不同。例如,对于拓扑图组件来说,选中的数据会显示一个高亮外框,而对于树来说,选中数据会有一个高亮的背景框。如下图。

    实际上,这些默认的外观和行为都可以被定制和修改。后续章节我们将讲述这些用法。

  • 使用选择容器Selection Model

    Selection Model可以成为选择容器,是一个DataBox附属的一个容器,它维护着DataBox中所有的被选中的数据对象的引用。DataBox作为一个大容器,它负责所有容纳其中数据的管理。但是,为了让管理职责更加清晰和明确、易于使用,DataBox还拆分出一些附属的、相对独立的小容器,分管不同的任务。选择容器Selection Model就是其中一个,专门负责管理数据的选中状态。

    其实,Element已经有了boolean值标识选中状态,那为何DataBox还要设置选择容器进行选中状态的管理呢?主要是为了开发者使用更加方便。举一个简单的例子:如果DataBox容纳了1万个节点,其中有10个被用户选中,并进行了"删除"操作。如果没有选择容器,我们只能通过遍历这1万个节点来获得这10个数据进行删除,效率和方便性上都不够好。而有了选择容器,则可以直接访问选择容器,将其中的10个节点删除即可,因为TWaver已经保证所有的选中节点都会出现在选择容器中。

    通过选择容器,还可以通过API对选择状态进行控制。例如,将数据加入选择容器会造成数据被选中;清空选择容器,会取消所有数据的选中状态,等等。

    当然,选择容器仅仅负责选择状态的管理。无论对这个容器怎么增、删、改操作,它仅仅影响数据的选中状态,而不会影响数据的其他属性,更不会导致数据从DataBox中被删除等行为。

  • 使用选择监听器

    选择监听器的作用是:用于监测数据的选择状态的变化。

    首先解释一下什么是监听器。如果读者熟悉Swing编程,可以从中看到大量使用监听器进行设计的例子。例如监听按钮被按下的动作是使用ActionListener,下拉框被修改是使用ChangeListener等等。同样,TWaver中的选择监听器SelectionListener的道理和用法类似,就是监听DataBox中数据的选中变化。

    其次解释一下为什么要监听选择的变化。根据实际应用场景的不同,其具体需求可能不同,但是监听选中的变化作用还是比较大的。例如,当用户在屏幕上对拓扑图上的一些节点进行选中,我们希望把所有选中数据的名字动态显示在窗口底部的提示栏上。此时,就可以加装选择监听器,并对事件进行处理。

    下面的例子中,我们创建了一个新的选择监听器,当任何一个Element的选择状态发生变化时,我们都打印一个字符串,表示监听到了:

    DataBoxSelectionListener l =new DataBoxSelectionAdapter(){
        public void selectionChanged(DataBoxSelectionEvent e) {
            System.out.println("selection changed.");
        };
    };
    TDataBox box=new TDataBox();
    box.getSelectionModel().addDataBoxSelectionListener (l);
    //add more code here...
    

    使用交互进行选择控制拓扑图提供了很多内置的交互模式,便于用户对数据进行选择操作。这样,我们可以通过API、鼠标或键盘等多种途径对数据选择进行控制。

    设备 操作 效果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值