package jetbrains.mps.vcs.diff.ui; /*Generated by MPS */ import jetbrains.mps.workbench.action.BaseAction; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.actionSystem.AnActionEvent; import java.util.Map; import jetbrains.mps.vcs.diff.changes.ModelChange; import jetbrains.mps.internal.collections.runtime.Sequence; public abstract class RevertRootsAction extends BaseAction implements DumbAware { private String myRevertTitle; public RevertRootsAction(String revertTitle) { super("Revert " + revertTitle, null, IconLoader.getIcon("/actions/rollback.png")); myRevertTitle = revertTitle; } @Override protected void doExecute(AnActionEvent event, Map<String, Object> map) { ModelChange.rollbackChanges(getChanges()); after(); } @Override protected void doUpdate(AnActionEvent event, Map<String, Object> map) { super.doUpdate(event, map); boolean enabled = Sequence.fromIterable(getChanges()).isNotEmpty(); event.getPresentation().setEnabled(enabled); event.getPresentation().setVisible(enabled); event.getPresentation().setText("Revert " + getRevertTitle()); } protected abstract void after(); protected abstract Iterable<ModelChange> getChanges(); protected String getRevertTitle() { return myRevertTitle; } }