<?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.
-->
<!-- $Id$ -->
<!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.localization.Localization">

  <component id="form" type="Form">
    <binding name="listener" expression="listeners.formSubmit"/>
    <binding name="stateful" expression="false"/>
  </component>
  
  <component id="inputLocale" type="PropertySelection">
    <binding name="value" expression="page.engine.locale"/>
    <binding name="model" expression="localeModel"/>
  </component>
  
  <component id="changeButton" type="ImageSubmit">
    <binding name="image" expression="assets.changeButton"/>
  </component>
  
  <context-asset name="changeButton" path="images/Change.gif"/>
  
</page-specification>
