Author: nbelaevski
Date: 2008-12-04 11:43:07 -0500 (Thu, 04 Dec 2008)
New Revision: 11554
Added:
trunk/samples/orderingListDemo/src/main/java/org/richfaces/ConvertableDemoBean.java
trunk/samples/orderingListDemo/src/main/java/org/richfaces/ConvertableDemoBeanConverter.java
Modified:
trunk/samples/orderingListDemo/src/main/java/org/richfaces/Bean.java
trunk/samples/orderingListDemo/src/main/webapp/WEB-INF/faces-config.xml
trunk/samples/orderingListDemo/src/main/webapp/pages/index.jsp
Log:
https://jira.jboss.org/jira/browse/RF-4539
Modified: trunk/samples/orderingListDemo/src/main/java/org/richfaces/Bean.java
===================================================================
--- trunk/samples/orderingListDemo/src/main/java/org/richfaces/Bean.java 2008-12-04
16:12:22 UTC (rev 11553)
+++ trunk/samples/orderingListDemo/src/main/java/org/richfaces/Bean.java 2008-12-04
16:43:07 UTC (rev 11554)
@@ -24,7 +24,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import java.util.Random;
import javax.faces.component.UIComponent;
import javax.faces.component.UIOutput;
@@ -37,6 +36,9 @@
*/
public class Bean {
private List lists = new ArrayList();
+
+ private List<ConvertableDemoBean> genericLists = new
ArrayList<ConvertableDemoBean>();
+
private String [] simpleItems = new String [] {
"First", "Second", "Third", "Fourth"
};
@@ -48,6 +50,10 @@
lists.add(new OrderingListDemoBean());
}
+ for (int i = 0; i < 10; i++) {
+ genericLists.add(new ConvertableDemoBean("#" + i, i));
+ }
+
for (int i = 0; i < 6; i++) {
zebraItems.add(String.valueOf(i));
}
@@ -61,6 +67,14 @@
this.lists = lists;
}
+ public List<ConvertableDemoBean> getGenericList() {
+ return this.genericLists;
+ }
+
+ public void setGenericList(List<ConvertableDemoBean> list) {
+ this.genericLists = list;
+ }
+
public String[] getSimpleItems() {
return simpleItems;
}
Added:
trunk/samples/orderingListDemo/src/main/java/org/richfaces/ConvertableDemoBean.java
===================================================================
--- trunk/samples/orderingListDemo/src/main/java/org/richfaces/ConvertableDemoBean.java
(rev 0)
+++
trunk/samples/orderingListDemo/src/main/java/org/richfaces/ConvertableDemoBean.java 2008-12-04
16:43:07 UTC (rev 11554)
@@ -0,0 +1,96 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+package org.richfaces;
+
+import java.io.Serializable;
+
+/**
+ * @author Nick Belaevski
+ * @since 3.3.0
+ */
+public class ConvertableDemoBean implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 6202523836189784862L;
+
+ private String name;
+
+ private int value;
+
+ /**
+ * @return the name
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @return the value
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + value;
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ConvertableDemoBean other = (ConvertableDemoBean) obj;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ if (value != other.value)
+ return false;
+ return true;
+ }
+
+ public ConvertableDemoBean(String name, int value) {
+ super();
+ this.name = name;
+ this.value = value;
+ }
+
+}
Added:
trunk/samples/orderingListDemo/src/main/java/org/richfaces/ConvertableDemoBeanConverter.java
===================================================================
---
trunk/samples/orderingListDemo/src/main/java/org/richfaces/ConvertableDemoBeanConverter.java
(rev 0)
+++
trunk/samples/orderingListDemo/src/main/java/org/richfaces/ConvertableDemoBeanConverter.java 2008-12-04
16:43:07 UTC (rev 11554)
@@ -0,0 +1,58 @@
+/**
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+package org.richfaces;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+
+/**
+ * @author Nick Belaevski
+ * @since 3.3.0
+ */
+public class ConvertableDemoBeanConverter implements Converter {
+
+ public Object getAsObject(FacesContext context, UIComponent component,
+ String value) {
+
+ if (value == null || value.length() == 0) {
+ return null;
+ }
+
+ String[] split = value.split(":");
+
+ return new ConvertableDemoBean(split[0], Integer.valueOf(split[1]));
+ }
+
+ public String getAsString(FacesContext context, UIComponent component,
+ Object value) {
+
+ if (value == null) {
+ return "";
+ }
+
+ ConvertableDemoBean convertableDemoBean = (ConvertableDemoBean) value;
+ return convertableDemoBean.getName() + ":" + convertableDemoBean.getValue();
+ }
+
+}
Modified: trunk/samples/orderingListDemo/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/samples/orderingListDemo/src/main/webapp/WEB-INF/faces-config.xml 2008-12-04
16:12:22 UTC (rev 11553)
+++ trunk/samples/orderingListDemo/src/main/webapp/WEB-INF/faces-config.xml 2008-12-04
16:43:07 UTC (rev 11554)
@@ -26,5 +26,10 @@
<managed-bean-name>converter</managed-bean-name>
<managed-bean-class>org.richfaces.OptionItemConverter</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
- </managed-bean>
+ </managed-bean>
+
+ <converter>
+ <converter-for-class>org.richfaces.ConvertableDemoBean</converter-for-class>
+ <converter-class>org.richfaces.ConvertableDemoBeanConverter</converter-class>
+ </converter>
</faces-config>
Modified: trunk/samples/orderingListDemo/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/samples/orderingListDemo/src/main/webapp/pages/index.jsp 2008-12-04 16:12:22 UTC
(rev 11553)
+++ trunk/samples/orderingListDemo/src/main/webapp/pages/index.jsp 2008-12-04 16:43:07 UTC
(rev 11554)
@@ -227,6 +227,13 @@
</h:column>
</ol:orderingList>
</h:panelGroup>
+
+ <h:panelGroup>
+ <ol:orderingList value="#{bean.genericList}" var="var">
+ <h:column><h:outputText value="#{var.name}"
/></h:column>
+ <h:column><h:outputText value="#{var.value}"
/></h:column>
+ </ol:orderingList>
+ </h:panelGroup>
</h:panelGrid>
<a4j:commandButton value="Ajax Submit"
reRender="orderingList1" />
<h:commandButton value="Add item" action="#{demoBean.addItem}"
/>