From a733e48c6e07fb817d9c827c88cb0ff0e4d8b715 Mon Sep 17 00:00:00 2001 From: Simon Barner Date: Wed, 25 Apr 2018 12:02:32 +0200 Subject: [PATCH 1/7] Move FontUtils from tooling.spiderchart to tooling.base Signed-off-by: Simon Barner --- .../org/fortiss/tooling/base/ui/utils/.ratings | 1 + .../fortiss/tooling/base/ui/utils}/FontUtils.java | 2 +- .../fortiss/tooling/spiderchart/style/.ratings | 2 +- .../tooling/spiderchart/style/FontStyle.java | 12 ++++++------ .../org/fortiss/tooling/spiderchart/util/.ratings | 1 - .../tooling/spiderchart/SpiderChartExample.java | 15 ++++++++------- 6 files changed, 17 insertions(+), 16 deletions(-) rename {org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/util => org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils}/FontUtils.java (98%) diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings index 438ba634..94e0df70 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings @@ -3,6 +3,7 @@ ActionUtils.java f16dd179005f48c747d2c9cf250b05e7225495cf GREEN ConstraintsBaseUIUtils.java 50c26b90a6ebe6c7f7861092dac5ebc1f3fc0ce3 GREEN DragAndDropBaseUtils.java 4308b2151a7075adeb4f7e7246859d421150415b GREEN EllipseLayoutUIUtils.java 271e287f1e5befb03a9d115a98e22453056521e0 GREEN +FontUtils.java fe542b8d8bfebeaf19c09f2b36d7b0f8cfb3b63f GREEN GCStateManager.java 983973a92376b5c757c1253b32e33d0666ccdf7b GREEN LayoutDataUIUtils.java 8034bbb9f595092f56807525abcbf23fd5d01428 GREEN PropertiesViewUtils.java d345b4501c4092228edf1c98e0189317d53aaf22 GREEN diff --git a/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/util/FontUtils.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/FontUtils.java similarity index 98% rename from org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/util/FontUtils.java rename to org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/FontUtils.java index 759aeeea..fe542b8d 100644 --- a/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/util/FontUtils.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/FontUtils.java @@ -13,7 +13,7 @@ | See the License for the specific language governing permissions and | | limitations under the License. | +--------------------------------------------------------------------------*/ -package org.fortiss.tooling.spiderchart.util; +package org.fortiss.tooling.base.ui.utils; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; diff --git a/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/style/.ratings b/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/style/.ratings index 5c03fa56..3f82e63a 100644 --- a/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/style/.ratings +++ b/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/style/.ratings @@ -3,6 +3,6 @@ ChartStyle.java b2c76a10141ebe9a083d5456bd9e5ef61f472500 GREEN ColorStyleBase.java b8e824b55490b30507b8d38acf10bc61daf1fa00 GREEN DataSeriesStyle.java a7bda5ba4e12133ea20edda627e41560b3679641 GREEN FillStyle.java 36e54f1ecb31836a7c7a821ddf0432264349bd83 GREEN -FontStyle.java b180fc768372ae374f17034cbb91fe3891fd569f GREEN +FontStyle.java 012dfcddfd85159ba6045141df0762289fb70d6f GREEN LegendStyle.java 39a10d789aeac41114b8b43e7e6790543cb2f618 GREEN LineStyle.java bc3df608b46c9d2fa367cf75465961389ab4491f GREEN diff --git a/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/style/FontStyle.java b/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/style/FontStyle.java index b180fc76..012dfcdd 100644 --- a/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/style/FontStyle.java +++ b/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/style/FontStyle.java @@ -15,12 +15,12 @@ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.spiderchart.style; -import static org.fortiss.tooling.spiderchart.util.FontUtils.VERDANA_10PT; -import static org.fortiss.tooling.spiderchart.util.FontUtils.VERDANA_12PT; -import static org.fortiss.tooling.spiderchart.util.FontUtils.VERDANA_14PT; -import static org.fortiss.tooling.spiderchart.util.FontUtils.VERDANA_16PT; -import static org.fortiss.tooling.spiderchart.util.FontUtils.VERDANA_18PT; -import static org.fortiss.tooling.spiderchart.util.FontUtils.VERDANA_8PT; +import static org.fortiss.tooling.base.ui.utils.FontUtils.VERDANA_10PT; +import static org.fortiss.tooling.base.ui.utils.FontUtils.VERDANA_12PT; +import static org.fortiss.tooling.base.ui.utils.FontUtils.VERDANA_14PT; +import static org.fortiss.tooling.base.ui.utils.FontUtils.VERDANA_16PT; +import static org.fortiss.tooling.base.ui.utils.FontUtils.VERDANA_18PT; +import static org.fortiss.tooling.base.ui.utils.FontUtils.VERDANA_8PT; import static org.fortiss.tooling.spiderchart.util.RGBColorUtils.BLACK; import org.eclipse.swt.graphics.FontData; diff --git a/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/util/.ratings b/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/util/.ratings index 75c3929b..382c494b 100644 --- a/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/util/.ratings +++ b/org.fortiss.tooling.spiderchart.ui/src/org/fortiss/tooling/spiderchart/util/.ratings @@ -1,3 +1,2 @@ AxisUtils.java 22f9dae3ee0b9bb4daef19977f2d327dc4b10f8f GREEN -FontUtils.java 759aeeea8de17e5d555ecd81592b9897dd36bc37 GREEN RGBColorUtils.java 2fc319ab0bc3d898f7c68db324cded3ddcd45f70 GREEN diff --git a/org.fortiss.tooling.spiderchart.ui/test-src/test/org/fortiss/tooling/spiderchart/SpiderChartExample.java b/org.fortiss.tooling.spiderchart.ui/test-src/test/org/fortiss/tooling/spiderchart/SpiderChartExample.java index fe5cfcf0..914c20a0 100644 --- a/org.fortiss.tooling.spiderchart.ui/test-src/test/org/fortiss/tooling/spiderchart/SpiderChartExample.java +++ b/org.fortiss.tooling.spiderchart.ui/test-src/test/org/fortiss/tooling/spiderchart/SpiderChartExample.java @@ -15,12 +15,12 @@ +--------------------------------------------------------------------------*/ package test.org.fortiss.tooling.spiderchart; +import static org.fortiss.tooling.base.ui.utils.FontUtils.VERDANA_14PT; import static org.fortiss.tooling.spiderchart.style.FontStyle.BLACK_VERDANA_10PT; import static org.fortiss.tooling.spiderchart.style.FontStyle.BLACK_VERDANA_12PT; import static org.fortiss.tooling.spiderchart.style.FontStyle.BLACK_VERDANA_14PT; import static org.fortiss.tooling.spiderchart.style.FontStyle.BLACK_VERDANA_8PT; import static org.fortiss.tooling.spiderchart.style.LineStyle.SOLID_BLACK_1PT; -import static org.fortiss.tooling.spiderchart.util.FontUtils.VERDANA_14PT; import static org.fortiss.tooling.spiderchart.util.RGBColorUtils.BLUE; import static org.fortiss.tooling.spiderchart.util.RGBColorUtils.DARK_GRAY; import static org.fortiss.tooling.spiderchart.util.RGBColorUtils.LIGHT_GRAY; @@ -193,10 +193,11 @@ public final class SpiderChartExample { // NO_UCD } /** {@link Comparator} implementation for {@link Screen}s . */ - private static Comparator screenComparator = new Comparator() { - @Override - public int compare(Screen o1, Screen o2) { - return o1.width - o2.width; - } - }; + private static Comparator screenComparator = + new Comparator() { + @Override + public int compare(Screen o1, Screen o2) { + return o1.width - o2.width; + } + }; } -- GitLab From b31c1849e81b69fdc1690bfea4cdd203b4a1662b Mon Sep 17 00:00:00 2001 From: Simon Barner Date: Wed, 25 Apr 2018 14:02:24 +0200 Subject: [PATCH 2/7] Unify OS/Platform case distinctions - Rework SystemUtils and use it everywhere - FontUtils: Add CODEFONT_11PT for native font used to render code Issue-Ref: 2243 Signed-off-by: Simon Barner --- .../fortiss/tooling/base/ui/utils/.ratings | 2 +- .../tooling/base/ui/utils/FontUtils.java | 20 ++++++++++ .../org/fortiss/tooling/base/utils/.ratings | 2 +- .../tooling/base/utils/SystemUtils.java | 38 ++++++++++++++++--- .../fortiss/tooling/graphicsGL/ui/.ratings | 2 +- .../ui/ToolingGraphicsGLUIActivator.java | 8 +--- 6 files changed, 58 insertions(+), 14 deletions(-) diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings index 94e0df70..4c5b2078 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings @@ -3,7 +3,7 @@ ActionUtils.java f16dd179005f48c747d2c9cf250b05e7225495cf GREEN ConstraintsBaseUIUtils.java 50c26b90a6ebe6c7f7861092dac5ebc1f3fc0ce3 GREEN DragAndDropBaseUtils.java 4308b2151a7075adeb4f7e7246859d421150415b GREEN EllipseLayoutUIUtils.java 271e287f1e5befb03a9d115a98e22453056521e0 GREEN -FontUtils.java fe542b8d8bfebeaf19c09f2b36d7b0f8cfb3b63f GREEN +FontUtils.java a167a05bdaa8da9853705cc5134f30f6d81bc9f2 YELLOW GCStateManager.java 983973a92376b5c757c1253b32e33d0666ccdf7b GREEN LayoutDataUIUtils.java 8034bbb9f595092f56807525abcbf23fd5d01428 GREEN PropertiesViewUtils.java d345b4501c4092228edf1c98e0189317d53aaf22 GREEN diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/FontUtils.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/FontUtils.java index fe542b8d..a167a05b 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/FontUtils.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/FontUtils.java @@ -15,6 +15,10 @@ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.base.ui.utils; +import static org.fortiss.tooling.base.utils.SystemUtils.isLinuxPlatform; +import static org.fortiss.tooling.base.utils.SystemUtils.isMacOSXPlatform; +import static org.fortiss.tooling.base.utils.SystemUtils.isWindowsPlatform; + import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; @@ -38,9 +42,25 @@ public class FontUtils { public static FontData VERDANA_16PT = new FontData("Verdana", 16, SWT.NORMAL); /** Verdana 14pt font. */ public static FontData VERDANA_18PT = new FontData("Verdana", 18, SWT.NORMAL); + /** "Code" 11pt font. */ + public static FontData CODEFONT_11PT = createCodeFontData(11); /** Creates a {@link Font} from the given {@link FontData}, which MUST be disposed after use. */ public static Font createFont(FontData fontData) { return new Font(Display.getCurrent(), fontData); } + + /** Returns the {@link FontData} used to represent code (OS specific). */ + private static FontData createCodeFontData(int height) { + String font = "Courier"; + if(isMacOSXPlatform()) { + font = "Monaco"; + } else if(isWindowsPlatform()) { + font = "Consolas"; + } else if(isLinuxPlatform()) { + font = "Monospace"; + } + + return new FontData(font, height, SWT.NORMAL); + } } diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings index a502f47b..83fd00a6 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings @@ -13,6 +13,6 @@ PointUtils.java b21c92cc8e80ece9d87ede8a750f4de314379743 GREEN PointsUtils.java bad69811c59004948929f6a57edd5a79c0bf8643 GREEN RectangleLayoutUtils.java cdd61d162761da7f3e1d3512264135b9b0d564ff GREEN SnapToGridUtils.java 413785d7a8655db31a129b6f821e1d5f859aa726 GREEN -SystemUtils.java b36590c6934413cd2408de1321af5254dc263e11 GREEN +SystemUtils.java 8546c23e43551a58f4aca273015c496546793611 YELLOW VisualizationModelElementFactory.java 18e67450ee4cf4a03dc88a10becb0fb6ce4c1bad GREEN ZoomUtils.java a339613fde18281bed3b55b529a053d348545bc7 GREEN diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java index b36590c6..8546c23e 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java @@ -18,13 +18,41 @@ package org.fortiss.tooling.base.utils; /** * Utility functions that deal with the underlying system. * - * @author ratiu + * @author ratiu, barner */ public class SystemUtils { - /** Returns true if we are in a Windows system. */ - public static boolean isWindowsOperatingSystem() { - return System.getProperty("os.name").startsWith("Windows"); + /** Predicate if the current platform is Windows. */ + public static boolean isWindowsPlatform() { + String osName = System.getProperty("os.name"); + return osName != null && osName.contains("Windows"); + } + + /** Predicate if the current platform is Linux. */ + public static boolean isLinuxPlatform() { + String osName = System.getProperty("os.name"); + return osName != null && osName.contains("Linux"); + } + + /** Predicate if the current platform is Mac OS X. */ + public static boolean isMacOSXPlatform() { + String osName = System.getProperty("os.name"); + return osName != null && osName.contains("Mac OS X."); + } + + /** Predicate if the current Java VM architecture is 64 bit. */ + public static boolean isVm64BitArch() { + String osArch = System.getProperty("os.arch"); + return osArch != null && osArch.contains("64"); + } + + /** Predicate if the current OS architecture is 64 bit. */ + public static boolean isOs64BitArch() { + if(isWindowsPlatform()) { + return System.getenv("ProgramFiles(x86)") != null; + } + + return isVm64BitArch(); } /** @@ -32,7 +60,7 @@ public class SystemUtils { * interpreted, then an empty string is returned. */ public static String interpretProcessExitValues(int exitValue) { - if(!isWindowsOperatingSystem()) { + if(!isWindowsPlatform()) { switch(exitValue) { case 126: return "Command not found"; diff --git a/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/.ratings b/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/.ratings index d617f8df..e6a1806e 100644 --- a/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/.ratings +++ b/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/.ratings @@ -1 +1 @@ -ToolingGraphicsGLUIActivator.java 86df10a01835d65709fb655622a1feb2b1a44948 GREEN +ToolingGraphicsGLUIActivator.java 1775f5ee6932438fb7fe6cf15279a7595fdedb53 YELLOW diff --git a/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/ToolingGraphicsGLUIActivator.java b/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/ToolingGraphicsGLUIActivator.java index 86df10a0..1775f5ee 100644 --- a/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/ToolingGraphicsGLUIActivator.java +++ b/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/ToolingGraphicsGLUIActivator.java @@ -17,6 +17,7 @@ package org.fortiss.tooling.graphicsGL.ui; import static java.lang.System.mapLibraryName; import static org.eclipse.core.runtime.FileLocator.toFileURL; +import static org.fortiss.tooling.base.utils.SystemUtils.isOs64BitArch; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.plugin.AbstractUIPlugin; @@ -46,12 +47,7 @@ public class ToolingGraphicsGLUIActivator extends AbstractUIPlugin { System.out.println(" Preloading native LWJGL libraries."); - boolean is64bit; - if(System.getProperty("os.name").contains("Windows")) { - is64bit = (System.getenv("ProgramFiles(x86)") != null); - } else { - is64bit = (System.getProperty("os.arch").indexOf("64") != -1); - } + boolean is64bit = isOs64BitArch(); // preload JEMALLOC String jemallocLibPath = loadPluginLocalLibrary(getBundle(), "jemalloc", is64bit); -- GitLab From d4ece7462e50c14bc0e30c4e5e8965c4c177ffa4 Mon Sep 17 00:00:00 2001 From: Simon Barner Date: Wed, 25 Apr 2018 17:06:00 +0200 Subject: [PATCH 3/7] Add getTempDirPath() and getSystemTempDirPath() Issue-Ref: 2443 Signed-off-by: Simon Barner --- .../org/fortiss/tooling/base/utils/.ratings | 2 +- .../tooling/base/utils/SystemUtils.java | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings index 83fd00a6..1904c50d 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings @@ -13,6 +13,6 @@ PointUtils.java b21c92cc8e80ece9d87ede8a750f4de314379743 GREEN PointsUtils.java bad69811c59004948929f6a57edd5a79c0bf8643 GREEN RectangleLayoutUtils.java cdd61d162761da7f3e1d3512264135b9b0d564ff GREEN SnapToGridUtils.java 413785d7a8655db31a129b6f821e1d5f859aa726 GREEN -SystemUtils.java 8546c23e43551a58f4aca273015c496546793611 YELLOW +SystemUtils.java bd40519b5e286f274f47815ccc8d320fd65c2c0a YELLOW VisualizationModelElementFactory.java 18e67450ee4cf4a03dc88a10becb0fb6ce4c1bad GREEN ZoomUtils.java a339613fde18281bed3b55b529a053d348545bc7 GREEN diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java index 8546c23e..bd40519b 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java @@ -15,6 +15,10 @@ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.base.utils; +import static java.io.File.separator; +import static java.lang.System.getProperty; +import static java.util.UUID.randomUUID; + /** * Utility functions that deal with the underlying system. * @@ -70,4 +74,33 @@ public class SystemUtils { } return ""; } + + /** Returns the path to the system's temporary directory. */ + public static String getSystemTempDirPath() { + return getTempDirPath(false, null); + } + + /** + * Returns the path to a directory in the system's temporary directory that follows the pattern
+ * {@code [/UNIQUE_DIR][/SUB_DIR]} + * + * @param unique + * Flag if a unique sub-directory should be appended to the path of the system's + * temporary directory. + * @param subdir + * Sub-directory within system's temporary directory (may be {@code null}). + * @return Path to a directory in the system's temporary directory. + */ + public static String getTempDirPath(boolean unique, String subdir) { + String tmpDir = getProperty("java.io.tmpdir"); + if(unique) { + tmpDir += separator + randomUUID(); + } + + if(subdir != null) { + tmpDir += separator + subdir; + } + + return tmpDir; + } } -- GitLab From 5227aeb9930b97d7c686e96c3443cae0724bc01b Mon Sep 17 00:00:00 2001 From: Simon Barner Date: Wed, 25 Apr 2018 18:13:48 +0200 Subject: [PATCH 4/7] Do not use screenshot of checkboxes to prevent crash on Mac OS X - Patch is now also obviously required in binary Mac OS X RCP product Issue-Ref: 2443 Signed-off-by: Simon Barner --- .../tooling/base/ui/annotation/labelprovider/.ratings | 2 +- .../annotation/labelprovider/CheckBoxLabelProvider.java | 8 ++++++++ .../src/org/fortiss/tooling/base/ui/viewers/.ratings | 2 +- .../tooling/base/ui/viewers/CheckBoxLabelProvider.java | 9 +++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/.ratings index 9f5e77e6..12f9c64f 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/.ratings @@ -1,5 +1,5 @@ AnnotationLabelProvider.java ddebfc2bf2c8306884eb748c2c649ff0fe9c3d21 GREEN -CheckBoxLabelProvider.java 44d1e8394703802f14041a058eae89a70501792c GREEN +CheckBoxLabelProvider.java 83f7216dfc05400c5b96aeba8c1add6a02f0eac5 YELLOW ElementCommentLabelProvider.java 76aa6e9b930ce5680607852fd776172942c89ce5 GREEN ElementLabelProviderBase.java f33502f73033ebdf30316df627e8a9c87e7d1b28 GREEN ElementNameLabelProvider.java 897296ac8318b6dfdea9c50fc73aaeea23c2fffa GREEN diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/CheckBoxLabelProvider.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/CheckBoxLabelProvider.java index 44d1e839..83f7216d 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/CheckBoxLabelProvider.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/CheckBoxLabelProvider.java @@ -14,6 +14,8 @@ *******************************************************************************/ package org.fortiss.tooling.base.ui.annotation.labelprovider; +import static org.fortiss.tooling.base.utils.SystemUtils.isMacOSXPlatform; + import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.jface.viewers.EditingSupport; import org.eclipse.jface.viewers.TableViewer; @@ -46,6 +48,12 @@ public class CheckBoxLabelProvider extends AnnotationLabelProvider { /** {@inheritDoc} */ @Override public String getText(Object element) { + // See #2443 + if(isMacOSXPlatform() && element instanceof AnnotationEntry && + ((AnnotationEntry)element).canEdit(clazz)) { + return isChecked(element) ? "[X]" : "[ ]"; + } + return null; } diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/.ratings index d76cac35..21bdf096 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/.ratings @@ -1,4 +1,4 @@ AbstractIntegerSpinnerEditingSupport.java 7391e5b0d8e10baf5ab2c7f9543ed732a23bbd9d GREEN CheckBoxEditingSupport.java 173a63ee86dc396946ddb625a41d48ffad23982f GREEN -CheckBoxLabelProvider.java f810475dbf986b1f33e5b2b13657e52ca0cfd27e GREEN +CheckBoxLabelProvider.java 4eb2a54a17225da5a0f4f3a4212cde0c23d50d11 YELLOW IconNameLabelProvider.java f1700e0c8a86dfe6b10945ce84c2ac935ceab8e7 GREEN diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/CheckBoxLabelProvider.java b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/CheckBoxLabelProvider.java index f810475d..4eb2a54a 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/CheckBoxLabelProvider.java +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/CheckBoxLabelProvider.java @@ -17,6 +17,7 @@ package org.fortiss.tooling.base.ui.viewers; import static org.eclipse.core.runtime.Platform.getBundle; import static org.eclipse.jface.resource.JFaceResources.getImageRegistry; +import static org.fortiss.tooling.base.utils.SystemUtils.isMacOSXPlatform; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.jface.resource.JFaceResources; @@ -118,6 +119,10 @@ public abstract class CheckBoxLabelProvider extends ColumnLabelProvider { * @return {@link Image} representing the checkbox. */ public static Image getImage(boolean checked, boolean enabled) { + // See #2443 + if(isMacOSXPlatform()) { + return null; + } ImageRegistry imgReg = getImageRegistry(); if(imgReg.getDescriptor(CHECKED_KEY) == null) { imgReg.put(UNCHECKED_KEY, makeShot(false, true)); @@ -142,6 +147,10 @@ public abstract class CheckBoxLabelProvider extends ColumnLabelProvider { /** {@inheritDoc} */ @Override public String getText(Object element) { + // See #2443 + if(isMacOSXPlatform() && isEnabled(element)) { + return isChecked(element) ? "[X]" : "[ ]"; + } return null; } -- GitLab From e37afe48f773ece5a7184fc2917439fde374879d Mon Sep 17 00:00:00 2001 From: Simon Barner Date: Wed, 25 Apr 2018 18:28:51 +0200 Subject: [PATCH 5/7] Implement cache for is*() predicates - Methods can be used in UI to implement OS-specific workarounds - Better avoid extensive querying of system properties and environment Issue-Ref: 2443 Signed-off-by: Simon Barner --- .../org/fortiss/tooling/base/utils/.ratings | 2 +- .../tooling/base/utils/SystemUtils.java | 48 ++++++++++++++++--- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings index 1904c50d..386500d4 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings @@ -13,6 +13,6 @@ PointUtils.java b21c92cc8e80ece9d87ede8a750f4de314379743 GREEN PointsUtils.java bad69811c59004948929f6a57edd5a79c0bf8643 GREEN RectangleLayoutUtils.java cdd61d162761da7f3e1d3512264135b9b0d564ff GREEN SnapToGridUtils.java 413785d7a8655db31a129b6f821e1d5f859aa726 GREEN -SystemUtils.java bd40519b5e286f274f47815ccc8d320fd65c2c0a YELLOW +SystemUtils.java 622dd176fa0febc1e92845cb0f988e503cc30efb YELLOW VisualizationModelElementFactory.java 18e67450ee4cf4a03dc88a10becb0fb6ce4c1bad GREEN ZoomUtils.java a339613fde18281bed3b55b529a053d348545bc7 GREEN diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java index bd40519b..622dd176 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java @@ -26,37 +26,71 @@ import static java.util.UUID.randomUUID; */ public class SystemUtils { + /** Cache for {@link #isWindowsPlatform()}. */ + private static Boolean isWindowsPlatform = null; + + /** Cache for {@link #isLinuxPlatform()}. */ + private static Boolean isLinuxPlatform = null; + + /** Cache for {@link #isMacOSXPlatform()}. */ + private static Boolean isMacOSXPlatform = null; + + /** Cache for {@link #isVm64BitArch()}. */ + private static Boolean isVm64BitArch; + + /** Cache for {@link #isOs64BitArch()}. */ + private static Boolean isOs64BitArch; + /** Predicate if the current platform is Windows. */ public static boolean isWindowsPlatform() { + if(isWindowsPlatform != null) { + return isWindowsPlatform; + } String osName = System.getProperty("os.name"); - return osName != null && osName.contains("Windows"); + isWindowsPlatform = osName != null && osName.contains("Windows"); + + return isWindowsPlatform; } /** Predicate if the current platform is Linux. */ public static boolean isLinuxPlatform() { + if(isLinuxPlatform != null) { + return isLinuxPlatform; + } String osName = System.getProperty("os.name"); - return osName != null && osName.contains("Linux"); + isLinuxPlatform = osName != null && osName.contains("Linux"); + return isLinuxPlatform; } /** Predicate if the current platform is Mac OS X. */ public static boolean isMacOSXPlatform() { + if(isMacOSXPlatform != null) { + return isMacOSXPlatform; + } String osName = System.getProperty("os.name"); - return osName != null && osName.contains("Mac OS X."); + isMacOSXPlatform = osName != null && osName.contains("Mac OS X."); + return isMacOSXPlatform; } /** Predicate if the current Java VM architecture is 64 bit. */ public static boolean isVm64BitArch() { + if(isVm64BitArch != null) { + return isVm64BitArch; + } String osArch = System.getProperty("os.arch"); - return osArch != null && osArch.contains("64"); + isVm64BitArch = osArch != null && osArch.contains("64"); + return isVm64BitArch; } /** Predicate if the current OS architecture is 64 bit. */ public static boolean isOs64BitArch() { - if(isWindowsPlatform()) { - return System.getenv("ProgramFiles(x86)") != null; + if(isOs64BitArch != null) { + return isOs64BitArch; } - return isVm64BitArch(); + String progFilesX86 = System.getenv("ProgramFiles(x86)"); + isOs64BitArch = isWindowsPlatform() ? progFilesX86 != null : isVm64BitArch(); + return isOs64BitArch; } /** -- GitLab From 9cd63b868b12c828df94b846669ed09955ce6ffa Mon Sep 17 00:00:00 2001 From: Sudeep Kanav Date: Thu, 26 Apr 2018 11:17:08 +0200 Subject: [PATCH 6/7] corrected the check for Mac OS Issue-Ref: 2443 Signed-off-by: Sudeep Kanav --- .../src/org/fortiss/tooling/base/utils/.ratings | 2 +- .../src/org/fortiss/tooling/base/utils/SystemUtils.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings index 386500d4..85273197 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings @@ -13,6 +13,6 @@ PointUtils.java b21c92cc8e80ece9d87ede8a750f4de314379743 GREEN PointsUtils.java bad69811c59004948929f6a57edd5a79c0bf8643 GREEN RectangleLayoutUtils.java cdd61d162761da7f3e1d3512264135b9b0d564ff GREEN SnapToGridUtils.java 413785d7a8655db31a129b6f821e1d5f859aa726 GREEN -SystemUtils.java 622dd176fa0febc1e92845cb0f988e503cc30efb YELLOW +SystemUtils.java f7893a7db34a994534608bcbd7f214a701c5cf55 YELLOW VisualizationModelElementFactory.java 18e67450ee4cf4a03dc88a10becb0fb6ce4c1bad GREEN ZoomUtils.java a339613fde18281bed3b55b529a053d348545bc7 GREEN diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java index 622dd176..f7893a7d 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/SystemUtils.java @@ -68,7 +68,7 @@ public class SystemUtils { return isMacOSXPlatform; } String osName = System.getProperty("os.name"); - isMacOSXPlatform = osName != null && osName.contains("Mac OS X."); + isMacOSXPlatform = osName != null && osName.contains("Mac OS X"); return isMacOSXPlatform; } -- GitLab From 2cc7fa1151569de215e7cb142c1feee520149366 Mon Sep 17 00:00:00 2001 From: Hernan Ponce de Leon Date: Fri, 4 May 2018 15:49:56 +0200 Subject: [PATCH 7/7] [GREEN] Issue-Ref:2443 Signed-off-by:Hernan Ponce de Leon --- .../fortiss/tooling/base/ui/annotation/labelprovider/.ratings | 2 +- .../src/org/fortiss/tooling/base/ui/utils/.ratings | 2 +- .../src/org/fortiss/tooling/base/ui/viewers/.ratings | 2 +- .../src/org/fortiss/tooling/base/utils/.ratings | 2 +- .../src/org/fortiss/tooling/graphicsGL/ui/.ratings | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/.ratings index 12f9c64f..e37dad86 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/annotation/labelprovider/.ratings @@ -1,5 +1,5 @@ AnnotationLabelProvider.java ddebfc2bf2c8306884eb748c2c649ff0fe9c3d21 GREEN -CheckBoxLabelProvider.java 83f7216dfc05400c5b96aeba8c1add6a02f0eac5 YELLOW +CheckBoxLabelProvider.java 83f7216dfc05400c5b96aeba8c1add6a02f0eac5 GREEN ElementCommentLabelProvider.java 76aa6e9b930ce5680607852fd776172942c89ce5 GREEN ElementLabelProviderBase.java f33502f73033ebdf30316df627e8a9c87e7d1b28 GREEN ElementNameLabelProvider.java 897296ac8318b6dfdea9c50fc73aaeea23c2fffa GREEN diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings index 4c5b2078..e867c437 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/utils/.ratings @@ -3,7 +3,7 @@ ActionUtils.java f16dd179005f48c747d2c9cf250b05e7225495cf GREEN ConstraintsBaseUIUtils.java 50c26b90a6ebe6c7f7861092dac5ebc1f3fc0ce3 GREEN DragAndDropBaseUtils.java 4308b2151a7075adeb4f7e7246859d421150415b GREEN EllipseLayoutUIUtils.java 271e287f1e5befb03a9d115a98e22453056521e0 GREEN -FontUtils.java a167a05bdaa8da9853705cc5134f30f6d81bc9f2 YELLOW +FontUtils.java a167a05bdaa8da9853705cc5134f30f6d81bc9f2 GREEN GCStateManager.java 983973a92376b5c757c1253b32e33d0666ccdf7b GREEN LayoutDataUIUtils.java 8034bbb9f595092f56807525abcbf23fd5d01428 GREEN PropertiesViewUtils.java d345b4501c4092228edf1c98e0189317d53aaf22 GREEN diff --git a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/.ratings b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/.ratings index 21bdf096..9c8e533f 100644 --- a/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/.ratings +++ b/org.fortiss.tooling.base.ui/src/org/fortiss/tooling/base/ui/viewers/.ratings @@ -1,4 +1,4 @@ AbstractIntegerSpinnerEditingSupport.java 7391e5b0d8e10baf5ab2c7f9543ed732a23bbd9d GREEN CheckBoxEditingSupport.java 173a63ee86dc396946ddb625a41d48ffad23982f GREEN -CheckBoxLabelProvider.java 4eb2a54a17225da5a0f4f3a4212cde0c23d50d11 YELLOW +CheckBoxLabelProvider.java 4eb2a54a17225da5a0f4f3a4212cde0c23d50d11 GREEN IconNameLabelProvider.java f1700e0c8a86dfe6b10945ce84c2ac935ceab8e7 GREEN diff --git a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings index 85273197..2c43176d 100644 --- a/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings +++ b/org.fortiss.tooling.base/src/org/fortiss/tooling/base/utils/.ratings @@ -13,6 +13,6 @@ PointUtils.java b21c92cc8e80ece9d87ede8a750f4de314379743 GREEN PointsUtils.java bad69811c59004948929f6a57edd5a79c0bf8643 GREEN RectangleLayoutUtils.java cdd61d162761da7f3e1d3512264135b9b0d564ff GREEN SnapToGridUtils.java 413785d7a8655db31a129b6f821e1d5f859aa726 GREEN -SystemUtils.java f7893a7db34a994534608bcbd7f214a701c5cf55 YELLOW +SystemUtils.java f7893a7db34a994534608bcbd7f214a701c5cf55 GREEN VisualizationModelElementFactory.java 18e67450ee4cf4a03dc88a10becb0fb6ce4c1bad GREEN ZoomUtils.java a339613fde18281bed3b55b529a053d348545bc7 GREEN diff --git a/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/.ratings b/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/.ratings index e6a1806e..9d42d086 100644 --- a/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/.ratings +++ b/org.fortiss.tooling.graphicsGL.ui/src/org/fortiss/tooling/graphicsGL/ui/.ratings @@ -1 +1 @@ -ToolingGraphicsGLUIActivator.java 1775f5ee6932438fb7fe6cf15279a7595fdedb53 YELLOW +ToolingGraphicsGLUIActivator.java 1775f5ee6932438fb7fe6cf15279a7595fdedb53 GREEN -- GitLab