//package de.ovgu.cide.editor;
//
//import java.util.List;
//
//import org.eclipse.core.runtime.CoreException;
//import org.eclipse.jface.action.IContributionItem;
//import org.eclipse.jface.action.MenuManager;
//
//import cide.gast.IASTNode;
//import cide.gparser.ParseException;
//import de.ovgu.cide.af.Alternative;
//import de.ovgu.cide.af.AlternativeFeatureManager;
//
///**
// * @author Malte Rosenthal
// */
//public class SwitchAlternativeSubmenu extends MenuManager implements IContributionItem {
//
// public SwitchAlternativeSubmenu(SelectionActionsContext context) {
// super("Switch to alternative");
//
// List<IASTNode> selectedNodes = context.getSelectedNodes();
// if ((selectedNodes == null) || (selectedNodes.size() != 1))
// return;
// IASTNode selectedNode = selectedNodes.get(0);
//
// AlternativeFeatureManager altFeatureManager;
// List<Alternative> alternatives;
// try {
// altFeatureManager = context.getSourceFile().getAltFeatureManager();
// alternatives = altFeatureManager.getAlternativesWithActiveParent(selectedNode.getId());
// } catch (CoreException e) {
// context.getEditorExtensions().markCoreException(e);
// return;
// } catch (ParseException e) {
// context.getEditorExtensions().markParseException(e);
// return;
// }
//
// // Wenn es nur eine Alternative gibt, muss sie inaktiv sein
// if ((alternatives != null) && ((alternatives.size() != 1) || !alternatives.get(0).isActive)) {
// for (Alternative alternative : alternatives) {
// this.add(new SwitchAlternativeAction(context, alternative, selectedNode));
// }
// }
// }
//}