cleanup: remove useless '@author nik' from javadoc comments
[idea/community.git] / java / compiler / impl / src / com / intellij / packaging / impl / ui / ModuleElementPresentation.java
index b11f1eaca87ed6793be77eacc51fa8932e4a8a28..26b9778cd1416dc885056d4a806e6195aa3eb21f 100644 (file)
@@ -1,57 +1,94 @@
+/*
+ * Copyright 2000-2009 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package com.intellij.packaging.impl.ui;
 
 import com.intellij.ide.projectView.PresentationData;
-import com.intellij.openapi.compiler.CompilerBundle;
+import com.intellij.openapi.module.ModifiableModuleModel;
 import com.intellij.openapi.module.Module;
-import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
+import com.intellij.openapi.module.ModulePointer;
+import com.intellij.packaging.impl.elements.ModuleElementTypeBase;
+import com.intellij.packaging.ui.ArtifactEditorContext;
 import com.intellij.packaging.ui.PackagingElementWeights;
 import com.intellij.packaging.ui.TreeNodePresentation;
 import com.intellij.ui.SimpleTextAttributes;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-/**
- * @author nik
- */
 public class ModuleElementPresentation extends TreeNodePresentation {
-  private final String myName;
-  private final Module myModule;
+  private final ModulePointer myModulePointer;
+  private final ArtifactEditorContext myContext;
+  private final ModuleElementTypeBase myElementType;
 
-  public ModuleElementPresentation(@NotNull String name, @Nullable Module module) {
-    myModule = module;
-    myName = name;
+  public ModuleElementPresentation(@Nullable ModulePointer modulePointer,
+                                   @NotNull ArtifactEditorContext context,
+                                   @NotNull ModuleElementTypeBase elementType) {
+    myModulePointer = modulePointer;
+    myContext = context;
+    myElementType = elementType;
   }
 
+  @Override
   public String getPresentableName() {
-    return myName;
+    return myModulePointer != null ? myModulePointer.getModuleName() : "<unknown>";
   }
 
   @Override
   public boolean canNavigateToSource() {
-    return myModule != null;
+    return findModule() != null;
   }
 
-  @Override
-  public Object getSourceObject() {
-    return myModule;
+  @Nullable
+  private Module findModule() {
+    return myModulePointer != null ? myModulePointer.getModule() : null;
   }
 
   @Override
   public void navigateToSource() {
-    ProjectStructureConfigurable.getInstance(myModule.getProject()).select(myModule.getName(), null, true);
+    final Module module = findModule();
+    if (module != null) {
+      myContext.selectModule(module);
+    }
   }
 
-  public void render(@NotNull PresentationData presentationData, SimpleTextAttributes mainAttributes, SimpleTextAttributes commentAttributes) {
-    if (myModule != null) {
-      presentationData.setOpenIcon(myModule.getModuleType().getNodeIcon(true));
-      presentationData.setClosedIcon(myModule.getModuleType().getNodeIcon(false));
+  @Override
+  public void render(@NotNull PresentationData presentationData,
+                     SimpleTextAttributes mainAttributes,
+                     SimpleTextAttributes commentAttributes) {
+    final Module module = findModule();
+    presentationData.setIcon(myElementType.getElementIcon(module));
+
+    String moduleName;
+    if (module != null) {
+      ModifiableModuleModel moduleModel = myContext.getModifiableModuleModel();
+      if (moduleModel != null) {
+        moduleName = moduleModel.getActualName(module);
+      }
+      else {
+        moduleName = module.getName();
+      }
+    }
+    else if (myModulePointer != null) {
+      moduleName = myModulePointer.getModuleName();
+    }
+    else {
+      moduleName = "<unknown>";
     }
-    presentationData.addText(getNodeText(),
-                             myModule != null ? mainAttributes : SimpleTextAttributes.ERROR_ATTRIBUTES);
-  }
 
-  protected String getNodeText() {
-    return CompilerBundle.message("node.text.0.compile.output", myName);
+    String text = myElementType.getElementText(moduleName);
+    presentationData.addText(text, module != null ? mainAttributes : SimpleTextAttributes.ERROR_ATTRIBUTES);
   }
 
   @Override