<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000802//EN" "http://www.w3.org/TR/2000/CR-SVG-20000802/DTD/svg-20000802.dtd" >

<!--

   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

-->
<!--      ======================================================================      -->
<!--      Modification of a polyline attributes                                        -->
<!--                                                                                  -->
<!--      @author nicolas.socheleau@bitflash.com                                      -->
<!--      @version $Id$      -->
<!--      ======================================================================      -->
<?xml-stylesheet type="text/css" href="../../resources/style/test.css"      ?>

<svg width="450" viewBox="0 0 450 500" height="500" id="body">
   <title>&lt;polyline&gt; attributes &apos;onload&apos;</title>

  <text x="50%" y="45" class="title">&lt;polyline&gt; getPoints() in &apos;onload&apos;
  </text>
  <script type="text/ecmascript"><![CDATA[    
        function getNumberOfItems(evt) 
        {        
           var elt = evt.target;        
           nb = elt.getPoints().getNumberOfItems();        
           var text = elt.getOwnerDocument().getElementById('test1_text');        
           text.getFirstChild().appendData(" "+nb+" points");    
        }
        function clear(evt) 
        {        
           var elt = evt.target;
           elt.getPoints().clear()
        }
        function getItem(evt) 
        {        
           var elt = evt.target;        
           nb = elt.getPoints().getItem(0);        
           var text = elt.getOwnerDocument().getElementById('test3_text');        
           text.getFirstChild().appendData(" ("+nb.getX()+","+nb.getY()+")");    
        }
        function insertItemBefore(evt,index,x,y) 
        {        
           var elt = evt.target;        
           point = elt.getOwnerDocument().getDocumentElement().createSVGPoint();
           point.setX(x);
           point.setY(y);
           nb = elt.getPoints().insertItemBefore(point,index);        
           var text = elt.getOwnerDocument().getElementById('test4_text');        
           text.getFirstChild().appendData(" ("+nb.getX()+","+nb.getY()+")");    
        }
        function replaceItem(evt,index,x,y) 
        {        
           var elt = evt.target;        
           point = elt.getOwnerDocument().getDocumentElement().createSVGPoint();
           point.setX(x);
           point.setY(y);
           nb = elt.getPoints().replaceItem(point,index);        
           var text = elt.getOwnerDocument().getElementById('test5_text');        
           text.getFirstChild().appendData(" ("+nb.getX()+","+nb.getY()+")");    
        }
        function removeItem(evt,index) 
        {        
           var elt = evt.target;        
           nb = elt.getPoints().removeItem(index);        
           var text = elt.getOwnerDocument().getElementById('test6_text');        
           text.getFirstChild().appendData(" ("+nb.getX()+","+nb.getY()+")");    
        }
        function initializeAppendItem(evt,x1,y1,x2,y2) 
        {        
           var elt = evt.target;        
           point = elt.getOwnerDocument().getDocumentElement().createSVGPoint();
           point.setX(x1);
           point.setY(y1);
           nb = elt.getPoints().initialize(point);        
           var text = elt.getOwnerDocument().getElementById('test71_text');        
           text.getFirstChild().appendData(" ("+nb.getX()+","+nb.getY()+")");
           point.setX(x2);
           point.setY(y2);
           nb = elt.getPoints().appendItem(point);        
           text = elt.getOwnerDocument().getElementById('test72_text');        
           text.getFirstChild().appendData(" ("+nb.getX()+","+nb.getY()+")");
        }
        function setAttribute(evt,pointsList) 
        {        
           var elt = evt.target;
           var points = elt.getPoints();
           nb = points.getNumberOfItems();        
           var text = elt.getOwnerDocument().getElementById('test81_text');        
           text.getFirstChild().appendData(" "+nb+" points");

           elt.setAttributeNS(null,"points",pointsList);

           nb = points.getNumberOfItems();        
           text = elt.getOwnerDocument().getElementById('test82_text');        
           text.getFirstChild().appendData(" "+nb+" points");
        
        }

        function setAttribute2(evt,pointsList) 
        {        
           var elt = evt.target;
           var points = elt.getPoints();
           nb = points.getItem(0);        
           var text = elt.getOwnerDocument().getElementById('test91_text');        
           text.getFirstChild().appendData(" ("+nb.getX()+","+nb.getY()+")");

           elt.setAttributeNS(null,"points",pointsList);

           text = elt.getOwnerDocument().getElementById('test92_text');        
           text.getFirstChild().appendData(" ("+nb.getX()+","+nb.getY()+")");
        
        }
   ]]></script>
   <g id="test-content" transform="matrix(1.0 0.0 0.0 1.0 -148.27586 -91.37931)">

        <!-- onload="getNumberOfItems(evt)" -->
        <text x="180" y="160" font-size="11">getNumberOfItems</text>
     <polyline  id="test1" style="fill:gold; stroke:orange; stroke-width:4" points="219 175, 255 193, 268 235, 242 269, 199 270, 171 237, 179 195" onload="getNumberOfItems(evt)"/>
     <text x="160" font-size="9" y="290" id="test1_text">
        polyline with
     </text>
     
        <!-- onload="clear(evt)" -->
        <text x="180" y="160" font-size="11" transform="translate(150,0)" >clear</text>
     <polyline id="test2" fill="#ffd700" stroke-width="4.0" transform="translate(150,0)"
        points="219.0,175.0 255.0,193.0 268.0,235.0 242.0,269.0 199.0,270.0 171.0,237.0 179.0,195.0 " 
        stroke="#ffa500"
        onload="clear(evt)" />

        <!-- onload="getItem(evt)" -->
        <text x="180" y="160" font-size="11" transform="translate(300,0)" >getItem</text>
     <polyline id="test3" fill="#ffd700" stroke-width="4.0" transform="translate(300,0)"
        points="219.0,175.0 255.0,193.0 268.0,235.0 242.0,269.0 199.0,270.0 171.0,237.0 179.0,195.0 " 
        stroke="#ffa500"
        onload="getItem(evt)" />
     <text x="160" font-size="9" y="290" transform="translate(300,0)" id="test3_text">
        first point
     </text>

     <g transform="translate(0,150)" >
        <!-- onload="insertItemBefore(evt)" -->
        <text x="180" y="160" font-size="11"  >insertItemBefore</text>
        <polyline id="test4" fill="#ffd700" stroke-width="4.0" 
           points="219.0,175.0 255.0,193.0 268.0,235.0 242.0,269.0 199.0,270.0 171.0,237.0 179.0,195.0 " 
           stroke="#ffa500"
           onload="insertItemBefore(evt,1,230,193)" />
     <text x="160" font-size="9" y="290"  id="test4_text">
        inserted point
     </text>
    </g>

     <g transform="translate(150,150)" >
        <!-- onload="replaceItem(evt)" -->
        <text x="180" y="160" font-size="11"  >replaceItem</text>
        <polyline id="test5" fill="#ffd700" stroke-width="4.0" 
           points="219.0,175.0 255.0,193.0 268.0,235.0 242.0,269.0 199.0,270.0 171.0,237.0 179.0,195.0 " 
           stroke="#ffa500"
           onload="replaceItem(evt,1,270,180)" />
     <text x="160" font-size="9" y="290"  id="test5_text">
        replaced point
     </text>
    </g>

     <g transform="translate(300,150)" >
        <!-- onload="removeItem(evt)" -->
        <text x="180" y="160" font-size="11"  >removeItem</text>
        <polyline id="test6" fill="#ffd700" stroke-width="4.0" 
           points="219.0,175.0 255.0,193.0 268.0,235.0 242.0,269.0 199.0,270.0 171.0,237.0 179.0,195.0 " 
           stroke="#ffa500"
           onload="removeItem(evt,3)" />
     <text x="160" font-size="9" y="290"  id="test6_text">
        removed point
     </text>
    </g>

     <g transform="translate(0,300)" >
        <!-- onload="initialize/appendItem(evt)" -->
        <text x="180" y="160" font-size="11"  >initialize/appendItem</text>
        <polyline id="test7" fill="#ffd700" stroke-width="4.0" 
           points="219.0,175.0 255.0,193.0 268.0,235.0 242.0,269.0 199.0,270.0 171.0,237.0 179.0,195.0 " 
           stroke="#ffa500"
           onload="initializeAppendItem(evt,200,200,250,250)" />
     <text x="160" font-size="9" y="275"  id="test71_text">
        intialized point 
     </text>
     <text x="160" font-size="9" y="285"  id="test72_text">
        appended point
     </text>
    </g>

     <g transform="translate(150,300)" >
        <!-- onload="setAttribute(evt)" -->
        <text x="180" y="160" font-size="11"  >setAttribute</text>
        <polyline id="test8" fill="#ffd700" stroke-width="4.0" 
           points="219.0,175.0 255.0,193.0 268.0,235.0 242.0,269.0 199.0,270.0 171.0,237.0 179.0,195.0 " 
           stroke="#ffa500"
           onload="setAttribute(evt,'200,200 200,250 250,250 250,200')" />
     <text x="160" font-size="9" y="275"  id="test81_text">
        before
     </text>
     <text x="160" font-size="9" y="285"  id="test82_text">
        after
     </text>
    </g>

     <g transform="translate(300,300)" >
        <!-- onload="setAttribute2(evt)" -->
        <text x="180" y="160" font-size="11"  >setAttribute2</text>
        <polyline id="test9" fill="#ffd700" stroke-width="4.0" 
           points="219.0,175.0 255.0,193.0 268.0,235.0 242.0,269.0 199.0,270.0 171.0,237.0 179.0,195.0 " 
           stroke="#ffa500"
           onload="setAttribute2(evt,'200,200 200,250 250,250 250,200')" />
     <text x="160" font-size="9" y="275"  id="test91_text">
        point 0 before
     </text>
     <text x="160" font-size="9" y="285"  id="test92_text">
        point 0 after
     </text>
    </g>

</g>
</svg>
