X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FPlatform.java;h=a5bee7c79f6b06e602e62a51e39b634db1651367;hb=8bcec0698d13dede379ac8079d544d2da50e106c;hp=22032b54153368c42ca9163786c44085d4179d15;hpb=a4da7f0f52e97ebb3fb0c42d6ab3a71762c4b899;p=jalview.git diff --git a/src/jalview/util/Platform.java b/src/jalview/util/Platform.java index 22032b5..a5bee7c 100644 --- a/src/jalview/util/Platform.java +++ b/src/jalview/util/Platform.java @@ -20,7 +20,6 @@ */ package jalview.util; -import java.awt.Toolkit; import java.awt.event.MouseEvent; /** @@ -30,11 +29,23 @@ import java.awt.event.MouseEvent; */ public class Platform { - private static Boolean isAMac = null, isWindows = null; + private static Boolean isAMac = null, isWindows = null, isLinux = null; private static Boolean isHeadless = null; /** + * added to check LaF for Linux + * + * @return + */ + public static boolean isLinux() + { + return (isLinux == null + ? (isLinux = (System.getProperty("os.name").indexOf("Linux") >= 0)) + : isLinux); + } + + /** * sorry folks - Macs really are different * * @return true if we do things in a special way. @@ -88,23 +99,15 @@ public class Platform } /** - * escape a string according to the local platform's escape character + * Answers the input with every backslash replaced with a double backslash (an + * 'escaped' single backslash) * - * @param file - * @return escaped file + * @param s + * @return */ - public static String escapeString(String file) + public static String escapeBackslashes(String s) { - StringBuffer f = new StringBuffer(); - int p = 0, lastp = 0; - while ((p = file.indexOf('\\', lastp)) > -1) - { - f.append(file.subSequence(lastp, p)); - f.append("\\\\"); - lastp = p + 1; - } - f.append(file.substring(lastp)); - return f.toString(); + return s == null ? null : s.replace("\\", "\\\\"); } /** @@ -140,9 +143,34 @@ public class Platform { return false; } - return (jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx() // .getMenuShortcutKeyMaskEx() - & e.getModifiersEx()) != 0; // getModifiers()) != 0; + return (jalview.util.ShortcutKeyMaskExWrapper + .getMenuShortcutKeyMaskEx() // .getMenuShortcutKeyMaskEx() + & jalview.util.ShortcutKeyMaskExWrapper + .getModifiersEx(e)) != 0; // getModifiers()) != 0; } return e.isControlDown(); } + + /** + * A (case sensitive) file path comparator that ignores the difference between + * / and \ + * + * @param path1 + * @param path2 + * @return + */ + public static boolean pathEquals(String path1, String path2) + { + if (path1 == null) + { + return path2 == null; + } + if (path2 == null) + { + return false; + } + String p1 = path1.replace('\\', '/'); + String p2 = path2.replace('\\', '/'); + return p1.equals(p2); + } }