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