当用户选择文本时,如何从编辑器中获取“IStructuredSelection”?

时间:2011-12-05 02:44:04

标签: eclipse eclipse-plugin eclipse-rcp

我正在研究eclipse-plugin。

我已经成功添加了一个上下文菜单(当用户在Java编辑器中并在编辑器中右键单击时)并将其部分连接到我创建的动作类。

显然,当用户点击编辑器上的任何元素(任何文本)并右键单击以打开上下文菜单,并选择我创建的菜单时,插件将开始跟踪用户选择的选项。但是,它跟踪的选择总是在ITextSelection的实例中,我无法对它做任何有用的事情。我想将选择作为IStructuredSelection的一个实例,以便我的插件可以使用它。 无论如何我能做到吗?

public class MyPluginAction extends ActionDelegate implements IEditorActionDelegate {

    public void run(IAction action) {

    }

    public void selectionChanged(IAction action, ISelection selection) {
        if(selection instanceof IStructuredSelection){
            System.out.println("IStructure");
        } else if(selection instanceof ITextSelection){
            System.out.println("IText");
        }
    }

    public void setActiveEditor(IAction action, IEditorPart targetEditor) {
        // TODO Auto-generated method stub
    }
}

1 个答案:

答案 0 :(得分:3)

如果您从编辑器中选择文本,您将始终获得ITextSelection,获取IStructuredSelection根本没有意义。我想this question会解决您的问题。