JFace 可编辑的TreeViewer和TableViewer
来源:互联网 发布:unity3d 面部表情 编辑:程序博客网 时间:2024/05/16 11:36
向已有的TreeViewer和TableViewer上添加编辑功能,可以使用CellEditor和CellModifier。
CellEditor定义了某个列被编辑时显示的外观,它可以是文本框、下拉列表框或单选框,也可以自己定义。
通常使用的CellEditor的子类就是:CheckboxCellEditor、ComboBoxCellEditor和TextCellEditor。CellEditor一般用数组来保存,如果某个列不需要编辑,则可将该列的CellEditor设为null。当CellEditor的数组定义完后,即可利用setCellEditors(CellEditor[] editors)方法将该数组设置到对应的TreeViewer或TableViewer中去。例如:
CellEditor负责外观,它对要编辑的模型信息一无所知。所以jface中引入了ICellModifier接口,将model与CellEditor联系在一起。为了确定在CellModifier中的列,需要定义columnProperties的String[]数组,用以区分不同列对应的不同属性。使用setColumnProperties(String[] columnProperties)设置该属性集。
ICellModifier定义了三个接口方法:
public boolean canModify(Object element, String property);该方法判断何时该列可以被编辑。其中element是对应的model。返回true表示此时该列可以被编辑。
public Object getValue(Object element, String property);该方法一般在activateCellEditor()时调用,用于设定CellEditor的初始值。其中element是对应的model。
此处虽然可以返回Object类型的引用,但是使用时需小心,特定的CellEditor仅接受特定类型的Value。比如:TextCellEditor对应String类型的Value;ComboBoxCellEditor对应Integer类型的Value;CheckBoxCellEditor对应Boolean类型的Value;若返回了不适合的Value对象,则会抛出AssertionFailedException。
public void modify(Object element, String property, Object value);该方法执行保存修改。一般在saveEditorValue之类的方法中调用。此处的element不再是model,而是Item类型的引用。取用对应的模型,需要使用((Item) element).getData()方法。一般此处的value值,也就是当前CellEditor的Value值,使用CellEditor.getValue()得到。另外,在执行完更改后,需要刷新对应的TableViewer或TreeViewer,使做出的更新可见。org.eclipse.debug.internal.ui.elements.adapters.DefaultVariableCellModifier是ICellModifier的一个完整实现:
- JFace 可编辑的TreeViewer和TableViewer
- JFace 可编辑的TreeViewer和TableViewer
- 为JFace(TableViewer,TreeViewer...)创建可直接编辑的DialogCellEditor
- JFace中TableViewer和TreeViewer的研究
- JFace 可编辑的TableViewer的cell
- EditingSupport 对TreeViewer和TableViewer的编辑功能的支持
- TableViewer, TreeViewer双击编辑
- TableViewer, TreeViewer双击编辑
- SWT的TreeViewer和TableViewer的交互
- SWT中如何设置TableViewer和TreeViewer成为双击编辑
- JFace TreeViewer理解和用法
- Swt/Jface treeViewer的使用
- Swt/Jface treeViewer的使用
- Swt/Jface treeViewer的使用
- Swt/Jface treeViewer的使用
- SWT/Jface TreeViewer 上移和下移按钮的简单实现
- JFace - 分析TableViewer的设计
- SWT/Jface TableViewer update() 和 refresh()
- U盘自动运行程序
- asp.net2.0:扩展ImageButton控件定制自己需要的功能
- TripleDES加密、解密算法
- TableViewer, TreeViewer双击编辑
- 在Windows中实现“一键关机”
- JFace 可编辑的TreeViewer和TableViewer
- 游戏Demos 视频
- Java 的DES算法实现
- Swt/Jface tableViewer入门教程1
- Swt/Jface tableViewer入门教程2
- Symbian OS中的RArray类的排序功能
- Swt/Jface tableviewer入门教程3
- Swt/Jface tableviewer入门教程4
- 全面剖析XMLHttpRequest对象