Clover icon

jalviewX

  1. Project Clover database Wed Oct 31 2018 15:13:58 GMT
  2. Package jalview.util

File Platform.java

 

Coverage histogram

../../img/srcFileCovDistChart5.png
40% of files have more coverage

Code metrics

12
25
7
1
154
69
13
0.52
3.57
7
1.86

Classes

Class Line # Actions
Platform 31 25 13 22
0.550%
 

Contributing tests

This file is covered by 89 tests. .

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.util;
22   
23    import java.awt.Toolkit;
24    import java.awt.event.MouseEvent;
25   
26    /**
27    * System platform information used by Applet and Application
28    *
29    * @author Jim Procter
30    */
 
31    public class Platform
32    {
33   
34    private static Boolean isAMac = null, isWindows = null;
35   
36    private static Boolean isHeadless = null;
37   
38    /**
39    * sorry folks - Macs really are different
40    *
41    * BH: disabled for SwingJS -- will need to check key-press issues
42    *
43    * @return true if we do things in a special way.
44    */
 
45  891 toggle public static boolean isAMac()
46    {
47  891 if (isAMac == null)
48    {
49  1 isAMac = /** @j2sNative false && */
50    System.getProperty("os.name").indexOf("Mac") > -1;
51    }
52   
53  891 return isAMac.booleanValue();
54   
55    }
56   
57    /**
58    * Check if we are on a Microsoft plaform...
59    *
60    * @return true if we have to cope with another platform variation
61    */
 
62  11 toggle public static boolean isWindows()
63    {
64  11 if (isWindows == null)
65    {
66  1 isWindows = /** @j2sNative false && */
67    System.getProperty("os.name").indexOf("Win") > -1;
68    }
69  11 return isWindows.booleanValue();
70    }
71   
72    /**
73    *
74    * @return true if we are running in non-interactive no UI mode
75    */
 
76  0 toggle public static boolean isHeadless()
77    {
78  0 if (isHeadless == null)
79    {
80  0 isHeadless = "true".equals(System.getProperty("java.awt.headless"));
81    }
82  0 return isHeadless;
83    }
84   
85    /**
86    *
87    * @return nominal maximum command line length for this platform
88    */
 
89  0 toggle public static int getMaxCommandLineLength()
90    {
91    // TODO: determine nominal limits for most platforms.
92  0 return 2046; // this is the max length for a windows NT system.
93    }
94   
95    /**
96    * escape a string according to the local platform's escape character
97    *
98    * @param file
99    * @return escaped file
100    */
 
101  11 toggle public static String escapeString(String file)
102    {
103  11 StringBuffer f = new StringBuffer();
104  11 int p = 0, lastp = 0;
105  ? while ((p = file.indexOf('\\', lastp)) > -1)
106    {
107  0 f.append(file.subSequence(lastp, p));
108  0 f.append("\\\\");
109  0 lastp = p + 1;
110    }
111  11 f.append(file.substring(lastp));
112  11 return f.toString();
113    }
114   
115    /**
116    * Answers true if the mouse event has Meta-down (Command key on Mac) or
117    * Ctrl-down (on other o/s). Note this answers _false_ if the Ctrl key is
118    * pressed instead of the Meta/Cmd key on Mac. To test for Ctrl-click on Mac,
119    * you can use e.isPopupTrigger().
120    *
121    * @param e
122    * @return
123    */
 
124  0 toggle public static boolean isControlDown(MouseEvent e)
125    {
126  0 boolean aMac = isAMac();
127  0 return isControlDown(e, aMac);
128    }
129   
130    /**
131    * Overloaded version of method (to allow unit testing)
132    *
133    * @param e
134    * @param aMac
135    * @return
136    */
 
137  5 toggle protected static boolean isControlDown(MouseEvent e, boolean aMac)
138    {
139  3 if (aMac)
140    {
141    /*
142    * answer false for right mouse button
143    */
144  0 if (e.isPopupTrigger())
145    {
146  0 return false;
147    }
148  0 return (Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
149    & e.getModifiers()) != 0;
150    // could we use e.isMetaDown() here?
151    }
152  3 return e.isControlDown();
153    }
154    }