diff --git a/platform/platform-api/src/com/intellij/ui/OptionalChooserComponent.java b/platform/platform-api/src/com/intellij/ui/OptionalChooserComponent.java index 520574581923..dbf4464ea373 100644 --- a/platform/platform-api/src/com/intellij/ui/OptionalChooserComponent.java +++ b/platform/platform-api/src/com/intellij/ui/OptionalChooserComponent.java @@ -73,6 +73,34 @@ public abstract class OptionalChooserComponent implements CheckBoxListListene return myList.getSelectedIndex(); } + public void setSelectedIndex(final int index) { + myList.setSelectedIndex(index); + } + + public boolean removeAt(final int index) { + getCurrentModel().remove(index); + refresh(); + + if (index < getCurrentModel().size()) { + setSelectedIndex(index); + return true; + } + else if (index > 0) { + setSelectedIndex(index - 1); + return true; + } + return false; + } + + public boolean removeSelected() { + final int selectedIndex = getSelectedIndex(); + // selected index + if (selectedIndex != -1) { + return removeAt(selectedIndex); + } + return false; + } + public boolean isModified() { return !myWorkingList.equals(myInitialList); }