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;
}
}