在Eclipe中兑现工具栏,兼答suxiaoxiao网友问
在Eclipe中实现工具栏,兼答suxiaoxiao网友问
1.在ActionBarAdvisor类中定义工具栏位置
3.实现Action类,继承ActionDelegate.
1.在ActionBarAdvisor类中定义工具栏位置
java 代码
- public final class NetStarActionBarAdvisor extends ActionBarAdvisor ...{
- /** 售票管理工具条. */
- private static final String TOOLBAR_SELL_TICKET = "tbSellTicket";
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.ui.application.ActionBarAdvisor#fillCoolBar(org.eclipse.jface.action.ICoolBarManager)
- */
- @Override
- protected void fillCoolBar(final ICoolBarManager coolBar) ...{
- coolBar.add(new ToolBarContributionItem(createSellTicketToolBar(coolBar
- } .getStyle()), TOOLBAR_SELL_TICKET));
- /**
- * Create sell ticket tool bar.
- *
- * @param style
- * the style
- * @return the tool bar menager
- */
- private IToolBarManager createSellTicketToolBar(final int style) ...{
- final IToolBarManager toolBar = new ToolBarManager(style);
- toolBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
- return toolBar;
- }
- ...
- }
2.扩展Action,指定toolbarPath位置为"tbSellTicket/groupMarker1",其中groupMarker1是分组,tbSellTicket可以有多个组。
xml 代码
- <action
- accelerator="F2"
- class="com.cepiao.netstar.client.ticket.actions.TicketAction"
- definitionId="netstar.client.ticket.actions.SellTicket"
- icon="icons/saleticket.gif"
- id="com.cepiao.netstar.client.ticket.TicketAction"
- label="售票(&S)"
- menubarPath="sellTicket/groupMarker1"
- style="push"
- toolbarPath="tbSellTicket/groupMarker1"
- tooltip="售票、售留票、改票">
- action>
java 代码
- /**
- * @(#)MyTicketAction.java 1.0 2007/07/25 20:36:43
- *
- */
- package com.cepiao.netstar.client.ticket.actions;
- import org.eclipse.jface.action.IAction;
- import org.eclipse.ui.IWorkbenchPage;
- import org.eclipse.ui.PlatformUI;
- import org.eclipse.ui.WorkbenchException;
- import org.eclipse.ui.actions.ActionDelegate;
- import com.cepiao.netstar.client.core.ui.ExceptionHandler;
- import com.cepiao.netstar.client.core.ui.TicketViewConstants;
- /**
- * Class MyTicketAction.
- *
- * @author Yawolf Chang
- * @version $Revision:1.0, $Date: 2007/07/25 20:36:43 $
- */
- public final class MyTicketAction extends ActionDelegate ...{
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.ui.actions.ActionDelegate#run(org.eclipse.jface.action.IAction)
- */
- @Override
- public void run(final IAction action) ...{
- final IWorkbenchPage page =
- PlatformUI.getWorkbench().getActiveWorkbenchWindow()
- .getActivePage();
- if (page == null) ...{
- return;
- }
- //打开视图
- try ...{
- page.showView(TicketViewConstants.TICKET_VIEW_ID);
- } catch (final WorkbenchException e) ...{
- ExceptionHandler.handle(e);
- }
- }
- }