From 1a44be5c441b1052efad3c61b93d4d92508a5a25 Mon Sep 17 00:00:00 2001 From: Simon Barner <barner@fortiss.org> Date: Mon, 26 Mar 2018 17:20:49 +0000 Subject: [PATCH] - Avoid leaking SWT colors refs 2709 --- .../base/ui/layout/auto/KielerAutoLayouter.java | 4 ++-- .../src/org/fortiss/tooling/base/ui/utils/.ratings | 2 +- .../fortiss/tooling/base/ui/utils/GCStateManager.java | 6 ++++-- .../src/org/fortiss/tooling/spiderchart/style/.ratings | 2 +- .../tooling/spiderchart/style/ColorStyleBase.java | 7 ------- .../src/org/fortiss/tooling/spiderchart/util/.ratings | 2 +- .../tooling/spiderchart/util/RGBColorUtils.java | 10 ---------- 7 files changed, 9 insertions(+), 24 deletions(-) diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/KielerAutoLayouter.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/KielerAutoLayouter.java index 02187fd04..fae8692ca 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/KielerAutoLayouter.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/layout/auto/KielerAutoLayouter.java @@ -28,7 +28,7 @@ import static de.cau.cs.kieler.klay.layered.properties.Properties.INTERACTIVE_RE import static java.lang.Math.max; import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_CONNECTOR_SIZE; import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_GRID_SIZE; -import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_SHAPE_MINIMUM_HEIGHT; +import static org.fortiss.tooling.base.layout.DefaultLayoutConstants.DEFAULT_SHAPE_MINIMUM_WIDTH; import static org.fortiss.tooling.base.ui.annotation.view.AnnotationViewPartBase.isUpdateEnabled; import static org.fortiss.tooling.base.ui.annotation.view.AnnotationViewPartBase.setUpdateEnabled; import static org.fortiss.tooling.base.ui.utils.LayoutDataUIUtils.addBendPointToConnection; @@ -329,7 +329,7 @@ public class KielerAutoLayouter implements IAutoLayouter { int numConnectors = max(inputConnectors.size(), outputConnectors.size()); kNodeLayout.setHeight(max((1 + 2 * numConnectors) * DEFAULT_CONNECTOR_SIZE, truncateSnap2Grid(dimension.getHeight(), true))); - kNodeLayout.setWidth(max(DEFAULT_SHAPE_MINIMUM_HEIGHT, + kNodeLayout.setWidth(max(DEFAULT_SHAPE_MINIMUM_WIDTH, truncateSnap2Grid(dimension.getWidth(), true))); kNode.setParent(rootNode); diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/utils/.ratings b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/utils/.ratings index ee6b767c7..fa8e3fbcb 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/utils/.ratings +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/utils/.ratings @@ -4,7 +4,7 @@ ConstraintsBaseUIUtils.java d52255cb76e1152e233dba67b9d764b443157054 GREEN DecorationIconUtils.java 77c435bc970b7ca2774a9eab9fc102f0f46698b3 GREEN DragAndDropBaseUtils.java c88f397ca7aa034247b3508ca0f70c24cde53a47 GREEN EllipseLayoutUIUtils.java d007669f0f284392345d94d3b17009bebd53e2ee GREEN -GCStateManager.java 58303cf3c9bb0f9178659c8baabad81c6d96e9a7 YELLOW +GCStateManager.java 414e62052a64a9b4514ebda23d64a17a370ea360 YELLOW LayoutDataUIUtils.java 0b2d3d1f47eef070c11b56fb7b332e0e49fa5a52 GREEN PropertiesViewUtils.java 009d390b8aa41bb79b45b1e09a3375d0374fa139 GREEN RectangleLayoutUIUtils.java b64f2f86b8254363689bf0809f681fc59a87a04a GREEN diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/utils/GCStateManager.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/utils/GCStateManager.java index 5de59dcb0..983973a92 100644 --- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/utils/GCStateManager.java +++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/utils/GCStateManager.java @@ -15,6 +15,8 @@ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.base.ui.utils; +import static org.eclipse.wb.swt.SWTResourceManager.getColor; + import java.util.Deque; import java.util.LinkedList; @@ -66,7 +68,7 @@ public final class GCStateManager { /** Stores the current foreground color and creates and activates the given color. */ public GCStateManager foregroundStoreAndCreate(RGB rgb) { state.push(gc.getForeground()); - gc.setForeground(new Color(Display.getCurrent(), rgb)); + gc.setForeground(getColor(rgb)); return this; } @@ -80,7 +82,7 @@ public final class GCStateManager { /** Stores the current background color and creates and activates the given color. */ public GCStateManager backgroundStoreAndCreate(RGB rgb) { state.push(gc.getBackground()); - gc.setBackground(new Color(Display.getCurrent(), rgb)); + gc.setBackground(getColor(rgb)); return this; } diff --git a/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/style/.ratings b/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/style/.ratings index 6097e7859..f5fa798f7 100644 --- a/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/style/.ratings +++ b/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/style/.ratings @@ -1,6 +1,6 @@ AxisStyle.java 08afd475d82f08acc926512637d136f7dc53da01 GREEN ChartStyle.java f5eb717f58603f62a6c65aee52d25168882ba77b GREEN -ColorStyleBase.java 3091975acd2e88e1c7e1faaf733c2d79ed11eaee GREEN +ColorStyleBase.java 5b7b6067b70bb2f740696c59d17127a3d2f18f7a YELLOW DataSeriesStyle.java facb27bc839a83057499b1ee982fd18ae1939ece GREEN FillStyle.java b3951ca3b29aa8c67ff01eccbaaa138e434c9382 GREEN FontStyle.java 24c20e5f4038855eb419d6f690e3c25f18b208bc GREEN diff --git a/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/style/ColorStyleBase.java b/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/style/ColorStyleBase.java index 397b184cc..b8e824b55 100644 --- a/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/style/ColorStyleBase.java +++ b/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/style/ColorStyleBase.java @@ -15,9 +15,7 @@ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.spiderchart.style; -import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.RGB; -import org.fortiss.tooling.spiderchart.util.RGBColorUtils; /** * Base class for styles with a single {@link RGB} color. @@ -37,9 +35,4 @@ public abstract class ColorStyleBase { public final RGB getRGBColor() { return rgbColor; } - - /** Creates the Color instance, which MUST be disposed after use. */ - public final Color createSWTColor() { - return RGBColorUtils.createSWTColor(rgbColor); - } } diff --git a/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/util/.ratings b/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/util/.ratings index 30cf2e643..0349ca393 100644 --- a/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/util/.ratings +++ b/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/util/.ratings @@ -1,3 +1,3 @@ AxisUtils.java 6bda56a8f065c0f61da3219fed969ec81550e0d5 GREEN FontUtils.java 45708694de3276761a926819d61d6b002fa21840 GREEN -RGBColorUtils.java 6aa3b43a72303eb61eac223f1b9634647ccba1d5 GREEN +RGBColorUtils.java 710fb18fbf1d7023ebe4330a43abc429e0c05e49 YELLOW diff --git a/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/util/RGBColorUtils.java b/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/util/RGBColorUtils.java index de5f1037c..2fc319ab0 100644 --- a/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/util/RGBColorUtils.java +++ b/org.fortiss.tooling.spiderchart.ui/trunk/src/org/fortiss/tooling/spiderchart/util/RGBColorUtils.java @@ -18,9 +18,7 @@ package org.fortiss.tooling.spiderchart.util; import static java.lang.Math.max; import static java.lang.Math.min; -import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.RGB; -import org.eclipse.swt.widgets.Display; /** * Utility class for handling colors with a set of commonly used colors. @@ -60,14 +58,6 @@ public final class RGBColorUtils { /** The RGB color navy. */ public static final RGB NAVY = new RGB(0, 0, 128); - /** - * Creates a {@link Color} from the given {@link RGB}, which MUST be disposed after finished - * using it. - */ - public static Color createSWTColor(RGB rgb) { - return new Color(Display.getCurrent(), rgb); - } - /** Returns the color, which is 10% brighter than the given color. */ public static RGB getBrighterColor(RGB color) { int percent = 10; -- GitLab