<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.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.

-->
<!-- ========================================================================= -->
<!-- Test description here                                                     -->
<!--                                                                           -->
<!-- @author vincent.hardy@sun.com                                             -->
<!-- @version $Id$                                                             -->
<!-- ========================================================================= -->
<?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="450" height="500" viewBox="0 0 450 500">
    <!-- ============================================================= -->
    <!-- Test content                                                  -->
    <!-- ============================================================= -->
    <g id="testContent" transform="translate(135, 120) scale(2)">
        <rect width="40" height="40" fill="crimson" stroke-width="4" stroke="gold" />
        <circle cx="70" cy="20" r="20" fill="crimson" stroke-width="4" stroke="gold" />
        <rect x="50" y="50" width="40" height="40" fill="crimson" stroke-width="4" stroke="gold" />
        <circle cx="20" cy="70" r="20" fill="crimson" stroke-width="4" stroke="gold" />
        
    </g>

    <script type="application/java-archive" xlink:href="java-binding.jar" />

    <script type="text/ecmascript"><![CDATA[
function onDone() {
    if (!(regardTestInstance == null)) {
        regardTestInstance.scriptDone();   
    } else {
        alert("This button only works when run in the regard framework");
    }
}
    ]]></script>

    <g id="done" transform="translate(195, 398)" cursor="pointer" onclick="onDone()">
        <rect rx="5" ry="5" width="60" height="25" fill="#eeeeee" stroke="black" />
        <text x="30" y="18" font-size="14" font-weight="bold" text-anchor="middle">Done</text>
    </g>

    <!-- ============================================================= -->
    <!-- Batik sample mark                                             -->
    <!-- ============================================================= -->
    <use xlink:href="../../../batikLogo.svg#Batik_Tag_Box" />
    
</svg>
