package jetbrains.mps.lang.editor.menus.extras.runtime; /*Generated by MPS */ import jetbrains.mps.openapi.editor.menus.transformation.ActionItemBase; import jetbrains.mps.openapi.editor.menus.transformation.TransformationMenuContext; import com.intellij.openapi.actionSystem.AnAction; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.NotNull; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.ide.DataManager; import java.awt.Component; import com.intellij.openapi.actionSystem.ActionPlaces; import com.intellij.openapi.actionSystem.ActionManager; public class PluginActionMenuItemBase extends ActionItemBase { protected final TransformationMenuContext _context; protected final AnAction myAction; public PluginActionMenuItemBase(TransformationMenuContext context, AnAction action) { _context = context; myAction = action; } @Nullable @Override public String getLabelText(String pattern) { return myAction.getTemplatePresentation().getText(); } @Override public boolean canExecute(@NotNull String pattern) { myAction.update(createAnActionEventWithTemplatePresentation()); return myAction.getTemplatePresentation().isEnabled(); } @Override public void execute(@NotNull String pattern) { myAction.actionPerformed(createAnActionEventWithTemplatePresentation()); } private AnActionEvent createAnActionEventWithTemplatePresentation() { DataContext dataContext = DataManager.getInstance().getDataContext((Component) _context.getEditorContext().getEditorComponent()); return new AnActionEvent(null, dataContext, ActionPlaces.UNKNOWN, myAction.getTemplatePresentation(), ActionManager.getInstance(), 0); } }