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