From 95bd44d4190c9b42165f04e6e2b8778a7dcced0b Mon Sep 17 00:00:00 2001 From: Olesya Smirnova Date: Fri, 4 Mar 2005 19:43:56 +0300 Subject: [PATCH] http://www.jetbrains.net/jira/browse/IDEADEV-482 fixed --- .../com/intellij/cvsSupport2/CvsVcs2.java | 2 +- .../impl/java/SuperTypeGroup.java | 21 +++++++++++-------- .../smartTree/CachingChildrenTreeNode.java | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/plugins/cvs2/source/com/intellij/cvsSupport2/CvsVcs2.java b/plugins/cvs2/source/com/intellij/cvsSupport2/CvsVcs2.java index 509b66d5fcfd..fd1b4229454b 100644 --- a/plugins/cvs2/source/com/intellij/cvsSupport2/CvsVcs2.java +++ b/plugins/cvs2/source/com/intellij/cvsSupport2/CvsVcs2.java @@ -50,7 +50,7 @@ public class CvsVcs2 extends AbstractVcs implements ProjectComponent, private Cvs2Configurable myConfigurable; - + private CvsStorageComponent myStorageComponent = CvsStorageComponent.ABSENT_STORAGE; private MyFileStatusProvider myFileStatusProvider = new MyFileStatusProvider(); private final CvsHistoryProvider myCvsHistoryProvider; diff --git a/source/com/intellij/ide/structureView/impl/java/SuperTypeGroup.java b/source/com/intellij/ide/structureView/impl/java/SuperTypeGroup.java index 0bc3a9267a76..05141932d39c 100644 --- a/source/com/intellij/ide/structureView/impl/java/SuperTypeGroup.java +++ b/source/com/intellij/ide/structureView/impl/java/SuperTypeGroup.java @@ -5,22 +5,21 @@ import com.intellij.ide.util.treeView.smartTree.TreeElement; import com.intellij.navigation.ItemPresentation; import com.intellij.openapi.editor.colors.TextAttributesKey; import com.intellij.openapi.util.IconLoader; -import com.intellij.psi.PsiClass; -import com.intellij.psi.PsiMethod; +import com.intellij.psi.*; import com.intellij.psi.util.PsiUtil; import javax.swing.*; import java.lang.ref.WeakReference; public class SuperTypeGroup implements Group, ItemPresentation, AccessLevelProvider{ - private final PsiClass mySuperClass; + private final SmartPsiElementPointer mySuperClassPointer; private final boolean myOverrides; private static final Icon OVERRIDING_ICON = IconLoader.getIcon("/general/overridingMethod.png"); private static final Icon IMLLEMENTING_ICON = IconLoader.getIcon("/general/implementingMethod.png"); public SuperTypeGroup(PsiClass superClass, boolean overrides) { myOverrides = overrides; - mySuperClass = superClass; + mySuperClassPointer = SmartPointerManager.getInstance(superClass.getProject()).createSmartPsiElementPointer(superClass); } public boolean contains(TreeElement o) { @@ -31,7 +30,7 @@ public class SuperTypeGroup implements Group, ItemPresentation, AccessLevelProvi PsiMethod superMethod = ref.get(); if (superMethod == null) return false; PsiClass superClass = superMethod.getContainingClass(); - if (!superClass.equals(mySuperClass)) return false; + if (!superClass.equals(getSuperClass())) return false; boolean overrides = SuperTypesGrouper.methodOverridesSuper(method, superMethod); if (overrides != myOverrides) return false; method.putUserData(SuperTypesGrouper.SUPER_METHOD_KEY, null); @@ -43,6 +42,10 @@ public class SuperTypeGroup implements Group, ItemPresentation, AccessLevelProvi } + private PsiClass getSuperClass() { + return (PsiClass)mySuperClassPointer.getElement(); + } + public ItemPresentation getPresentation() { return this; } @@ -64,7 +67,7 @@ public class SuperTypeGroup implements Group, ItemPresentation, AccessLevelProvi } public String toString() { - return mySuperClass.getName(); + return getSuperClass().getName(); } public boolean equals(Object o) { @@ -74,14 +77,14 @@ public class SuperTypeGroup implements Group, ItemPresentation, AccessLevelProvi final SuperTypeGroup superTypeGroup = (SuperTypeGroup)o; if (myOverrides != superTypeGroup.myOverrides) return false; - if (mySuperClass != null ? !mySuperClass.equals(superTypeGroup.mySuperClass) : superTypeGroup.mySuperClass != null) return false; + if (getSuperClass() != null ? !getSuperClass() .equals(superTypeGroup.getSuperClass() ) : superTypeGroup.getSuperClass() != null) return false; return true; } public int hashCode() { int result; - result = (mySuperClass != null ? mySuperClass.hashCode() : 0); + result = (getSuperClass() != null ? getSuperClass() .hashCode() : 0); result = 29 * result + (myOverrides ? 1 : 0); return result; } @@ -91,7 +94,7 @@ public class SuperTypeGroup implements Group, ItemPresentation, AccessLevelProvi } public int getAccessLevel() { - return PsiUtil.getAccessLevel(mySuperClass.getModifierList()); + return PsiUtil.getAccessLevel(getSuperClass() .getModifierList()); } public int getSubLevel() { diff --git a/source/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java b/source/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java index d83590cbb666..400dae8ec58c 100644 --- a/source/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java +++ b/source/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java @@ -190,7 +190,7 @@ public abstract class CachingChildrenTreeNode extends AbstractTreeNode