Revision: 17898
          http://sourceforge.net/p/gate/code/17898
Author:   markagreenwood
Date:     2014-04-24 10:48:21 +0000 (Thu, 24 Apr 2014)
Log Message:
-----------
added 'The Duplicator' resource helper

Added Paths:
-----------
    gate/trunk/plugins/Developer_Tools/src/gate/creole/TheDuplicator.java
    
gate/trunk/plugins/Developer_Tools/src/gate/resources/img/svg/TheDuplicator.svg
    
gate/trunk/plugins/Developer_Tools/src/gate/resources/img/svg/TheDuplicatorIcon.java

Added: gate/trunk/plugins/Developer_Tools/src/gate/creole/TheDuplicator.java
===================================================================
--- gate/trunk/plugins/Developer_Tools/src/gate/creole/TheDuplicator.java       
                        (rev 0)
+++ gate/trunk/plugins/Developer_Tools/src/gate/creole/TheDuplicator.java       
2014-04-24 10:48:21 UTC (rev 17898)
@@ -0,0 +1,58 @@
+/*
+ * TheDuplicator.java
+ * 
+ * Copyright (c) 1995-2014, The University of Sheffield. See the file
+ * COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
+ * 
+ * This file is part of GATE (see http://gate.ac.uk/), and is free software,
+ * licenced under the GNU Library General Public License, Version 2, June 1991
+ * (in the distribution as file licence.html, and also available at
+ * http://gate.ac.uk/gate/licence.html).
+ * 
+ * Mark A. Greenwood, 24/4/2014
+ */
+package gate.creole;
+
+import gate.Factory;
+import gate.Resource;
+import gate.creole.metadata.AutoInstance;
+import gate.creole.metadata.CreoleResource;
+import gate.gui.MainFrame;
+import gate.gui.NameBearerHandle;
+import gate.gui.ResourceHelper;
+import gate.resources.img.svg.TheDuplicatorIcon;
+
+import java.awt.event.ActionEvent;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.UIManager;
+
+@SuppressWarnings("serial")
+@CreoleResource(tool = true, isPrivate = true, autoinstances = @AutoInstance, 
name = "The Duplicator")
+public class TheDuplicator extends ResourceHelper {
+
+  @Override
+  protected List<Action> buildActions(final NameBearerHandle handle) {
+    final MainFrame mf = MainFrame.getInstance();
+    int height =
+        mf.getFontMetrics(UIManager.getFont("MenuItem.font")).getHeight();
+    List<Action> rightClick = new ArrayList<Action>();
+    rightClick.add(new AbstractAction("Duplicate" , new 
TheDuplicatorIcon(height,height)
+    ) {
+      @Override
+      public void actionPerformed(ActionEvent e) {
+        try {
+          Resource r = (Resource)handle.getTarget();
+          Factory.duplicate(r);
+        }
+        catch (Exception ex) {
+          ex.printStackTrace();
+        }
+      }
+    });
+    return rightClick;
+  }
+}

Added: 
gate/trunk/plugins/Developer_Tools/src/gate/resources/img/svg/TheDuplicator.svg
===================================================================
--- 
gate/trunk/plugins/Developer_Tools/src/gate/resources/img/svg/TheDuplicator.svg 
                            (rev 0)
+++ 
gate/trunk/plugins/Developer_Tools/src/gate/resources/img/svg/TheDuplicator.svg 
    2014-04-24 10:48:21 UTC (rev 17898)
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/"; 
xmlns:cc="http://web.resource.org/cc/"; 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"; 
xmlns:svg="http://www.w3.org/2000/svg"; xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; 
xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"; 
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"; width="48px" 
height="48px" id="svg4198" sodipodi:version="0.32" inkscape:version="0.42.2" 
sodipodi:docbase="O:\Wikipedia\Template - Ambox" sodipodi:docname="Edit-copy 
08.svg">
+  <defs id="defs4200">
+    <linearGradient id="linearGradient15218">
+      <stop style="stop-color:#f0eff1;stop-opacity:1.0000000;" 
offset="0.00000000" id="stop15220"/>
+      <stop id="stop2269" offset="0.59928656" 
style="stop-color:#e8e6ea;stop-opacity:1.0000000;"/>
+      <stop id="stop2267" offset="0.82758623" 
style="stop-color:#ffffff;stop-opacity:1;"/>
+      <stop style="stop-color:#d6d3da;stop-opacity:1.0000000;" 
offset="1.0000000" id="stop15222"/>
+    </linearGradient>
+    <linearGradient id="linearGradient2259">
+      <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0" 
id="stop2261"/>
+      <stop style="stop-color:#ffffff;stop-opacity:0;" offset="1" 
id="stop2263"/>
+    </linearGradient>
+    <linearGradient id="linearGradient2224">
+      <stop style="stop-color:#7a7187;stop-opacity:1.0000000;" 
offset="0.00000000" id="stop2226"/>
+      <stop style="stop-color:#b7b2be;stop-opacity:1.0000000;" 
offset="1.0000000" id="stop2228"/>
+    </linearGradient>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient2224" 
id="linearGradient2230" x1="35.996582" y1="40.458221" x2="33.664921" 
y2="37.770721" gradientUnits="userSpaceOnUse" 
gradientTransform="translate(6.161836,4.033411)"/>
+    <linearGradient id="linearGradient2251">
+      <stop style="stop-color:#ffffff;stop-opacity:1;" offset="0" 
id="stop2253"/>
+      <stop style="stop-color:#ffffff;stop-opacity:0;" offset="1" 
id="stop2255"/>
+    </linearGradient>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient2251" 
id="linearGradient2257" x1="33.396004" y1="36.921333" x2="34.170048" 
y2="38.070381" gradientUnits="userSpaceOnUse" 
gradientTransform="translate(6.161836,3.658411)"/>
+    <linearGradient inkscape:collect="always" 
xlink:href="#linearGradient15218" id="linearGradient4258" 
gradientUnits="userSpaceOnUse" 
gradientTransform="matrix(1.065698,0.000000,0.000000,0.987595,-8.548320,-4.891713)"
 x1="22.308331" y1="18.992140" x2="35.785294" y2="39.498238"/>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient2259" 
id="linearGradient4260" gradientUnits="userSpaceOnUse" 
gradientTransform="matrix(0.998504,0.000000,0.000000,0.998246,-6.970391,-4.892901)"
 x1="26.076092" y1="26.696676" x2="30.811172" y2="42.007351"/>
+    <linearGradient inkscape:collect="always" xlink:href="#linearGradient2259" 
id="linearGradient13651" gradientUnits="userSpaceOnUse" 
gradientTransform="matrix(0.999421,0.000000,0.000000,1.000000,5.991319,4.033411)"
 x1="26.076092" y1="26.696676" x2="30.811172" y2="42.007351"/>
+    <linearGradient inkscape:collect="always" 
xlink:href="#linearGradient15218" id="linearGradient13653" 
gradientUnits="userSpaceOnUse" 
gradientTransform="matrix(1.067236,0.000000,0.000000,0.989276,4.391684,4.035227)"
 x1="22.308331" y1="18.992140" x2="35.785294" y2="39.498238"/>
+  </defs>
+  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#bebebe" 
borderopacity="1.0000000" inkscape:pageopacity="0.0" inkscape:pageshadow="2" 
inkscape:zoom="8.0416667" inkscape:cx="24.000000" inkscape:cy="24.000000" 
inkscape:current-layer="g4268" showgrid="false" inkscape:grid-bbox="true" 
inkscape:document-units="px" inkscape:window-width="800" 
inkscape:window-height="553" inkscape:window-x="-4" inkscape:window-y="-4" 
inkscape:showpageshadow="false"/>
+  <metadata id="metadata4203">
+    <rdf:RDF>
+      <cc:Work rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+        <dc:title>Edit Copy</dc:title>
+        <dc:date>2005-10-15</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Andreas Nilsson</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>edit</rdf:li>
+            <rdf:li>copy</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license 
rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/>
+        <dc:contributor>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:contributor>
+      </cc:Work>
+      <cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/";>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/>
+        <cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+        <cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g id="layer1" inkscape:label="Layer 1" inkscape:groupmode="layer">
+    <g id="g4268" style="opacity:1.0000000" 
transform="matrix(1.001508,0.000000,0.000000,1.000616,-5.002205e-2,-6.304895e-2)">
+      <rect y="34.033413" x="20.161837" height="2.0000000" width="13.000000" 
id="rect2279" 
style="opacity:0.17045452;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"/>
+      <rect ry="0.56615961" rx="0.56565511" y="1.5629303" x="1.5484408" 
height="35.976688" width="30.951559" id="rect4238" 
style="opacity:1.0000000;fill:url(#linearGradient4258);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#8b7d95;stroke-width:0.99893923;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"/>
+      <rect ry="0.0000000" rx="0.0000000" y="2.5605955" x="2.5325129" 
height="33.981056" width="28.970741" id="rect4240" 
style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient4260);stroke-width:0.99893963;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"/>
+      <rect y="10.033414" x="7.0161190" height="2.0000000" width="21.000000" 
id="rect4248" 
style="opacity:1.0000000;color:#000000;fill:#ada7b7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"/>
+      <rect 
style="opacity:1.0000000;color:#000000;fill:#ada7b7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
 id="rect4250" width="20.000000" height="2.0000000" x="7.0161190" 
y="14.033414"/>
+      <rect y="18.033415" x="7.0161190" height="2.0000000" width="18.000000" 
id="rect4252" 
style="opacity:1.0000000;color:#000000;fill:#ada7b7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"/>
+      <rect 
style="opacity:1.0000000;color:#000000;fill:#ada7b7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
 id="rect4254" width="21.000000" height="2.0000000" x="7.0161190" 
y="22.033415"/>
+      <rect y="26.033413" x="7.0161190" height="2.0000000" width="13.000000" 
id="rect4256" 
style="opacity:1.0000000;color:#000000;fill:#ada7b7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"/>
+    </g>
+    <g id="g12863" transform="translate(0.746114,-1.554371e-2)">
+      <path 
style="fill:url(#linearGradient13653);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#8b7d95;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000"
 d="M 15.072946,10.500852 L 44.929331,10.500852 C 45.245071,10.500852 
45.499257,10.753945 45.499257,11.068324 L 45.499257,38.235686 C 
45.499257,40.712138 38.619447,46.538773 36.231325,46.538773 L 
15.072946,46.538773 C 14.757206,46.538773 14.503020,46.285681 
14.503020,45.971300 L 14.503020,11.068324 C 14.503020,10.753945 
14.757206,10.500852 15.072946,10.500852 z " id="rect12413" 
sodipodi:nodetypes="ccccccccc"/>
+      <rect ry="0.00000000" rx="0.00000000" y="11.500000" x="15.502951" 
height="34.040764" width="28.997349" id="rect15244" 
style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient13651);stroke-width:1.0000008;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000"/>
+      <path sodipodi:nodetypes="cccc" id="path2210" d="M 36.220918,46.536966 C 
38.251336,46.866864 45.809711,42.007037 45.505329,38.039122 C 
43.942067,40.462219 40.746807,39.325860 36.638049,39.484870 C 
36.638049,39.484870 37.033418,46.036966 36.220918,46.536966 z " 
style="opacity:1.0000000;color:#000000;fill:url(#linearGradient2230);fill-opacity:1.0;fill-rule:evenodd;stroke:#8b7d95;stroke-width:1.0000002;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"/>
+      <path 
style="opacity:0.36931816;color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2257);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
 d="M 37.671355,44.345464 C 39.041134,43.661635 42.099604,42.198999 
43.398985,40.317995 C 41.802891,40.998050 40.451175,40.527491 
37.696651,40.508400 C 37.696651,40.508400 37.858973,43.570494 
37.671355,44.345464 z " id="path2247" sodipodi:nodetypes="cccc"/>
+      <rect y="19.033415" x="20.000000" height="2.0000000" width="21.000000" 
id="rect2271" 
style="opacity:1.0000000;color:#000000;fill:#ada7b7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"/>
+      <rect 
style="opacity:1.0000000;color:#000000;fill:#ada7b7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
 id="rect2273" width="19.992233" height="2.0000000" x="20.000000" 
y="23.033415"/>
+      <rect y="27.033415" x="20.000000" height="2.0000000" width="17.976702" 
id="rect2275" 
style="opacity:1.0000000;color:#000000;fill:#ada7b7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"/>
+      <rect 
style="opacity:1.0000000;color:#000000;fill:#ada7b7;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.00000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
 id="rect2277" width="21.000000" height="2.0000000" x="20.000000" 
y="31.033415"/>
+    </g>
+  </g>
+</svg>
\ No newline at end of file

Added: 
gate/trunk/plugins/Developer_Tools/src/gate/resources/img/svg/TheDuplicatorIcon.java
===================================================================
--- 
gate/trunk/plugins/Developer_Tools/src/gate/resources/img/svg/TheDuplicatorIcon.java
                                (rev 0)
+++ 
gate/trunk/plugins/Developer_Tools/src/gate/resources/img/svg/TheDuplicatorIcon.java
        2014-04-24 10:48:21 UTC (rev 17898)
@@ -0,0 +1,505 @@
+package gate.resources.img.svg;
+
+import java.awt.*;
+import java.awt.geom.*;
+import java.awt.image.*;
+
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import javax.imageio.ImageIO;
+
+/**
+ * This class has been automatically generated using <a
+ * 
href="http://englishjavadrinker.blogspot.com/search/label/SVGRoundTrip";>SVGRoundTrip</a>.
+ */
+@SuppressWarnings("unused")
+public class TheDuplicatorIcon implements
+               javax.swing.Icon {
+       /**
+        * Paints the transcoded SVG image on the specified graphics context. 
You
+        * can install a custom transformation on the graphics context to scale 
the
+        * image.
+        * 
+        * @param g
+        *            Graphics context.
+        */
+       public static void paint(Graphics2D g) {
+        Shape shape = null;
+        Paint paint = null;
+        Stroke stroke = null;
+        Area clip = null;
+         
+        float origAlpha = 1.0f;
+        Composite origComposite = g.getComposite();
+        if (origComposite instanceof AlphaComposite) {
+            AlphaComposite origAlphaComposite = 
+                (AlphaComposite)origComposite;
+            if (origAlphaComposite.getRule() == AlphaComposite.SRC_OVER) {
+                origAlpha = origAlphaComposite.getAlpha();
+            }
+        }
+        
+           Shape clip_ = g.getClip();
+AffineTransform defaultTransform_ = g.getTransform();
+//  is CompositeGraphicsNode
+float alpha__0 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0 = g.getClip();
+AffineTransform defaultTransform__0 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+clip = new Area(g.getClip());
+clip.intersect(new Area(new Rectangle2D.Double(0.0,0.0,48.0,48.0)));
+g.setClip(clip);
+// _0 is CompositeGraphicsNode
+float alpha__0_0 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0 = g.getClip();
+AffineTransform defaultTransform__0_0 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0 is CompositeGraphicsNode
+float alpha__0_0_0 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_0 = g.getClip();
+AffineTransform defaultTransform__0_0_0 = g.getTransform();
+g.transform(new AffineTransform(1.0015079975128174f, 0.0f, 0.0f, 
1.0006159543991089f, -0.050022050738334656f, -0.06304895132780075f));
+// _0_0_0 is CompositeGraphicsNode
+float alpha__0_0_0_0 = origAlpha;
+origAlpha = origAlpha * 0.17045452f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_0_0 = g.getClip();
+AffineTransform defaultTransform__0_0_0_0 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_0_0 is ShapeNode
+paint = new Color(0, 0, 0, 255);
+shape = new Rectangle2D.Double(20.161836624145508, 34.03341293334961, 13.0, 
2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_0_0;
+g.setTransform(defaultTransform__0_0_0_0);
+g.setClip(clip__0_0_0_0);
+float alpha__0_0_0_1 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_0_1 = g.getClip();
+AffineTransform defaultTransform__0_0_0_1 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_0_1 is ShapeNode
+paint = new LinearGradientPaint(new Point2D.Double(22.308330535888672, 
18.99213981628418), new Point2D.Double(35.78529357910156, 39.49823760986328), 
new float[] {0.0f,0.59928656f,0.82758623f,1.0f}, new Color[] {new Color(240, 
239, 241, 255),new Color(232, 230, 234, 255),new Color(255, 255, 255, 255),new 
Color(214, 211, 218, 255)}, MultipleGradientPaint.CycleMethod.NO_CYCLE, 
MultipleGradientPaint.ColorSpaceType.SRGB, new 
AffineTransform(1.0656980276107788f, 0.0f, 0.0f, 0.9875950217247009f, 
-8.548319816589355f, -4.8917131423950195f));
+shape = new RoundRectangle2D.Double(1.5484408140182495, 1.5629303455352783, 
30.95155906677246, 35.976688385009766, 1.131310224533081, 1.1323192119598389);
+g.setPaint(paint);
+g.fill(shape);
+paint = new Color(139, 125, 149, 255);
+stroke = new BasicStroke(0.9989392f,0,0,4.0f,null,0.0f);
+shape = new RoundRectangle2D.Double(1.5484408140182495, 1.5629303455352783, 
30.95155906677246, 35.976688385009766, 1.131310224533081, 1.1323192119598389);
+g.setPaint(paint);
+g.setStroke(stroke);
+g.draw(shape);
+origAlpha = alpha__0_0_0_1;
+g.setTransform(defaultTransform__0_0_0_1);
+g.setClip(clip__0_0_0_1);
+float alpha__0_0_0_2 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_0_2 = g.getClip();
+AffineTransform defaultTransform__0_0_0_2 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_0_2 is ShapeNode
+paint = new LinearGradientPaint(new Point2D.Double(26.076091766357422, 
26.69667625427246), new Point2D.Double(30.811172485351562, 42.00735092163086), 
new float[] {0.0f,1.0f}, new Color[] {new Color(255, 255, 255, 255),new 
Color(255, 255, 255, 0)}, MultipleGradientPaint.CycleMethod.NO_CYCLE, 
MultipleGradientPaint.ColorSpaceType.SRGB, new 
AffineTransform(0.9985039830207825f, 0.0f, 0.0f, 0.9982460141181946f, 
-6.970390796661377f, -4.8929009437561035f));
+stroke = new BasicStroke(0.99893963f,0,0,4.0f,null,0.0f);
+shape = new Rectangle2D.Double(2.532512903213501, 2.5605955123901367, 
28.970741271972656, 33.981056213378906);
+g.setPaint(paint);
+g.setStroke(stroke);
+g.draw(shape);
+origAlpha = alpha__0_0_0_2;
+g.setTransform(defaultTransform__0_0_0_2);
+g.setClip(clip__0_0_0_2);
+float alpha__0_0_0_3 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_0_3 = g.getClip();
+AffineTransform defaultTransform__0_0_0_3 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_0_3 is ShapeNode
+paint = new Color(173, 167, 183, 255);
+shape = new Rectangle2D.Double(7.016119003295898, 10.033413887023926, 21.0, 
2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_0_3;
+g.setTransform(defaultTransform__0_0_0_3);
+g.setClip(clip__0_0_0_3);
+float alpha__0_0_0_4 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_0_4 = g.getClip();
+AffineTransform defaultTransform__0_0_0_4 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_0_4 is ShapeNode
+paint = new Color(173, 167, 183, 255);
+shape = new Rectangle2D.Double(7.016119003295898, 14.033413887023926, 20.0, 
2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_0_4;
+g.setTransform(defaultTransform__0_0_0_4);
+g.setClip(clip__0_0_0_4);
+float alpha__0_0_0_5 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_0_5 = g.getClip();
+AffineTransform defaultTransform__0_0_0_5 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_0_5 is ShapeNode
+paint = new Color(173, 167, 183, 255);
+shape = new Rectangle2D.Double(7.016119003295898, 18.033414840698242, 18.0, 
2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_0_5;
+g.setTransform(defaultTransform__0_0_0_5);
+g.setClip(clip__0_0_0_5);
+float alpha__0_0_0_6 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_0_6 = g.getClip();
+AffineTransform defaultTransform__0_0_0_6 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_0_6 is ShapeNode
+paint = new Color(173, 167, 183, 255);
+shape = new Rectangle2D.Double(7.016119003295898, 22.033414840698242, 21.0, 
2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_0_6;
+g.setTransform(defaultTransform__0_0_0_6);
+g.setClip(clip__0_0_0_6);
+float alpha__0_0_0_7 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_0_7 = g.getClip();
+AffineTransform defaultTransform__0_0_0_7 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_0_7 is ShapeNode
+paint = new Color(173, 167, 183, 255);
+shape = new Rectangle2D.Double(7.016119003295898, 26.03341293334961, 13.0, 
2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_0_7;
+g.setTransform(defaultTransform__0_0_0_7);
+g.setClip(clip__0_0_0_7);
+origAlpha = alpha__0_0_0;
+g.setTransform(defaultTransform__0_0_0);
+g.setClip(clip__0_0_0);
+float alpha__0_0_1 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_1 = g.getClip();
+AffineTransform defaultTransform__0_0_1 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.7461140155792236f, 
-0.015543710440397263f));
+// _0_0_1 is CompositeGraphicsNode
+float alpha__0_0_1_0 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_1_0 = g.getClip();
+AffineTransform defaultTransform__0_0_1_0 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_1_0 is ShapeNode
+paint = new LinearGradientPaint(new Point2D.Double(22.308330535888672, 
18.99213981628418), new Point2D.Double(35.78529357910156, 39.49823760986328), 
new float[] {0.0f,0.59928656f,0.82758623f,1.0f}, new Color[] {new Color(240, 
239, 241, 255),new Color(232, 230, 234, 255),new Color(255, 255, 255, 255),new 
Color(214, 211, 218, 255)}, MultipleGradientPaint.CycleMethod.NO_CYCLE, 
MultipleGradientPaint.ColorSpaceType.SRGB, new 
AffineTransform(1.0672359466552734f, 0.0f, 0.0f, 0.9892759919166565f, 
4.391684055328369f, 4.035226821899414f));
+shape = new GeneralPath();
+((GeneralPath)shape).moveTo(15.072946, 10.500852);
+((GeneralPath)shape).lineTo(44.929333, 10.500852);
+((GeneralPath)shape).curveTo(45.24507, 10.500852, 45.499256, 10.753945, 
45.499256, 11.068324);
+((GeneralPath)shape).lineTo(45.499256, 38.235687);
+((GeneralPath)shape).curveTo(45.499256, 40.71214, 38.619446, 46.538773, 
36.231323, 46.538773);
+((GeneralPath)shape).lineTo(15.072946, 46.538773);
+((GeneralPath)shape).curveTo(14.757206, 46.538773, 14.50302, 46.285683, 
14.50302, 45.9713);
+((GeneralPath)shape).lineTo(14.50302, 11.068324);
+((GeneralPath)shape).curveTo(14.50302, 10.753945, 14.757206, 10.500852, 
15.072946, 10.500852);
+((GeneralPath)shape).closePath();
+g.setPaint(paint);
+g.fill(shape);
+paint = new Color(139, 125, 149, 255);
+stroke = new BasicStroke(1.0000002f,0,0,4.0f,null,0.0f);
+shape = new GeneralPath();
+((GeneralPath)shape).moveTo(15.072946, 10.500852);
+((GeneralPath)shape).lineTo(44.929333, 10.500852);
+((GeneralPath)shape).curveTo(45.24507, 10.500852, 45.499256, 10.753945, 
45.499256, 11.068324);
+((GeneralPath)shape).lineTo(45.499256, 38.235687);
+((GeneralPath)shape).curveTo(45.499256, 40.71214, 38.619446, 46.538773, 
36.231323, 46.538773);
+((GeneralPath)shape).lineTo(15.072946, 46.538773);
+((GeneralPath)shape).curveTo(14.757206, 46.538773, 14.50302, 46.285683, 
14.50302, 45.9713);
+((GeneralPath)shape).lineTo(14.50302, 11.068324);
+((GeneralPath)shape).curveTo(14.50302, 10.753945, 14.757206, 10.500852, 
15.072946, 10.500852);
+((GeneralPath)shape).closePath();
+g.setPaint(paint);
+g.setStroke(stroke);
+g.draw(shape);
+origAlpha = alpha__0_0_1_0;
+g.setTransform(defaultTransform__0_0_1_0);
+g.setClip(clip__0_0_1_0);
+float alpha__0_0_1_1 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_1_1 = g.getClip();
+AffineTransform defaultTransform__0_0_1_1 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_1_1 is ShapeNode
+paint = new LinearGradientPaint(new Point2D.Double(26.076091766357422, 
26.69667625427246), new Point2D.Double(30.811172485351562, 42.00735092163086), 
new float[] {0.0f,1.0f}, new Color[] {new Color(255, 255, 255, 255),new 
Color(255, 255, 255, 0)}, MultipleGradientPaint.CycleMethod.NO_CYCLE, 
MultipleGradientPaint.ColorSpaceType.SRGB, new 
AffineTransform(0.9994210004806519f, 0.0f, 0.0f, 1.0f, 5.991319179534912f, 
4.033411026000977f));
+stroke = new BasicStroke(1.0000008f,0,0,4.0f,null,0.0f);
+shape = new Rectangle2D.Double(15.502950668334961, 11.5, 28.99734878540039, 
34.04076385498047);
+g.setPaint(paint);
+g.setStroke(stroke);
+g.draw(shape);
+origAlpha = alpha__0_0_1_1;
+g.setTransform(defaultTransform__0_0_1_1);
+g.setClip(clip__0_0_1_1);
+float alpha__0_0_1_2 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_1_2 = g.getClip();
+AffineTransform defaultTransform__0_0_1_2 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_1_2 is ShapeNode
+paint = new LinearGradientPaint(new Point2D.Double(35.99658203125, 
40.458221435546875), new Point2D.Double(33.664920806884766, 
37.770721435546875), new float[] {0.0f,1.0f}, new Color[] {new Color(122, 113, 
135, 255),new Color(183, 178, 190, 255)}, 
MultipleGradientPaint.CycleMethod.NO_CYCLE, 
MultipleGradientPaint.ColorSpaceType.SRGB, new AffineTransform(1.0f, 0.0f, 
0.0f, 1.0f, 6.16183614730835f, 4.033411026000977f));
+shape = new GeneralPath();
+((GeneralPath)shape).moveTo(36.220917, 46.536964);
+((GeneralPath)shape).curveTo(38.251335, 46.866863, 45.80971, 42.00704, 
45.50533, 38.039124);
+((GeneralPath)shape).curveTo(43.942066, 40.46222, 40.746807, 39.32586, 
36.63805, 39.48487);
+((GeneralPath)shape).curveTo(36.63805, 39.48487, 37.033417, 46.036964, 
36.220917, 46.536964);
+((GeneralPath)shape).closePath();
+g.setPaint(paint);
+g.fill(shape);
+paint = new Color(139, 125, 149, 255);
+stroke = new BasicStroke(1.0000002f,0,0,4.0f,null,0.0f);
+shape = new GeneralPath();
+((GeneralPath)shape).moveTo(36.220917, 46.536964);
+((GeneralPath)shape).curveTo(38.251335, 46.866863, 45.80971, 42.00704, 
45.50533, 38.039124);
+((GeneralPath)shape).curveTo(43.942066, 40.46222, 40.746807, 39.32586, 
36.63805, 39.48487);
+((GeneralPath)shape).curveTo(36.63805, 39.48487, 37.033417, 46.036964, 
36.220917, 46.536964);
+((GeneralPath)shape).closePath();
+g.setPaint(paint);
+g.setStroke(stroke);
+g.draw(shape);
+origAlpha = alpha__0_0_1_2;
+g.setTransform(defaultTransform__0_0_1_2);
+g.setClip(clip__0_0_1_2);
+float alpha__0_0_1_3 = origAlpha;
+origAlpha = origAlpha * 0.36931816f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_1_3 = g.getClip();
+AffineTransform defaultTransform__0_0_1_3 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_1_3 is ShapeNode
+paint = new LinearGradientPaint(new Point2D.Double(33.39600372314453, 
36.92133331298828), new Point2D.Double(34.170047760009766, 38.07038116455078), 
new float[] {0.0f,1.0f}, new Color[] {new Color(255, 255, 255, 255),new 
Color(255, 255, 255, 0)}, MultipleGradientPaint.CycleMethod.NO_CYCLE, 
MultipleGradientPaint.ColorSpaceType.SRGB, new AffineTransform(1.0f, 0.0f, 
0.0f, 1.0f, 6.16183614730835f, 3.6584110260009766f));
+stroke = new BasicStroke(0.9999998f,0,0,4.0f,null,0.0f);
+shape = new GeneralPath();
+((GeneralPath)shape).moveTo(37.671356, 44.345463);
+((GeneralPath)shape).curveTo(39.041134, 43.661636, 42.099606, 42.198997, 
43.398987, 40.317993);
+((GeneralPath)shape).curveTo(41.80289, 40.99805, 40.451176, 40.527493, 
37.69665, 40.5084);
+((GeneralPath)shape).curveTo(37.69665, 40.5084, 37.858974, 43.570496, 
37.671356, 44.345463);
+((GeneralPath)shape).closePath();
+g.setPaint(paint);
+g.setStroke(stroke);
+g.draw(shape);
+origAlpha = alpha__0_0_1_3;
+g.setTransform(defaultTransform__0_0_1_3);
+g.setClip(clip__0_0_1_3);
+float alpha__0_0_1_4 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_1_4 = g.getClip();
+AffineTransform defaultTransform__0_0_1_4 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_1_4 is ShapeNode
+paint = new Color(173, 167, 183, 255);
+shape = new Rectangle2D.Double(20.0, 19.033414840698242, 21.0, 2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_1_4;
+g.setTransform(defaultTransform__0_0_1_4);
+g.setClip(clip__0_0_1_4);
+float alpha__0_0_1_5 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_1_5 = g.getClip();
+AffineTransform defaultTransform__0_0_1_5 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_1_5 is ShapeNode
+paint = new Color(173, 167, 183, 255);
+shape = new Rectangle2D.Double(20.0, 23.033414840698242, 19.992233276367188, 
2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_1_5;
+g.setTransform(defaultTransform__0_0_1_5);
+g.setClip(clip__0_0_1_5);
+float alpha__0_0_1_6 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_1_6 = g.getClip();
+AffineTransform defaultTransform__0_0_1_6 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_1_6 is ShapeNode
+paint = new Color(173, 167, 183, 255);
+shape = new Rectangle2D.Double(20.0, 27.033414840698242, 17.976701736450195, 
2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_1_6;
+g.setTransform(defaultTransform__0_0_1_6);
+g.setClip(clip__0_0_1_6);
+float alpha__0_0_1_7 = origAlpha;
+origAlpha = origAlpha * 1.0f;
+g.setComposite(AlphaComposite.getInstance(3, origAlpha));
+Shape clip__0_0_1_7 = g.getClip();
+AffineTransform defaultTransform__0_0_1_7 = g.getTransform();
+g.transform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+// _0_0_1_7 is ShapeNode
+paint = new Color(173, 167, 183, 255);
+shape = new Rectangle2D.Double(20.0, 31.033414840698242, 21.0, 2.0);
+g.setPaint(paint);
+g.fill(shape);
+origAlpha = alpha__0_0_1_7;
+g.setTransform(defaultTransform__0_0_1_7);
+g.setClip(clip__0_0_1_7);
+origAlpha = alpha__0_0_1;
+g.setTransform(defaultTransform__0_0_1);
+g.setClip(clip__0_0_1);
+origAlpha = alpha__0_0;
+g.setTransform(defaultTransform__0_0);
+g.setClip(clip__0_0);
+origAlpha = alpha__0;
+g.setTransform(defaultTransform__0);
+g.setClip(clip__0);
+g.setTransform(defaultTransform_);
+g.setClip(clip_);
+
+       }
+       
+       public Image getImage() {
+               BufferedImage image =
+            new BufferedImage(getIconWidth(), getIconHeight(),
+                    BufferedImage.TYPE_INT_ARGB);
+       Graphics2D g = image.createGraphics();
+       paintIcon(null, g, 0, 0);
+       g.dispose();
+       return image;
+       }
+
+    /**
+     * Returns the X of the bounding box of the original SVG image.
+     * 
+     * @return The X of the bounding box of the original SVG image.
+     */
+    public static int getOrigX() {
+        return 2;
+    }
+
+    /**
+     * Returns the Y of the bounding box of the original SVG image.
+     * 
+     * @return The Y of the bounding box of the original SVG image.
+     */
+    public static int getOrigY() {
+        return 2;
+    }
+
+       /**
+        * Returns the width of the bounding box of the original SVG image.
+        * 
+        * @return The width of the bounding box of the original SVG image.
+        */
+       public static int getOrigWidth() {
+               return 48;
+       }
+
+       /**
+        * Returns the height of the bounding box of the original SVG image.
+        * 
+        * @return The height of the bounding box of the original SVG image.
+        */
+       public static int getOrigHeight() {
+               return 48;
+       }
+
+       /**
+        * The current width of this resizable icon.
+        */
+       int width;
+
+       /**
+        * The current height of this resizable icon.
+        */
+       int height;
+
+       /**
+        * Creates a new transcoded SVG image.
+        */
+       public TheDuplicatorIcon() {
+        this.width = getOrigWidth();
+        this.height = getOrigHeight();
+       }
+       
+       /**
+        * Creates a new transcoded SVG image with the given dimensions.
+        *
+        * @param size the dimensions of the icon
+        */
+       public TheDuplicatorIcon(Dimension size) {
+       this.width = size.width;
+       this.height = size.width;
+       }
+
+       public TheDuplicatorIcon(int width, int height) {
+       this.width = width;
+       this.height = height;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see javax.swing.Icon#getIconHeight()
+        */
+    @Override
+       public int getIconHeight() {
+               return height;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see javax.swing.Icon#getIconWidth()
+        */
+    @Override
+       public int getIconWidth() {
+               return width;
+       }
+
+       public void setDimension(Dimension newDimension) {
+               this.width = newDimension.width;
+               this.height = newDimension.height;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see javax.swing.Icon#paintIcon(java.awt.Component, 
java.awt.Graphics,
+        * int, int)
+        */
+    @Override
+       public void paintIcon(Component c, Graphics g, int x, int y) {
+               Graphics2D g2d = (Graphics2D) g.create();
+               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+                               RenderingHints.VALUE_ANTIALIAS_ON);
+               g2d.translate(x, y);
+                                               
+               Area clip = new Area(new Rectangle(0, 0, this.width, 
this.height));             
+               if (g2d.getClip() != null) clip.intersect(new 
Area(g2d.getClip()));             
+               g2d.setClip(clip);
+
+               double coef1 = (double) this.width / (double) getOrigWidth();
+               double coef2 = (double) this.height / (double) getOrigHeight();
+               double coef = Math.min(coef1, coef2);
+               g2d.scale(coef, coef);
+               paint(g2d);
+               g2d.dispose();
+       }
+}
+

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Start Your Social Network Today - Download eXo Platform
Build your Enterprise Intranet with eXo Platform Software
Java Based Open Source Intranet - Social, Extensible, Cloud Ready
Get Started Now And Turn Your Intranet Into A Collaboration Platform
http://p.sf.net/sfu/ExoPlatform
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs

Reply via email to