package jetbrains.mps.workbench.dialogs.project.components.parts.actions;
/*Generated by MPS */
import javax.swing.JList;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.actionSystem.AnActionEvent;
public abstract class ListRemoveAction extends BaseValidatedAction {
private JList myList;
public ListRemoveAction(JList list) {
super("Remove", "Remove", AllIcons.General.Remove);
myList = list;
}
@Override
public void update(AnActionEvent e) {
super.update(e);
e.getPresentation().setEnabled(myList.getSelectedIndices().length != 0);
}
@Override
public final void doPerform(AnActionEvent e) {
int index = myList.getSelectedIndex();
for (int i : myList.getSelectedIndices()) {
if (i < index) {
index = i;
}
}
doRemove(e);
int listSize = myList.getModel().getSize();
if (index >= listSize) {
index--;
} else
if (index < 0 && listSize > 0) {
index = 0;
}
if (index > -1) {
myList.setSelectedIndex(index);
}
}
protected abstract void doRemove(AnActionEvent e);
}