Eclipse plugin 如何启用/禁用TextCellEditor

Eclipse plugin 如何启用/禁用TextCellEditor,eclipse-plugin,eclipse-rcp,Eclipse Plugin,Eclipse Rcp,我正在制作一个包含2个视图的应用程序。第一个包含一个树查看器,用于显示“我的系统”中的文件夹;第二个包含一个表查看器,用于显示在第一个视图中选择的目录的内容。长话短说:一个文件浏览器 //表查看器的初始化 tableViewer=新的tableViewer(父级,SWT.BORDER | SWT.MULTI | SWT.V|u滚动); setContentProvider(新文件tableContentProvider()); setLabelProvider(新文件tableLabelProv

我正在制作一个包含2个视图的应用程序。第一个包含一个树查看器,用于显示“我的系统”中的文件夹;第二个包含一个表查看器,用于显示在第一个视图中选择的目录的内容。长话短说:一个文件浏览器

//表查看器的初始化
tableViewer=新的tableViewer(父级,SWT.BORDER | SWT.MULTI | SWT.V|u滚动);
setContentProvider(新文件tableContentProvider());
setLabelProvider(新文件tableLabelProvider());
//从任何视图或编辑器的实现中
/*
*getSite()-返回此工作台部件的站点(工作台部件可以是视图(IViewPart)或编辑器(IEditorPart))
*此视图是一个选择提供程序;视图将事件发送到注册到选择服务的所有视图
*/
getSite().setSelectionProvider(tableViewer);
//表格列“名称”将添加到表格查看器中
TableColumn columnName=新的TableColumn(tableViewer.getTable(),SWT.LEFT);
columnName.setText(“名称”);
columnName.setResizeable(true);
columnName.setWidth(200);
//表格列“修改日期”将添加到表格查看器中
TableColumn columnDateModified=新的TableColumn(tableViewer.getTable(),SWT.LEFT);
columnDateModified.setText(“修改日期”);
columnDateModified.SetResizeable(true);
columnDateModified.setWidth(200);
//表格列“类型”将添加到表格查看器中
TableColumn columnType=新的TableColumn(tableViewer.getTable(),SWT.LEFT);
columnType.setText(“类型”);
columnType.setresizeable(true);
columnType.setWidth(200);
//使表格的标题可见
tableViewer.getTable().SetHeadService(true);
/*
*getSite().getPage()-获取活动的工作台页面。
*/
getSite().getPage().addSelectionListener(“com.awebofcode.fileexplorer.view.filetree”,(iSelectListener)this);
/*
*为以下对象添加doubleClickListener:
*1)如果选择的对象是文件,则将使用相关程序打开该文件
*2)如果选择的对象是目录,则输入文件夹并更新树查看器
*/
tableViewer.addDoubleClickListener(新的IDoubleClickListener(){
@凌驾
公共无效双击(双击事件){
IsStructuredSelection=(IsStructuredSelection)事件。getSelection();
File itemSelected=(File)selection.getFirstElement();
//如果所选项目是文件,双击将启动相关程序
if(itemSelected.isFile()&&itemSelected.exists()){
Program.launch(itemSelected.getAbsolutePath());
}else if(itemSelected.isDirectory()){
/*
*更新树查看器;
*PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(FileTreeView.ID)-->返回具有指定ID的视图
*setSelection()将发送一个事件,setSelectionChanged将运行
*/
((FileTreeView)PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(FileTreeView.ID)).getTreeViewer().setSelection(选择);
}
}
});
//创建单元编辑器
CellEditor[]editors=新的CellEditor[1];
编辑器[0]=新的TextCellEditor(tableViewer.getTable());
setColumnProperties(新字符串[]{“名称”、“修改日期”、“类型”});
//将单元格编辑器分配给表查看器
tableViewer.SetCellEditor(编辑器);
//将单元格修改器设置为表格查看器
setCellModifier(新名称CellModifier(tableViewer));
我创建了一个操作,该操作将从第二个视图重命名选定的文件或文件夹

当我单击文件名时,我不想进入编辑模式。我想保持选择模式,只有在单击文件->重命名(操作重命名)后,编辑模式才能启用


问题是我找不到如何启用/禁用
TextCellEditor

我没有找到一个干净的解决方案。我将向你解释我到目前为止所做的事情。我已经修改了我发布的代码。我使用
TableViewerColumn
而不是
TableColumn

类FileTableView:

公共类FileTableView扩展ViewPart实现ISelectionListener{
私人桌面浏览器;
私有布尔值=false;
私人第一专栏编辑支持obj;
公共文件表视图(){
超级();
}
@凌驾
公共void createPartControl(复合父级){
//表查看器的初始化
tableViewer=新建tableViewer(父级,SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.MULTI);//SWT.MULTI-用于多个选择;SWT.FULL_SELECTION-用于整行选择
setContentProvider(新文件tableContentProvider());
//不必为表查看器添加标签提供程序,因为我们将为表的每一列设置标签提供程序
//setLabelProvider(新文件tableLabelProvider());
//提取表格查看器的表格小部件
final Table Table=tableViewer.getTable();
//使表格的标题可见
表.setheadervible(true);
//隐藏表格的行
表.setLinesVisible(假);
//创建表的列
createColumns(父级、tableViewer);
//将分拣机设置为表格查看器
tableComparator=新的TableViewerComparator();
tableViewer.setComparator(tableComparator);
//从任何视图或编辑器的实现中
/*
*getSite()-返回此工作台部件的站点(工作台部件可以是视图(IViewPart)或