From dc831de4dd811a07673937d0b076f656d1dd7da8 Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 14 Oct 2009 17:17:34 +0400 Subject: [PATCH] IDEADEV-40673: Artifacts: seems that Find usages action does nothing --- .../artifacts/ArtifactProjectStructureElement.java | 14 ++++++++++++-- .../artifacts/ArtifactsStructureConfigurableContext.java | 3 +++ .../ArtifactsStructureConfigurableContextImpl.java | 2 +- .../roots/ui/configuration/artifacts/UsageInArtifact.java | 9 ++++++--- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProjectStructureElement.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProjectStructureElement.java index 02cd94f775..9adc959065 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProjectStructureElement.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactProjectStructureElement.java @@ -24,6 +24,7 @@ import com.intellij.packaging.elements.CompositePackagingElement; import com.intellij.packaging.elements.PackagingElement; import com.intellij.packaging.impl.artifacts.ArtifactUtil; import com.intellij.packaging.impl.artifacts.PackagingElementProcessor; +import com.intellij.packaging.impl.elements.ArtifactPackagingElement; import com.intellij.packaging.impl.elements.LibraryPackagingElement; import com.intellij.packaging.impl.elements.ModuleOutputPackagingElement; import org.jetbrains.annotations.NotNull; @@ -39,10 +40,10 @@ public class ArtifactProjectStructureElement extends ProjectStructureElement { private final Artifact myOriginalArtifact; public ArtifactProjectStructureElement(StructureConfigurableContext context, - ArtifactsStructureConfigurableContext artifactsStructureContext, Artifact originalArtifact) { + ArtifactsStructureConfigurableContext artifactsStructureContext, Artifact artifact) { super(context); myArtifactsStructureContext = artifactsStructureContext; - myOriginalArtifact = originalArtifact; + myOriginalArtifact = artifactsStructureContext.getOriginalArtifact(artifact); } @Override @@ -70,6 +71,15 @@ public class ArtifactProjectStructureElement extends ProjectStructureElement { ArtifactProjectStructureElement.this, getPathFromRoot(parents, "/"), packagingElement)); } } + else if (packagingElement instanceof ArtifactPackagingElement) { + final Artifact usedArtifact = ((ArtifactPackagingElement)packagingElement).findArtifact(myArtifactsStructureContext); + if (usedArtifact != null) { + final ArtifactProjectStructureElement artifactElement = + new ArtifactProjectStructureElement(myContext, myArtifactsStructureContext, usedArtifact); + usages.add(new UsageInArtifact(myOriginalArtifact, myArtifactsStructureContext, artifactElement, + ArtifactProjectStructureElement.this, getPathFromRoot(parents, "/"), packagingElement)); + } + } return true; } }, myArtifactsStructureContext, false, artifact.getArtifactType()); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactsStructureConfigurableContext.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactsStructureConfigurableContext.java index 5dfe4c10a5..3096eb3b7b 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactsStructureConfigurableContext.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactsStructureConfigurableContext.java @@ -39,4 +39,7 @@ public interface ArtifactsStructureConfigurableContext extends PackagingElementR void editLayout(@NotNull Artifact artifact, Runnable action); ArtifactEditor getOrCreateEditor(Artifact artifact); + + @NotNull + Artifact getOriginalArtifact(@NotNull Artifact artifact); } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactsStructureConfigurableContextImpl.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactsStructureConfigurableContextImpl.java index 5f1a7344fc..46c61d1d8a 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactsStructureConfigurableContextImpl.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactsStructureConfigurableContextImpl.java @@ -63,7 +63,7 @@ class ArtifactsStructureConfigurableContextImpl implements ArtifactsStructureCon } @NotNull - private Artifact getOriginalArtifact(@NotNull Artifact artifact) { + public Artifact getOriginalArtifact(@NotNull Artifact artifact) { if (myModifiableModel != null) { return ((ArtifactModelImpl)myModifiableModel).getOriginalArtifact(artifact); } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/UsageInArtifact.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/UsageInArtifact.java index 69a16cabab..41c8b68c4f 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/UsageInArtifact.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/UsageInArtifact.java @@ -43,9 +43,12 @@ public class UsageInArtifact extends ProjectStructureElementUsage { @Override public void navigate() { final Artifact artifact = myContext.getArtifactModel().getArtifactByOriginal(myOriginalArtifact); - final ArtifactEditorEx artifactEditor = (ArtifactEditorEx)myContext.getOrCreateEditor(artifact); - artifactEditor.getLayoutTreeComponent().selectNode(myParentPath, myPackagingElement); - ProjectStructureConfigurable.getInstance(myContext.getProject()).select(myOriginalArtifact, true); + ProjectStructureConfigurable.getInstance(myContext.getProject()).select(myOriginalArtifact, true).doWhenDone(new Runnable() { + public void run() { + final ArtifactEditorEx artifactEditor = (ArtifactEditorEx)myContext.getOrCreateEditor(artifact); + artifactEditor.getLayoutTreeComponent().selectNode(myParentPath, myPackagingElement); + } + }); } @Override -- 2.11.4.GIT