Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2015-09-18 13:47:18 +0000
committerPierre-Charles David2016-02-23 10:29:39 +0000
commitc530ac267dcf8e7779fbc06e4c710fa397d488b7 (patch)
tree4b624e24c473e9d9473b8d49727037d5ff43c675
parentc024e70ab53d41e7c8c2f4665999c6cad3be0d74 (diff)
downloadorg.eclipse.sirius-c530ac267dcf8e7779fbc06e4c710fa397d488b7.tar.gz
org.eclipse.sirius-c530ac267dcf8e7779fbc06e4c710fa397d488b7.tar.xz
org.eclipse.sirius-c530ac267dcf8e7779fbc06e4c710fa397d488b7.zip
[442268] Merge getKey() and getContextKey() into a single method
Merge the logic of AbstractCachedSVGFigure.getContextKey(), AbstractCachedSVGFigure.getKey() and SVGFigure.getKey() into a single equivalent getKey(Graphics) in SVGFigure. Bug: 442268 Change-Id: Icd06d8c494dedbda37e4518adfab5912bce6c738 Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/AbstractCachedSVGFigure.java29
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java17
-rw-r--r--plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGWorkspaceImageFigure.java2
3 files changed, 21 insertions, 27 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/AbstractCachedSVGFigure.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/AbstractCachedSVGFigure.java
index 08924c2824..2dbffa6397 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/AbstractCachedSVGFigure.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/AbstractCachedSVGFigure.java
@@ -14,7 +14,6 @@ import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.sirius.common.tools.api.util.StringUtil;
import org.eclipse.sirius.diagram.ui.tools.internal.figure.svg.ImageCache;
-import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
/**
@@ -29,27 +28,6 @@ public abstract class AbstractCachedSVGFigure extends SVGFigure {
*/
private static final ImageCache CACHE = new ImageCache();
- private String getContextKey(Graphics graphics) {
- // CHECKSTYLE:OFF
- int aaText = SWT.DEFAULT;
- try {
- aaText = graphics.getTextAntialias();
- } catch (Exception e) {
- // not supported
- }
- // CHECKSTYLE:ON
-
- StringBuilder result = new StringBuilder();
- result.append(aaText);
- result.append(AbstractCachedSVGFigure.SEPARATOR);
- Rectangle r = getClientArea();
- result.append(r.width);
- result.append(AbstractCachedSVGFigure.SEPARATOR);
- result.append(r.height);
-
- return result.toString();
- }
-
/**
* Get the image cached or create new one and cache it.
*
@@ -61,7 +39,7 @@ public abstract class AbstractCachedSVGFigure extends SVGFigure {
*/
@Override
protected Image getImage(Rectangle clientArea, Graphics graphics) {
- return getImage(getKey() + getContextKey(graphics), clientArea, graphics);
+ return getImage(this, clientArea, graphics);
}
/**
@@ -75,10 +53,11 @@ public abstract class AbstractCachedSVGFigure extends SVGFigure {
* the graphical context
* @return an image store in a cache
*/
- protected Image getImage(String key, Rectangle clientArea, Graphics graphics) {
+ private static Image getImage(SVGFigure fig, Rectangle clientArea, Graphics graphics) {
+ String key = fig.getKey(graphics);
Image result = AbstractCachedSVGFigure.CACHE.getIfPresent(key);
if (result == null) {
- result = render(this, clientArea, graphics);
+ result = render(fig, clientArea, graphics);
if (result != null) {
AbstractCachedSVGFigure.CACHE.put(key, result);
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java
index 8236dc97b9..4fd218695f 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java
@@ -29,6 +29,7 @@ import org.eclipse.sirius.diagram.ui.provider.Messages;
import org.eclipse.sirius.diagram.ui.tools.internal.figure.TransparentFigureGraphicsModifier;
import org.eclipse.sirius.diagram.ui.tools.internal.figure.svg.SVGUtils;
import org.eclipse.sirius.diagram.ui.tools.internal.figure.svg.SimpleImageTranscoder;
+import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.w3c.dom.Document;
@@ -205,12 +206,26 @@ public class SVGFigure extends Figure implements StyledFigure, ITransparentFigur
*
* @return The key corresponding to this BundleImageFigure.
*/
- protected String getKey() {
+ protected String getKey(Graphics graphics) {
+ int aaText = SWT.DEFAULT;
+ try {
+ aaText = graphics.getTextAntialias();
+ } catch (Exception e) {
+ // not supported
+ }
+
StringBuffer result = new StringBuffer();
result.append(getDocumentKey());
result.append(AbstractCachedSVGFigure.SEPARATOR);
result.append(getSiriusAlpha());
result.append(AbstractCachedSVGFigure.SEPARATOR);
+ result.append(aaText);
+ result.append(AbstractCachedSVGFigure.SEPARATOR);
+ Rectangle r = getClientArea();
+ result.append(r.width);
+ result.append(AbstractCachedSVGFigure.SEPARATOR);
+ result.append(r.height);
+
return result.toString();
}
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGWorkspaceImageFigure.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGWorkspaceImageFigure.java
index d22991b5d6..bb4095afa0 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGWorkspaceImageFigure.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGWorkspaceImageFigure.java
@@ -186,7 +186,7 @@ public class SVGWorkspaceImageFigure extends AbstractCachedSVGFigure implements
SVGWorkspaceImageFigure fig = new SVGWorkspaceImageFigure();
fig.updateImageURI(path);
fig.contentChanged();
- return fig.getImage(fig.getKey(), new Rectangle(0, 0, -1, -1), null);
+ return fig.getImage(new Rectangle(0, 0, -1, -1), null);
}
/**

Back to the top