JFace MVC控件

MVC表格(TableViewer):

TableViewer封装了SWT中的Table对象,但是其组织和显示数据由两个接口IStructuredContentProvider(继承自IContentProvider)和ITableLabelProvider(继承自IBaseLabelProvider)管理(这两个接口采用了设计模式中常见的策略模式),分别实现这两个接口即可。

IStructuredContentProvider中主要需要实现getElements函数,这个函数负责将setInput的参数转变为Object的数组输出。

ITableLabelProvider中主要实现getColumnText和getColumnImage。getColumnText的输入是getElements的Object数组的每一项。针对每一个Object实例,我们在getColumnText中手动进行区分并返回希望显示在表中的值。


编辑表格:和SWT的tableEditor一样, Jface有cellEditor。直接用tableViewer的setCellEditors方法和setCellModifier方法(形参为实现ICellModifier接口的实例)。

表格拖拽:直接由TableViewer.addDragSupport和addDropSupport添加。本人的项目用的是command方法,稍后再详细说。


其他表格还包括CheckBoxTableViewer(TableViewer子类,用法相同)


MVC树(TreeViewer):

树与表格相比的复杂之处在于考虑父子节点的问题。这里最好创建一个树节点类。包含hasChild,getChild,getName等函数。

与MVC表格一样,其组织和显示数据由两个接口ITreeContentProvider和ILabelProvider管理,分别实现这两个接口即可。

大多数函数形参为Object, 注意使用instanof判断类型,然后再进行类型转换。


MVC清单(ListViewer):略。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值