论坛首页 Java企业应用论坛

在Eclipe中实现工具栏,兼答suxiaoxiao网友问

浏览 2784 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-31  
1.在ActionBarAdvisor类中定义工具栏位置

 

java 代码
 
  1. public final class NetStarActionBarAdvisor extends ActionBarAdvisor ...{  
  2.   
  3.     /** 售票管理工具条. */  
  4.     private static final String TOOLBAR_SELL_TICKET = "tbSellTicket";  
  5.   
  6.     /**
  7.      * {@inheritDoc} 
  8.      *  
  9.      * @see org.eclipse.ui.application.ActionBarAdvisor#fillCoolBar(org.eclipse.jface.action.ICoolBarManager) 
  10.      */  
  11.      @Override  
  12.     protected void fillCoolBar(final ICoolBarManager coolBar) ...{  
  13.         coolBar.add(new ToolBarContributionItem(createSellTicketToolBar(coolBar  
  14. }                .getStyle()), TOOLBAR_SELL_TICKET));  
  15.     /**  
  16.      * Create sell ticket tool bar. 
  17.      *  
  18.      * @param style 
  19.      *        the style 
  20.      * @return the tool bar menager 
  21.      */  
  22.     private IToolBarManager createSellTicketToolBar(final int style) ...{  
  23.         final IToolBarManager toolBar = new ToolBarManager(style);  
  24.         toolBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));  
  25.         return toolBar;  
  26.     }  
  27.     ...  
  28. }  

2.扩展Action,指定toolbarPath位置为"tbSellTicket/groupMarker1",其中groupMarker1是分组,tbSellTicket可以有多个组。

xml 代码
 
  1. <action  
  2.         accelerator="F2"  
  3.         class="com.cepiao.netstar.client.ticket.actions.TicketAction"  
  4.         definitionId="netstar.client.ticket.actions.SellTicket"  
  5.         icon="icons/saleticket.gif"  
  6.         id="com.cepiao.netstar.client.ticket.TicketAction"  
  7.         label="售票(&S)"  
  8.         menubarPath="sellTicket/groupMarker1"  
  9.         style="push"  
  10.         toolbarPath="tbSellTicket/groupMarker1"  
  11.         tooltip="售票、售留票、改票">  
  12.   action>  

3.实现Action类,继承ActionDelegate.

java 代码
 
  1. /** 
  2.  * @(#)MyTicketAction.java 1.0 2007/07/25 20:36:43 
  3.  * 
  4.  */  
  5. package com.cepiao.netstar.client.ticket.actions;  
  6.   
  7. import org.eclipse.jface.action.IAction;  
  8. import org.eclipse.ui.IWorkbenchPage;  
  9. import org.eclipse.ui.PlatformUI;  
  10. import org.eclipse.ui.WorkbenchException;  
  11. import org.eclipse.ui.actions.ActionDelegate;  
  12.   
  13. import com.cepiao.netstar.client.core.ui.ExceptionHandler;  
  14. import com.cepiao.netstar.client.core.ui.TicketViewConstants;  
  15.   
  16. /**
  17.  * Class MyTicketAction. 
  18.  *  
  19.  * @author Yawolf Chang  
  20.  * @version $Revision:1.0, $Date: 2007/07/25 20:36:43 $ 
  21.  */  
  22. public final class MyTicketAction extends ActionDelegate ...{  
  23.     /**
  24.      * {@inheritDoc} 
  25.      *  
  26.      * @see org.eclipse.ui.actions.ActionDelegate#run(org.eclipse.jface.action.IAction) 
  27.      */  
  28.     @Override  
  29.     public void run(final IAction action) ...{  
  30.         final IWorkbenchPage page =  
  31.                 PlatformUI.getWorkbench().getActiveWorkbenchWindow()  
  32.                         .getActivePage();  
  33.         if (page == null) ...{  
  34.             return;  
  35.         }  
  36.         //打开视图  
  37.         try ...{  
  38.             page.showView(TicketViewConstants.TICKET_VIEW_ID);  
  39.         } catch (final WorkbenchException e) ...{  
  40.             ExceptionHandler.handle(e);  
  41.         }  
  42.     }  
  43. }  
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics