<?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.form.DatePicker"
	allow-informal-parameters="yes" 
	allow-body="no">

  <parameter name="value" direction="form" type="java.util.Date" required="yes"/>
  <parameter name="format" direction="in" type="java.lang.String" required="no"/>
  <parameter name="disabled" direction="in" type="boolean" required="no"/>
  <parameter name="includeWeek" type="boolean" direction="in" required="no"/>
  <parameter name="icon" type="org.apache.tapestry.IAsset" direction="in" required="no"
  	  default-value="assets.defaultIcon"/>
        
  <property-specification name="name" type="java.lang.String"/>
  <property-specification name="form" type="org.apache.tapestry.IForm"/>
  
  <private-asset name="script" resource-path="DatePicker.js"/>
  
  <private-asset name="defaultIcon" resource-path="DatePickerIcon.png"/>
                
</component-specification>
