cleanup: remove useless '@author nik' from javadoc comments
[idea/community.git] / java / compiler / impl / src / com / intellij / packaging / impl / ui / ModuleElementPresentation.java
index 078922fe184c81059c90e6630cba3845857e31c9..26b9778cd1416dc885056d4a806e6195aa3eb21f 100644 (file)
 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.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.packaging.ui.ArtifactEditorContext;
 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 ModulePointer myModulePointer;
   private final ArtifactEditorContext myContext;
-  private final Module myModule;
+  private final ModuleElementTypeBase myElementType;
 
-  public ModuleElementPresentation(@NotNull String name, @Nullable Module module, ArtifactEditorContext context) {
-    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() {
-    myContext.selectModule(myModule);
+    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