compiler-impl
[idea/community.git] / java / compiler / impl / src / com / intellij / packaging / impl / ui / ModuleElementPresentation.java
1 package com.intellij.packaging.impl.ui;
2
3 import com.intellij.ide.projectView.PresentationData;
4 import com.intellij.openapi.compiler.CompilerBundle;
5 import com.intellij.openapi.module.Module;
6 import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
7 import com.intellij.packaging.ui.PackagingElementWeights;
8 import com.intellij.packaging.ui.TreeNodePresentation;
9 import com.intellij.ui.SimpleTextAttributes;
10 import org.jetbrains.annotations.NotNull;
11 import org.jetbrains.annotations.Nullable;
12
13 /**
14  * @author nik
15  */
16 public class ModuleElementPresentation extends TreeNodePresentation {
17   private final String myName;
18   private final Module myModule;
19
20   public ModuleElementPresentation(@NotNull String name, @Nullable Module module) {
21     myModule = module;
22     myName = name;
23   }
24
25   public String getPresentableName() {
26     return myName;
27   }
28
29   @Override
30   public boolean canNavigateToSource() {
31     return myModule != null;
32   }
33
34   @Override
35   public Object getSourceObject() {
36     return myModule;
37   }
38
39   @Override
40   public void navigateToSource() {
41     ProjectStructureConfigurable.getInstance(myModule.getProject()).select(myModule.getName(), null, true);
42   }
43
44   public void render(@NotNull PresentationData presentationData, SimpleTextAttributes mainAttributes, SimpleTextAttributes commentAttributes) {
45     if (myModule != null) {
46       presentationData.setOpenIcon(myModule.getModuleType().getNodeIcon(true));
47       presentationData.setClosedIcon(myModule.getModuleType().getNodeIcon(false));
48     }
49     presentationData.addText(getNodeText(),
50                              myModule != null ? mainAttributes : SimpleTextAttributes.ERROR_ATTRIBUTES);
51   }
52
53   protected String getNodeText() {
54     return CompilerBundle.message("node.text.0.compile.output", myName);
55   }
56
57   @Override
58   public int getWeight() {
59     return PackagingElementWeights.MODULE;
60   }
61 }