我正在寻找一种解决方案,以使此树选择在包资源管理器视图本身中可编辑。
这个想法
例如 - 如果我们在包资源管理器中单击任何类的重命名,它将提示一个新窗口进行重命名。此功能对于任何实现 TreeSelection 类的类都是相同的。
但我正在寻找的解决方案是 - 当调用重命名时,重命名选项显示在树本身(就像我们在 Windows 资源管理器视图中一样)
关于如何在 Eclipse 上实现这种行为的任何建议。
我正在寻找一种解决方案,以使此树选择在包资源管理器视图本身中可编辑。
这个想法
例如 - 如果我们在包资源管理器中单击任何类的重命名,它将提示一个新窗口进行重命名。此功能对于任何实现 TreeSelection 类的类都是相同的。
但我正在寻找的解决方案是 - 当调用重命名时,重命名选项显示在树本身(就像我们在 Windows 资源管理器视图中一样)
关于如何在 Eclipse 上实现这种行为的任何建议。
您不需要有一些特殊的可编辑选择,您只需要使树可编辑。为此,您可以EditingSupport
像这样使用(改编自http://www.vogella.com/articles/EclipseJFaceTableAdvanced/article.html#jfacetable_editor):
public class NameEditingSupport extends EditingSupport {
private final TreeViewer viewer;
public FirstNameEditingSupport(TreeViewer viewer) {
super(viewer);
this.viewer = viewer;
}
@Override
protected CellEditor getCellEditor(Object element) {
return new TextCellEditor(viewer.getTree());
}
@Override
protected boolean canEdit(Object element) {
return true;
}
@Override
protected Object getValue(Object element) {
// return the name
}
@Override
protected void setValue(Object element, Object value) {
// update the name of your object
viewer.update(element, null);
}
}
// in the code creating the tree
treeViewer.setEditingSupport(new NameEditingSupport(treeViewer));