我正在研究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
}
}
答案 0 :(得分:3)
如果您从编辑器中选择文本,您将始终获得ITextSelection,获取IStructuredSelection根本没有意义。我想this question会解决您的问题。