- isAMac = System.getProperty("os.name").indexOf("Mac") > -1;
- isLinux = System.getProperty("os.name").toLowerCase()
- .indexOf("linux") > -1;
- isWindows = System.getProperty("os.name").toLowerCase()
- .indexOf("windows") > -1;
-
- String forceHiDPISettingProperty = System
- .getProperty(forceHiDPISettingPropertyName);
- forceHiDPISetting = forceHiDPISettingProperty != null
- && forceHiDPISettingProperty.equalsIgnoreCase("true");
-
- int tryForceHiDPISettingScale = 0;
- String forceHiDPISettingScaleProperty = System
- .getProperty(forceHiDPISettingScalePropertyName);
- if (forceHiDPISettingScaleProperty != null)
+ String system = System.getProperty("os.name") == null ? null
+ : System.getProperty("os.name").toLowerCase(Locale.ROOT);
+ if (system != null)
+ {
+ isLinux = system.indexOf("linux") > -1;
+ // isAMac = system.indexOf("mac") > -1;
+ // isWindows = system.indexOf("windows") > -1;
+ }
+ else
+ {
+ isLinux = false;
+ // isAMac = isWindows = false;
+ }
+ }
+
+ private static void init()
+ {
+ if (doneInit)
+ {
+ return;
+ }
+
+ // get and use command line property values first
+ String setHiDPIProperty = System.getProperty(setHiDPIPropertyName);
+ boolean setHiDPIPropertyBool = Boolean.parseBoolean(setHiDPIProperty);
+
+ // allow -DsetHiDPI=false to turn off HiDPI scaling
+ if (setHiDPIProperty != null && !setHiDPIPropertyBool)
+ {
+ clear();
+ doneInit = true;
+ return;
+ }
+
+ setHiDPI = setHiDPIProperty != null && setHiDPIPropertyBool;
+
+ String setHiDPIScaleProperty = System
+ .getProperty(setHiDPIScalePropertyName);
+ if (setHiDPIScaleProperty != null)