<?xml version="1.0"?>
<!--
   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.
-->
<!-- Forms.page,v 1.1 2002/08/23 22:18:31 hship Exp -->
<!DOCTYPE page-specification PUBLIC 
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">

<page-specification class="org.apache.tapestry.workbench.fields.Dates">

	<component id="helpLink" type="contrib:PopupLink">
		<binding name="href" expression='"popuplink-help.html"'/>
		<binding name="height" expression="400"/>
		<binding name="width" expression="850"/>
		<binding name="features" expression='"top=200,left=100,resizable=yes,scrollbars=yes"'/>
	</component>
	
	<property-specification name="includeWeek" type="boolean" persistent="yes"/>
	
</page-specification>

