package jetbrains.mps.lang.editor.menus.extras.runtime; /*Generated by MPS */ import jetbrains.mps.lang.editor.menus.MenuPart; import jetbrains.mps.openapi.editor.menus.transformation.TransformationMenuItem; import jetbrains.mps.openapi.editor.menus.transformation.TransformationMenuContext; import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Collection; import jetbrains.mps.openapi.intentions.IntentionExecutable; import jetbrains.mps.intentions.IntentionsManager; import java.util.ArrayList; import org.jetbrains.annotations.Nullable; import jetbrains.mps.openapi.editor.menus.transformation.ActionItemBase; /** * * @deprecated since MPS 2017.2 use AbstractIntentionMenuPart */ @Deprecated public abstract class IntentionMenuPartBase implements MenuPart<TransformationMenuItem, TransformationMenuContext> { private final String myIntentionId; @Deprecated public IntentionMenuPartBase(String intentionId) { myIntentionId = intentionId; } @NotNull public List<TransformationMenuItem> createItems(TransformationMenuContext context) { Collection<IntentionExecutable> executables = IntentionsManager.getInstance().getIntentionsById(context.getNode(), context.getEditorContext(), myIntentionId); List<TransformationMenuItem> result = new ArrayList<TransformationMenuItem>(); for (IntentionExecutable executable : executables) { if (executable instanceof jetbrains.mps.intentions.IntentionExecutable) { TransformationMenuItem item = createItem(context, (jetbrains.mps.intentions.IntentionExecutable) executable); if (item != null) { result.add(item); } } } return result; } @Nullable protected abstract TransformationMenuItem createItem(@NotNull TransformationMenuContext context, @NotNull jetbrains.mps.intentions.IntentionExecutable executable); protected static class ItemBase extends ActionItemBase { protected final TransformationMenuContext _context; protected final jetbrains.mps.intentions.IntentionExecutable myExecutable; protected ItemBase(TransformationMenuContext context, jetbrains.mps.intentions.IntentionExecutable executable) { _context = context; myExecutable = executable; } @Nullable @Override public String getLabelText(@NotNull String pattern) { return myExecutable.getDescription(_context.getNode(), _context.getEditorContext()); } @Override public void execute(@NotNull String pattern) { myExecutable.execute(_context.getNode(), _context.getEditorContext()); } } }