<?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 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.vlib.pages.admin.EditPublishers">

  <property-specification name="listEditMap" type="org.apache.tapestry.form.ListEditMap"/>
  <property-specification name="message" type="java.lang.String"/>
  <property-specification name="error" type="java.lang.String"/>
  
  <property-specification name="publisher" type="org.apache.tapestry.vlib.ejb.Publisher"/>
  
  <component id="listEdit" type="ListEdit">
  	<binding name="source" expression="listEditMap.keys"/>
  	<binding name="value" expression="listEditMap.key"/>
  	<static-binding name="element" value="tr"/>
  	<binding name="listener" expression="listeners.synchronizePublisher"/>
  </component>
  
</page-specification>
