Menu

关于Select ALL的问题建议解决方案

2008-08-07
2013-04-22
  • Nobody/Anonymous

    在浏览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生效

     
    • zhanglong

      zhanglong - 2008-08-11

      不错,谢谢你的分享。

       

Log in to post a comment.

MongoDB Logo MongoDB