package jetbrains.mps.lang.typesystem.devkit.pluginSolution.plugin;
/*Generated by MPS */
import jetbrains.mps.workbench.action.BaseAction;
import javax.swing.Icon;
import org.jetbrains.mps.openapi.model.SNodeReference;
import org.jetbrains.annotations.NotNull;
import com.intellij.openapi.actionSystem.AnActionEvent;
import java.util.Map;
import jetbrains.mps.project.MPSProject;
import jetbrains.mps.ide.actions.MPSCommonDataKeys;
import jetbrains.mps.internal.collections.runtime.MapSequence;
import jetbrains.mps.openapi.navigation.EditorNavigator;
public class GoToTypeErrorRule_InGroup_Action extends BaseAction {
private static final Icon ICON = null;
private SNodeReference errorId;
private boolean immediate;
public GoToTypeErrorRule_InGroup_Action(SNodeReference errorId_par, boolean immediate_par) {
super("Go to Rule Which Caused Error", "", ICON);
this.errorId = errorId_par;
this.immediate = immediate_par;
this.setIsAlwaysVisible(true);
this.setExecuteOutsideCommand(false);
}
@Override
public boolean isDumbAware() {
return true;
}
@Override
public void doUpdate(@NotNull AnActionEvent event, final Map<String, Object> _params) {
String text = (GoToTypeErrorRule_InGroup_Action.this.immediate ? "Go To Immediate Rule" : "Go To Rule " + GoToTypeErrorRule_InGroup_Action.this.errorId.getNodeId());
event.getPresentation().setText(text);
}
@Override
protected boolean collectActionData(AnActionEvent event, final Map<String, Object> _params) {
if (!(super.collectActionData(event, _params))) {
return false;
}
{
MPSProject p = event.getData(MPSCommonDataKeys.MPS_PROJECT);
MapSequence.fromMap(_params).put("project", p);
if (p == null) {
return false;
}
}
return true;
}
@Override
public void doExecute(@NotNull final AnActionEvent event, final Map<String, Object> _params) {
new EditorNavigator(((MPSProject) MapSequence.fromMap(_params).get("project"))).shallSelect(true).open(GoToTypeErrorRule_InGroup_Action.this.errorId);
}
@NotNull
public String getActionId() {
StringBuilder res = new StringBuilder();
res.append(super.getActionId());
res.append("#");
res.append(errorId_State((SNodeReference) this.errorId));
res.append("!");
res.append(((Object) this.immediate).toString());
res.append("!");
return res.toString();
}
public static String errorId_State(SNodeReference object) {
return object.toString();
}
}