package com.topsun.posclient.application; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.eclipse.jface.action.IContributionItem; import org.eclipse.swt.widgets.Composite; public abstract class ContributionItemsManager { protected Composite rootComposite; protected List<IContributionItem> items; public ContributionItemsManager(Composite rootComposite, String categroy) { this.rootComposite = rootComposite; IContributionItemService itemService = TopSunApplicationActivator.getContributionItemService(); items = new ArrayList<IContributionItem>(Arrays.asList(itemService.getItems(categroy))); } public IContributionItem[] getItems() { return items.toArray(new IContributionItem[items.size()]); } public IContributionItem getItem(String itemId) { int idx = getIndex(itemId); return idx == -1 ? null : items.get(idx); } public void removeItem(String itemId) { int idx = getIndex(itemId); if (idx != -1) { IContributionItem item = items.remove(idx); if (item != null) { item.dispose(); } } } public void addItem(IContributionItem item) { items.add(item); } public abstract void refresh(); private int getIndex(String itemId) { for (int i = 0; i < items.size(); i++) { if (itemId.equals(items.get(i).getId())) { return i; } } return -1; } }