当我们双击CheckboxTreeViewer选中的项目时,如何让键盘光标焦点编辑标签文本

时间:2016-02-16 08:02:33

标签: java jface treeviewer

public class MyLabelProvider extends LabelProvider {

    @Override
    public Image getImage(Object element) {
        return createImage(imagePath);
    }

    @Override
    public String getText(Object element) {
        return MessageFormat.format((String)element); // CheckBOxTreeViewer, AA, BBB //and etc.
    }

    @Override
    public void dispose() {

    }

}


public class MyContentProvider implements ITreeContentProvider, IViewerListener {

    private CheckboxTreeViewer viewer;
  @Override
    public void inputChanged(Viewer viewer, Object oldInput, Object NewInput) {

    }

    @Override
    public Object[] getElements(Object inputElement) {
    }

    @Override
    public Object[] getChildren(Object parentElement) {
    }
    @Override
    public Object getParent(Object element) {
    }
    @Override
    public boolean hasChildren(Object element) {
    }
    @Override
    public void refreshOnlyContent(Object element) {
    }
    @Override
    public void refreshOnlyLabels() {
    }
    @Override
    public void refreshEverything(Object element) {
    }

    @Override
    public void dispose() {
    }
}


public class MyClass {

@PostConstruct
    public void postConstruct(Composite composite) {

CheckboxTreeViewer   treeViewer = new CheckboxTreeViewer(Composite);

MyContentProvider contentProvider = new MyContentProvider ();

treeViewer.setContentProvider(contentProvider);

IViewerListener  viewerListener = contentProvider;

treeViewer.setLabelProvider(new MyLabelProvider ());

treeViewer.addDoubleClickListener(new IDoubleClickListener() {

 @Override
public void doubleClick(DoubleClickEvent event) {

      //editor cursor focus code
  }
});

}
}

如何修改CheckboxTreeViewer标签文字。

在此项目示例中,标签文本为CheckBOxTreeViewer,AA,BBB等。

当我们双击CheckboxTreeViewer项目时,如何让键盘光标聚焦以编辑标签文本。 CheckboxTreeViewer Image

1 个答案:

答案 0 :(得分:0)

版本与AWT / Swing不同。

你需要在treeViewer上使用:

  • setColumnProperties(),其中列出了版本的列。默认情况下,树只有一列,因此您只能使用一个元素的数组)
  • setCellEditors()表示您如何编辑值(文字, combo,...)
  • setCellModifier(),它在行对象之间建立连接, 和编辑器(转换值,表示值是否为 可编辑的,...)

如果您想要双击版本:

TreeViewerEditor.create(treeViewer, new ColumnViewerEditorActivationStrategy(treeViewer){
    protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {  
        return event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION;
    }

您也可以查看这篇非常有趣的文章:http://ramkulkarni.com/blog/in-place-editing-in-eclipse-treeviewer/