From f258c28b316fcebdcb0bfe786dcc594b4c49c76f Mon Sep 17 00:00:00 2001 From: nik Date: Thu, 15 Oct 2009 15:28:03 +0400 Subject: [PATCH] artifact editor ui fixes --- .../packaging/impl/ui/ArtifactElementPresentation.java | 5 +++++ .../artifacts/ArtifactEditorContextImpl.java | 3 +++ .../ui/configuration/artifacts/ArtifactEditorImpl.java | 2 +- .../actions/ArtifactEditorFindUsagesActionBase.java | 10 +++++++++- .../artifacts/actions/LayoutTreeFindUsagesAction.java | 5 +++-- .../artifacts/sourceItems/SourceItemsTree.java | 2 +- .../actions/SourceItemFindUsagesAction.java | 5 +++-- 7 files changed, 25 insertions(+), 7 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/ui/ArtifactElementPresentation.java b/java/compiler/impl/src/com/intellij/packaging/impl/ui/ArtifactElementPresentation.java index d97ab35ff206..2daa2a0b324a 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/ui/ArtifactElementPresentation.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/ui/ArtifactElementPresentation.java @@ -48,6 +48,11 @@ public class ArtifactElementPresentation extends TreeNodePresentation { return myArtifact != null; } + @Override + public Object getSourceObject() { + return myArtifact; + } + @Override public void navigateToSource() { myContext.selectArtifact(myArtifact); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorContextImpl.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorContextImpl.java index 199c3b5da0c6..b8c7328b1ac5 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorContextImpl.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorContextImpl.java @@ -170,4 +170,7 @@ public class ArtifactEditorContextImpl implements ArtifactEditorContext { return dialog.isOK() ? dialog.getChosenElements() : Collections.emptyList(); } + public ArtifactsStructureConfigurableContext getParent() { + return myParent; + } } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorImpl.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorImpl.java index afc6b9851c6c..bce35486722c 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorImpl.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/ArtifactEditorImpl.java @@ -289,7 +289,7 @@ public class ArtifactEditorImpl implements ArtifactEditorEx { popupActionGroup.add(Separator.getInstance()); popupActionGroup.add(new HideContentAction(this)); popupActionGroup.add(new LayoutTreeNavigateAction(myLayoutTreeComponent)); - popupActionGroup.add(new LayoutTreeFindUsagesAction(myLayoutTreeComponent, myProject)); + popupActionGroup.add(new LayoutTreeFindUsagesAction(myLayoutTreeComponent, myProject, myContext.getParent())); popupActionGroup.add(Separator.getInstance()); CommonActionsManager actionsManager = CommonActionsManager.getInstance(); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/ArtifactEditorFindUsagesActionBase.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/ArtifactEditorFindUsagesActionBase.java index 15f0f5784034..7b0efce581fd 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/ArtifactEditorFindUsagesActionBase.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/ArtifactEditorFindUsagesActionBase.java @@ -19,12 +19,15 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable; +import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactProjectStructureElement; +import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactsStructureConfigurableContext; import com.intellij.openapi.roots.ui.configuration.artifacts.nodes.ArtifactsTreeNode; import com.intellij.openapi.roots.ui.configuration.projectRoot.FindUsagesInProjectStructureActionBase; import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext; import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.LibraryProjectStructureElement; import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ModuleProjectStructureElement; import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureElement; +import com.intellij.packaging.artifacts.Artifact; import com.intellij.ui.awt.RelativePoint; import com.intellij.ui.treeStructure.Tree; import org.jetbrains.annotations.Nullable; @@ -36,10 +39,12 @@ import java.awt.*; */ public abstract class ArtifactEditorFindUsagesActionBase extends FindUsagesInProjectStructureActionBase { private Tree myTree; + private ArtifactsStructureConfigurableContext myArtifactContext; - public ArtifactEditorFindUsagesActionBase(Tree tree, Project project) { + public ArtifactEditorFindUsagesActionBase(Tree tree, Project project, ArtifactsStructureConfigurableContext artifactContext) { super(tree, project); myTree = tree; + myArtifactContext = artifactContext; } protected boolean isEnabled() { @@ -61,6 +66,9 @@ public abstract class ArtifactEditorFindUsagesActionBase extends FindUsagesInPro else if (sourceObject instanceof Library) { return new LibraryProjectStructureElement(context, (Library)sourceObject); } + else if (sourceObject instanceof Artifact) { + return new ArtifactProjectStructureElement(context, myArtifactContext, (Artifact)sourceObject); + } return null; } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/LayoutTreeFindUsagesAction.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/LayoutTreeFindUsagesAction.java index 69bda7cf1f41..c5f090e71426 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/LayoutTreeFindUsagesAction.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/actions/LayoutTreeFindUsagesAction.java @@ -16,6 +16,7 @@ package com.intellij.openapi.roots.ui.configuration.artifacts.actions; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactsStructureConfigurableContext; import com.intellij.openapi.roots.ui.configuration.artifacts.LayoutTreeComponent; import com.intellij.openapi.roots.ui.configuration.artifacts.nodes.ArtifactsTreeNode; import org.jetbrains.annotations.Nullable; @@ -26,8 +27,8 @@ import org.jetbrains.annotations.Nullable; public class LayoutTreeFindUsagesAction extends ArtifactEditorFindUsagesActionBase { private LayoutTreeComponent myLayoutTreeComponent; - public LayoutTreeFindUsagesAction(LayoutTreeComponent layoutTreeComponent, Project project) { - super(layoutTreeComponent.getLayoutTree(), project); + public LayoutTreeFindUsagesAction(LayoutTreeComponent layoutTreeComponent, Project project, ArtifactsStructureConfigurableContext artifactContext) { + super(layoutTreeComponent.getLayoutTree(), project, artifactContext); myLayoutTreeComponent = layoutTreeComponent; } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTree.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTree.java index 26b03850cf56..3fde58fc71b0 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTree.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/SourceItemsTree.java @@ -74,7 +74,7 @@ public class SourceItemsTree implements DnDSource, Disposable{ group.add(Separator.getInstance()); group.add(new SourceItemNavigateAction(this)); - group.add(new SourceItemFindUsagesAction(this, myArtifactsEditor.getContext().getProject())); + group.add(new SourceItemFindUsagesAction(this, myArtifactsEditor.getContext().getProject(), myArtifactsEditor.getContext().getParent())); DefaultTreeExpander expander = new DefaultTreeExpander(myTree); final CommonActionsManager commonActionsManager = CommonActionsManager.getInstance(); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/actions/SourceItemFindUsagesAction.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/actions/SourceItemFindUsagesAction.java index 0e911f585303..44ec77dc7da2 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/actions/SourceItemFindUsagesAction.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/artifacts/sourceItems/actions/SourceItemFindUsagesAction.java @@ -16,6 +16,7 @@ package com.intellij.openapi.roots.ui.configuration.artifacts.sourceItems.actions; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactsStructureConfigurableContext; import com.intellij.openapi.roots.ui.configuration.artifacts.actions.ArtifactEditorFindUsagesActionBase; import com.intellij.openapi.roots.ui.configuration.artifacts.nodes.ArtifactsTreeNode; import com.intellij.openapi.roots.ui.configuration.artifacts.sourceItems.SourceItemNode; @@ -29,8 +30,8 @@ import java.util.List; public class SourceItemFindUsagesAction extends ArtifactEditorFindUsagesActionBase { private final SourceItemsTree myTree; - public SourceItemFindUsagesAction(SourceItemsTree tree, Project project) { - super(tree.getTree(), project); + public SourceItemFindUsagesAction(SourceItemsTree tree, Project project, ArtifactsStructureConfigurableContext artifactContext) { + super(tree.getTree(), project, artifactContext); myTree = tree; }