[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