<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright 2004 The Apache Software Foundation
  
   Licensed 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.
-->
<!-- $Id$ -->
<!DOCTYPE component-specification PUBLIC
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">

<component-specification class="org.apache.tapestry.wml.OnEvent">

    <description>
        The onevent element binds a task to a particular intrinsic event for the immediately enclosing element, ie,
        specifying an onevent element inside an "XYZ" element associates an intrinsic event binding with the "XYZ"
        element.
        The user agent must ignore any onevent element specifying a type that does not correspond to a legal
        intrinsic event for the immediately enclosing element.
    </description>

    <parameter name="type" type="java.lang.String" direction="in" required="yes">
        <description>
            The type attribute indicates the name of the intrinsic event
            (ontimer, onenterforward, onenterbackward, onpick).
        </description>
    </parameter>

</component-specification>
