Commits

shemnon  committed e9a1e42

gradelize rough cut

  • Participants
  • Parent commits dc979e2

Comments (0)

Files changed (133)

File bugs/svg/SvgInWebView.java

-package svg;
-
-import javafx.application.Application;
-import javafx.scene.Scene;
-import javafx.scene.web.WebEngine;
-import javafx.scene.web.WebView;
-import javafx.stage.Stage;
-
-/**
- * @created 7/04/2013 
- */
-public class SvgInWebView extends Application {
-
-    public static void main(String[] args) {
-        launch(args);
-    }
-    
-    @Override public void start(Stage stage) throws Exception {
-        final WebView view = new WebView();
-        final WebEngine eng = view.getEngine();
-        
-        final double prefWidth = 175;
-        final double prefHeight = 175;
-        
-        final String[] images = new String[] {
-              "emblem-important.svg",
-              "error.svg",
-              "help-browser.svg"
-        };
-        
-        String imageHTML = "";
-        for (String svgImage : images) {
-            final String src = getClass().getResource(svgImage).toExternalForm();
-            imageHTML += "<img width=\"" + prefWidth + "\" height=\"" + prefHeight + "\" src=\"" + src + "\" />";
-            imageHTML += "<br/>";
-        }
-        
-        String content =
-        "<html>" +
-            "<body>" +
-                imageHTML +
-            "</body>" +
-        "</head>";
-                        
-        eng.loadContent(content);
-        
-        final Scene scene = new Scene(view);
-        stage.setWidth(200);
-        stage.setScene(scene);
-        stage.show();
-    }
-
-}

File bugs/svg/emblem-important.svg

-<?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://creativecommons.org/ns#"
-   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://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48"
-   height="48"
-   id="svg1800"
-   viewBox="0 0 48 48"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/emblems"
-   sodipodi:docname="emblem-important.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective17" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3101">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3103" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop3105" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3101"
-       id="radialGradient3107"
-       cx="17.3125"
-       cy="25.53125"
-       fx="17.3125"
-       fy="25.53125"
-       r="9.6875"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.351613,1.292803e-15,16.55413)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     fill="#edd400"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.20392157"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="66.140367"
-     inkscape:cy="14.79073"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:showpageshadow="false"
-     inkscape:window-width="872"
-     inkscape:window-height="818"
-     inkscape:window-x="370"
-     inkscape:window-y="30" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Emblem Important</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>emblem</rdf:li>
-            <rdf:li>photos</rdf:li>
-            <rdf:li>pictures</rdf:li>
-            <rdf:li>raw</rdf:li>
-            <rdf:li>jpeg</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.40909091;color:#000000;fill:url(#radialGradient3107);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.1053395;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="path3099"
-       sodipodi:cx="17.312500"
-       sodipodi:cy="25.531250"
-       sodipodi:rx="9.6875000"
-       sodipodi:ry="3.4062500"
-       d="M 27.000000 25.531250 A 9.6875000 3.4062500 0 1 1  7.6250000,25.531250 A 9.6875000 3.4062500 0 1 1  27.000000 25.531250 z"
-       transform="matrix(2.182912,0.000000,0.000000,2.182912,-13.50372,-14.35012)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#f57900;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#914900;stroke-width:0.98214942;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="path1650"
-       sodipodi:cx="24.130018"
-       sodipodi:cy="23.428040"
-       sodipodi:rx="22.008699"
-       sodipodi:ry="21.213203"
-       d="M 46.138718 23.428040 A 22.008699 21.213203 0 1 1  2.1213188,23.428040 A 22.008699 21.213203 0 1 1  46.138718 23.428040 z"
-       transform="matrix(0.944630,0.000000,0.000000,0.980053,1.504174,-1.556912)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#fcaf3e;stroke-width:0.98214942;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="path3392"
-       sodipodi:cx="24.130018"
-       sodipodi:cy="23.428040"
-       sodipodi:rx="22.008699"
-       sodipodi:ry="21.213203"
-       d="M 46.138718 23.428040 A 22.008699 21.213203 0 1 1  2.1213188,23.428040 A 22.008699 21.213203 0 1 1  46.138718 23.428040 z"
-       transform="matrix(0.914086,0.000000,0.000000,0.948364,2.380576,-0.905815)" />
-    <path
-       style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1224999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       d="M 21.464926,10.373268 C 21.336952,10.373268 21.230316,10.547762 21.230316,10.757175 L 22.295085,25.197999 C 22.295085,25.407412 22.401721,25.581906 22.529695,25.581907 C 22.529695,25.581907 23.370516,25.593810 24.063684,25.581907 C 24.292022,25.577986 24.361898,25.602219 24.568998,25.581907 C 25.262166,25.593810 26.102987,25.581907 26.102987,25.581907 C 26.230961,25.581907 26.337597,25.407412 26.337597,25.197999 L 27.402366,10.757175 C 27.402366,10.547762 27.295730,10.402799 27.167755,10.402799 L 24.587044,10.402799 C 24.577532,10.400862 24.578842,10.373268 24.568998,10.373268 L 21.464926,10.373268 z "
-       id="rect1872" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1224999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="path2062"
-       sodipodi:cx="-16.437500"
-       sodipodi:cy="34.062500"
-       sodipodi:rx="4.5625000"
-       sodipodi:ry="3.8125000"
-       d="M -11.875000 34.062500 A 4.5625000 3.8125000 0 1 1  -21.000000,34.062500 A 4.5625000 3.8125000 0 1 1  -11.875000 34.062500 z"
-       transform="matrix(0.504864,0.000000,0.000000,0.604182,32.65935,9.608845)" />
-    <path
-       style="fill:#fffeff;fill-opacity:0.21390374;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       d="M 43.676426,20.476780 C 43.676426,31.307396 37.624257,16.170581 25.001688,20.863168 C 12.279172,25.592912 4.4350535,31.307396 4.4350535,20.476780 C 4.4350535,9.6461627 13.225120,0.85609769 24.055740,0.85609769 C 34.886359,0.85609769 43.676426,9.6461627 43.676426,20.476780 z "
-       id="path3068"
-       sodipodi:nodetypes="czssc" />
-  </g>
-</svg>

File bugs/svg/help-browser.svg

-<?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://creativecommons.org/ns#"
-   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://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg6361"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/apps"
-   sodipodi:docname="help-browser.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective23" />
-    <linearGradient
-       id="linearGradient2431">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2433" />
-      <stop
-         style="stop-color:#b8b8b8;stop-opacity:1;"
-         offset="1"
-         id="stop2435" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient21644">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop21646" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop21648" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient21644"
-       id="radialGradient21650"
-       cx="25.125"
-       cy="36.75"
-       fx="25.125"
-       fy="36.75"
-       r="15.75"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.595238,3.369686e-16,14.87500)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient2933">
-      <stop
-         id="stop2935"
-         offset="0"
-         style="stop-color:#9cbcde;stop-opacity:1" />
-      <stop
-         id="stop2937"
-         offset="1"
-         style="stop-color:#204a87" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2933"
-       id="radialGradient2207"
-       cx="26.544321"
-       cy="28.458725"
-       fx="26.544321"
-       fy="28.458725"
-       r="22.376116"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.238342,5.954846e-3,-6.507762e-3,1.351272,-6.992513,-9.744842)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2431"
-       id="radialGradient2437"
-       cx="-19.515638"
-       cy="16.855663"
-       fx="-19.515638"
-       fy="16.855663"
-       r="8.7536434"
-       gradientTransform="matrix(4.445991,-8.852599e-16,1.367217e-15,6.8665,67.25071,-104.6679)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:guide-bbox="true"
-     showguides="true"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.15294118"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="25.160747"
-     inkscape:cy="22.523569"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1014"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false"
-     fill="#deb887"
-     stroke="#204a87">
-    <inkscape:grid
-       id="GridFromPre046Settings"
-       type="xygrid"
-       originx="0px"
-       originy="0px"
-       spacingx="1px"
-       spacingy="1px"
-       color="#7171cd"
-       empcolor="#7b7bc3"
-       opacity="0.12156863"
-       empopacity="0.5372549"
-       empspacing="10"
-       visible="true"
-       enabled="true" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata4">
-    <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>Help Browser</dc:title>
-        <dc:date>2005-11-06</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Tuomas Kuosmanen</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>help</rdf:li>
-            <rdf:li>browser</rdf:li>
-            <rdf:li>documentation</rdf:li>
-            <rdf:li>docs</rdf:li>
-            <rdf:li>man</rdf:li>
-            <rdf:li>info</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner, Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-        <dc:source>http://tigert.com</dc:source>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.63068181;color:#000000;fill:url(#radialGradient21650);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;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="path21642"
-       sodipodi:cx="25.125000"
-       sodipodi:cy="36.750000"
-       sodipodi:rx="15.750000"
-       sodipodi:ry="9.3750000"
-       d="M 40.875000 36.750000 A 15.750000 9.3750000 0 1 1  9.3750000,36.750000 A 15.750000 9.3750000 0 1 1  40.875000 36.750000 z"
-       transform="matrix(1.173803,0.000000,0.000000,0.600000,-5.004403,20.32500)" />
-    <path
-       sodipodi:type="arc"
-       style="fill:url(#radialGradient2207);fill-opacity:1.0000000;stroke:#204a87"
-       id="path2093"
-       sodipodi:cx="23.909048"
-       sodipodi:cy="23.825787"
-       sodipodi:rx="21.876116"
-       sodipodi:ry="21.876116"
-       d="M 45.785164 23.825787 A 21.876116 21.876116 0 1 1  2.0329323,23.825787 A 21.876116 21.876116 0 1 1  45.785164 23.825787 z"
-       transform="matrix(0.938442,0.000000,0.000000,0.938680,1.564075,1.633906)" />
-    <path
-       transform="matrix(0.855103,0.000000,0.000000,0.855213,3.555288,3.625019)"
-       d="M 45.785164 23.825787 A 21.876116 21.876116 0 1 1  2.0329323,23.825787 A 21.876116 21.876116 0 1 1  45.785164 23.825787 z"
-       sodipodi:ry="21.876116"
-       sodipodi:rx="21.876116"
-       sodipodi:cy="23.825787"
-       sodipodi:cx="23.909048"
-       id="path2209"
-       style="fill:none;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:3.0307744;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;opacity:0.96022727"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:type="inkscape:offset"
-       inkscape:radius="0.13495015"
-       inkscape:original="M -20.25 6 C -21.298341 6.000026 -22.372769 6.1244771 -23.5 6.34375 C -24.627244 6.563073 -25.886043 6.8832479 -27.25 7.34375 L -27.25 12.5 C -26.100219 11.776335 -24.997109 11.236862 -23.9375 10.875 C -22.877902 10.502213 -21.881822 10.312521 -20.96875 10.3125 C -19.999334 10.312521 -19.259834 10.530174 -18.71875 10.96875 C -18.177686 11.396402 -17.906262 12.013726 -17.90625 12.78125 C -17.906261 13.285654 -18.039408 13.776881 -18.34375 14.28125 C -18.636843 14.785651 -19.107484 15.33609 -19.75 15.90625 L -20.84375 16.84375 C -22.038631 17.918325 -22.815518 18.829509 -23.1875 19.53125 C -23.559495 20.22205 -23.750005 21.007137 -23.75 21.90625 L -23.75 22.71875 L -17.65625 22.71875 L -17.65625 21.96875 C -17.656262 21.475338 -17.517981 21.030712 -17.28125 20.625 C -17.044542 20.208345 -16.547785 19.648586 -15.78125 18.96875 L -14.71875 18.03125 C -13.659161 17.055386 -12.908389 16.156813 -12.46875 15.3125 C -12.029144 14.457253 -11.781268 13.480828 -11.78125 12.40625 C -11.781268 10.311973 -12.525902 8.7417969 -13.96875 7.65625 C -15.41163 6.559783 -17.499549 6.0000261 -20.25 6 z M -23.75 25.15625 L -23.75 31 L -17.65625 31 L -17.65625 25.15625 L -23.75 25.15625 z "
-       xlink:href="#text2215"
-       style="font-size:34.15322876px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:url(#radialGradient2437);fill-opacity:1;stroke:#ffffff;stroke-width:1.09947276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.78612713;font-family:Bitstream Vera Sans"
-       id="path1554"
-       d="M -20.25,5.875 C -21.309019,5.8750263 -22.397637,5.9982356 -23.53125,6.21875 C -24.664175,6.4391783 -25.911412,6.7562625 -27.28125,7.21875 C -27.291632,7.21754 -27.302118,7.21754 -27.3125,7.21875 C -27.324563,7.2273788 -27.335121,7.237937 -27.34375,7.25 C -27.355813,7.2586288 -27.366371,7.269187 -27.375,7.28125 C -27.37621,7.2916315 -27.37621,7.3021185 -27.375,7.3125 C -27.37621,7.3228815 -27.37621,7.3333685 -27.375,7.34375 L -27.375,12.5 C -27.37621,12.510382 -27.37621,12.520868 -27.375,12.53125 C -27.37621,12.541632 -27.37621,12.552118 -27.375,12.5625 C -27.366371,12.574563 -27.355813,12.585121 -27.34375,12.59375 C -27.335121,12.605813 -27.324563,12.616371 -27.3125,12.625 C -27.302118,12.62621 -27.291632,12.62621 -27.28125,12.625 C -27.270868,12.62621 -27.260382,12.62621 -27.25,12.625 C -27.239618,12.62621 -27.229132,12.62621 -27.21875,12.625 C -27.208368,12.62621 -27.197882,12.62621 -27.1875,12.625 C -26.045062,11.905957 -24.954148,11.357862 -23.90625,11 C -22.858109,10.631244 -21.863134,10.437521 -20.96875,10.4375 C -20.019532,10.437521 -19.323825,10.648045 -18.8125,11.0625 C -18.303777,11.46459 -18.031262,12.04554 -18.03125,12.78125 C -18.03126,13.261907 -18.175438,13.73266 -18.46875,14.21875 C -18.751741,14.705766 -19.209015,15.249245 -19.84375,15.8125 L -20.9375,16.75 C -22.138959,17.83049 -22.926743,18.741022 -23.3125,19.46875 C -23.695613,20.180196 -23.875005,20.988074 -23.875,21.90625 L -23.875,22.71875 C -23.87621,22.729132 -23.87621,22.739618 -23.875,22.75 C -23.87621,22.760382 -23.87621,22.770868 -23.875,22.78125 C -23.866371,22.793313 -23.855813,22.803871 -23.84375,22.8125 C -23.835121,22.824563 -23.824563,22.835121 -23.8125,22.84375 C -23.802118,22.84496 -23.791632,22.84496 -23.78125,22.84375 C -23.770868,22.84496 -23.760382,22.84496 -23.75,22.84375 L -17.65625,22.84375 C -17.645868,22.84496 -17.635382,22.84496 -17.625,22.84375 C -17.614618,22.84496 -17.604132,22.84496 -17.59375,22.84375 C -17.581687,22.835121 -17.571129,22.824563 -17.5625,22.8125 C -17.550437,22.803871 -17.539879,22.793313 -17.53125,22.78125 C -17.53004,22.770868 -17.53004,22.760382 -17.53125,22.75 C -17.53004,22.739618 -17.53004,22.729132 -17.53125,22.71875 L -17.53125,21.96875 C -17.531261,21.500554 -17.38288,21.075901 -17.15625,20.6875 C -16.933955,20.296216 -16.448177,19.737141 -15.6875,19.0625 L -14.625,18.125 C -13.558412,17.14269 -12.794341,16.240346 -12.34375,15.375 C -11.894481,14.500954 -11.656268,13.50158 -11.65625,12.40625 C -11.656268,10.279985 -12.400019,8.6722224 -13.875,7.5625 C -15.350197,6.4414748 -17.48124,5.8750263 -20.25,5.875 z M -23.8125,25.03125 C -23.824563,25.039879 -23.835121,25.050437 -23.84375,25.0625 C -23.855813,25.071129 -23.866371,25.081687 -23.875,25.09375 C -23.87621,25.104132 -23.87621,25.114618 -23.875,25.125 C -23.87621,25.135382 -23.87621,25.145868 -23.875,25.15625 L -23.875,31 C -23.87621,31.010382 -23.87621,31.020868 -23.875,31.03125 C -23.87621,31.041632 -23.87621,31.052118 -23.875,31.0625 C -23.866371,31.074563 -23.855813,31.085121 -23.84375,31.09375 C -23.835121,31.105813 -23.824563,31.116371 -23.8125,31.125 C -23.802118,31.12621 -23.791632,31.12621 -23.78125,31.125 C -23.770868,31.12621 -23.760382,31.12621 -23.75,31.125 L -17.65625,31.125 C -17.645868,31.12621 -17.635382,31.12621 -17.625,31.125 C -17.614618,31.12621 -17.604132,31.12621 -17.59375,31.125 C -17.581687,31.116371 -17.571129,31.105813 -17.5625,31.09375 C -17.550437,31.085121 -17.539879,31.074563 -17.53125,31.0625 C -17.53004,31.052118 -17.53004,31.041632 -17.53125,31.03125 C -17.53004,31.020868 -17.53004,31.010382 -17.53125,31 L -17.53125,25.15625 C -17.53004,25.145868 -17.53004,25.135382 -17.53125,25.125 C -17.53004,25.114618 -17.53004,25.104132 -17.53125,25.09375 C -17.539879,25.081687 -17.550437,25.071129 -17.5625,25.0625 C -17.571129,25.050437 -17.581687,25.039879 -17.59375,25.03125 C -17.604132,25.03004 -17.614618,25.03004 -17.625,25.03125 C -17.635382,25.03004 -17.645868,25.03004 -17.65625,25.03125 L -23.75,25.03125 C -23.760382,25.03004 -23.770868,25.03004 -23.78125,25.03125 C -23.791632,25.03004 -23.802118,25.03004 -23.8125,25.03125 z "
-       transform="matrix(0.849895,0,0,0.835205,41.72981,8.548327)" />
-  </g>
-</svg>

File build.gradle

+apply plugin: 'java'
+apply plugin: 'maven'
+
+group = 'org.controlsfx'
+version = '0.0'
+
+sourceSets {
+    samples {
+        java {
+            compileClasspath += main.output
+            runtimeClasspath += main.output
+        }
+    }
+}
+
+configurations {
+    samples.extendsFrom mainRuntime
+}
+
+dependencies {
+    compile files("${System.properties['java.home']}/lib/jfxrt.jar") // for 1.7 builds
+}
+
+task jarSamples (type: Jar) {
+    classifier='samples'
+    from sourceSets.samples.output
+}
+
+artifacts {
+    archives jar
+    archives jarSamples
+}
+
+['HelloDialog', 'HelloGridView', 'HelloRangeSlider', 'HelloRating', 'HelloSegmentedButton', 'HelloToggleSwitch', 'SVGTest'].each { name ->
+    task "$name" (type: JavaExec) {
+        main = "org.controlsfx.samples.$name"
+        classpath = sourceSets.samples.runtimeClasspath
+    }
+}

File samples/org/controlsfx/samples/HelloGridView.java

-package org.controlsfx.samples;
-
-import java.util.Random;
-
-import javafx.application.Application;
-import javafx.collections.FXCollections;
-import javafx.collections.ObservableList;
-import javafx.scene.Scene;
-import javafx.scene.layout.BorderPane;
-import javafx.scene.layout.StackPane;
-import javafx.scene.paint.Color;
-import javafx.stage.Stage;
-import javafx.util.Callback;
-
-import org.controlsfx.control.GridCell;
-import org.controlsfx.control.GridView;
-import org.controlsfx.control.cell.ColorGridCell;
-
-public class HelloGridView extends Application {
-
-    private GridView<Color> myGrid;
-    
-    public static void main(String[] args) {
-        launch();
-    }
-
-    @Override
-    public void start(Stage primaryStage) throws Exception {
-        primaryStage.setTitle("GridView");
-        
-        final ObservableList<Color> list = FXCollections.<Color>observableArrayList();
-        myGrid = new GridView<>(list);
-        myGrid.setCellFactory(new Callback<GridView<Color>, GridCell<Color>>() {
-            @Override public GridCell<Color> call(GridView<Color> arg0) {
-                return new ColorGridCell();
-            }
-        });
-        Random r = new Random(System.currentTimeMillis());
-        for(int i = 0; i < 500; i++) {
-            list.add(new Color(r.nextDouble(), r.nextDouble(), r.nextDouble(), 1.0));
-        }
-
-        final StackPane root = new StackPane(myGrid);
-        Scene scene = new Scene(root, 540, 210);
-        primaryStage.setScene(scene);
-        primaryStage.show();
-    }
-}

File samples/org/controlsfx/samples/HelloRangeSlider.java

-package org.controlsfx.samples;
-
-import javafx.application.Application;
-import javafx.geometry.Insets;
-import javafx.geometry.Orientation;
-import javafx.scene.Scene;
-import javafx.scene.control.TextField;
-import javafx.scene.layout.HBox;
-import javafx.scene.layout.Region;
-import javafx.scene.layout.VBox;
-import javafx.scene.paint.Color;
-import javafx.stage.Stage;
-
-import org.controlsfx.control.RangeSlider;
-
-public class HelloRangeSlider extends Application {
-    
-    public static void main(String[] args) {
-        launch(args);
-    }
-    
-    @Override public void start(Stage stage) {
-        setUserAgentStylesheet(STYLESHEET_CASPIAN);
-        stage.setTitle("RangeSlider Demo");
-
-        VBox root = new VBox(15);
-        
-        Region horizontalRangeSlider = createHorizontalSlider();
-        Region verticalRangeSlider = createVerticalSlider();
-        root.getChildren().addAll(horizontalRangeSlider, verticalRangeSlider);
-        Scene scene = new Scene(root, 520, 360);
-
-        stage.setScene(scene);
-        stage.show();
-    }
-    
-    Region createHorizontalSlider() {
-        final TextField minField = new TextField();
-        minField.setPrefColumnCount(5);
-        final TextField maxField = new TextField();
-        maxField.setPrefColumnCount(5);
-
-        final RangeSlider hSlider = new RangeSlider(0, 100, 10, 90);
-        hSlider.setShowTickMarks(true);
-        hSlider.setShowTickLabels(true);
-        hSlider.setBlockIncrement(10);
-        hSlider.setPrefWidth(200);
-
-        minField.setText("" + hSlider.getLowValue());
-        maxField.setText("" + hSlider.getHighValue());
-
-        minField.setEditable(false);
-        minField.setPromptText("Min");
-
-        maxField.setEditable(false);
-        maxField.setPromptText("Max");
-
-        minField.textProperty().bind(hSlider.lowValueProperty().asString("%.2f"));
-        maxField.textProperty().bind(hSlider.highValueProperty().asString("%.2f"));
-
-        HBox box = new HBox(10);
-        box.getChildren().addAll(minField, hSlider, maxField);
-        box.setPadding(new Insets(20,0,0,20));
-        box.setFillHeight(false);
-
-        return box;
-    }
-    
-    
-    Region createVerticalSlider() {
-        final TextField minField = new TextField();
-        minField.setPrefColumnCount(5);
-        final TextField maxField = new TextField();
-        maxField.setPrefColumnCount(5);
-
-        final RangeSlider vSlider = new RangeSlider(0, 200, 30, 150);
-        vSlider.setOrientation(Orientation.VERTICAL);
-        vSlider.setPrefHeight(200);
-        vSlider.setBlockIncrement(10);
-        vSlider.setShowTickMarks(true);
-        vSlider.setShowTickLabels(true);
-
-        minField.setText("" + vSlider.getLowValue());
-        maxField.setText("" + vSlider.getHighValue());
-
-        minField.setEditable(false);
-        minField.setPromptText("Min");
-
-        maxField.setEditable(false);
-        maxField.setPromptText("Max");
-
-        minField.textProperty().bind(vSlider.lowValueProperty().asString("%.2f"));
-        maxField.textProperty().bind(vSlider.highValueProperty().asString("%.2f"));
-
-        VBox box = new VBox(10);
-        box.setPadding(new Insets(0,0,0, 20));
-//        box.setAlignment(Pos.CENTER);
-        box.setFillWidth(false);
-        box.getChildren().addAll(minField, vSlider, maxField);
-        return box;
-    }
-    
-}

File samples/org/controlsfx/samples/HelloRating.java

-package org.controlsfx.samples;
-
-import javafx.application.Application;
-import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
-import javafx.collections.FXCollections;
-import javafx.geometry.Insets;
-import javafx.geometry.Orientation;
-import javafx.scene.Scene;
-import javafx.scene.control.CheckBox;
-import javafx.scene.control.ChoiceBox;
-import javafx.scene.layout.HBox;
-import javafx.scene.layout.VBox;
-import javafx.stage.Stage;
-
-import org.controlsfx.control.Rating;
-
-public class HelloRating extends Application {
-    
-    public static void main(String[] args) {
-        launch(args);
-    }
-    
-    @Override public void start(Stage stage) {
-        stage.setTitle("Rating Demo");
-
-        VBox root = new VBox(20);
-        root.setPadding(new Insets(30, 30, 30, 30));
-        final Rating rating = new Rating();
-        
-        // controls, row 1
-        HBox controls_row1 = new HBox(5);
-        ChoiceBox<Orientation> orientation = new ChoiceBox<Orientation>(FXCollections.observableArrayList(Orientation.values()));
-        orientation.getSelectionModel().select(Orientation.HORIZONTAL);
-        rating.orientationProperty().bind(orientation.getSelectionModel().selectedItemProperty());
-        
-        ChoiceBox<Double> ratingValue = new ChoiceBox<Double>(FXCollections.observableArrayList(0D, 1D, 2D, 3D, 4D, 5D, 6D, 7D, 8D, 9D, 10D));
-        ratingValue.getSelectionModel().select(rating.getRating());
-//        rating.ratingProperty().bind(ratingValue.getSelectionModel().selectedItemProperty());
-        
-        ChoiceBox<Integer> maxValue = new ChoiceBox<Integer>(FXCollections.observableArrayList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
-        maxValue.getSelectionModel().select(rating.getMax());
-        rating.maxProperty().bind(maxValue.getSelectionModel().selectedItemProperty());
-        
-        controls_row1.getChildren().addAll(orientation, ratingValue, maxValue);
-        
-        // controls, row 2
-        CheckBox partialRating = new CheckBox("Allow partial ratings");
-        partialRating.selectedProperty().bindBidirectional(rating.partialRatingProperty());
-        
-        // controls, row 3
-        CheckBox updateOnHover = new CheckBox("Update rating on hover");
-        updateOnHover.selectedProperty().bindBidirectional(rating.updateOnHoverProperty());
-        
-        root.getChildren().addAll(controls_row1, partialRating, updateOnHover, rating);
-        
-        rating.ratingProperty().addListener(new ChangeListener<Number>() {
-            @Override public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
-                System.out.println("Rating = " + t1);
-            }
-        });
-        
-        Scene scene = new Scene(root, 520, 360);
-
-        stage.setScene(scene);
-        stage.show();
-    }
-}

File samples/org/controlsfx/samples/HelloSegmentedButton.java

-package org.controlsfx.samples;
-
-import javafx.application.Application;
-import javafx.geometry.Insets;
-import javafx.scene.Scene;
-import javafx.scene.control.Button;
-import javafx.scene.control.ToggleButton;
-import javafx.scene.layout.HBox;
-import javafx.stage.Stage;
-
-import org.controlsfx.control.SegmentedButton;
-
-public class HelloSegmentedButton extends Application {
-    
-    @Override
-    public void start(Stage stage) throws Exception {
-        stage.setTitle("SegmentedButton Demo");
-        ToggleButton b1 = new ToggleButton("day");
-        ToggleButton b2 = new ToggleButton("week");
-        ToggleButton b3 = new ToggleButton("month");
-        ToggleButton b4 = new ToggleButton("year");
-        
-        SegmentedButton pillBox = new SegmentedButton();    
-        pillBox.getButtons().addAll(b1, b2, b3, b4);
-        Button b = new Button("Submit");
-
-        HBox container = new HBox(20);
-        container.setPadding(new Insets(30, 30, 0, 30));
-        container.getChildren().addAll(pillBox);
-        
-        Scene scene = new Scene(container, 350, 150);
-        scene.getStylesheets().addAll(SegmentedButton.class.getResource("segmentedbutton.css").toExternalForm());
-        stage.setScene(scene);
-        stage.show();
-    }
-    
-    public static void main(String[] args) {
-        launch(args);
-    }
-    
-}

File samples/org/controlsfx/samples/HelloToggleSwitch.java

-package org.controlsfx.samples;
-
-import javafx.application.Application;
-import javafx.scene.Group;
-import javafx.scene.Scene;
-import javafx.scene.paint.Color;
-import javafx.stage.Stage;
-
-import org.controlsfx.control.ToggleSwitch;
-
-public class HelloToggleSwitch extends Application {
-    
-     @Override public void start(Stage stage) throws Exception {
-        stage.setTitle("ToggleSwitch Demo");
-        ToggleSwitch sc = new ToggleSwitch();
-        Scene scene = newScene();
-        ((Group)scene.getRoot()).getChildren().add(sc);
-        scene.setFill(Color.LIGHTGRAY);
-        stage.setScene(scene);
-        stage.show();
-    }
-    
-    public static void main(String[] args) {
-        launch(args);
-    }
-    
-    private static Scene newScene() {
-        Group g = new Group();
-        g.setLayoutX(100);
-        g.setLayoutY(100);
-        Scene scene = new Scene(g, 300, 300);
-        return scene;
-    }
-    
-}

File samples/org/controlsfx/samples/SVGTest.java

-package org.controlsfx.samples;
-
-import java.net.URL;
-
-import javafx.application.Application;
-import javafx.scene.Scene;
-import javafx.scene.image.ImageView;
-import javafx.scene.layout.VBox;
-import javafx.stage.Stage;
-import javafx.util.Callback;
-
-import org.controlsfx.tools.SVGLoader;
-
-public class SVGTest extends Application {
-    
-    private static final int IMAGE_HEIGHT = 175;
-    private static final int IMAGE_SPACING = 0;
-
-    public static void main(String[] args) {
-        launch(args);
-    }
-
-    @Override public void start(Stage primaryStage) throws Exception {
-        VBox container = new VBox(IMAGE_SPACING);
-        
-        container.setStyle("-fx-background-color: lightblue");
-        
-        final String[] images = new String[] {
-//                "emblem-important.svg",
-//                "error.svg",
-                "help-browser.svg"
-        };
-        
-        for (String svg : images) {
-            loadImage(svg, container);
-        }
-
-        Scene scene = new Scene(container);
-        primaryStage.setScene(scene);
-        primaryStage.setWidth(200);
-        primaryStage.setHeight((IMAGE_HEIGHT + IMAGE_SPACING) * (images.length) + IMAGE_HEIGHT / 2.0);
-
-        primaryStage.show();
-    }
-    
-    private void loadImage(final String filename, final VBox container) throws Exception {
-        final URL pathToFile = SVGTest.class.getResource(filename).toURI().toURL();
-
-        SVGLoader.loadSVGImage(pathToFile, IMAGE_HEIGHT, -1, new Callback<ImageView, Void>() {
-            @Override public Void call(ImageView image) {
-                container.getChildren().addAll(image);
-                return null;
-            }
-        });
-    }
-}

File samples/org/controlsfx/samples/emblem-important.svg

-<?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://creativecommons.org/ns#"
-   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://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48"
-   height="48"
-   id="svg1800"
-   viewBox="0 0 48 48"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/emblems"
-   sodipodi:docname="emblem-important.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective17" />
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient3101">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop3103" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop3105" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient3101"
-       id="radialGradient3107"
-       cx="17.3125"
-       cy="25.53125"
-       fx="17.3125"
-       fy="25.53125"
-       r="9.6875"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.351613,1.292803e-15,16.55413)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     fill="#edd400"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.20392157"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="66.140367"
-     inkscape:cy="14.79073"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:showpageshadow="false"
-     inkscape:window-width="872"
-     inkscape:window-height="818"
-     inkscape:window-x="370"
-     inkscape:window-y="30" />
-  <metadata
-     id="metadata4">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:title>Emblem Important</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Jakub Steiner</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>emblem</rdf:li>
-            <rdf:li>photos</rdf:li>
-            <rdf:li>pictures</rdf:li>
-            <rdf:li>raw</rdf:li>
-            <rdf:li>jpeg</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.40909091;color:#000000;fill:url(#radialGradient3107);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.1053395;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="path3099"
-       sodipodi:cx="17.312500"
-       sodipodi:cy="25.531250"
-       sodipodi:rx="9.6875000"
-       sodipodi:ry="3.4062500"
-       d="M 27.000000 25.531250 A 9.6875000 3.4062500 0 1 1  7.6250000,25.531250 A 9.6875000 3.4062500 0 1 1  27.000000 25.531250 z"
-       transform="matrix(2.182912,0.000000,0.000000,2.182912,-13.50372,-14.35012)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#f57900;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#914900;stroke-width:0.98214942;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="path1650"
-       sodipodi:cx="24.130018"
-       sodipodi:cy="23.428040"
-       sodipodi:rx="22.008699"
-       sodipodi:ry="21.213203"
-       d="M 46.138718 23.428040 A 22.008699 21.213203 0 1 1  2.1213188,23.428040 A 22.008699 21.213203 0 1 1  46.138718 23.428040 z"
-       transform="matrix(0.944630,0.000000,0.000000,0.980053,1.504174,-1.556912)" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#fcaf3e;stroke-width:0.98214942;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="path3392"
-       sodipodi:cx="24.130018"
-       sodipodi:cy="23.428040"
-       sodipodi:rx="22.008699"
-       sodipodi:ry="21.213203"
-       d="M 46.138718 23.428040 A 22.008699 21.213203 0 1 1  2.1213188,23.428040 A 22.008699 21.213203 0 1 1  46.138718 23.428040 z"
-       transform="matrix(0.914086,0.000000,0.000000,0.948364,2.380576,-0.905815)" />
-    <path
-       style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1224999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       d="M 21.464926,10.373268 C 21.336952,10.373268 21.230316,10.547762 21.230316,10.757175 L 22.295085,25.197999 C 22.295085,25.407412 22.401721,25.581906 22.529695,25.581907 C 22.529695,25.581907 23.370516,25.593810 24.063684,25.581907 C 24.292022,25.577986 24.361898,25.602219 24.568998,25.581907 C 25.262166,25.593810 26.102987,25.581907 26.102987,25.581907 C 26.230961,25.581907 26.337597,25.407412 26.337597,25.197999 L 27.402366,10.757175 C 27.402366,10.547762 27.295730,10.402799 27.167755,10.402799 L 24.587044,10.402799 C 24.577532,10.400862 24.578842,10.373268 24.568998,10.373268 L 21.464926,10.373268 z "
-       id="rect1872" />
-    <path
-       sodipodi:type="arc"
-       style="opacity:1.0000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.1224999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       id="path2062"
-       sodipodi:cx="-16.437500"
-       sodipodi:cy="34.062500"
-       sodipodi:rx="4.5625000"
-       sodipodi:ry="3.8125000"
-       d="M -11.875000 34.062500 A 4.5625000 3.8125000 0 1 1  -21.000000,34.062500 A 4.5625000 3.8125000 0 1 1  -11.875000 34.062500 z"
-       transform="matrix(0.504864,0.000000,0.000000,0.604182,32.65935,9.608845)" />
-    <path
-       style="fill:#fffeff;fill-opacity:0.21390374;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000"
-       d="M 43.676426,20.476780 C 43.676426,31.307396 37.624257,16.170581 25.001688,20.863168 C 12.279172,25.592912 4.4350535,31.307396 4.4350535,20.476780 C 4.4350535,9.6461627 13.225120,0.85609769 24.055740,0.85609769 C 34.886359,0.85609769 43.676426,9.6461627 43.676426,20.476780 z "
-       id="path3068"
-       sodipodi:nodetypes="czssc" />
-  </g>
-</svg>

File samples/org/controlsfx/samples/error.svg

-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="42" width="42" viewBox="0 0 42 42">
-<defs>
-<radialGradient id="c" gradientUnits="userSpaceOnUse" cy="33" cx="21" gradientTransform="matrix(1 0 0 .5 0 17)" r="17">
-<stop offset="0"/>
-<stop stop-opacity="0" offset="1"/>
-</radialGradient>
-<linearGradient id="b" y2="33.7" gradientUnits="userSpaceOnUse" x2="21.2" gradientTransform="matrix(1.41 0 0 1.47 13.2 -17.5)" y1="19" x1="1">
-<stop stop-color="#e67c7c" offset="0"/>
-<stop stop-color="#d72f2f" offset="1"/>
-</linearGradient>
-<linearGradient id="a" x1="8" gradientUnits="userSpaceOnUse" x2="36" gradientTransform="translate(2,-9.1e-4)" y1="18" y2="34.3">
-<stop stop-color="#D4D4D4" offset="0"/>
-<stop stop-color="#E2E2E2" offset=".398"/>
-<stop stop-color="#fff" offset="1"/>
-</linearGradient>
-</defs>
-<ellipse opacity=".620" rx="18" ry="9" cy="33" cx="21" fill="url(#c)"/>
-<g stroke-linejoin="round">
-<path stroke="#9f0000" stroke-width="6" d="m4 35h34l-17-32z"/>
-<path stroke="url(#b)" stroke-width="4" d="m4 35h34l-17-32z"/>
-<path stroke="#c00" stroke-width="2" d="m4 35h34l-17-32z" fill="#c00"/>
-<path stroke="url(#a)" d="m7 33.2h28l-14-26.4z" fill="url(#a)"/>
-</g>
-<path d="m19.8 25.5-0.5-10h3.5l-0.6 10z"/>
-<circle cy="28.7" cx="21" r="2"/>
-</svg>

File samples/org/controlsfx/samples/help-browser.svg

-<?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://creativecommons.org/ns#"
-   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://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="48.000000px"
-   height="48.000000px"
-   id="svg6361"
-   sodipodi:version="0.32"
-   inkscape:version="0.46"
-   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/apps"
-   sodipodi:docname="help-browser.svg"
-   inkscape:output_extension="org.inkscape.output.svg.inkscape">
-  <defs
-     id="defs3">
-    <inkscape:perspective
-       sodipodi:type="inkscape:persp3d"
-       inkscape:vp_x="0 : 24 : 1"
-       inkscape:vp_y="0 : 1000 : 0"
-       inkscape:vp_z="48 : 24 : 1"
-       inkscape:persp3d-origin="24 : 16 : 1"
-       id="perspective23" />
-    <linearGradient
-       id="linearGradient2431">
-      <stop
-         style="stop-color:#ffffff;stop-opacity:1;"
-         offset="0"
-         id="stop2433" />
-      <stop
-         style="stop-color:#b8b8b8;stop-opacity:1;"
-         offset="1"
-         id="stop2435" />
-    </linearGradient>
-    <linearGradient
-       inkscape:collect="always"
-       id="linearGradient21644">
-      <stop
-         style="stop-color:#000000;stop-opacity:1;"
-         offset="0"
-         id="stop21646" />
-      <stop
-         style="stop-color:#000000;stop-opacity:0;"
-         offset="1"
-         id="stop21648" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient21644"
-       id="radialGradient21650"
-       cx="25.125"
-       cy="36.75"
-       fx="25.125"
-       fy="36.75"
-       r="15.75"
-       gradientTransform="matrix(1.000000,0.000000,0.000000,0.595238,3.369686e-16,14.87500)"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient2933">
-      <stop
-         id="stop2935"
-         offset="0"
-         style="stop-color:#9cbcde;stop-opacity:1" />
-      <stop
-         id="stop2937"
-         offset="1"
-         style="stop-color:#204a87" />
-    </linearGradient>
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2933"
-       id="radialGradient2207"
-       cx="26.544321"
-       cy="28.458725"
-       fx="26.544321"
-       fy="28.458725"
-       r="22.376116"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.238342,5.954846e-3,-6.507762e-3,1.351272,-6.992513,-9.744842)" />
-    <radialGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2431"
-       id="radialGradient2437"
-       cx="-19.515638"
-       cy="16.855663"
-       fx="-19.515638"
-       fy="16.855663"
-       r="8.7536434"
-       gradientTransform="matrix(4.445991,-8.852599e-16,1.367217e-15,6.8665,67.25071,-104.6679)"
-       gradientUnits="userSpaceOnUse" />
-  </defs>
-  <sodipodi:namedview
-     inkscape:guide-bbox="true"
-     showguides="true"
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="0.15294118"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="25.160747"
-     inkscape:cy="22.523569"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:grid-bbox="true"
-     inkscape:document-units="px"
-     inkscape:window-width="1014"
-     inkscape:window-height="818"
-     inkscape:window-x="0"
-     inkscape:window-y="30"
-     inkscape:showpageshadow="false"
-     fill="#deb887"
-     stroke="#204a87">
-    <inkscape:grid
-       id="GridFromPre046Settings"
-       type="xygrid"
-       originx="0px"
-       originy="0px"
-       spacingx="1px"
-       spacingy="1px"
-       color="#7171cd"
-       empcolor="#7b7bc3"
-       opacity="0.12156863"
-       empopacity="0.5372549"
-       empspacing="10"
-       visible="true"
-       enabled="true" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata4">
-    <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>Help Browser</dc:title>
-        <dc:date>2005-11-06</dc:date>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Tuomas Kuosmanen</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:subject>
-          <rdf:Bag>
-            <rdf:li>help</rdf:li>
-            <rdf:li>browser</rdf:li>
-            <rdf:li>documentation</rdf:li>
-            <rdf:li>docs</rdf:li>
-            <rdf:li>man</rdf:li>
-            <rdf:li>info</rdf:li>
-          </rdf:Bag>
-        </dc:subject>
-        <cc:license
-           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
-        <dc:contributor>
-          <cc:Agent>
-            <dc:title>Jakub Steiner, Andreas Nilsson</dc:title>
-          </cc:Agent>
-        </dc:contributor>
-        <dc:source>http://tigert.com</dc:source>
-      </cc:Work>
-      <cc:License
-         rdf:about="http://creativecommons.org/licenses/publicdomain/">
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Reproduction" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#Distribution" />
-        <cc:permits
-           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
-      </cc:License>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer">
-    <path
-       sodipodi:type="arc"
-       style="opacity:0.63068181;color:#000000;fill:url(#radialGradient21650);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;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="path21642"
-       sodipodi:cx="25.125000"
-       sodipodi:cy="36.750000"
-       sodipodi:rx="15.750000"
-       sodipodi:ry="9.3750000"
-       d="M 40.875000 36.750000 A 15.750000 9.3750000 0 1 1  9.3750000,36.750000 A 15.750000 9.3750000 0 1 1  40.875000 36.750000 z"
-       transform="matrix(1.173803,0.000000,0.000000,0.600000,-5.004403,20.32500)" />
-    <path
-       sodipodi:type="arc"
-       style="fill:url(#radialGradient2207);fill-opacity:1.0000000;stroke:#204a87"
-       id="path2093"
-       sodipodi:cx="23.909048"
-       sodipodi:cy="23.825787"
-       sodipodi:rx="21.876116"
-       sodipodi:ry="21.876116"
-       d="M 45.785164 23.825787 A 21.876116 21.876116 0 1 1  2.0329323,23.825787 A 21.876116 21.876116 0 1 1  45.785164 23.825787 z"
-       transform="matrix(0.938442,0.000000,0.000000,0.938680,1.564075,1.633906)" />
-    <path
-       transform="matrix(0.855103,0.000000,0.000000,0.855213,3.555288,3.625019)"
-       d="M 45.785164 23.825787 A 21.876116 21.876116 0 1 1  2.0329323,23.825787 A 21.876116 21.876116 0 1 1  45.785164 23.825787 z"
-       sodipodi:ry="21.876116"
-       sodipodi:rx="21.876116"
-       sodipodi:cy="23.825787"
-       sodipodi:cx="23.909048"
-       id="path2209"
-       style="fill:none;fill-opacity:1.0000000;stroke:#ffffff;stroke-width:3.0307744;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000;opacity:0.96022727"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:type="inkscape:offset"
-       inkscape:radius="0.13495015"
-       inkscape:original="M -20.25 6 C -21.298341 6.000026 -22.372769 6.1244771 -23.5 6.34375 C -24.627244 6.563073 -25.886043 6.8832479 -27.25 7.34375 L -27.25 12.5 C -26.100219 11.776335 -24.997109 11.236862 -23.9375 10.875 C -22.877902 10.502213 -21.881822 10.312521 -20.96875 10.3125 C -19.999334 10.312521 -19.259834 10.530174 -18.71875 10.96875 C -18.177686 11.396402 -17.906262 12.013726 -17.90625 12.78125 C -17.906261 13.285654 -18.039408 13.776881 -18.34375 14.28125 C -18.636843 14.785651 -19.107484 15.33609 -19.75 15.90625 L -20.84375 16.84375 C -22.038631 17.918325 -22.815518 18.829509 -23.1875 19.53125 C -23.559495 20.22205 -23.750005 21.007137 -23.75 21.90625 L -23.75 22.71875 L -17.65625 22.71875 L -17.65625 21.96875 C -17.656262 21.475338 -17.517981 21.030712 -17.28125 20.625 C -17.044542 20.208345 -16.547785 19.648586 -15.78125 18.96875 L -14.71875 18.03125 C -13.659161 17.055386 -12.908389 16.156813 -12.46875 15.3125 C -12.029144 14.457253 -11.781268 13.480828 -11.78125 12.40625 C -11.781268 10.311973 -12.525902 8.7417969 -13.96875 7.65625 C -15.41163 6.559783 -17.499549 6.0000261 -20.25 6 z M -23.75 25.15625 L -23.75 31 L -17.65625 31 L -17.65625 25.15625 L -23.75 25.15625 z "
-       xlink:href="#text2215"
-       style="font-size:34.15322876px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:url(#radialGradient2437);fill-opacity:1;stroke:#ffffff;stroke-width:1.09947276px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.78612713;font-family:Bitstream Vera Sans"
-       id="path1554"
-       d="M -20.25,5.875 C -21.309019,5.8750263 -22.397637,5.9982356 -23.53125,6.21875 C -24.664175,6.4391783 -25.911412,6.7562625 -27.28125,7.21875 C -27.291632,7.21754 -27.302118,7.21754 -27.3125,7.21875 C -27.324563,7.2273788 -27.335121,7.237937 -27.34375,7.25 C -27.355813,7.2586288 -27.366371,7.269187 -27.375,7.28125 C -27.37621,7.2916315 -27.37621,7.3021185 -27.375,7.3125 C -27.37621,7.3228815 -27.37621,7.3333685 -27.375,7.34375 L -27.375,12.5 C -27.37621,12.510382 -27.37621,12.520868 -27.375,12.53125 C -27.37621,12.541632 -27.37621,12.552118 -27.375,12.5625 C -27.366371,12.574563 -27.355813,12.585121 -27.34375,12.59375 C -27.335121,12.605813 -27.324563,12.616371 -27.3125,12.625 C -27.302118,12.62621 -27.291632,12.62621 -27.28125,12.625 C -27.270868,12.62621 -27.260382,12.62621 -27.25,12.625 C -27.239618,12.62621 -27.229132,12.62621 -27.21875,12.625 C -27.208368,12.62621 -27.197882,12.62621 -27.1875,12.625 C -26.045062,11.905957 -24.954148,11.357862 -23.90625,11 C -22.858109,10.631244 -21.863134,10.437521 -20.96875,10.4375 C -20.019532,10.437521 -19.323825,10.648045 -18.8125,11.0625 C -18.303777,11.46459 -18.031262,12.04554 -18.03125,12.78125 C -18.03126,13.261907 -18.175438,13.73266 -18.46875,14.21875 C -18.751741,14.705766 -19.209015,15.249245 -19.84375,15.8125 L -20.9375,16.75 C -22.138959,17.83049 -22.926743,18.741022 -23.3125,19.46875 C -23.695613,20.180196 -23.875005,20.988074 -23.875,21.90625 L -23.875,22.71875 C -23.87621,22.729132 -23.87621,22.739618 -23.875,22.75 C -23.87621,22.760382 -23.87621,22.770868 -23.875,22.78125 C -23.866371,22.793313 -23.855813,22.803871 -23.84375,22.8125 C -23.835121,22.824563 -23.824563,22.835121 -23.8125,22.84375 C -23.802118,22.84496 -23.791632,22.84496 -23.78125,22.84375 C -23.770868,22.84496 -23.760382,22.84496 -23.75,22.84375 L -17.65625,22.84375 C -17.645868,22.84496 -17.635382,22.84496 -17.625,22.84375 C -17.614618,22.84496 -17.604132,22.84496 -17.59375,22.84375 C -17.581687,22.835121 -17.571129,22.824563 -17.5625,22.8125 C -17.550437,22.803871 -17.539879,22.793313 -17.53125,22.78125 C -17.53004,22.770868 -17.53004,22.760382 -17.53125,22.75 C -17.53004,22.739618 -17.53004,22.729132 -17.53125,22.71875 L -17.53125,21.96875 C -17.531261,21.500554 -17.38288,21.075901 -17.15625,20.6875 C -16.933955,20.296216 -16.448177,19.737141 -15.6875,19.0625 L -14.625,18.125 C -13.558412,17.14269 -12.794341,16.240346 -12.34375,15.375 C -11.894481,14.500954 -11.656268,13.50158 -11.65625,12.40625 C -11.656268,10.279985 -12.400019,8.6722224 -13.875,7.5625 C -15.350197,6.4414748 -17.48124,5.8750263 -20.25,5.875 z M -23.8125,25.03125 C -23.824563,25.039879 -23.835121,25.050437 -23.84375,25.0625 C -23.855813,25.071129 -23.866371,25.081687 -23.875,25.09375 C -23.87621,25.104132 -23.87621,25.114618 -23.875,25.125 C -23.87621,25.135382 -23.87621,25.145868 -23.875,25.15625 L -23.875,31 C -23.87621,31.010382 -23.87621,31.020868 -23.875,31.03125 C -23.87621,31.041632 -23.87621,31.052118 -23.875,31.0625 C -23.866371,31.074563 -23.855813,31.085121 -23.84375,31.09375 C -23.835121,31.105813 -23.824563,31.116371 -23.8125,31.125 C -23.802118,31.12621 -23.791632,31.12621 -23.78125,31.125 C -23.770868,31.12621 -23.760382,31.12621 -23.75,31.125 L -17.65625,31.125 C -17.645868,31.12621 -17.635382,31.12621 -17.625,31.125 C -17.614618,31.12621 -17.604132,31.12621 -17.59375,31.125 C -17.581687,31.116371 -17.571129,31.105813 -17.5625,31.09375 C -17.550437,31.085121 -17.539879,31.074563 -17.53125,31.0625 C -17.53004,31.052118 -17.53004,31.041632 -17.53125,31.03125 C -17.53004,31.020868 -17.53004,31.010382 -17.53125,31 L -17.53125,25.15625 C -17.53004,25.145868 -17.53004,25.135382 -17.53125,25.125 C -17.53004,25.114618 -17.53004,25.104132 -17.53125,25.09375 C -17.539879,25.081687 -17.550437,25.071129 -17.5625,25.0625 C -17.571129,25.050437 -17.581687,25.039879 -17.59375,25.03125 C -17.604132,25.03004 -17.614618,25.03004 -17.625,25.03125 C -17.635382,25.03004 -17.645868,25.03004 -17.65625,25.03125 L -23.75,25.03125 C -23.760382,25.03004 -23.770868,25.03004 -23.78125,25.03125 C -23.791632,25.03004 -23.802118,25.03004 -23.8125,25.03125 z "
-       transform="matrix(0.849895,0,0,0.835205,41.72981,8.548327)" />
-  </g>
-</svg>

File src/impl/org/controlsfx/behavior/GridViewBehavior.java

-/**
- * Copyright (c) 2013, ControlsFX
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *     * Neither the name of ControlsFX, any associated website, nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL CONTROLSFX BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package impl.org.controlsfx.behavior;
-
-import org.controlsfx.control.GridView;
-
-import com.sun.javafx.scene.control.behavior.BehaviorBase;
-
-public class GridViewBehavior<T> extends BehaviorBase<GridView<T>> {
-    public GridViewBehavior(GridView<T> control) {
-        super(control);
-    }
-}

File src/impl/org/controlsfx/behavior/RangeSliderBehavior.java

-/**
- * Copyright (c) 2013, ControlsFX
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *     * Neither the name of ControlsFX, any associated website, nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL CONTROLSFX BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package impl.org.controlsfx.behavior;
-
-import static javafx.scene.input.KeyCode.DOWN;
-import static javafx.scene.input.KeyCode.END;
-import static javafx.scene.input.KeyCode.F4;
-import static javafx.scene.input.KeyCode.HOME;
-import static javafx.scene.input.KeyCode.KP_DOWN;
-import static javafx.scene.input.KeyCode.KP_LEFT;
-import static javafx.scene.input.KeyCode.KP_RIGHT;
-import static javafx.scene.input.KeyCode.KP_UP;
-import static javafx.scene.input.KeyCode.LEFT;
-import static javafx.scene.input.KeyCode.RIGHT;
-import static javafx.scene.input.KeyCode.UP;
-import static javafx.scene.input.KeyEvent.KEY_RELEASED;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javafx.event.EventType;
-import javafx.geometry.Orientation;
-import javafx.scene.control.Control;
-import javafx.scene.input.KeyCode;
-import javafx.scene.input.KeyEvent;
-import javafx.scene.input.MouseEvent;
-import javafx.util.Callback;
-
-import org.controlsfx.control.RangeSlider;
-
-import com.sun.javafx.Utils;
-import com.sun.javafx.scene.control.behavior.BehaviorBase;
-import com.sun.javafx.scene.control.behavior.KeyBinding;
-import com.sun.javafx.scene.control.behavior.OrientedKeyBinding;
-
-public class RangeSliderBehavior extends BehaviorBase<RangeSlider> {
-    
-     /**************************************************************************
-     *                          Setup KeyBindings                             *
-     *                                                                        *
-     * We manually specify the focus traversal keys because Slider has        *
-     * different usage for up/down arrow keys.                                *
-     *************************************************************************/
-    protected static final List<KeyBinding> RANGESLIDER_BINDINGS = new ArrayList<KeyBinding>();
-    static {
-        RANGESLIDER_BINDINGS.add(new KeyBinding(F4, "TraverseDebug").alt().ctrl().shift());
-
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(LEFT, "DecrementValue"));
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(KP_LEFT, "DecrementValue"));
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(UP, "IncrementValue").vertical());
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(KP_UP, "IncrementValue").vertical());
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(RIGHT, "IncrementValue"));
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(KP_RIGHT, "IncrementValue"));
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(DOWN, "DecrementValue").vertical());
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(KP_DOWN, "DecrementValue").vertical());
-
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(LEFT, "TraverseLeft").vertical());
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(KP_LEFT, "TraverseLeft").vertical());
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(UP, "TraverseUp"));
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(KP_UP, "TraverseUp"));
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(RIGHT, "TraverseRight").vertical());
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(KP_RIGHT, "TraverseRight").vertical());
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(DOWN, "TraverseDown"));
-        RANGESLIDER_BINDINGS.add(new RangeSliderKeyBinding(KP_DOWN, "TraverseDown"));
-
-        RANGESLIDER_BINDINGS.add(new KeyBinding(HOME, KEY_RELEASED, "Home"));
-        RANGESLIDER_BINDINGS.add(new KeyBinding(END, KEY_RELEASED, "End"));
-    }
-
-    
-    @Override protected List<KeyBinding> createKeyBindings() {
-        return RANGESLIDER_BINDINGS;
-    }
-
-    public RangeSliderBehavior(RangeSlider slider) {
-        super(slider);
-    }
-
-    @Override protected void callAction(String s) {
-        if ("Home".equals(s) || "Home2".equals(s)) home();
-        else if ("End".equals(s) || "End2".equals(s)) end();
-        else if ("IncrementValue".equals(s) || "IncrementValue2".equals(s)) incrementValue();
-        else if ("DecrementValue".equals(s) || "DecrementValue2".equals(s)) decrementValue();
-        else super.callAction(s);
-    }
-     
-    /**************************************************************************
-     *                         State and Functions                            *
-     *************************************************************************/
-
-    private Callback<Void, FocusedChild> selectedValue;
-    public void setSelectedValue(Callback<Void, FocusedChild> c) {
-        selectedValue = c;
-    }
-    /**
-     * Invoked by the RangeSlider {@link Skin} implementation whenever a mouse press
-     * occurs on the "track" of the slider. This will cause the thumb to be
-     * moved by some amount.
-     *
-     * @param position The mouse position on track with 0.0 being beginning of
-     *        track and 1.0 being the end
-     */
-    public void trackPress(MouseEvent e, double position) {
-        // determine the percentage of the way between min and max
-        // represented by this mouse event
-        final RangeSlider rangeSlider = getControl();
-        // If not already focused, request focus
-        if (!rangeSlider.isFocused()) rangeSlider.requestFocus();
-        if (selectedValue != null) {
-            if (selectedValue.call(null) == FocusedChild.LOW_THUMB) {
-                if (rangeSlider.getOrientation().equals(Orientation.HORIZONTAL)) {
-                    rangeSlider.adjustLowValue(position * (rangeSlider.getMax() - rangeSlider.getMin()) + rangeSlider.getMin());
-                } else {
-                    rangeSlider.adjustLowValue((1-position) * (rangeSlider.getMax() - rangeSlider.getMin()) + rangeSlider.getMin());
-                }
-            } else {
-                if (rangeSlider.getOrientation().equals(Orientation.HORIZONTAL)) {
-                    rangeSlider.adjustHighValue(position * (rangeSlider.getMax() - rangeSlider.getMin()) + rangeSlider.getMin());
-                } else {
-                    rangeSlider.adjustHighValue((1-position) * (rangeSlider.getMax() - rangeSlider.getMin()) + rangeSlider.getMin());
-                }
-            }
-        }
-    }
-
-    /**
-     */
-    public void trackRelease(MouseEvent e, double position) {
-    }
-    
-     /**
-     * @param position The mouse position on track with 0.0 being beginning of
-      *       track and 1.0 being the end
-     */
-    public void lowThumbPressed(MouseEvent e, double position) {
-        // If not already focused, request focus
-        final RangeSlider rangeSlider = getControl();
-        if (!rangeSlider.isFocused())  rangeSlider.requestFocus();
-        rangeSlider.setLowValueChanging(true);
-    }
-
-    /**
-     * @param position The mouse position on track with 0.0 being beginning of
-     *        track and 1.0 being the end
-     */
-    public void lowThumbDragged(MouseEvent e, double position) {
-        final RangeSlider rangeSlider = getControl();
-        double newValue = Utils.clamp(rangeSlider.getMin(), 
-                (position * (rangeSlider.getMax() - rangeSlider.getMin())) + rangeSlider.getMin(), 
-                rangeSlider.getMax());
-        rangeSlider.setLowValue(newValue);
-    }
-    
-    /**
-     * When lowThumb is released lowValueChanging should be set to false.
-     */
-    public void lowThumbReleased(MouseEvent e) {
-        final RangeSlider rangeSlider = getControl();
-        rangeSlider.setLowValueChanging(false);
-        // RT-15207 When snapToTicks is true, slider value calculated in drag
-        // is then snapped to the nearest tick on mouse release.
-        if (rangeSlider.isSnapToTicks()) {
-            rangeSlider.setLowValue(snapValueToTicks(rangeSlider.getLowValue()));
-        }
-    }
-    
-    void home() {
-        RangeSlider slider = (RangeSlider) getControl();
-        slider.adjustHighValue(slider.getMin());
-    }
-
-    void decrementValue() {
-        RangeSlider slider = (RangeSlider) getControl();
-        if (selectedValue != null) {
-            if (selectedValue.call(null) == FocusedChild.HIGH_THUMB) {
-                if (slider.isSnapToTicks())
-                    slider.adjustHighValue(slider.getHighValue() - computeIncrement());
-                else
-                    slider.decrementHighValue();
-            } else {
-                if (slider.isSnapToTicks())
-                    slider.adjustLowValue(slider.getLowValue() - computeIncrement());
-                else
-                    slider.decrementLowValue();
-            }
-        }
-    }
-
-    void end() {
-        RangeSlider slider = (RangeSlider) getControl();
-        slider.adjustHighValue(slider.getMax());
-    }
-
-    void incrementValue() {
-        RangeSlider slider = (RangeSlider) getControl();
-        if (selectedValue != null) {
-            if (selectedValue.call(null) == FocusedChild.HIGH_THUMB) {
-                if (slider.isSnapToTicks())
-                    slider.adjustHighValue(slider.getHighValue() + computeIncrement());
-                else
-                    slider.incrementHighValue();
-            } else {
-                if (slider.isSnapToTicks())
-                    slider.adjustLowValue(slider.getLowValue() + computeIncrement());
-                else
-                    slider.incrementLowValue();
-            }
-        }
-        
-    }
-
-    double computeIncrement() {
-        RangeSlider rangeSlider = (RangeSlider) getControl();
-        double d = 0.0D;
-        if (rangeSlider.getMinorTickCount() != 0)
-            d = rangeSlider.getMajorTickUnit() / (double) (Math.max(rangeSlider.getMinorTickCount(), 0) + 1);
-        else
-            d = rangeSlider.getMajorTickUnit();
-        if (rangeSlider.getBlockIncrement() > 0.0D && rangeSlider.getBlockIncrement() < d)
-            return d;
-        else
-            return rangeSlider.getBlockIncrement();
-    }
-
-    private double snapValueToTicks(double d) {
-        RangeSlider rangeSlider = (RangeSlider) getControl();
-        double d1 = d;
-        double d2 = 0.0D;
-        if (rangeSlider.getMinorTickCount() != 0)
-            d2 = rangeSlider.getMajorTickUnit() / (double) (Math.max(rangeSlider.getMinorTickCount(), 0) + 1);
-        else
-            d2 = rangeSlider.getMajorTickUnit();
-        int i = (int) ((d1 - rangeSlider.getMin()) / d2);
-        double d3 = (double) i * d2 + rangeSlider.getMin();
-        double d4 = (double) (i + 1) * d2 + rangeSlider.getMin();
-        d1 = Utils.nearest(d3, d1, d4);
-        return Utils.clamp(rangeSlider.getMin(), d1, rangeSlider.getMax());
-    }
-
-    // when high thumb is released, highValueChanging is set to false.
-    public void highThumbReleased(MouseEvent e) {
-        RangeSlider slider = (RangeSlider) getControl();
-        slider.setHighValueChanging(false);
-        if (slider.isSnapToTicks())
-            slider.setHighValue(snapValueToTicks(slider.getHighValue()));
-    }
-
-    public void highThumbPressed(MouseEvent e, double position) {
-        RangeSlider slider = (RangeSlider) getControl();
-        if (!slider.isFocused())
-            slider.requestFocus();
-        slider.setHighValueChanging(true);
-    }
-
-    public void highThumbDragged(MouseEvent e, double position) {
-        RangeSlider slider = (RangeSlider) getControl();
-        slider.setHighValue(Utils.clamp(slider.getMin(), position * (slider.getMax() - slider.getMin()) + slider.getMin(), slider.getMax()));
-    }
-    
-    public void moveRange(double position) {
-//        System.out.println("delta: " + delta);
-        RangeSlider slider = (RangeSlider) getControl();
-        final double min = slider.getMin();
-        final double max = slider.getMax();
-        final double lowValue = slider.getLowValue();
-        final double newLowValue = Utils.clamp(min, lowValue + position, max);
-        final double highValue = slider.getHighValue();
-        final double newHighValue = Utils.clamp(min, highValue + position, max);
-        
-        if (newLowValue <= min || newHighValue >= max) return;
-        
-        slider.setLowValueChanging(true);
-        slider.setHighValueChanging(true);
-        slider.setLowValue(newLowValue);
-        slider.setHighValue(newHighValue);        
-        slider.setLowValueChanging(false);
-        slider.setHighValueChanging(false);
-    }
-    
-    public static class RangeSliderKeyBinding extends OrientedKeyBinding {
-        public RangeSliderKeyBinding(KeyCode code, String action) {
-            super(code, action);
-        }
-
-        public RangeSliderKeyBinding(KeyCode code, EventType<KeyEvent> type, String action) {
-            super(code, type, action);
-        }
-
-        public @Override boolean getVertical(Control control) {
-            return ((RangeSlider)control).getOrientation() == Orientation.VERTICAL;
-        }
-    }
-     
-    public enum FocusedChild {
-        LOW_THUMB,
-        HIGH_THUMB,
-        RANGE_BAR,
-        NONE
-    }
-}
-

File src/impl/org/controlsfx/behavior/RatingBehavior.java

-/**
- * Copyright (c) 2013, ControlsFX
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *     * Neither the name of ControlsFX, any associated website, nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL CONTROLSFX BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package impl.org.controlsfx.behavior;
-
-import org.controlsfx.control.Rating;
-
-import com.sun.javafx.scene.control.behavior.BehaviorBase;
-
-public class RatingBehavior extends BehaviorBase<Rating> {
-
-    public RatingBehavior(Rating control) {
-        super(control);
-    }
-}

File src/impl/org/controlsfx/behavior/ToggleSwitchBehavior.java

-/**
- * Copyright (c) 2013, ControlsFX
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *     * Neither the name of ControlsFX, any associated website, nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL CONTROLSFX BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package impl.org.controlsfx.behavior;
-
-import org.controlsfx.control.ToggleSwitch;
-
-import com.sun.javafx.scene.control.behavior.BehaviorBase;
-
-public class ToggleSwitch