From f4a6465b045814fa5431a9e3e4b99a8776d08f57 Mon Sep 17 00:00:00 2001 From: Denis Molony Date: Fri, 24 Feb 2023 12:33:21 +1000 Subject: [PATCH] shorten absolute path --- .../disk/AbstractFormattedDisk.java | 20 +++++++++---------- .../bytezone/diskbrowser/disk/AppleDisk.java | 8 ++------ .../diskbrowser/utilities/Utility.java | 17 ++++++++++++++++ 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/com/bytezone/diskbrowser/disk/AbstractFormattedDisk.java b/src/com/bytezone/diskbrowser/disk/AbstractFormattedDisk.java index 840101d..366e9f4 100755 --- a/src/com/bytezone/diskbrowser/disk/AbstractFormattedDisk.java +++ b/src/com/bytezone/diskbrowser/disk/AbstractFormattedDisk.java @@ -206,8 +206,7 @@ public abstract class AbstractFormattedDisk implements FormattedDisk DefaultMutableTreeNode root = getCatalogTreeRoot (); if (root.getUserObject () == null) - root.setUserObject ( - new DefaultAppleFileSource (getName (), disk.toString (), this)); + root.setUserObject (new DefaultAppleFileSource (getName (), disk.toString (), this)); } // ---------------------------------------------------------------------------------// @@ -234,15 +233,15 @@ public abstract class AbstractFormattedDisk implements FormattedDisk public String getDisplayPath () // ---------------------------------------------------------------------------------// { - // if (originalPath != null) - // return originalPath.toString (); - String home = System.getProperty ("user.home"); - String path = originalPath != null ? originalPath.toString () - : disk.getFile ().getAbsolutePath (); - if (path.startsWith (home)) - return "~" + path.substring (home.length ()); + String path = + originalPath != null ? originalPath.toString () : disk.getFile ().getAbsolutePath (); + + int pos = path.indexOf (home); + + if (pos == 0 || (path.startsWith ("/Volumes/") && pos > 0)) + return "~" + path.substring (home.length () + pos); return disk.getFile ().getAbsolutePath (); } @@ -327,8 +326,7 @@ public abstract class AbstractFormattedDisk implements FormattedDisk if (children != null) while (children.hasMoreElements ()) { - DefaultMutableTreeNode childNode = - (DefaultMutableTreeNode) children.nextElement (); + DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) children.nextElement (); if (childNode.getUserObject ().toString ().indexOf (name) > 0) return childNode; } diff --git a/src/com/bytezone/diskbrowser/disk/AppleDisk.java b/src/com/bytezone/diskbrowser/disk/AppleDisk.java index 323696f..fd329ea 100755 --- a/src/com/bytezone/diskbrowser/disk/AppleDisk.java +++ b/src/com/bytezone/diskbrowser/disk/AppleDisk.java @@ -733,12 +733,8 @@ public class AppleDisk implements Disk { StringBuilder text = new StringBuilder (); - String path = file.getAbsolutePath (); - String home = System.getProperty ("user.home"); - if (path.startsWith (home)) - path = "~" + path.substring (home.length ()); - - text.append (String.format ("Path ......... %s%n", path)); + text.append ( + String.format ("Path ......... %s%n", Utility.getShortPath (file.getAbsolutePath ()))); text.append (String.format ("File name .... %s%n", file.getName ())); text.append (String.format ("File size .... %,d%n", file.length ())); text.append (String.format ("Tracks ....... %d%n", tracks)); diff --git a/src/com/bytezone/diskbrowser/utilities/Utility.java b/src/com/bytezone/diskbrowser/utilities/Utility.java index e9d8b17..46a207e 100644 --- a/src/com/bytezone/diskbrowser/utilities/Utility.java +++ b/src/com/bytezone/diskbrowser/utilities/Utility.java @@ -565,6 +565,23 @@ public final class Utility return suffixes.contains (getSuffix (filename)); } + // ---------------------------------------------------------------------------------// + public static String getShortPath (String path) + // ---------------------------------------------------------------------------------// + { + String home = System.getProperty ("user.home"); + if (path.startsWith (home)) + path = "~" + path.substring (home.length ()); + else if (path.startsWith ("/Volumes/")) + { + int pos = path.indexOf (home); + if (pos > 0) + path = "~" + path.substring (home.length () + pos); + } + + return path; + } + // ---------------------------------------------------------------------------------// public static void reverse (byte[] buffer) // ---------------------------------------------------------------------------------//