deweese     2003/07/23 02:46:14

  Modified:    test-resources/org/apache/batik/test interactiveSamples.xml
  Added:       samples/tests/spec/interactivity pointerEvents.svg
               test-references/samples/tests/spec/interactivity
                        pointerEvents.png
  Log:
  New test of pointer events.
  
  Revision  Changes    Path
  1.1                  xml-batik/samples/tests/spec/interactivity/pointerEvents.svg
  
  Index: pointerEvents.svg
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" 
            "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd";>
  
  <!-- ====================================================================== -->
  <!-- Copyright (C) The Apache Software Foundation. All rights reserved.     -->
  <!--                                                                        -->
  <!-- This software is published under the terms of the Apache Software      -->
  <!-- License version 1.1, a copy of which has been included with this       -->
  <!-- distribution in the LICENSE file.                                      -->
  <!-- ====================================================================== -->
  
  <!-- ====================================================================== -->
  <!-- Tests support for pointer-events.                                      -->
  <!--                                                                        -->
  <!-- @author [EMAIL PROTECTED]                                             -->
  <!-- @version $Id: pointerEvents.svg,v 1.1 2003/07/23 09:46:14 deweese Exp $ -->
  <!-- ====================================================================== -->
  
  <?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?>
  
  <svg id="svg-root" width="450" height="500"
       xmlns="http://www.w3.org/2000/svg"; 
       xmlns:xlink="http://www.w3.org/1999/xlink"; >
  
     <title id="test-title">Test 'pointer-events' property</title>
     <text x="50%" y="30" class="title">Test 'pointer-events' property</text>
  
     <script type="text/ecmascript"><![CDATA[
      function getFillFill(e) {
         var g = e.parentNode;
         var lc = g.lastChild;
         while (lc) {
            if (lc.nodeName == "rect") break;
            lc = lc.previousSibling;
         }
         return lc;
      }
  
      function getFillStroke(e) {
         var f = getFillFill(e);
         if (f) f = f.previousSibling;
         while (f) {
            if (f.nodeName == "rect") break;
            f = f.previousSibling;
         }
         return f;
      }
  
      function getStrokeFill(e) {
         var f = getFillStroke(e);
         if (f) f = f.previousSibling;
         while (f) {
            if (f.nodeName == "rect") break;
            f = f.previousSibling;
         }
         return f;
      }
  
      function getStrokeStroke(e) {
         var f = getStrokeFill(e);
         if (f) f = f.previousSibling;
         while (f) {
            if (f.nodeName == "rect") break;
            f = f.previousSibling;
         }
         return f;
      }
  
      function setFillFill(evt, color) {
          var f = getFillFill(evt.target);
          f.setAttribute("fill", color);
          evt.stopPropagation();
      }
  
      function setFillStroke(evt, color) {
          var f = getFillStroke(evt.target);
          f.setAttribute("fill", color);
          evt.stopPropagation();
      }
      function setStrokeStroke(evt, color) {
          var f = getStrokeStroke(evt.target);
          f.setAttribute("fill", color);
          evt.stopPropagation();
      }
  
      function setStrokeFill(evt, color) {
          var f = getStrokeFill(evt.target);
          f.setAttribute("fill", color);
          evt.stopPropagation();
      }
  
      function onDone() {
        try {
            regardTestInstance.scriptDone();   
        } catch (e) {
            alert("This button only works when run in the regard framework");
        } 
      }
      function regardStart () {
         document.getElementById("done").setAttribute("visibility", "visible");
      }
     ]]></script>
  
    <g id="done" transform="translate(380, 10)" 
       cursor="pointer" onclick="onDone()" visibility="hidden" >
      <rect rx="5" ry="5" width="60" height="25" fill="#EEE" stroke="#000" />
      <text x="30" y="18" font-size="14" 
        font-weight="bold" text-anchor="middle">Done</text>
      </g>
  
    <g id="content" transform="translate(-5,-5)">
      <g id="painted" pointer-events="painted" transform="translate(0,50)">
        <rect x="10" y="0" width="440" height="50" fill="#DDD" stroke="#000"/>
        <line x1="100" y1="0" x2="100" y2="50" stroke="#000" />
        <line x1="170" y1="0" x2="170" y2="50" stroke="#000" />
        <line x1="240" y1="0" x2="240" y2="50" stroke="#000" />
        <line x1="310" y1="0" x2="310" y2="50" stroke="#000" />
        <line x1="380" y1="0" x2="380" y2="50" stroke="#000" />
        <text x="20" y="30">Painted</text>
  
        <g transform="translate(100,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(170,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(240,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(310,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(380,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
      </g>
  
      <g id="fill" pointer-events="fill" transform="translate(0,100)">
        <rect x="10" y="0" width="440" height="50" fill="#CCC" stroke="#000"/>
        <line x1="100" y1="0" x2="100" y2="50" stroke="#000" />
        <line x1="170" y1="0" x2="170" y2="50" stroke="#000" />
        <line x1="240" y1="0" x2="240" y2="50" stroke="#000" />
        <line x1="310" y1="0" x2="310" y2="50" stroke="#000" />
        <line x1="380" y1="0" x2="380" y2="50" stroke="#000" />
        <text x="20" y="30">Fill</text>
  
        <g transform="translate(100,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(170,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(240,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(310,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(380,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
      </g>
  
      <g id="stroke" pointer-events="stroke" transform="translate(0,150)">
        <rect x="10" y="0" width="440" height="50" fill="#DDD" stroke="#000"/>
        <line x1="100" y1="0" x2="100" y2="50" stroke="#000" />
        <line x1="170" y1="0" x2="170" y2="50" stroke="#000" />
        <line x1="240" y1="0" x2="240" y2="50" stroke="#000" />
        <line x1="310" y1="0" x2="310" y2="50" stroke="#000" />
        <line x1="380" y1="0" x2="380" y2="50" stroke="#000" />
        <text x="20" y="30">Stroke</text>
  
        <g transform="translate(100,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(170,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(240,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(310,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(380,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
      </g>
  
      <g id="all" pointer-events="all" transform="translate(0,200)">
        <rect x="10" y="0" width="440" height="50" fill="#CCC" stroke="#000"/>
        <line x1="100" y1="0" x2="100" y2="50" stroke="#000" />
        <line x1="170" y1="0" x2="170" y2="50" stroke="#000" />
        <line x1="240" y1="0" x2="240" y2="50" stroke="#000" />
        <line x1="310" y1="0" x2="310" y2="50" stroke="#000" />
        <line x1="380" y1="0" x2="380" y2="50" stroke="#000" />
        <text x="20" y="30">All</text>
  
        <g transform="translate(100,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(170,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(240,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(310,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(380,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
      </g>
  
      <g id="none" pointer-events="none" transform="translate(0,250)">
        <rect x="10" y="0" width="440" height="50" fill="#DDD" stroke="#000"/>
        <line x1="100" y1="0" x2="100" y2="50" stroke="#000" />
        <line x1="170" y1="0" x2="170" y2="50" stroke="#000" />
        <line x1="240" y1="0" x2="240" y2="50" stroke="#000" />
        <line x1="310" y1="0" x2="310" y2="50" stroke="#000" />
        <line x1="380" y1="0" x2="380" y2="50" stroke="#000" />
        <text x="20" y="30">None</text>
  
        <g transform="translate(100,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(170,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(240,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(310,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(380,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
      </g>
  
      <g id="visible" pointer-events="visible" transform="translate(0,300)">
        <rect x="10" y="0" width="440" height="50" fill="#CCC" stroke="#000"/>
        <line x1="100" y1="0" x2="100" y2="50" stroke="#000" />
        <line x1="170" y1="0" x2="170" y2="50" stroke="#000" />
        <line x1="240" y1="0" x2="240" y2="50" stroke="#000" />
        <line x1="310" y1="0" x2="310" y2="50" stroke="#000" />
        <line x1="380" y1="0" x2="380" y2="50" stroke="#000" />
        <text x="20" y="30">Visible</text>
  
        <g transform="translate(100,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(170,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(240,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(310,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(380,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
      </g>
  
      <g id="visiblePainted" pointer-events="visiblePainted" 
        transform="translate(0,350)">
        <rect x="10" y="0" width="440" height="50" fill="#DDD" stroke="#000"/>
        <line x1="100" y1="0" x2="100" y2="50" stroke="#000" />
        <line x1="170" y1="0" x2="170" y2="50" stroke="#000" />
        <line x1="240" y1="0" x2="240" y2="50" stroke="#000" />
        <line x1="310" y1="0" x2="310" y2="50" stroke="#000" />
        <line x1="380" y1="0" x2="380" y2="50" stroke="#000" />
        <text x="20" y="30">VisiblePainted</text>
  
        <g transform="translate(100,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(170,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(240,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(310,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(380,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
      </g>
  
      <g id="visibleFill" pointer-events="visibleFill" 
        transform="translate(0,400)">
        <rect x="10" y="0" width="440" height="50" fill="#CCC" stroke="#000"/>
        <line x1="100" y1="0" x2="100" y2="50" stroke="#000" />
        <line x1="170" y1="0" x2="170" y2="50" stroke="#000" />
        <line x1="240" y1="0" x2="240" y2="50" stroke="#000" />
        <line x1="310" y1="0" x2="310" y2="50" stroke="#000" />
        <line x1="380" y1="0" x2="380" y2="50" stroke="#000" />
        <text x="20" y="30">VisibleFill</text>
  
        <g transform="translate(100,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(170,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(240,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(310,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(380,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
      </g>
  
      <g id="visibleStroke" pointer-events="visibleStroke" 
        transform="translate(0,450)">
        <rect x="10" y="0" width="440" height="50" fill="#DDD" stroke="#000"/>
        <line x1="100" y1="0" x2="100" y2="50" stroke="#000" />
        <line x1="170" y1="0" x2="170" y2="50" stroke="#000" />
        <line x1="240" y1="0" x2="240" y2="50" stroke="#000" />
        <line x1="310" y1="0" x2="310" y2="50" stroke="#000" />
        <line x1="380" y1="0" x2="380" y2="50" stroke="#000" />
        <text x="20" y="30">VisibleStroke</text>
  
        <g transform="translate(100,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(170,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(240,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="black" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(310,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" 
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
  
        <g transform="translate(380,0)">
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setStrokeStroke(evt,'crimson')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setStrokeStroke(evt,'gold')"/>
          <ellipse cx="16" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setStrokeFill(evt,'crimson')"/>
  
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="0"
            fill="none" stroke="none" pointer-events="fill"
            onmouseover="setFillFill(evt,'crimson')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="white" stroke="black" visibility="hidden"
            onmouseover="setFillFill(evt,'gold')"/>
          <ellipse cx="44" cy="25" rx="10" ry="17.5" stroke-width="5"
            fill="none" stroke="none" pointer-events="stroke"
            onmouseover="setFillStroke(evt,'crimson')"/>
  
          <rect x="60" y="4" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="14" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="26" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
          <rect x="60" y="36" width="10" height="10" 
            stroke-width="1" stroke="#000" fill="#888"/>
        </g>
      </g>
    </g>
  </svg>
  
  
  
  1.1                  
xml-batik/test-references/samples/tests/spec/interactivity/pointerEvents.png
  
        <<Binary file>>
  
  
  1.6       +2 -1      
xml-batik/test-resources/org/apache/batik/test/interactiveSamples.xml
  
  Index: interactiveSamples.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/test-resources/org/apache/batik/test/interactiveSamples.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- interactiveSamples.xml    10 Jul 2003 14:25:49 -0000      1.5
  +++ interactiveSamples.xml    23 Jul 2003 09:46:14 -0000      1.6
  @@ -23,6 +23,7 @@
           <test id="samples/tests/spec/interactivity/keyEvents.svg" >
               <property name="Validating" class="java.lang.Boolean" value="false" />
           </test>
  +        <test id="samples/tests/spec/interactivity/pointerEvents.svg" />
       </testGroup>
   
       <testGroup id="tests.spec.scripting" name="Interactive Scripting Tests"
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to