2011-11-20 40 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'來執行該命令。 –