diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPane.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPane.java index 051f42c3ebe9..67fc45cc4613 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPane.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/AbstractProjectViewPane.java @@ -438,7 +438,7 @@ public abstract class AbstractProjectViewPane implements DataProvider, Disposabl String subId = subPane.getAttributeValue(ATTRIBUTE_SUBID); TreeState treeState = new TreeState(); treeState.readExternal(subPane); - myReadTreeState.put(subId, treeState); + if (!treeState.isEmpty()) myReadTreeState.put(subId, treeState); } } @@ -458,15 +458,13 @@ public abstract class AbstractProjectViewPane implements DataProvider, Disposabl protected void saveExpandedPaths() { if (myTree != null) { TreeState treeState = TreeState.createOn(myTree); - myReadTreeState.put(getSubId(), treeState); + if (!treeState.isEmpty()) myReadTreeState.put(getSubId(), treeState); } } public final void restoreExpandedPaths(){ TreeState treeState = myReadTreeState.get(getSubId()); - if (treeState != null) { - treeState.applyTo(myTree); - } + if (treeState != null && !treeState.isEmpty()) treeState.applyTo(myTree); } public void installComparator() { diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/TreeState.java b/platform/platform-api/src/com/intellij/ide/util/treeView/TreeState.java index 597f0311144c..538916f6aefd 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/TreeState.java +++ b/platform/platform-api/src/com/intellij/ide/util/treeView/TreeState.java @@ -110,6 +110,10 @@ public class TreeState implements JDOMExternalizable { this(new ArrayList>(), new ArrayList>()); } + public boolean isEmpty() { + return myExpandedPaths.isEmpty() && mySelectedPaths.isEmpty(); + } + @Override public void readExternal(Element element) throws InvalidDataException { readExternal(element, myExpandedPaths, PATH);