project view: show path and source/test root annotations without parentheses
authorSergey Ignatov <sergey.ignatov@jetbrains.com>
Tue, 27 Oct 2015 20:02:59 +0000 (23:02 +0300)
committerSergey Ignatov <sergey.ignatov@jetbrains.com>
Wed, 28 Oct 2015 09:02:39 +0000 (12:02 +0300)
platform/lang-impl/src/com/intellij/ide/projectView/impl/nodes/PsiDirectoryNode.java
platform/platform-api/src/com/intellij/ide/util/treeView/NodeRenderer.java
platform/structure-view-api/src/com/intellij/ide/projectView/PresentationData.java

index 6b10cb6446de7ef9cc9746bdf70e2f617541032b..dc2288b0ed81f99c159eac6215fcdfbfeebaafe5 100644 (file)
@@ -50,10 +50,7 @@ import com.intellij.psi.impl.file.PsiDirectoryFactory;
 import com.intellij.ui.LayeredIcon;
 import com.intellij.ui.RowIcon;
 import com.intellij.ui.SimpleTextAttributes;
-import com.intellij.util.IconUtil;
-import com.intellij.util.PathUtil;
-import com.intellij.util.PlatformIcons;
-import com.intellij.util.PlatformUtils;
+import com.intellij.util.*;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
@@ -88,7 +85,7 @@ public class PsiDirectoryNode extends BasePsiNode<PsiDirectory> implements Navig
 
       data.setPresentableText(directoryFile.getName());
       if (module != null) {
-        if (!(parentValue instanceof Module )) {
+        if (!(parentValue instanceof Module)) {
           if (!shouldShowModuleName()) {
             data.addText(directoryFile.getName() + " ", SimpleTextAttributes.REGULAR_ATTRIBUTES);
           }
@@ -106,7 +103,7 @@ public class PsiDirectoryNode extends BasePsiNode<PsiDirectory> implements Navig
 
         if (parentValue instanceof Module || parentValue instanceof Project) {
           final String location = FileUtil.getLocationRelativeToUserHome(directoryFile.getPresentableUrl());
-          data.addText(" (" + location + ")", SimpleTextAttributes.GRAYED_ATTRIBUTES);
+          data.addText(FontUtil.spaceAndThinSpace() + location, SimpleTextAttributes.GRAYED_ATTRIBUTES);
         }
         else if (shouldShowSourcesRoot()) {
           SourceFolder sourceRoot = ProjectRootsUtil.getModuleSourceRoot(directoryFile, project);
@@ -114,7 +111,7 @@ public class PsiDirectoryNode extends BasePsiNode<PsiDirectory> implements Navig
             ModuleSourceRootEditHandler<?> handler = ModuleSourceRootEditHandler.getEditHandler(sourceRoot.getRootType());
             if (handler != null) {
               String rootTypeName = handler.getRootTypeName();
-              data.addText(" (" + rootTypeName.toLowerCase(Locale.getDefault()) + " root)",  SimpleTextAttributes.GRAY_ATTRIBUTES);
+              data.addText(FontUtil.spaceAndThinSpace() + rootTypeName.toLowerCase(Locale.getDefault()) + " root",  SimpleTextAttributes.GRAYED_ATTRIBUTES);
             }
           }
         }
index 6183fae779e5087f14fc3d00ea1008dfe7e44664..b0c88c8c535602cc5430949270fe8a40c2cbe2a1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2015 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.
@@ -61,7 +61,7 @@ public class NodeRenderer extends ColoredTreeCellRenderer {
         append(text, simpleTextAttributes);
         String location = presentation.getLocationString();
         if (!StringUtil.isEmpty(location)) {
-          SimpleTextAttributes attributes = SimpleTextAttributes.merge(simpleTextAttributes, SimpleTextAttributes.GRAY_ATTRIBUTES);
+          SimpleTextAttributes attributes = SimpleTextAttributes.merge(simpleTextAttributes, SimpleTextAttributes.GRAYED_ATTRIBUTES);
           append(presentation.getLocationPrefix() + location + presentation.getLocationSuffix(), attributes, false);
         }
       }
index 435c5ef9279d4926ecc0cc854713c810a09bea95..dc282bc3834b128e24626fbbe36b3ffd45675f91 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 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.
@@ -21,7 +21,9 @@ import com.intellij.navigation.ItemPresentation;
 import com.intellij.navigation.ItemPresentationWithSeparator;
 import com.intellij.navigation.LocationPresentation;
 import com.intellij.openapi.editor.colors.TextAttributesKey;
+import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.ui.SimpleTextAttributes;
+import com.intellij.util.FontUtil;
 import com.intellij.util.containers.ContainerUtil;
 import com.intellij.util.ui.update.ComparableObject;
 import com.intellij.util.ui.update.ComparableObjectCheck;
@@ -33,7 +35,7 @@ import java.awt.*;
 import java.util.List;
 
 /**
- * Default implementation of the {@link com.intellij.navigation.ItemPresentation} interface.
+ * Default implementation of the {@link ItemPresentation} interface.
  */
 
 public class PresentationData implements ColoredItemPresentation, ComparableObject, LocationPresentation {
@@ -141,7 +143,7 @@ public class PresentationData implements ColoredItemPresentation, ComparableObje
 
   /**
    * @param closedIcon the closed icon for the node.
-   * @see #setIcons(javax.swing.Icon)
+   * @see #setIcons(Icon)
    * @deprecated Different icons for open/closed no longer supported. Use setIcon instead
    *             Sets the icon shown for the node when it is collapsed in a tree, or when it is displayed
    *             in a non-tree view.
@@ -153,7 +155,7 @@ public class PresentationData implements ColoredItemPresentation, ComparableObje
 
   /**
    * @param openIcon the open icon for the node.
-   * @see #setIcons(javax.swing.Icon)
+   * @see #setIcons(Icon)
    * @deprecated Different icons for open/closed no longer supported. This function is no op.
    *             Sets the icon shown for the node when it is expanded in the tree.
    */
@@ -163,8 +165,8 @@ public class PresentationData implements ColoredItemPresentation, ComparableObje
 
   /**
    * @param icon the icon for the node.
-   * @see #setOpenIcon(javax.swing.Icon)
-   * @see #setClosedIcon(javax.swing.Icon)
+   * @see #setOpenIcon(Icon)
+   * @see #setClosedIcon(Icon)
    * @deprecated Different icons for open/closed no longer supported. Use setIcon instead.
    *             Sets both the open and closed icons of the node to the specified icon.
    */
@@ -328,11 +330,11 @@ public class PresentationData implements ColoredItemPresentation, ComparableObje
 
   @Override
   public String getLocationPrefix() {
-    return myLocationPrefix == null ? DEFAULT_LOCATION_PREFIX : myLocationPrefix;
+    return myLocationPrefix == null ? FontUtil.spaceAndThinSpace() : myLocationPrefix;
   }
 
   @Override
   public String getLocationSuffix() {
-    return myLocationSuffix == null ? DEFAULT_LOCATION_SUFFIX : myLocationSuffix;
+    return StringUtil.notNullize(myLocationSuffix, "");
   }
 }