您应该能够参与标准查找/替换代码,让您的视图响应主的getAdapter
方法中IFindReplaceTarget
的请求类并设置查找和替换操作。
适配器是一样的东西:
@SuppressWarnings("unchecked")
@Override
public <T> T getAdapter(Class<T> required) {
if (IFindReplaceTarget.class.equals(required)) {
return (T) ... your find replace target class
}
... other adapters
}
注:Eclipse的旧版本没有此方法使用泛型。
搭建FindReplaceAction
的东西,如:
ResourceBundle bundle = ResourceBundle.getBundle("my.package.Messages");
FindReplaceAction findReplaceAction = new FindReplaceAction(bundle, "find_replace_action_", this);
findReplaceAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_FIND_AND_REPLACE);
IActionBars actionBars = getViewSite().getActionBars();
actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(), findReplaceAction);
资源包需要一个Messages.properties
文件中包含的内容:
find_replace_action_label=&Find/Replace...
find_replace_action_tooltip=Find/Replace
find_replace_action_image=
find_replace_action_description=Find/Replace
存在不仅是'公共对象getAdapter(类适配器)'方法从'WorkbenchPart'类中,并用代码覆盖它不起作用。当我在我的视图中调用Ctrl + F时,它甚至不会调用此方法... – Raven
对不起,看起来我错过了设置动作的需要。在答案中增加了对此的描述。 'getAdapter'被转换为在Eclipse中使用泛型Neon早期版本有你找到的声明。 –
感谢您的编辑!我会尽快进行测试。这是否意味着这段代码不适用于Eclipse Neonas,它现在使用泛型类型参数? – Raven