simplify GTDUCollector a bit more
[idea/community.git] / java / idea-ui / src / com / intellij / openapi / roots / ui / configuration / projectRoot / daemon / SdkProjectStructureElement.java
1 package com.intellij.openapi.roots.ui.configuration.projectRoot.daemon;
2
3 import com.intellij.openapi.project.ProjectBundle;
4 import com.intellij.openapi.projectRoots.Sdk;
5 import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
6 import com.intellij.openapi.roots.ui.configuration.projectRoot.StructureConfigurableContext;
7 import org.jetbrains.annotations.Nls;
8
9 import java.util.Collections;
10 import java.util.List;
11
12 public class SdkProjectStructureElement extends ProjectStructureElement {
13   private final Sdk mySdk;
14
15   public SdkProjectStructureElement(StructureConfigurableContext context, Sdk sdk) {
16     super(context);
17     mySdk = getModifiableSdk(sdk);
18   }
19
20   private Sdk getModifiableSdk(Sdk sdk) {
21     Sdk modifiableSdk = ProjectStructureConfigurable.getInstance(myContext.getProject()).getProjectJdksModel().getProjectSdks().get(sdk);
22     return modifiableSdk != null? modifiableSdk : sdk;
23   }
24
25   public Sdk getSdk() {
26     return mySdk;
27   }
28
29   @Override
30   public void check(ProjectStructureProblemsHolder problemsHolder) {
31   }
32
33   @Override
34   public List<ProjectStructureElementUsage> getUsagesInElement() {
35     return Collections.emptyList();
36   }
37
38   @Override
39   public boolean equals(Object o) {
40     if (this == o) return true;
41     if (!(o instanceof SdkProjectStructureElement)) return false;
42     return mySdk.equals(((SdkProjectStructureElement)o).mySdk);
43
44   }
45
46   @Override
47   public int hashCode() {
48     return mySdk.hashCode();
49   }
50
51   @Override
52   public @Nls(capitalization = Nls.Capitalization.Sentence) String getPresentableName() {
53     return mySdk.getName();
54   }
55
56   @Override
57   public @Nls(capitalization = Nls.Capitalization.Sentence) String getTypeName() {
58     return ProjectBundle.message("sdk");
59   }
60
61   @Override
62   public String getId() {
63     return "sdk:" + mySdk.getName();
64   }
65 }