Index: java/project/test/unit/src/org/netbeans/spi/java/project/support/ui/PackageViewTest.java =================================================================== RCS file: /cvs/java/project/test/unit/src/org/netbeans/spi/java/project/support/ui/PackageViewTest.java,v retrieving revision 1.2 diff -u -r1.2 PackageViewTest.java --- java/project/test/unit/src/org/netbeans/spi/java/project/support/ui/PackageViewTest.java 26 Apr 2004 11:01:26 -0000 1.2 +++ java/project/test/unit/src/org/netbeans/spi/java/project/support/ui/PackageViewTest.java 29 Apr 2004 00:05:04 -0000 @@ -160,6 +154,12 @@ assertNodes( ch, new String[] { "a.b.c", "t.r.g", "t.r.h", "t.r.i" }, new int[] { 0, 0, 1, 0 } ); + + // Test truncated package names + FileUtil.createFolder(root, "src/org/foo/whatever"); + assertNodes( ch, + new String[] { "a.b.c", "o.f.whatever", "t.r.g", "t.r.h", "t.r.i" }, + new int[] { 0, 0, 0, 1, 0 } ); } Index: java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java =================================================================== RCS file: /cvs/java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java,v retrieving revision 1.5 diff -u -r1.5 PackageViewChildren.java --- java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java 26 Apr 2004 11:01:26 -0000 1.5 +++ java/project/src/org/netbeans/spi/java/project/support/ui/PackageViewChildren.java 29 Apr 2004 00:05:04 -0000 @@ -351,7 +351,7 @@ this.root = root; this.dataFolder = dataFolder; disableDelegation(DELEGATE_GET_DISPLAY_NAME | DELEGATE_SET_DISPLAY_NAME); - setDisplayName( computeDisplayName() ); + setDisplayName(computePackageName(true)); } public String getShortDescription() { @@ -359,12 +359,12 @@ Boolean b = AccessibilityQuery.isPubliclyAccessible(df.getPrimaryFile()); if (b != null) { if (b.booleanValue()) { - return NbBundle.getMessage(PackageViewChildren.class, "LBL_public_package"); + return NbBundle.getMessage(PackageViewChildren.class, "LBL_public_package", computePackageName(false)); } else { - return NbBundle.getMessage(PackageViewChildren.class, "LBL_private_package"); + return NbBundle.getMessage(PackageViewChildren.class, "LBL_private_package", computePackageName(false)); } } else { - return NbBundle.getMessage(PackageViewChildren.class, "LBL_package"); + return NbBundle.getMessage(PackageViewChildren.class, "LBL_package", computePackageName(false)); } } @@ -398,7 +398,7 @@ } public void updateDisplayName() { - setDisplayName( computeDisplayName() ); + setDisplayName(computePackageName(true)); } public void updateChildren() { @@ -409,13 +409,23 @@ update(); } } - - private String computeDisplayName() { + + /** + * Get package name. + * Handles default package specially. + * @param truncate if true, show a truncated version to save display space + */ + private String computePackageName(boolean truncate) { String path = FileUtil.getRelativePath( root, dataFolder.getPrimaryFile()); if (path.length() == 0) { return NbBundle.getMessage(PackageViewChildren.class, "LBL_DefaultPackage"); // NOI18N } else { - return path.replace('/', '.'); // NOI18N + String pkg = path.replace('/', '.'); // NOI18N + if (truncate) { + return pkg.replaceAll("([^.])[^.]+\\.", "$1."); // NOI18N + } else { + return pkg; + } } } Index: java/project/src/org/netbeans/spi/java/project/support/ui/Bundle.properties =================================================================== RCS file: /cvs/java/project/src/org/netbeans/spi/java/project/support/ui/Bundle.properties,v retrieving revision 1.2 diff -u -r1.2 Bundle.properties --- java/project/src/org/netbeans/spi/java/project/support/ui/Bundle.properties 16 Mar 2004 15:31:49 -0000 1.2 +++ java/project/src/org/netbeans/spi/java/project/support/ui/Bundle.properties 29 Apr 2004 00:05:04 -0000 @@ -11,6 +11,9 @@ # PackageViewChildren LBL_DefaultPackage= -LBL_package=Java source package -LBL_public_package=Java source package (exported interface) -LBL_private_package=Java source package (private implementation) +# {0} - full package name +LBL_package={0} (Java source package) +# {0} - full package name +LBL_public_package={0} (exported Java source package) +# {0} - full package name +LBL_private_package={0} (private Java source package)