summaryrefslogtreecommitdiff
path: root/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.java')
-rw-r--r--platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.java42
1 files changed, 22 insertions, 20 deletions
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.java
index 82b676a8834d..6edfbb96c848 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/IgnoredSettingsPanel.java
@@ -27,7 +27,8 @@ import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.vcs.VcsBundle;
-import com.intellij.openapi.vcs.changes.ChangeListManager;
+import com.intellij.openapi.vcs.changes.ChangeListManagerImpl;
+import com.intellij.openapi.vcs.changes.IgnoreSettingsType;
import com.intellij.openapi.vcs.changes.IgnoredFileBean;
import com.intellij.ui.*;
import com.intellij.ui.components.JBList;
@@ -37,13 +38,16 @@ import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.awt.*;
+import java.util.HashSet;
+import java.util.Set;
public class IgnoredSettingsPanel implements SearchableConfigurable, Configurable.NoScroll {
private JBList myList;
private JPanel myPanel;
private final Project myProject;
private DefaultListModel myModel;
- private final ChangeListManager myChangeListManager;
+ private final ChangeListManagerImpl myChangeListManager;
+ private final Set<String> myDirectoriesManuallyRemovedFromIgnored = new HashSet<String>();
public IgnoredSettingsPanel(Project project) {
myList = new JBList();
@@ -51,7 +55,7 @@ public class IgnoredSettingsPanel implements SearchableConfigurable, Configurabl
myList.getEmptyText().setText(VcsBundle.message("no.ignored.files"));
myProject = project;
- myChangeListManager = ChangeListManager.getInstance(myProject);
+ myChangeListManager = ChangeListManagerImpl.getInstanceImpl(myProject);
}
private void setItems(final IgnoredFileBean[] filesToIgnore) {
@@ -97,32 +101,30 @@ public class IgnoredSettingsPanel implements SearchableConfigurable, Configurabl
}
private void deleteItems() {
- boolean contigiousSelection = true;
- int minSelectionIndex = myList.getSelectionModel().getMinSelectionIndex();
- int maxSelectionIndex = myList.getSelectionModel().getMaxSelectionIndex();
- for (int i = minSelectionIndex; i <= maxSelectionIndex; i++) {
- if (!myList.getSelectionModel().isSelectedIndex(i)) {
- contigiousSelection = false;
- break;
- }
- }
- if (contigiousSelection) {
- myModel.removeRange(minSelectionIndex, maxSelectionIndex);
- }
- else {
- final Object[] selection = myList.getSelectedValues();
- for (Object item : selection) {
- myModel.removeElement(item);
+ for (Object o : myList.getSelectedValues()) {
+ IgnoredFileBean bean = (IgnoredFileBean)o;
+ if (bean.getType() == IgnoreSettingsType.UNDER_DIR) {
+ myDirectoriesManuallyRemovedFromIgnored.add(bean.getPath());
}
}
+ ListUtil.removeSelectedItems(myList);
}
public void reset() {
setItems(myChangeListManager.getFilesToIgnore());
+ myDirectoriesManuallyRemovedFromIgnored.clear();
+ myDirectoriesManuallyRemovedFromIgnored.addAll(myChangeListManager.getIgnoredFilesComponent().getDirectoriesManuallyRemovedFromIgnored());
}
public void apply() {
- myChangeListManager.setFilesToIgnore(getItems());
+ IgnoredFileBean[] toIgnore = getItems();
+ myChangeListManager.setFilesToIgnore(toIgnore);
+ for (IgnoredFileBean bean : toIgnore) {
+ if (bean.getType() == IgnoreSettingsType.UNDER_DIR) {
+ myDirectoriesManuallyRemovedFromIgnored.remove(bean.getPath());
+ }
+ }
+ myChangeListManager.getIgnoredFilesComponent().setDirectoriesManuallyRemovedFromIgnored(myDirectoriesManuallyRemovedFromIgnored);
}
public boolean isModified() {