/** * */ package com.topsun.posclient.application; import org.eclipse.jface.action.IContributionItem; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.CoolBar; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; public class ToolBarManager extends ContributionItemsManager { private CoolBar coolBar; private ToolBar toolBar; public ToolBarManager(Composite rootComposite, String categroy) { super(rootComposite, categroy); this.coolBar = (CoolBar) rootComposite; Control[] tabList = this.coolBar.getTabList(); for (Control tab : tabList) { if (tab instanceof ToolBar) { this.toolBar = (ToolBar) tab; break; } } } @Override public void refresh() { ToolItem[] toolItems = toolBar.getItems(); for (ToolItem toolItem : toolItems) { if (toolItem != null && !toolItem.isDisposed()) { toolItem.dispose(); } } for (int i = 0; i < items.size(); i++) { IContributionItem item = items.get(i); item.dispose(); } int idxToUse = 0; for (int i = 0; i < items.size(); i++) { IContributionItem item = items.get(i); if (item.isVisible()) { item.fill(toolBar, idxToUse++); } } toolBar.layout(true); coolBar.layout(true); } public void layout() { toolBar.layout(true); coolBar.layout(true); } public void redraw() { toolBar.redraw(); coolBar.redraw(); } }