[richfaces-svn-commits] JBoss Rich Faces SVN: r11979 - in trunk/samples/richfaces-demo/src/main: webapp/WEB-INF and 1 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Tue Dec 23 04:08:49 EST 2008


Author: pgolawski
Date: 2008-12-23 04:08:49 -0500 (Tue, 23 Dec 2008)
New Revision: 11979

Modified:
   trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/extendedDataTable/ExtendedTableBean.java
   trunk/samples/richfaces-demo/src/main/webapp/WEB-INF/faces-config.xml
   trunk/samples/richfaces-demo/src/main/webapp/richfaces/extendedDataTable/examples/simple.xhtml
Log:
https://jira.jboss.org/jira/browse/RF-5422
use ExtendedTableDataModel

Modified: trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/extendedDataTable/ExtendedTableBean.java
===================================================================
--- trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/extendedDataTable/ExtendedTableBean.java	2008-12-23 01:20:32 UTC (rev 11978)
+++ trunk/samples/richfaces-demo/src/main/java/org/richfaces/demo/extendedDataTable/ExtendedTableBean.java	2008-12-23 09:08:49 UTC (rev 11979)
@@ -4,41 +4,23 @@
 package org.richfaces.demo.extendedDataTable;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
-import org.richfaces.component.html.HtmlExtendedDataTable;
 import org.richfaces.demo.capitals.Capital;
-import org.richfaces.model.selection.SimpleSelection;
+import org.richfaces.model.DataProvider;
+import org.richfaces.model.ExtendedTableDataModel;
 
 /**
  * @author Ilya Shaikovsky
- * 
+ *
  */
 public class ExtendedTableBean {
 	private String sortMode="single";
 	private String selectionMode="multi";
-	private HtmlExtendedDataTable table;
-	private SimpleSelection selection;
-	private List<Capital> selectedCapitals = new ArrayList<Capital>();
 	
+	private ExtendedTableDataModel<Capital> dataModel;
+	private List<Capital> capitals = new ArrayList<Capital>();
 	
-	public void takeSelection() {
-		getSelectedCapitals().clear();
-		Iterator<Object> iterator = getSelection().getKeys();
-		while (iterator.hasNext()){
-			Object key = iterator.next();
-			table.setRowKey(key);
-			if (table.isRowAvailable()) {
-				getSelectedCapitals().add((Capital) table.getRowData());
-			}
-		}
-	} 
-	
-	public void resetSelection() {
-		getSelectedCapitals().clear();
-	}
-	
 	public String getSortMode() {
 		return sortMode;
 	}
@@ -57,29 +39,41 @@
 
 	public ExtendedTableBean() {
 	}
+	
+	public ExtendedTableDataModel<Capital> getCapitalsDataModel() {
+		if (dataModel == null) {
+			dataModel = new ExtendedTableDataModel<Capital>(new DataProvider<Capital>(){
 
-	public HtmlExtendedDataTable getTable() {
-		return table;
-	}
+				private static final long serialVersionUID = 5054087821033164847L;
 
-	public void setTable(HtmlExtendedDataTable table) {
-		this.table = table;
-	}
+				public Capital getItemByKey(Object key) {
+					for(Capital c : capitals){
+						if (key.equals(getKey(c))){
+							return c;
+						}
+					}
+					return null;
+				}
 
-	public SimpleSelection getSelection() {
-		return selection;
-	}
+				public List<Capital> getItemsByRange(int firstRow, int endRow) {
+					return capitals.subList(firstRow, endRow);
+				}
 
-	public void setSelection(SimpleSelection selection) {
-		this.selection = selection;
-	}
+				public Object getKey(Capital item) {
+					return item.getName();
+				}
 
-	public List<Capital> getSelectedCapitals() {
-		return selectedCapitals;
+				public int getRowCount() {
+					return capitals.size();
+				}
+				
+			});
+		}
+		return dataModel;
 	}
 
-	public void setSelectedCapitals(List<Capital> selectedCapitals) {
-		this.selectedCapitals = selectedCapitals;
+	public void setCapitals(List<Capital> capitals) {
+		this.capitals = capitals;
 	}
-	
+
 }

Modified: trunk/samples/richfaces-demo/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/WEB-INF/faces-config.xml	2008-12-23 01:20:32 UTC (rev 11978)
+++ trunk/samples/richfaces-demo/src/main/webapp/WEB-INF/faces-config.xml	2008-12-23 09:08:49 UTC (rev 11979)
@@ -402,6 +402,10 @@
   <managed-bean-name>extendedTableBean</managed-bean-name>
   <managed-bean-class>org.richfaces.demo.extendedDataTable.ExtendedTableBean</managed-bean-class>
   <managed-bean-scope>request</managed-bean-scope>
+  <managed-property>
+  	<property-name>capitals</property-name>
+   	<value>#{capitalsBean.capitals}</value>
+  </managed-property>
  </managed-bean>
  <managed-bean>
   <managed-bean-name>queueBean</managed-bean-name>

Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/extendedDataTable/examples/simple.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/extendedDataTable/examples/simple.xhtml	2008-12-23 01:20:32 UTC (rev 11978)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/extendedDataTable/examples/simple.xhtml	2008-12-23 09:08:49 UTC (rev 11979)
@@ -1,88 +1,64 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:ui="http://java.sun.com/jsf/facelets"
-	xmlns:h="http://java.sun.com/jsf/html"
-	xmlns:f="http://java.sun.com/jsf/core"
-	xmlns:a4j="http://richfaces.org/a4j"
-	xmlns:rich="http://richfaces.org/rich">
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:a4j="http://richfaces.org/a4j"
+      xmlns:rich="http://richfaces.org/rich">
 
-<ui:composition>
-	<h:form>
+	<ui:composition>
+		<h:form>
 		<h:panelGrid columns="2" columnClasses="top,top">
-			<rich:extendedDataTable value="#{capitalsBean.capitals}" var="cap"
-				id="table" width="580px" height="400px"
-				sortMode="#{extendedTableBean.sortMode}"
-				selectionMode="#{extendedTableBean.selectionMode}"
-				selection="#{extendedTableBean.selection}"
-				binding="#{extendedTableBean.table}">
-				<rich:column sortable="false" label="Flag">
-					<f:facet name="header">
-						<h:outputText value="Flag" />
-					</f:facet>
-					<h:graphicImage value="#{cap.stateFlag}" />
-				</rich:column>
-				<rich:column sortable="true" sortBy="#{cap.state}"
-					filterBy="#{cap.state}" filterEvent="onkeyup" width="170px"
-					label="State Name">
-					<f:facet name="header">
-						<h:outputText value="State Name" />
-					</f:facet>
-					<h:outputText value="#{cap.state}" />
-				</rich:column>
-				<rich:column sortable="true" sortBy="#{cap.name}"
-					filterBy="#{cap.name}" filterEvent="onkeyup" width="170px"
-					label="State Capital">
-					<f:facet name="header">
-						<h:outputText value="State Capital" />
-					</f:facet>
-					<h:outputText value="#{cap.name}" />
-				</rich:column>
-				<rich:column sortable="false" label="Time Zone">
-					<f:facet name="header">
-						<h:outputText value="Time Zone" />
-					</f:facet>
-					<h:outputText value="#{cap.timeZone}" />
-				</rich:column>
-				<a4j:support event="onselectionchange" reRender="restable"
-					ajaxSingle="true" action="#{extendedTableBean.takeSelection}"></a4j:support>
-			</rich:extendedDataTable>
-			<h:panelGrid columns="1">
-				<rich:panel>
-					<f:facet name="header">
-						<h:outputText value="Sort/Selection modes changing" />
-					</f:facet>
-					<h:panelGrid columns="2">
-						<h:outputText value="Sort Mode:" />
-						<h:selectOneMenu value="#{extendedTableBean.sortMode}">
-							<f:selectItem itemLabel="Single" itemValue="single" />
-							<f:selectItem itemLabel="Multi" itemValue="multi" />
-							<a4j:support event="onchange" ajaxSingle="true" reRender="table" />
-						</h:selectOneMenu>
-						<h:outputText value="Selection Mode:" />
-						<h:selectOneMenu value="#{extendedTableBean.selectionMode}">
-							<a4j:support ajaxSingle="true" event="onchange" reRender="table" />
-							<f:selectItem itemLabel="Single" itemValue="single" />
-							<f:selectItem itemLabel="Multi" itemValue="multi" />
-							<f:selectItem itemLabel="None" itemValue="none" />
-						</h:selectOneMenu>
-					</h:panelGrid>
-				</rich:panel>
-				<rich:panel id="restable">
-					<f:facet name="header">
-						<h:outputText value="Selected rows(capital names)" />
-					</f:facet>
-					<rich:dataList value="#{extendedTableBean.selectedCapitals}"
-						var="cap" rendered="#{not empty extendedTableBean.selectedCapitals}">
-						<h:outputText value="#{cap.name}" />
-					</rich:dataList>
-					<h:outputText value="Nothing selected"
-						rendered="#{empty extendedTableBean.selectedCapitals}" />
-				</rich:panel>
+		<rich:extendedDataTable value="#{extendedTableBean.capitalsDataModel}" var="cap" id="table" 
+			width="580px" height="400px" sortMode="#{extendedTableBean.sortMode}" 
+				selectionMode="#{extendedTableBean.selectionMode}">
+			<rich:column sortable="false" label="Flag">  
+				<f:facet name="header">
+					<h:outputText value="Flag"/>
+				</f:facet>
+				<h:graphicImage value="#{cap.stateFlag}"/>
+			</rich:column> 
+			<rich:column sortable="true" sortBy="#{cap.state}" filterBy="#{cap.state}" filterEvent="onkeyup" width="170px" label="State Name">
+				<f:facet name="header">
+					<h:outputText value="State Name"/>
+				</f:facet>
+				<h:outputText value="#{cap.state}"/>
+			</rich:column> 
+			<rich:column sortable="true" sortBy="#{cap.name}" filterBy="#{cap.name}" filterEvent="onkeyup" width="170px" label="State Capital">
+				<f:facet name="header">
+					<h:outputText value="State Capital"/>
+				</f:facet>
+				<h:outputText value="#{cap.name}"/>
+			</rich:column> 
+			<rich:column sortable="false" label="Time Zone">
+				<f:facet name="header">
+					<h:outputText value="Time Zone"/>
+				</f:facet>
+				<h:outputText value="#{cap.timeZone}"/>
+			</rich:column>
+		</rich:extendedDataTable>
+		<rich:panel>
+			<f:facet name="header">
+				<h:outputText value="Sort/Selection modes changing"/>
+			</f:facet>
+			<h:panelGrid columns="2">
+				<h:outputText value="Sort Mode:"/>
+				<h:selectOneMenu value="#{extendedTableBean.sortMode}">
+					<f:selectItem itemLabel="Single" itemValue="single"/>
+					<f:selectItem itemLabel="Multi" itemValue="multi"/>
+					<a4j:support event="onchange" ajaxSingle="true" reRender="table"/>
+				</h:selectOneMenu>
+				<h:outputText value="Selection Mode:"/>
+				<h:selectOneMenu value="#{extendedTableBean.selectionMode}">
+					<a4j:support ajaxSingle="true" event="onchange" reRender="table"/>
+					<f:selectItem itemLabel="Single" itemValue="single"/>
+					<f:selectItem itemLabel="Multi" itemValue="multi"/>
+					<f:selectItem itemLabel="None" itemValue="none"/>
+				</h:selectOneMenu>
 			</h:panelGrid>
-
+		</rich:panel>	
 		</h:panelGrid>
-	</h:form>
-	<rich:messages></rich:messages>
-</ui:composition>
+		</h:form>
+	</ui:composition>
 
 </html>
\ No newline at end of file




More information about the richfaces-svn-commits mailing list