Eclipse3.3中提供了一个EditingSupport类,用于支持对TreeViewer或TableViewer等的编辑支持。
在之前,知道的人就会知道,要实现对树或表的编辑其实挺麻烦的,要设置好CellEditor,要定义好ColumnProperties,还要有一个CellModifier等等,而且几乎都是一列就只能有一个类型的CellEditor,而不能有异样。
3.3中提供这个EditingSupport使用起来更简单,而且编辑控件可以根据Cell的不同而有所不同。下面简单介绍一下使用方法。
创建一个TreeViewer或者是TableViewer的方式不变。不同的是创建Column方式现在要有所变化,例如:
private void createTreeColumn(TreeViewer tv) {
String[] titles = { "Name", "Parent", "Read_Only", "Hidden" };
for (int index = 0; index < 4; index++) {
TreeViewerColumn tvc = new TreeViewerColumn(tv, SWT.NONE, index);
tvc.getColumn().setWidth(100);
tvc.getColumn().setMoveable(true);
tvc.getColumn().setResizable(true);
tvc.getColumn().setText(titles[index]);
tvc.setLabelProvider(new FileCellLabelProvider(index));
tvc.setEditingSupport(new FileEditingSupport(tv, index));
}
}
要使用EditingSupport,我们需要使用ViewerColumn对象来创建Column,然后给这个ViewerColumn设置EditingSupport对象。
每个VieweColumn可以设置自己的、与众不同的CellLabelProvider,所以此时整个树或表的LabelProvider可以不设置。
最后就是实现自定义的EditingSupport。这里我给这个EditingSupport传入了column的index,这样到时可以知道具体是哪一列正在编辑。FileEditingSupport实现如下:
class FileEditingSupport extends EditingSupport {
private int index;
public FileEditingSupport(ColumnViewer viewer, int index) {
super(viewer);
this.index = index;
}
@Override
protected boolean canEdit(Object element) {
switch (index) {
case 1:
return false;
default:
break;
}
return true;
}
@Override
protected CellEditor getCellEditor(Object element) {
switch (index) {
case 0:
return new TextCellEditor((Composite) getViewer().getControl(),
SWT.NONE);
case 2:
case 3:
return new ComboBoxCellEditor((Composite) getViewer().getControl(),
new String[] { "true", "false" }, SWT.NONE);
default:
break;
}
return null;
}
@Override
protected Object getValue(Object element) {
switch (index) {
case 0:
return ((File) element).getName();
case 1:
return ((File) element).getParent();
case 2:
return ((File) element).canWrite()?new Integer(0):new Integer(1);
case 3:
return ((File) element).isHidden()?new Integer(0):new Integer(1);
default:
break;
}
return null;
}
@Override
protected void setValue(Object element, Object value) {
}
}
这些方法理解起来不难,实现当然也很简单。这里看起来还是一整列只有一种编辑方式,不过可以很容易的改成根据不同对象的不同列实现不同的编辑方式,例如如果对象是一个File,实现可以选择父对象,如果是一个Folder,可以改名等等!
分享到:
相关推荐
Since 3.3, an alternative API is available, see ViewerColumn.setEditingSupport(EditingSupport) for a more flexible way of editing values in a column viewer. 从3.3开始,tableViewer.setCellEditors...
在Java编程环境中,特别是涉及到图形用户界面(GUI)开发时,SWT(Standard Widget Toolkit)是一个重要的库,它提供了丰富的控件和API用于构建桌面应用程序。`CheckBoxCellEditor`是SWT中的一个特殊组件,主要用于...
该项目是一款基于Vue、JavaScript、HTML和CSS构建的myshop电商平台设计源码,总计包含94个文件,涵盖32个PNG图片、22个JavaScript文件、13个Vue组件文件、13个JPG图片文件、3个GIF图片文件、3个SCSS样式文件,以及其他必要的配置和管理文件。
基于c语言的对自己电脑系统测试.zip
基于Labview的--转子动平衡测控系统
基于c语言的青蛙过河小游戏.zip
酒店管理系统-酒店管理系统-酒店管理系统-酒店管理系统-酒店管理系统-酒店管理系统-酒店管理系统-酒店管理系统-酒店管理系统-酒店管理系统-酒店管理系统-酒店管理系统 1、资源说明:酒店管理系统源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工等学习者,作为参考资料,进行参考学习使用。 3、资源用途:本资源具有较高的学习借鉴价值,可以作为“参考资料”,注意不是“定制需求”,代码只能作为学习参考,不能完全复制照搬。需要有一定的基础,能够看懂代码,能够自行调试代码,能够自行添加功能修改代码。 4. 最新计算机软件毕业设计选题大全(文章底部有博主联系方式): https://blog.csdn.net/2301_79206800/article/details/135931154 技术栈、环境、工具、软件: ① 系统环境:Windows ② 开发语言:Java ③ 框架:SpringBoot ④ 架构:B/S、MVC ⑤ 开发环境:IDE
本项目为基于DWR技术的Java与JavaScript无刷新聊天室设计源码,包含31个文件,涵盖9个Java源文件、4个JavaScript脚本文件、4个JAR库文件、3个XML配置文件以及其他相关文件,旨在实现一个无需刷新的即时聊天功能。
CSDN海神之光上传的全部代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
基于asp.net的兼职就业平台设计与实现.docx
手写数字识别
2024C++期末大作业-英语翻译机.zip 电子词典模拟软件 1.创建关键词中英文词典 2.显示关键词中英文词典 3.输入英文关键字,查阅英汉词典 4.输入中文关键字,查阅英汉词典 5.退出
在线考试系统-在线考试系统-在线考试系统-在线考试系统-在线考试系统-在线考试系统-在线考试系统-在线考试系统-在线考试系统-在线考试系统-在线考试系统-在线考试系统 1、资源说明:在线考试系统源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工等学习者,作为参考资料,进行参考学习使用。 3、资源用途:本资源具有较高的学习借鉴价值,可以作为“参考资料”,注意不是“定制需求”,代码只能作为学习参考,不能完全复制照搬。需要有一定的基础,能够看懂代码,能够自行调试代码,能够自行添加功能修改代码。 4. 最新计算机软件毕业设计选题大全(文章底部有博主联系方式): https://blog.csdn.net/2301_79206800/article/details/135931154 技术栈、环境、工具、软件: ① 系统环境:Windows ② 开发语言:Java ③ 框架:SpringBoot ④ 架构:B/S、MVC ⑤ 开发环境:IDE
在Java中使用DES进行加解密的示例DESUtil,注意,DES算法为不安全算法,主要因为它的56位密钥太短,容易被暴力破解。建议使用更安全的加密算法,如AES。
重要说明:图片数量太多,图片分辨率都调整为104x128 数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):225639 分类类别数:262 更多信息:https://blog.csdn.net/FL1623863129/article/details/142592763
VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip VMware-player-full-17.5.0-22583795.zip
3d_magic.apk
旅游管理系统-旅游管理系统-旅游管理系统-旅游管理系统-旅游管理系统-旅游管理系统-旅游管理系统-旅游管理系统-旅游管理系统-旅游管理系统-旅游管理系统-旅游管理系统 1、资源说明:旅游管理系统源码,本资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 2、适用人群:计算机相关专业(如计算计、信息安全、大数据、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工等学习者,作为参考资料,进行参考学习使用。 3、资源用途:本资源具有较高的学习借鉴价值,可以作为“参考资料”,注意不是“定制需求”,代码只能作为学习参考,不能完全复制照搬。需要有一定的基础,能够看懂代码,能够自行调试代码,能够自行添加功能修改代码。 4. 最新计算机软件毕业设计选题大全(文章底部有博主联系方式): https://blog.csdn.net/2301_79206800/article/details/135931154 技术栈、环境、工具、软件: ① 系统环境:Windows ② 开发语言:Java ③ 框架:SpringBoot ④ 架构:B/S、MVC ⑤ 开发环境:IDE
oracle的OCI库文件19.23,dbru,java
本文件是一份关于 Matlab 软件基础入门的文本文件,旨在为初学者提供基本的 Matlab 软件使用方法和技巧。文件内容涵盖了 Matlab 的基本概念、语法规则、常用函数以及一些实用的编程技巧。通过本文件的学习,读者可以快速掌握 Matlab 软件的基本操作,为进一步学习和应用 Matlab 软件打下坚实的基础。 本文件的内容丰富、结构清晰,适合初学者系统学习和掌握 Matlab 软件的基础知识和技能。同时,本文件也提供了一些实用的编程技巧和应用实例,帮助读者更好地理解和应用 Matlab 软件。