You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mb...@apache.org on 2005/07/19 12:21:10 UTC

svn commit: r219642 - in /myfaces/examples/trunk/simple: ./ WEB-INF/ src/java/org/apache/myfaces/examples/listexample/ src/java/org/apache/myfaces/examples/resource/

Author: mbr
Date: Tue Jul 19 03:21:04 2005
New Revision: 219642

URL: http://svn.apache.org/viewcvs?rev=219642&view=rev
Log:
updated the examples to verify the new uidata implementations

Added:
    myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCity.java
Modified:
    myfaces/examples/trunk/simple/WEB-INF/examples-config.xml
    myfaces/examples/trunk/simple/countryTableForm.jsp
    myfaces/examples/trunk/simple/openDataTable.jsp
    myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerActionListener.java
    myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/OpenDataList.java
    myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountry.java
    myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountryList.java
    myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages.properties
    myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages_de.properties

Modified: myfaces/examples/trunk/simple/WEB-INF/examples-config.xml
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/WEB-INF/examples-config.xml?rev=219642&r1=219641&r2=219642&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/WEB-INF/examples-config.xml (original)
+++ myfaces/examples/trunk/simple/WEB-INF/examples-config.xml Tue Jul 19 03:21:04 2005
@@ -10,6 +10,14 @@
 
 <faces-config>
 
+    <!-- managed bean for ajaxInputSuggest-->
+
+     <managed-bean>
+        <managed-bean-name>ajaxInputSuggest</managed-bean-name>
+        <managed-bean-class>org.apache.myfaces.examples.ajaxInputSuggest.AjaxInputSuggest</managed-bean-class>
+        <managed-bean-scope>request</managed-bean-scope>
+    </managed-bean>
+
     <!-- Managed Beans for sample1.jsp -->
 
     <managed-bean>
@@ -483,7 +491,7 @@
     </navigation-rule>
 
     <navigation-rule>
-        <from-view-id>/dataTable.jsp</from-view-id>
+        <!-- from-view-id>/dataTable.jsp</from-view-id -->
         <navigation-case>
             <from-outcome>go_edit_table</from-outcome>
             <to-view-id>/countryTableForm.jsp</to-view-id>

Modified: myfaces/examples/trunk/simple/countryTableForm.jsp
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/countryTableForm.jsp?rev=219642&r1=219641&r2=219642&view=diff
==============================================================================
Binary files - no diff available.

Modified: myfaces/examples/trunk/simple/openDataTable.jsp
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/openDataTable.jsp?rev=219642&r1=219641&r2=219642&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/openDataTable.jsp (original)
+++ myfaces/examples/trunk/simple/openDataTable.jsp Tue Jul 19 03:21:04 2005
@@ -34,71 +34,75 @@
 <f:view>
 
     <f:loadBundle basename="org.apache.myfaces.examples.resource.example_messages" var="example_messages"/>
-
-    <x:dataTable id="data"
-                 styleClass="scrollerTable"
-                 headerClass="standardTable_Header"
-                 footerClass="standardTable_Header"
-                 rowClasses="standardTable_Row1,standardTable_Row2"
-                 columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_Column"
-                 rowOnMouseOver="this.style.backgroundColor='#A5CBFF'"
-                 rowOnMouseOut="this.style.backgroundColor='#FFFFE0'"
-                 var="row"
-                 value="#{openDataList.data}"
-                 preserveDataModel="true"
-                 rows="10"
-                 sortColumn="#{openDataList.sort}"
-                 sortAscending="#{openDataList.ascending}"
-                 preserveSort="true">
-        <x:columns value="#{openDataList.columnHeaders}" var="columnHeader">
-            <f:facet name="header">
-                <x:commandSortHeader columnName="#{columnHeader}" arrow="false">
-                    <f:facet name="ascending">
-                        <h:graphicImage value="images/ascending-arrow.gif" rendered="true" border="0"/>
-                    </f:facet>
-                    <f:facet name="descending">
-                        <h:graphicImage value="images/descending-arrow.gif" rendered="true" border="0"/>
-                    </f:facet>
-                    <h:outputText value="#{columnHeader}" />
-                </x:commandSortHeader>
-            </f:facet>
-            <!-- row is also available -->
-            <h:outputText value="#{openDataList.columnValue}" />
-        </x:columns>
-    </x:dataTable>
-
-    <h:panelGrid columns="1" styleClass="scrollerTable2" columnClasses="standardTable_ColumnCentered" >
-        <x:dataScroller id="scroll_1"
-                        for="data"
-                        fastStep="10"
-                        pageCountVar="pageCount"
-                        pageIndexVar="pageIndex"
-                        styleClass="scroller"
-                        paginator="true"
-                        paginatorMaxPages="9"
-                        paginatorTableClass="paginator"
-                        paginatorActiveColumnStyle="font-weight:bold;">
-            <f:facet name="first" >
-                <h:graphicImage url="images/arrow-first.gif" border="1" />
-            </f:facet>
-            <f:facet name="last">
-                <h:graphicImage url="images/arrow-last.gif" border="1" />
-            </f:facet>
-            <f:facet name="previous">
-                <h:graphicImage url="images/arrow-previous.gif" border="1" />
-            </f:facet>
-            <f:facet name="next">
-                <h:graphicImage url="images/arrow-next.gif" border="1" />
-            </f:facet>
-            <f:facet name="fastforward">
-                <h:graphicImage url="images/arrow-ff.gif" border="1" />
-            </f:facet>
-            <f:facet name="fastrewind">
-                <h:graphicImage url="images/arrow-fr.gif" border="1" />
-            </f:facet>
-        </x:dataScroller>
-
-    </h:panelGrid>
+    <h:messages />
+	<h:form>
+	    <x:dataTable id="data"
+	                 styleClass="scrollerTable"
+	                 headerClass="standardTable_Header"
+	                 footerClass="standardTable_Header"
+	                 rowClasses="standardTable_Row1,standardTable_Row2"
+	                 columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_Column"
+	                 rowOnMouseOver="this.style.backgroundColor='#A5CBFF'"
+	                 rowOnMouseOut="this.style.backgroundColor='#FFFFE0'"
+	                 var="row"
+	                 value="#{openDataList.data}"
+	                 preserveDataModel="false"
+	                 rows="10"
+	                 sortColumn="#{openDataList.sort}"
+	                 sortAscending="#{openDataList.ascending}"
+	                 preserveSort="true">
+	        <x:columns id="columns" value="#{openDataList.columnHeaders}" var="columnHeader">
+	            <f:facet name="header">
+	                <x:commandSortHeader columnName="#{columnHeader}" arrow="false" immediate="false">
+	                    <f:facet name="ascending">
+	                        <h:graphicImage value="images/ascending-arrow.gif" rendered="true" border="0"/>
+	                    </f:facet>
+	                    <f:facet name="descending">
+	                        <h:graphicImage value="images/descending-arrow.gif" rendered="true" border="0"/>
+	                    </f:facet>
+	                    <h:outputText value="#{columnHeader}" />
+	                </x:commandSortHeader>
+	            </f:facet>
+	            <!-- row is also available -->
+	            <h:inputText rendered="#{openDataList.valueModifiable}" value="#{openDataList.columnValue}" />
+	            <h:outputText rendered="#{!openDataList.valueModifiable}" value="#{openDataList.columnValue}" />
+	        </x:columns>
+	    </x:dataTable>
+	
+	    <h:panelGrid columns="1" styleClass="scrollerTable2" columnClasses="standardTable_ColumnCentered" >
+	        <x:dataScroller id="scroll_1"
+	                        for="data"
+	                        fastStep="10"
+	                        pageCountVar="pageCount"
+	                        pageIndexVar="pageIndex"
+	                        styleClass="scroller"
+	                        paginator="true"
+	                        paginatorMaxPages="9"
+	                        paginatorTableClass="paginator"
+	                        paginatorActiveColumnStyle="font-weight:bold;"
+	                        immediate="false">
+	            <f:facet name="first" >
+	                <h:graphicImage url="images/arrow-first.gif" border="1" />
+	            </f:facet>
+	            <f:facet name="last">
+	                <h:graphicImage url="images/arrow-last.gif" border="1" />
+	            </f:facet>
+	            <f:facet name="previous">
+	                <h:graphicImage url="images/arrow-previous.gif" border="1" />
+	            </f:facet>
+	            <f:facet name="next">
+	                <h:graphicImage url="images/arrow-next.gif" border="1" />
+	            </f:facet>
+	            <f:facet name="fastforward">
+	                <h:graphicImage url="images/arrow-ff.gif" border="1" />
+	            </f:facet>
+	            <f:facet name="fastrewind">
+	                <h:graphicImage url="images/arrow-fr.gif" border="1" />
+	            </f:facet>
+	        </x:dataScroller>
+	
+	    </h:panelGrid>
+	</h:form>
 
 </f:view>
 

Modified: myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerActionListener.java
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerActionListener.java?rev=219642&r1=219641&r2=219642&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerActionListener.java (original)
+++ myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/DataScrollerActionListener.java Tue Jul 19 03:21:04 2005
@@ -1,5 +1,17 @@
-/**
+/*
+ * 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.
  */
 package org.apache.myfaces.examples.listexample;
 

Modified: myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/OpenDataList.java
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/OpenDataList.java?rev=219642&r1=219641&r2=219642&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/OpenDataList.java (original)
+++ myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/OpenDataList.java Tue Jul 19 03:21:04 2005
@@ -1,7 +1,27 @@
+/*
+ * 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.
+ */
 package org.apache.myfaces.examples.listexample;
 
-import java.util.*;
-import javax.faces.model.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import javax.faces.model.DataModel;
+import javax.faces.model.ListDataModel;
 
 public class OpenDataList extends SortableList
 {
@@ -68,6 +88,19 @@
             columnValue = ((List)data.getRowData()).get(columnHeaders.getRowIndex());
         }
         return columnValue;
+    }
+    
+    public void setColumnValue(Object value)
+    {
+      if (data.isRowAvailable() && columnHeaders.isRowAvailable())
+      {
+          ((List)data.getRowData()).set(columnHeaders.getRowIndex(), value);
+      }
+    }
+    
+    public boolean isValueModifiable()
+    {
+    	return columnHeaders.isRowAvailable() && data.isRowAvailable() && !"Index".equals(columnHeaders.getRowData());
     }
 
     //==========================================================================

Added: myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCity.java
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCity.java?rev=219642&view=auto
==============================================================================
--- myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCity.java (added)
+++ myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCity.java Tue Jul 19 03:21:04 2005
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ */
+package org.apache.myfaces.examples.listexample;
+
+import java.io.Serializable;
+
+/**
+ * @author MBroekelmann
+ *
+ */
+public class SimpleCity implements Serializable
+{
+	private String mName;
+
+	/**
+	 * 
+	 */
+	public SimpleCity(String name)
+	{
+		mName = name;
+	}
+
+	/**
+	 * 
+	 */
+	public SimpleCity()
+	{
+	}
+
+	/**
+	 * @return Returns the name.
+	 */
+	public String getName()
+	{
+		return mName;
+	}
+
+	/**
+	 * @param name The name to set.
+	 */
+	public void setName(String name)
+	{
+		mName = name;
+	}
+
+	/**
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString()
+	{
+		return getName();
+	}
+}

Modified: myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountry.java
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountry.java?rev=219642&r1=219641&r2=219642&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountry.java (original)
+++ myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountry.java Tue Jul 19 03:21:04 2005
@@ -17,90 +17,189 @@
 
 import java.io.Serializable;
 import java.math.BigDecimal;
-import java.util.List;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIData;
+import javax.faces.component.html.HtmlDataTable;
+import javax.faces.event.ActionEvent;
 
 /**
  * DOCUMENT ME!
  * @author Thomas Spiegl (latest modification by $Author$)
  * @version $Revision$ $Date$
  */
-public class SimpleCountry
-        implements Serializable
+public class SimpleCountry implements Serializable
 {
-    private long _id;
-    private String _name;
-    private String _isoCode;
-    private BigDecimal _size;
-    private boolean _remove = false;
-    private List _cities;
-
-    public SimpleCountry(long id, String name, String isoCode, BigDecimal size, String[] cities)
-    {
-        _id = id;
-        _name = name;
-        _isoCode = isoCode;
-        _size = size;
-
-        if(cities!=null)
-            _cities = Arrays.asList(cities);
-        else
-            _cities = Collections.EMPTY_LIST;
-    }
-
-    public long getId()
-    {
-        return _id;
-    }
-
-    public String getName()
-    {
-        return _name;
-    }
-
-    public String getIsoCode()
-    {
-        return _isoCode;
-    }
-
-    public BigDecimal getSize()
-    {
-        return _size;
-    }
-
-    public List getCities()
-    {
-        return _cities;
-    }
-
-    public void setId(long id)
-    {
-        _id = id;
-    }
-
-    public void setIsoCode(String isoCode)
-    {
-        _isoCode = isoCode;
-    }
-
-    public void setName(String name)
-    {
-        _name = name;
-    }
-
-    public void setSize(BigDecimal size)
-    {
-        _size = size;
-    }
-
-    public boolean isRemove()
-    {
-        return _remove;
-    }
-
-    public void setRemove(boolean remove)
-    {
-        _remove = remove;
-    }
+	private long _id;
+	private String _name;
+	private String _isoCode;
+	private BigDecimal _size;
+	private boolean _remove = false;
+	private List _cities;
+	private String mSortCitiesColumn;
+	private boolean mIsSortCitiesAscending;
+	
+	public SimpleCountry(long id, String name, String isoCode, BigDecimal size, SimpleCity[] cities)
+	{
+		_id = id;
+		_name = name;
+		_isoCode = isoCode;
+		_size = size;
+
+		if (cities != null)
+			_cities = new ArrayList(Arrays.asList(cities));
+		else
+			_cities = new ArrayList();
+	}
+
+	public long getId()
+	{
+		return _id;
+	}
+
+	public String getName()
+	{
+		return _name;
+	}
+
+	public String getIsoCode()
+	{
+		return _isoCode;
+	}
+
+	public BigDecimal getSize()
+	{
+		return _size;
+	}
+
+	public List getCities()
+	{
+		if (mSortCitiesColumn != null)
+		{
+			Collections.sort(_cities, new Comparator()
+			{
+				public int compare(Object arg0, Object arg1)
+				{
+					SimpleCity lhs;
+					SimpleCity rhs;
+					if (isSortCitiesAscending())
+					{
+						lhs = (SimpleCity) arg0;
+						rhs = (SimpleCity) arg1;
+					}
+					else
+					{
+						rhs = (SimpleCity) arg0;
+						lhs = (SimpleCity) arg1;
+					}
+					String lhsName = lhs.getName();
+					String rhsName = rhs.getName();
+					if (lhsName != null)
+					{
+						if(rhsName != null)
+						{
+							return lhsName.compareToIgnoreCase(rhsName);
+						}
+						return -1;
+					}
+					else if (rhsName != null)
+					{
+						return 1;
+					}
+					return 0;
+				}
+			});
+		}
+		return _cities;
+	}
+
+	public void setId(long id)
+	{
+		_id = id;
+	}
+
+	public void setIsoCode(String isoCode)
+	{
+		_isoCode = isoCode;
+	}
+
+	public void setName(String name)
+	{
+		_name = name;
+	}
+
+	public void setSize(BigDecimal size)
+	{
+		_size = size;
+	}
+
+	public boolean isRemove()
+	{
+		return _remove;
+	}
+
+	public void setRemove(boolean remove)
+	{
+		_remove = remove;
+	}
+
+	public String addCity()
+	{
+		getCities().add(new SimpleCity());
+		return null;
+	}
+
+	public void deleteCity(ActionEvent ev)
+	{
+		UIData datatable = findParentHtmlDataTable(ev.getComponent());
+		getCities().remove(datatable.getRowIndex() + datatable.getFirst());
+	}
+
+	public void setSortCitiesColumn(String columnName)
+	{
+		mSortCitiesColumn = columnName;
+	}
+
+	/**
+	 * @return Returns the sortCitiesColumn.
+	 */
+	public String getSortCitiesColumn()
+	{
+		return mSortCitiesColumn;
+	}
+
+	public boolean isSortCitiesAscending()
+	{
+		return mIsSortCitiesAscending;
+	}
+
+	/**
+	 * @param isSortCitiesAscending The isSortCitiesAscending to set.
+	 */
+	public void setSortCitiesAscending(boolean isSortCitiesAscending)
+	{
+		mIsSortCitiesAscending = isSortCitiesAscending;
+	}
+
+	/**
+	 * @param component
+	 * @return
+	 */
+	private HtmlDataTable findParentHtmlDataTable(UIComponent component)
+	{
+		if (component == null)
+		{
+			return null;
+		}
+		if (component instanceof HtmlDataTable)
+		{
+			return (HtmlDataTable) component;
+		}
+		return findParentHtmlDataTable(component.getParent());
+	}
 }

Modified: myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountryList.java
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountryList.java?rev=219642&r1=219641&r2=219642&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountryList.java (original)
+++ myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/listexample/SimpleCountryList.java Tue Jul 19 03:21:04 2005
@@ -19,6 +19,8 @@
 
 import javax.faces.event.ActionEvent;
 import javax.faces.component.UIComponent;
+import javax.faces.component.UIData;
+
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
@@ -100,15 +102,29 @@
 
     public SimpleCountryList()
     {
-        _countries.add(new SimpleCountry(1, "AUSTRIA", "AT", new BigDecimal(123),new String[]{"Wien","Graz","Linz","Salzburg"}));
-        _countries.add(new SimpleCountry(2, "AZERBAIJAN", "AZ", new BigDecimal(535),new String[]{"Baku","Sumgait","Qabala","Agdam"}));
-        _countries.add(new SimpleCountry(3, "BAHAMAS", "BS", new BigDecimal(1345623),new String[]{"Nassau","Alice Town","Church Grove","West End"}));
-        _countries.add(new SimpleCountry(4, "BAHRAIN", "BH", new BigDecimal(346),new String[]{"Bahrain"}));
-        _countries.add(new SimpleCountry(5, "BANGLADESH", "BD", new BigDecimal(456),new String[]{"Chittagong","Chandpur","Bogra","Feni"}));
-        _countries.add(new SimpleCountry(6, "BARBADOS", "BB", new BigDecimal(45645),new String[]{"Grantley Adams"}));
-    }
+        _countries.add(new SimpleCountry(1, "AUSTRIA", "AT", new BigDecimal(123), createCities(new String[]{"Wien","Graz","Linz","Salzburg"})));
+        _countries.add(new SimpleCountry(2, "AZERBAIJAN", "AZ", new BigDecimal(535), createCities(new String[]{"Baku","Sumgait","Qabala","Agdam"})));
+        _countries.add(new SimpleCountry(3, "BAHAMAS", "BS", new BigDecimal(1345623), createCities(new String[]{"Nassau","Alice Town","Church Grove","West End"})));
+        _countries.add(new SimpleCountry(4, "BAHRAIN", "BH", new BigDecimal(346), createCities(new String[]{"Bahrain"})));
+        _countries.add(new SimpleCountry(5, "BANGLADESH", "BD", new BigDecimal(456), createCities(new String[]{"Chittagong","Chandpur","Bogra","Feni"})));
+        _countries.add(new SimpleCountry(6, "BARBADOS", "BB", new BigDecimal(45645), createCities(new String[]{"Grantley Adams"})));
+    }
+
+    /**
+	 * @param strings
+	 * @return
+	 */
+	private SimpleCity[] createCities(String[] names)
+	{
+		SimpleCity[] result = new SimpleCity[names.length];
+		for (int i = 0; i < result.length; i++)
+		{
+			result[i] = new SimpleCity(names[i]);
+		}
+		return result;
+	}
 
-    public List getCountries()
+	public List getCountries()
     {
         return _countries;
     }
@@ -127,7 +143,7 @@
 
         return map;
     }
-
+    
     public void setCountries(List countries)
     {
         _countries = countries;
@@ -136,14 +152,30 @@
     public String addCountry()
     {
         List list = getCountries();
-        list.add(new SimpleCountry(list.size() + 1, "", "", new BigDecimal(0), new String[] {}));
+        list.add(new SimpleCountry(list.size() + 1, "", "", new BigDecimal(0), createCities(new String[] {})));
         return "ok";
     }
 
-    public void deleteCountry(ActionEvent ev)
-    {
-        UIComponent comp = ev.getComponent();
-        HtmlDataTable dataTable = (HtmlDataTable) comp.getParent().getParent();
-        getCountries().remove(dataTable.getRowIndex());
-    }
+	public void deleteCountry(ActionEvent ev)
+	{
+		UIData datatable = findParentHtmlDataTable(ev.getComponent());
+		getCountries().remove(datatable.getRowIndex() + datatable.getFirst());
+	}
+
+	/**
+	 * @param component
+	 * @return
+	 */
+	private HtmlDataTable findParentHtmlDataTable(UIComponent component)
+	{
+		if (component == null)
+		{
+			return null;
+		}
+		if (component instanceof HtmlDataTable)
+		{
+			return (HtmlDataTable) component;
+		}
+		return findParentHtmlDataTable(component.getParent());
+	}
 }

Modified: myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages.properties
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages.properties?rev=219642&r1=219641&r2=219642&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages.properties (original)
+++ myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages.properties Tue Jul 19 03:21:04 2005
@@ -119,6 +119,9 @@
 label_country_cities = Cities
 new_country = Add New Country \uffbb
 country_edit_table = Edit all Countries \uffbb
+label_country_city_add = Add new City
+label_country_city_delete = delete
+label_city = City
 
 dataList_simple = Simple list
 dataList_ul = Unordered list

Modified: myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages_de.properties
URL: http://svn.apache.org/viewcvs/myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages_de.properties?rev=219642&r1=219641&r2=219642&view=diff
==============================================================================
--- myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages_de.properties (original)
+++ myfaces/examples/trunk/simple/src/java/org/apache/myfaces/examples/resource/example_messages_de.properties Tue Jul 19 03:21:04 2005
@@ -81,6 +81,9 @@
 label_country_iso = Iso-Code
 new_country = Neues Land anlegen »
 country_edit_table = Alle Länder bearbeiten »
+label_country_city_add = Stadt hinzufügen
+label_country_city_delete = löschen
+label_city = Stadt
 
 dataList_simple = Einfache Liste
 dataList_ul = Unsortierte Liste