2011-11-20 116 views
0

键绑定我在Eclipse RCP应用程序有一个工具栏,它包含了三个按钮,Eclipse RCP的:与toolitem

  1. 主页按钮:访问主页
  2. 后退按钮:返回上一页
  3. 前进按钮:进入下一个页面

代码创建它们:

ToolBar tb = new ToolBar(toolBarComp, SWT.NONE); 
     fd = new FormData(); 
     fd.right = new FormAttachment(100, -10); 
     tb.setLayoutData(fd); 

     homeBtn = new ToolItem(tb, SWT.PUSH); 
     homeBtn.setImage(ResourceManager.getImage(ResourceClass.class, "home.png")); 
     homeBtn.setToolTipText("返回主页"); 

     backBtn = new ToolItem(tb, SWT.PUSH); 
     backBtn.setImage(ResourceManager.getImage(ResourceClass.class, "back.png")); 
     backBtn.setToolTipText("返回至上一页"); 
     backBtn.setEnabled(false); 
     backBtn.addSelectionListener(new SelectionAdapter(){ 

      public void widgetSelected(SelectionEvent e) { 
       CompositePageRender.this.controler.goBack(); 
      } 

     }); 

     forwardBtn = new ToolItem(tb, SWT.PUSH); 
     forwardBtn.setImage(ResourceManager.getImage(ResourceClass.class, "forward.png")); 
     forwardBtn.setToolTipText("前进至下一页"); 
     forwardBtn.setEnabled(false); 
     forwardBtn.addSelectionListener(new SelectionAdapter(){ 

      public void widgetSelected(SelectionEvent e) { 
       CompositePageRender.this.controler.goFroward(); 
      } 

     }); 

我想绑定ALT + H与主页按钮,这可能吗?怎么做?

+0

我不确定你想完成什么。是否“_I将ALT-H绑定到home_key_”意味着您希望在用户执行ALT-H时执行home键的操作? – rmoestl

+0

是的,我的意思是。 – CaiNiaoCoder

回答

2

在SWT应用程序中,您可以使用助记符模拟按下按钮。

但是,如果您的意思是工具栏中带有ToolItems的RCP应用程序,则需要使用命令框架来使用键绑定。

您定义了一个命令,然后使用一个句柄来实现该行为。然后你的ToolItem和键绑定ALT + H指向相同的命令

请参阅Workbench extension points using Commands了解更多信息。

+0

你的意思是,调用按钮监听器中的命令处理程序? – CaiNiaoCoder

+0

如果您有一个工具栏和一个“ToolBarManager”,那么您可以使用CommandContributionItems从该工具项中调用该命令。如果您只是使用工具项和选择监听器,那么您可以使用'org.eclipse.ui.handlers.IHandlerService'来执行该命令。 –