在我的视图中,我有一个StyledText
,我想打开默认的eclipse查找/替换对话框(在Ctlr + F的编辑器中出现的那个)。
因此,我想实例化并运行FindReplaceAction
,但我的问题是此操作需要ResourceBundle
作为参数,我不知道这是用于什么以及从哪里可以得到它...
我想知道这是否真的是实现此功能的方法,或者是否有办法在eclipse中全局注册我的视图(实现IFindReplaceTarget
)以接收用于打开对话框的Ctrl + F快捷方式
答案 0 :(得分:1)
您应该能够参与标准的查找/替换代码,方法是让您的视图响应主IFindReplaceTarget
课程的getAdapter
方法中的ViewPart
请求并进行设置找到并替换行动。
适配器类似于:
@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不会将Generics用于此方法。
使用以下内容设置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