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