在浏览MyWork源码时发现有以下注释: //19为^S,115为小写字母s,keystroke的实现还要进一步了解,TODO:不知道ctrl+a被哪一层截取了 不禁对ctrl+a产生兴趣,随即百度了一下,还真找到一篇文章谈及解决方案,链接网址如下:http://www.javaread.com/topic/show/5 试着照所述修改代码,成功解决,虽然对Keystroke的实现也并不是很了解。下面是修改的步骤,基本上原来的代码不用删除一丁点。
1、在ApplicationActionBarAdvisor.java里头加上 @Override protected void makeActions(IWorkbenchWindow window) { // TODO Auto-generated method stub super.makeActions(window); IAction selectAll = ActionFactory.SELECT_ALL.create(window); register(selectAll); }
2、在ShapesEditor.java里头加上 public IAction getAction(String key) { return getActionRegistry().getAction(key); }
3.在ShapesEditorActionBarContributor.java里头加上 @Override public void setActiveEditor(IEditorPart editor) { // TODO Auto-generated method stub super.setActiveEditor(editor); IActionBars actionBars = this.getActionBars(); actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), getAction(editor, ActionFactory.SELECT_ALL.getId())); actionBars.updateActionBars(); }
protected IAction getAction(IEditorPart editor, String actionID) { if (editor instanceof ShapesEditor) { return ((ShapesEditor) editor).getAction(actionID); } return null; }
如此这般,快捷键Ctrl+a生效
不错,谢谢你的分享。
Log in to post a comment.
在浏览MyWork源码时发现有以下注释:
//19为^S,115为小写字母s,keystroke的实现还要进一步了解,TODO:不知道ctrl+a被哪一层截取了
不禁对ctrl+a产生兴趣,随即百度了一下,还真找到一篇文章谈及解决方案,链接网址如下:http://www.javaread.com/topic/show/5
试着照所述修改代码,成功解决,虽然对Keystroke的实现也并不是很了解。下面是修改的步骤,基本上原来的代码不用删除一丁点。
1、在ApplicationActionBarAdvisor.java里头加上
@Override
protected void makeActions(IWorkbenchWindow window) {
// TODO Auto-generated method stub
super.makeActions(window);
IAction selectAll = ActionFactory.SELECT_ALL.create(window);
register(selectAll);
}
2、在ShapesEditor.java里头加上
public IAction getAction(String key) {
return getActionRegistry().getAction(key);
}
3.在ShapesEditorActionBarContributor.java里头加上
@Override
public void setActiveEditor(IEditorPart editor) {
// TODO Auto-generated method stub
super.setActiveEditor(editor);
IActionBars actionBars = this.getActionBars();
actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(),
getAction(editor, ActionFactory.SELECT_ALL.getId()));
actionBars.updateActionBars();
}
protected IAction getAction(IEditorPart editor, String actionID) {
if (editor instanceof ShapesEditor) {
return ((ShapesEditor) editor).getAction(actionID);
}
return null;
}
如此这般,快捷键Ctrl+a生效
不错,谢谢你的分享。