1 package com
.intellij
.openapi
.roots
.ui
.configuration
.projectRoot
.daemon
;
3 import com
.intellij
.openapi
.module
.Module
;
4 import com
.intellij
.openapi
.roots
.ModuleRootModel
;
5 import com
.intellij
.openapi
.roots
.OrderEntry
;
6 import com
.intellij
.openapi
.roots
.impl
.OrderEntryUtil
;
7 import com
.intellij
.openapi
.roots
.ui
.configuration
.ModulesConfigurator
;
8 import com
.intellij
.openapi
.roots
.ui
.configuration
.projectRoot
.ModuleStructureConfigurable
;
9 import com
.intellij
.openapi
.roots
.ui
.configuration
.projectRoot
.StructureConfigurableContext
;
10 import org
.jetbrains
.annotations
.NotNull
;
17 public class UsageInModuleClasspath
extends ProjectStructureElementUsage
{
18 private final StructureConfigurableContext myContext
;
19 private final ModuleProjectStructureElement myContainingElement
;
20 private ProjectStructureElement mySourceElement
;
21 private Module myModule
;
23 public UsageInModuleClasspath(@NotNull StructureConfigurableContext context
, @NotNull ModuleProjectStructureElement containingElement
, ProjectStructureElement sourceElement
) {
25 myContainingElement
= containingElement
;
26 myModule
= containingElement
.getModule();
27 mySourceElement
= sourceElement
;
32 public ProjectStructureElement
getSourceElement() {
33 return mySourceElement
;
37 public ProjectStructureElement
getContainingElement() {
38 return myContainingElement
;
42 public String
getPresentableName() {
43 return myModule
.getName();
46 public String
getModuleName() {
47 return myModule
.getName();
51 public void navigate() {
52 ModulesConfigurator modulesConfigurator
= myContext
.getModulesConfigurator();
54 ModuleRootModel rootModel
= modulesConfigurator
.getRootModel(myModule
);
56 if (mySourceElement
instanceof LibraryProjectStructureElement
) {
57 entry
= OrderEntryUtil
.findLibraryOrderEntry(rootModel
, ((LibraryProjectStructureElement
)mySourceElement
).getLibrary());
59 else if (mySourceElement
instanceof ModuleProjectStructureElement
) {
60 entry
= OrderEntryUtil
.findModuleOrderEntry(rootModel
, ((ModuleProjectStructureElement
)mySourceElement
).getModule());
62 else if (mySourceElement
instanceof SdkProjectStructureElement
) {
63 entry
= OrderEntryUtil
.findJdkOrderEntry(rootModel
, ((SdkProjectStructureElement
)mySourceElement
).getSdk());
68 ModuleStructureConfigurable
.getInstance(myContext
.getProject()).selectOrderEntry(myModule
, entry
);
72 public int hashCode() {
73 return myModule
.hashCode()*31 + mySourceElement
.hashCode();
77 public boolean equals(Object obj
) {
78 return obj
instanceof UsageInModuleClasspath
&& myModule
.equals(((UsageInModuleClasspath
)obj
).myModule
)
79 && mySourceElement
.equals(((UsageInModuleClasspath
)obj
).mySourceElement
);
83 public Icon
getIcon() {
84 return myModule
.getModuleType().getNodeIcon(false);