Author: abelevich
Date: 2009-02-12 08:41:14 -0500 (Thu, 12 Feb 2009)
New Revision: 12638
Added:
trunk/samples/pickList-sample/src/main/java/org/richfaces/Animal.java
trunk/samples/pickList-sample/src/main/java/org/richfaces/CustomConverter.java
Modified:
trunk/samples/pickList-sample/src/main/java/org/richfaces/Bean.java
trunk/samples/pickList-sample/src/main/webapp/WEB-INF/faces-config.xml
trunk/samples/pickList-sample/src/main/webapp/pages/index.jsp
Log:
extend demo
Added: trunk/samples/pickList-sample/src/main/java/org/richfaces/Animal.java
===================================================================
--- trunk/samples/pickList-sample/src/main/java/org/richfaces/Animal.java
(rev 0)
+++ trunk/samples/pickList-sample/src/main/java/org/richfaces/Animal.java 2009-02-12
13:41:14 UTC (rev 12638)
@@ -0,0 +1,17 @@
+package org.richfaces;
+
+public class Animal {
+
+ String name;
+
+ public Animal(String name) {
+ this.name = name;
+ }
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Modified: trunk/samples/pickList-sample/src/main/java/org/richfaces/Bean.java
===================================================================
--- trunk/samples/pickList-sample/src/main/java/org/richfaces/Bean.java 2009-02-12
13:38:38 UTC (rev 12637)
+++ trunk/samples/pickList-sample/src/main/java/org/richfaces/Bean.java 2009-02-12
13:41:14 UTC (rev 12638)
@@ -1,15 +1,17 @@
package org.richfaces;
import java.util.ArrayList;
-import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
+import javax.faces.model.SelectItemGroup;
public class Bean {
-private ArrayList<SelectItem> testList = new ArrayList<SelectItem>();
+ private List <SelectItem> testList = new ArrayList<SelectItem>();
private String selectedInfo;
private String targetListWidth="140px";
@@ -20,17 +22,56 @@
private String removeLabel = null;
private String removeAllLabel = null;
-// private String [] values = new String[]{"polecat","suricate"};
- private List <String> listValues = new ArrayList<String>();
+ private List <Animal> listValues = new ArrayList<Animal>();
+
+// private List <String> listValues = new ArrayList<String>();
+
+// private Animal[] arrayValues = new Animal[7];
+
+ private Map <String,Animal> store = new HashMap<String,Animal>();
+
public Bean() {
- testList.add(new SelectItem("polecat", "polecat"));
- testList.add(new SelectItem("suricate", "suricate"));
- testList.add(new SelectItem("marshotter", "marshotter"));
+
+// testList.add(new SelectItem("polecat"));
+// testList.add(new SelectItem("suricate"));
+// testList.add(new SelectItem("marshotter"));
+// testList.add(new SelectItem("dog"));
+// testList.add(new SelectItem("cat"));
+// testList.add(new SelectItem("bear"));
+// testList.add(new SelectItem("wolf"));
+//
+// listValues.add("polecat");
+
+
+ store.put("polecat", new Animal("polecat"));
+ store.put("suricate", new Animal("suricate"));
+ store.put("marshotter", new Animal("marshotter"));
+ store.put("dog", new Animal("dog"));
+ store.put("cat", new Animal("cat"));
+ store.put("bear", new Animal("bear"));
+ store.put("wolf", new Animal("wolf"));
+
+ testList.add(new SelectItem(store.get("polecat"),"polecat"));
+ testList.add(new SelectItem(store.get("suricate"),
"suricate"));
+ testList.add(new SelectItem(store.get("marshotter"),
"marshotter"));
+ testList.add(new SelectItem(store.get("dog"), "dog"));
+ testList.add(new SelectItem(store.get("cat"), "cat"));
- listValues.add("polecat");
- listValues.add("suricate");
+ SelectItem [] items = new SelectItem[2];
+ items[0] = new SelectItem(store.get("bear"), "bear");
+ items[1] = new SelectItem(store.get("wolf"), "wolf");
+ SelectItemGroup group = new SelectItemGroup();
+ group.setSelectItems(items);
+ testList.add(group);
+
+ listValues.add(store.get("suricate"));
+ listValues.add(store.get("marshotter"));
+//
+// arrayValues[0] = store.get("suricate");
+// arrayValues[1] = store.get("marshotter");
+
}
public void selectionChanged(ValueChangeEvent evt) {
@@ -40,8 +81,8 @@
if (newValue instanceof List) {
List list = (List)newValue;
selectedValues = list.toArray();
- } else if (newValue instanceof String[] ) {
- selectedValues = (String[]) evt.getNewValue();
+ } else if (newValue instanceof Object[] ) {
+ selectedValues = (Object[]) evt.getNewValue();
}
if (selectedValues.length == 0) {
@@ -52,13 +93,14 @@
if (i > 0) {
sb.append(", ");
}
+
sb.append(selectedValues[i]);
}
selectedInfo = sb.toString();
}
}
- public ArrayList getTestList() {
+ public List <SelectItem> getTestList() {
return testList;
}
@@ -90,7 +132,7 @@
this.listsHeight = listsHeight;
}
- public void setTestList(ArrayList testList) {
+ public void setTestList(List <SelectItem> testList) {
this.testList = testList;
}
//
@@ -134,11 +176,11 @@
this.removeAllLabel = removeAllLabel;
}
- public List <String> getListValues() {
+ public List <Animal> getListValues() {
return listValues;
}
- public void setListValues(List<String> listValues) {
+ public void setListValues(List<Animal> listValues) {
this.listValues = listValues;
}
@@ -146,4 +188,30 @@
this.selectedInfo = selectedInfo;
}
+ public Map<String, Animal> getStore() {
+ return store;
+ }
+
+ public void setStore(Map<String, Animal> store) {
+ this.store = store;
+ }
+
+// public List<String> getListValues() {
+// return listValues;
+// }
+//
+// public void setListValues(List<String> listValues) {
+// this.listValues = listValues;
+// }
+
+
+
+// public Animal[] getArrayValues() {
+// return arrayValues;
+// }
+//
+// public void setArrayValues(Animal[] arrayValues) {
+// this.arrayValues = arrayValues;
+// }
+
}
\ No newline at end of file
Added: trunk/samples/pickList-sample/src/main/java/org/richfaces/CustomConverter.java
===================================================================
--- trunk/samples/pickList-sample/src/main/java/org/richfaces/CustomConverter.java
(rev 0)
+++
trunk/samples/pickList-sample/src/main/java/org/richfaces/CustomConverter.java 2009-02-12
13:41:14 UTC (rev 12638)
@@ -0,0 +1,22 @@
+package org.richfaces;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
+
+public class CustomConverter implements Converter {
+
+ public Object getAsObject(FacesContext context, UIComponent component, String value) {
+ Bean bean =
(Bean)context.getExternalContext().getSessionMap().get("pickBean");
+ return bean.getStore().get(value);
+ }
+
+ public String getAsString(FacesContext context, UIComponent component, Object value) {
+ if(value != null) {
+ return ((Animal)value).getName();
+ } else {
+ return "";
+ }
+ }
+
+}
Modified: trunk/samples/pickList-sample/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/samples/pickList-sample/src/main/webapp/WEB-INF/faces-config.xml 2009-02-12
13:38:38 UTC (rev 12637)
+++ trunk/samples/pickList-sample/src/main/webapp/WEB-INF/faces-config.xml 2009-02-12
13:41:14 UTC (rev 12638)
@@ -12,12 +12,11 @@
<managed-bean-class>org.richfaces.SkinBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
- <application>
- <locale-config>
- <default-locale>en</default-locale>
- <supported-locale>ru</supported-locale>
- </locale-config>
- <message-bundle>localization</message-bundle>
- </application>
-
+
+ <converter>
+ <converter-for-class>org.richfaces.Animal</converter-for-class>
+ <!-- <converter-id>converterId</converter-id> -->
+ <converter-class>org.richfaces.CustomConverter</converter-class>
+ </converter>
+
</faces-config>
Modified: trunk/samples/pickList-sample/src/main/webapp/pages/index.jsp
===================================================================
--- trunk/samples/pickList-sample/src/main/webapp/pages/index.jsp 2009-02-12 13:38:38 UTC
(rev 12637)
+++ trunk/samples/pickList-sample/src/main/webapp/pages/index.jsp 2009-02-12 13:41:14 UTC
(rev 12638)
@@ -59,13 +59,12 @@
removeControlLabel = "#{pickBean.removeLabel}"
removeAllControlLabel ="#{pickBean.removeAllLabel}"
value="#{pickBean.listValues}"
- onlistchange="return false;"
- showButtonsLabel="true">
- <f:selectItem itemValue="cat" itemLabel="cat"/>
- <f:selectItem itemValue="dog" itemLabel="dog"/>
+ showButtonsLabel="true"
+ >
<f:selectItems value="#{pickBean.testList}"/>
- </pickList:pickList>
+ </pickList:pickList>
+
<h:commandButton value="Submit" action="none"/>
</h:form>
<h:outputText value="#{pickBean.selectedInfo}"/>