package net.jeeeyul.eclipse.themes.ui.preference.actions;
import java.util.List;
import net.jeeeyul.eclipse.themes.ui.preference.internal.JTPreferencePage;
import net.jeeeyul.eclipse.themes.ui.preference.preset.IJTPreset;
import net.jeeeyul.eclipse.themes.ui.preference.preset.IJTPresetCategory;
import net.jeeeyul.eclipse.themes.ui.preference.preset.internal.ContributedPreset;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.action.ActionContributionItem;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.ui.actions.CompoundContributionItem;
/**
* Populate menu items that loads preset which are contributed by extension
* point in preference page.
*
* @author Jeeeyul
*
* @see ContributedPreset
* @see LoadPresetAction
*/
public class ContributedPresetItems extends CompoundContributionItem {
private JTPreferencePage page;
private IJTPresetCategory category;
/**
* creates
*
* @param page
* @param category
*
*/
public ContributedPresetItems(JTPreferencePage page, IJTPresetCategory category) {
this.page = page;
this.category = category;
}
@Override
protected IContributionItem[] getContributionItems() {
if (!Platform.isRunning()) {
return new IContributionItem[0];
}
List<IJTPreset> presets = category.getPresets();
IContributionItem[] result = new IContributionItem[presets.size()];
for (int i = 0; i < presets.size(); i++) {
LoadPresetAction action = new LoadPresetAction(page, presets.get(i));
result[i] = new ActionContributionItem(action);
}
return result;
}
}