Eclipse插件 - 是否有任何可编辑的TreeSelection类

时间:2013-01-28 08:52:09

标签: eclipse eclipse-plugin

我正在寻找一种解决方案,使这个树选择在包浏览器视图中可编辑。

这个想法

例如

- 如果我们在包浏览器中的任何类上单击重命名,它将提示重命名的新窗口。对于任何实现TreeSelection Class的类,此功能都是相同的。

但我正在寻找的解决方案是 - 当调用重命名时,重命名选项显示在树本身(就像我们在Windows资源管理器视图中一样)

关于如何在日食上实现这种行为的任何建议。

Tree selection

1 个答案:

答案 0 :(得分:0)

您不需要进行一些特殊的可编辑选择,只需要使树可编辑即可。为此,您使用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));