update copyright
[idea/community.git] / java / compiler / impl / src / com / intellij / packaging / impl / ui / ModuleElementPresentation.java
1 /*
2  * Copyright 2000-2009 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.packaging.impl.ui;
17
18 import com.intellij.ide.projectView.PresentationData;
19 import com.intellij.openapi.compiler.CompilerBundle;
20 import com.intellij.openapi.module.Module;
21 import com.intellij.packaging.ui.PackagingElementWeights;
22 import com.intellij.packaging.ui.TreeNodePresentation;
23 import com.intellij.packaging.ui.ArtifactEditorContext;
24 import com.intellij.ui.SimpleTextAttributes;
25 import org.jetbrains.annotations.NotNull;
26 import org.jetbrains.annotations.Nullable;
27
28 /**
29  * @author nik
30  */
31 public class ModuleElementPresentation extends TreeNodePresentation {
32   private final String myName;
33   private final ArtifactEditorContext myContext;
34   private final Module myModule;
35
36   public ModuleElementPresentation(@NotNull String name, @Nullable Module module, ArtifactEditorContext context) {
37     myModule = module;
38     myName = name;
39     myContext = context;
40   }
41
42   public String getPresentableName() {
43     return myName;
44   }
45
46   @Override
47   public boolean canNavigateToSource() {
48     return myModule != null;
49   }
50
51   @Override
52   public Object getSourceObject() {
53     return myModule;
54   }
55
56   @Override
57   public void navigateToSource() {
58     myContext.selectModule(myModule);
59   }
60
61   public void render(@NotNull PresentationData presentationData, SimpleTextAttributes mainAttributes, SimpleTextAttributes commentAttributes) {
62     if (myModule != null) {
63       presentationData.setOpenIcon(myModule.getModuleType().getNodeIcon(true));
64       presentationData.setClosedIcon(myModule.getModuleType().getNodeIcon(false));
65     }
66     presentationData.addText(getNodeText(),
67                              myModule != null ? mainAttributes : SimpleTextAttributes.ERROR_ATTRIBUTES);
68   }
69
70   protected String getNodeText() {
71     return CompilerBundle.message("node.text.0.compile.output", myName);
72   }
73
74   @Override
75   public int getWeight() {
76     return PackagingElementWeights.MODULE;
77   }
78 }