JBoss Rich Faces SVN: r10569 - trunk/test-applications/jsp/src/main/java/extendedDataTable.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-09-26 07:47:04 -0400 (Fri, 26 Sep 2008)
New Revision: 10569
Modified:
trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableControlBean.java
Log:
Modified: trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableControlBean.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableControlBean.java 2008-09-26 11:46:49 UTC (rev 10568)
+++ trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableControlBean.java 2008-09-26 11:47:04 UTC (rev 10569)
@@ -3,6 +3,9 @@
import java.util.ArrayList;
import java.util.List;
import org.richfaces.component.html.HtmlExtendedDataTable;
+
+import util.componentInfo.ComponentInfo;
+
import javax.faces.event.ActionEvent;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
@@ -32,6 +35,10 @@
FacesContext context = FacesContext.getCurrentInstance();
bindLabel = extDTable.getBaseClientId(context);
}
+ public void addExtDTable(){
+ ComponentInfo info = ComponentInfo.getInstance();
+ info.addField(extDTable);
+ }
public ExtendedDataTableControlBean() {
sortModeSelectItems.add(new SelectItem("single", "single"));
15 years, 7 months
JBoss Rich Faces SVN: r10568 - trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-09-26 07:46:49 -0400 (Fri, 26 Sep 2008)
New Revision: 10568
Modified:
trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTable.jsp
trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableProperty.jsp
Log:
Modified: trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTable.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTable.jsp 2008-09-26 11:46:28 UTC (rev 10567)
+++ trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTable.jsp 2008-09-26 11:46:49 UTC (rev 10568)
@@ -35,8 +35,7 @@
height: 100%;
}
</style>
-
- <h:form id="form1">
+
<rich:extendedDataTable id="demoTable"
value="#{extendedDataTableBean.dataModel}" var="patient"
style="margin: 0 auto;"
@@ -48,7 +47,25 @@
selectionMode="#{extendedDataTableControlBean.selectionMode}"
selection="#{extendedDataTableBean.selection}" rowKeyVar="rkvar"
tableState="#{extendedDataTableBean.tableState}"
- binding="#{extendedDataTableControlBean.extDTable}">
+ binding="#{extendedDataTableControlBean.extDTable}"
+ onclick="#{event.onclick}"
+ ondblclick="#{event.ondblclick}"
+ onkeydown="#{event.onkeydown}"
+ onkeypress="#{event.onkeypress}"
+ onkeyup="#{event.onkeyup}"
+ onmousedown="#{event.onmousedown}"
+ onmousemove="#{event.onmousemove}"
+ onmouseout="#{event.onmouseout}"
+ onmouseover="#{event.onmouseover}"
+ onmouseup="#{event.onmouseup}"
+ onRowClick="#{event.onRowClick}"
+ onRowDblClick="#{event.onRowDblClick}"
+ onRowMouseDown="#{event.onRowMouseDown}"
+ onRowMouseMove="#{event.onRowMouseMove}"
+ onRowMouseOut="#{event.onRowMouseOut}"
+ onRowMouseOver="#{event.onRowMouseOver}"
+ onRowMouseUp="#{event.onRowMouseUp}"
+ onselectionchange="alert('onselectionchange works!')">
<rich:column id="firstName" headerClass="dataTableHeader" width="25%"
label="#{msg['patient.firstName']}" sortable="true"
sortBy="#{patient.firstName}" filterBy="#{patient.firstName}"
@@ -85,7 +102,5 @@
<rich:datascroller
style="width: #{extendedDataTableControlBean.width}"
rendered="#{extendedDataTableControlBean.paginated}" for="demoTable">
- </rich:datascroller>
- </h:form>
- <div>ExtDT main page</div>
+ </rich:datascroller>
</f:subview>
\ No newline at end of file
Modified: trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableProperty.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableProperty.jsp 2008-09-26 11:46:28 UTC (rev 10567)
+++ trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableProperty.jsp 2008-09-26 11:46:49 UTC (rev 10568)
@@ -4,7 +4,7 @@
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<f:subview id="extendedDataTablePropertySubviewID">
- <h:form>
+
<h:panelGrid columns="2">
<h:outputLabel value="#{msg['table.width']}" for="tableWidthInput" />
<h:inputText
@@ -32,7 +32,7 @@
>
<f:selectItems value="#{extendedDataTableControlBean.selectionModeSelectItems}"/>
</h:selectOneMenu>
- <h:outputLabel value="#{msg['table.paginated']}" for="paginatedChecxbox" />
+ <h:outputText value="#{msg['table.paginated']}"/>
<h:selectBooleanCheckbox
id="paginatedCheckbox"
value="#{extendedDataTableControlBean.paginated}" />
@@ -44,6 +44,8 @@
<h:commandButton value="binding" actionListener="#{extendedDataTableControlBean.checkBinding}"/>
<h:outputText value="#{extendedDataTableControlBean.bindLabel}" id="bindLabel"/>
</h:panelGrid>
+ <br/>
+ <h:commandButton value="add test" action="#{extendedDataTableControlBean.addExtDTable}"></h:commandButton>
<a4j:commandButton value="#{msg['table.update']}" reRender="mainPanel">
</a4j:commandButton>
<a4j:commandButton value="#{msg['table.testComponentState']}"
@@ -76,6 +78,5 @@
</rich:column>
</rich:dataTable>
<rich:messages>
- </rich:messages>
- </h:form>
+ </rich:messages>
</f:subview>
\ No newline at end of file
15 years, 7 months
JBoss Rich Faces SVN: r10567 - trunk/test-applications/jsp/src/main/java/rich.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-09-26 07:46:28 -0400 (Fri, 26 Sep 2008)
New Revision: 10567
Modified:
trunk/test-applications/jsp/src/main/java/rich/RichBean.java
Log:
Modified: trunk/test-applications/jsp/src/main/java/rich/RichBean.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/rich/RichBean.java 2008-09-26 09:29:41 UTC (rev 10566)
+++ trunk/test-applications/jsp/src/main/java/rich/RichBean.java 2008-09-26 11:46:28 UTC (rev 10567)
@@ -72,6 +72,7 @@
map.add("HotKey", add("/HotKey/HotKey", new boolean [] {true, false, false}));
map.add("Validator", add("/Validator/Validator", new boolean [] {true, true, true}));
map.add("DataGrid", add("/DataGrid/DataGrid", new boolean [] {false, true, false}));
+ map.add("ExtendedDataTable", add("/ExtendedDataTable/ExtendedDataTable", new boolean [] {false, true, false}));
Iterator<String> iterator = map.getSet().iterator();
while(iterator.hasNext()){
list.add(new SelectItem(iterator.next()));
15 years, 7 months
JBoss Rich Faces SVN: r10566 - in trunk/test-applications/jsp/src/main/java: extendedDataTable and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-09-26 05:29:41 -0400 (Fri, 26 Sep 2008)
New Revision: 10566
Added:
trunk/test-applications/jsp/src/main/java/extendedDataTable/
trunk/test-applications/jsp/src/main/java/extendedDataTable/DemoPatient.java
trunk/test-applications/jsp/src/main/java/extendedDataTable/DemoPatientProvider.java
trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableBB.java
trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableControlBean.java
Log:
Added: trunk/test-applications/jsp/src/main/java/extendedDataTable/DemoPatient.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/extendedDataTable/DemoPatient.java (rev 0)
+++ trunk/test-applications/jsp/src/main/java/extendedDataTable/DemoPatient.java 2008-09-26 09:29:41 UTC (rev 10566)
@@ -0,0 +1,86 @@
+package extendedDataTable;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author pkawiak
+ */
+
+public class DemoPatient implements Serializable{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2265498014894008031L;
+ private Integer id;
+ private String firstName;
+ private String lastName;
+ private Date admissionDate;
+
+ DemoPatient(Integer id, String firstName, String lastName, Date admissionDate) {
+ this.id = id;
+ this.firstName = firstName;
+ this.lastName = lastName;
+ this.admissionDate = admissionDate;
+ }
+
+ /**
+ * @return the id
+ */
+ public Integer getId() {
+ return id;
+ }
+
+ /**
+ * @param id the id to set
+ */
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ /**
+ * @return the firstName
+ */
+ public String getFirstName() {
+ return firstName;
+ }
+
+ /**
+ * @param firstName the firstName to set
+ */
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ /**
+ * @return the lastName
+ */
+ public String getLastName() {
+ return lastName;
+ }
+
+ /**
+ * @param lastName the lastName to set
+ */
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ /**
+ * @return the admissionDate
+ */
+ public Date getAdmissionDate() {
+ return admissionDate;
+ }
+
+ /**
+ * @param admissionDate the admissionDate to set
+ */
+ public void setAdmissionDate(Date admissionDate) {
+ this.admissionDate = admissionDate;
+ }
+
+
+
+}
Added: trunk/test-applications/jsp/src/main/java/extendedDataTable/DemoPatientProvider.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/extendedDataTable/DemoPatientProvider.java (rev 0)
+++ trunk/test-applications/jsp/src/main/java/extendedDataTable/DemoPatientProvider.java 2008-09-26 09:29:41 UTC (rev 10566)
@@ -0,0 +1,125 @@
+package extendedDataTable;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
+
+import org.richfaces.model.DataProvider;
+
+/**
+ * @author pkawiak
+ *
+ */
+
+public class DemoPatientProvider implements DataProvider<DemoPatient>{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 7038048580234887663L;
+
+ private String allFirstNames[] = {
+ "Aaron", "Abbott", "Abel", "Abner",
+ "Abraham", "Adam", "Addison", "Adler",
+ "Adley", "Adrian", "Aedan", "Aiken",
+ "Alan", "Alastair", "Albern", "Albert",
+ "Albion", "Alden", "Aldis", "Aldrich",
+ "Alexander", "Alfie", "Alfred", "Algernon",
+ "Alston", "Alton", "Alvin", "Ambrose",
+ "Amery", "Amos", "Andrew", "Angus",
+ "Ansel", "Anthony", "Archer", "Archibald",
+ "Arlen", "Arnold", "Arthur", "Arvel",
+ "Atwater", "Atwood", "Aubrey", "Austin",
+ "Małgorzata", "Paweł", "Piotr"
+ };
+
+ private String allLastNames[] = {
+ "Brown", "Smith", "Patel",
+ "Jones", "Williams", "Johnson",
+ "Taylor", "Thomas", "Roberts",
+ "Khan", "Lewis", "Jackson",
+ "Clarke", "James", "Phillips",
+ "Wilson", "Ali", "Mason",
+ "Davies", "Rodriguez", "Cox",
+ "Alexander", "Popiołek", "Buda",
+ "Goławski", "Kawiak", "Mitchel"
+
+ };
+
+ private List<DemoPatient> items;
+ private Integer itemsNumber;
+
+ private Random random = new Random();
+ private long now = new Date().getTime();
+
+
+ public DemoPatientProvider(Integer itemsNumber) {
+ super();
+ this.itemsNumber = itemsNumber;
+ }
+
+ private Date generateRandomDate(){
+ return new Date(Math.abs(random.nextLong()%now));
+ }
+
+ private String generateRandomFirstName() {
+ int rand = Math.abs(random.nextInt());
+ return allFirstNames[rand%(allFirstNames.length)];
+ }
+
+ private String generateRandomLastName() {
+ int rand = Math.abs(random.nextInt());
+ return allLastNames[rand%(allLastNames.length)];
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.model.DataProvider#getItemByKey(java.lang.Object)
+ */
+ public DemoPatient getItemByKey(Object key) {
+ if (key == null)
+ return null;
+ for (DemoPatient entity : getItems()){
+ if (entity.getId().equals(key))
+ return entity;
+ }
+ return null;
+ }
+
+ protected List<DemoPatient> getItems() {
+ if (items == null){
+ int l = itemsNumber;
+ items = new ArrayList<DemoPatient>(l);
+ for (int i=0;i<l;i++) {
+ items.add(new DemoPatient(i,
+ generateRandomFirstName(),
+ generateRandomLastName(),
+ generateRandomDate()));
+ }
+
+ }
+ return items;
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.model.DataProvider#getItemsByRange(int, int)
+ */
+ public List<DemoPatient> getItemsByRange(int firstRow, int lastRow) {
+ return getItems().subList(firstRow, lastRow);
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.model.DataProvider#getKey(java.lang.Object)
+ */
+ public Object getKey(DemoPatient item) {
+ return item.getId();
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.model.DataProvider#getRowCount()
+ */
+ public int getRowCount() {
+ return getItems().size();
+ }
+
+}
\ No newline at end of file
Added: trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableBB.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableBB.java (rev 0)
+++ trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableBB.java 2008-09-26 09:29:41 UTC (rev 10566)
@@ -0,0 +1,115 @@
+package extendedDataTable;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.faces.context.FacesContext;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.richfaces.model.ExtendedTableDataModel;
+import org.richfaces.model.selection.SimpleSelection;
+
+/**
+ * @author pkawiak
+ *
+ */
+public class ExtendedDataTableBB {
+
+ private SimpleSelection selection = new SimpleSelection();
+ private List<DemoPatient> selectedItems;
+ private Comparator<DemoPatient> dateComparator;
+ private String tableState = null;
+ private ExtendedTableDataModel<DemoPatient> dataModel;
+ private Integer patientsNumber = 100;
+
+ public ExtendedDataTableBB() {
+ }
+
+ public ExtendedTableDataModel<DemoPatient> getDataModel(){
+ if (dataModel == null){
+ dataModel = new ExtendedTableDataModel<DemoPatient>(new DemoPatientProvider(patientsNumber));
+ }
+ return dataModel;
+ }
+
+ public SimpleSelection getSelection() {
+ return selection;
+ }
+
+ public void setSelection(SimpleSelection selection) {
+ this.selection = selection;
+ }
+
+ public String takeSelection() {
+ getSelectedItems().clear();
+ Iterator<Object> iterator = getSelection().getKeys();
+ while (iterator.hasNext()){
+ Object key = iterator.next();
+ selectedItems.add(getDataModel().getObjectByKey(key));
+ }
+ return null;
+ }
+
+ public Integer getPatientsNumber() {
+ return patientsNumber;
+ }
+
+ public void setPatientsNumber(Integer patientsNumber) {
+ if (patientsNumber != this.patientsNumber) {
+ dataModel = new ExtendedTableDataModel<DemoPatient>(new DemoPatientProvider(patientsNumber));
+ }
+ this.patientsNumber = patientsNumber;
+ }
+
+ public List<DemoPatient> getSelectedItems() {
+ if (selectedItems == null){
+ selectedItems = new ArrayList<DemoPatient>();
+ }
+ return selectedItems;
+ }
+
+ public void setSelectedItems(List<DemoPatient> selectedItems) {
+ this.selectedItems = selectedItems;
+ }
+
+ public String getTableState() {
+ if (tableState == null){
+ //try to get state from cookies
+ Cookie[] cookies = ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()).getCookies();
+ if (cookies != null){
+ for (Cookie c : cookies){
+ if (c.getName().equals("g3demoTabelState")){
+ tableState = c.getValue();
+ break;
+ }
+ }
+ }
+ }
+ return tableState;
+ }
+
+ public void setTableState(String tableState) {
+ this.tableState = tableState;
+ //save state in cookies
+ Cookie stateCookie = new Cookie("g3demoTabelState", this.tableState);
+ ((HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse()).addCookie(stateCookie);
+ }
+
+ public Comparator<DemoPatient> getDateComparator(){
+ if (dateComparator == null){
+ dateComparator = new Comparator<DemoPatient>(){
+
+ public int compare(DemoPatient o1, DemoPatient o2) {
+ return o1.getAdmissionDate().compareTo(o2.getAdmissionDate());
+ }
+
+ };
+ }
+ return dateComparator;
+ }
+
+}
Added: trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableControlBean.java
===================================================================
--- trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableControlBean.java (rev 0)
+++ trunk/test-applications/jsp/src/main/java/extendedDataTable/ExtendedDataTableControlBean.java 2008-09-26 09:29:41 UTC (rev 10566)
@@ -0,0 +1,120 @@
+package extendedDataTable;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.richfaces.component.html.HtmlExtendedDataTable;
+import javax.faces.event.ActionEvent;
+import javax.faces.context.FacesContext;
+import javax.faces.model.SelectItem;
+
+public class ExtendedDataTableControlBean {
+
+ private String width = "100%";
+ private String height = "500px";
+ private List<SelectItem> sortModeSelectItems = new ArrayList<SelectItem>();
+ private List<SelectItem> selectionModeSelectItems = new ArrayList<SelectItem>();
+ private String sortMode;
+ private String selectionMode;
+ private Integer rowsNumber;
+ private boolean paginated = false;
+ private HtmlExtendedDataTable extDTable = null;
+ private String bindLabel;
+
+ public HtmlExtendedDataTable getExtDTable() {
+ return extDTable;
+ }
+
+ public void setExtDTable(HtmlExtendedDataTable extDTable) {
+ this.extDTable = extDTable;
+ }
+
+ public void checkBinding(ActionEvent actionEvent){
+ FacesContext context = FacesContext.getCurrentInstance();
+ bindLabel = extDTable.getBaseClientId(context);
+ }
+
+ public ExtendedDataTableControlBean() {
+ sortModeSelectItems.add(new SelectItem("single", "single"));
+ sortModeSelectItems.add(new SelectItem("multi", "multi"));
+ selectionModeSelectItems.add(new SelectItem("single", "single"));
+ selectionModeSelectItems.add(new SelectItem("multi", "multi"));
+ selectionModeSelectItems.add(new SelectItem("none", "none"));
+ bindLabel = "click binding";
+ }
+
+ public boolean isPaginated() {
+ return paginated;
+ }
+
+ public void setPaginated(boolean paginated) {
+ this.paginated = paginated;
+ }
+
+ public Integer getRowsNumber() {
+ return rowsNumber;
+ }
+
+ public void setRowsNumber(Integer rowsNumber) {
+ this.rowsNumber = rowsNumber;
+ }
+
+ public List<SelectItem> getSelectionModeSelectItems() {
+ return selectionModeSelectItems;
+ }
+
+ public void setSelectionModeSelectItems(
+ List<SelectItem> selectionModeSelectItems) {
+ this.selectionModeSelectItems = selectionModeSelectItems;
+ }
+
+
+
+ public List<SelectItem> getSortModeSelectItems() {
+ return sortModeSelectItems;
+ }
+
+ public void setSortModeSelectItems(List<SelectItem> sortModeSelectItems) {
+ this.sortModeSelectItems = sortModeSelectItems;
+ }
+
+ public String getSortMode() {
+ return sortMode;
+ }
+
+ public void setSortMode(String sortMode) {
+ this.sortMode = sortMode;
+ }
+
+ public String getSelectionMode() {
+ return selectionMode;
+ }
+
+ public void setSelectionMode(String selectionMode) {
+ this.selectionMode = selectionMode;
+ }
+
+ public String getWidth() {
+ return width;
+ }
+
+ public void setWidth(String width) {
+ this.width = width;
+ }
+
+ public String getHeight() {
+ return height;
+ }
+
+ public void setHeight(String height) {
+ this.height = height;
+ }
+
+ public String getBindLabel() {
+ return bindLabel;
+ }
+
+ public void setBindLabel(String bindLabel) {
+ this.bindLabel = bindLabel;
+ }
+
+}
15 years, 7 months
JBoss Rich Faces SVN: r10565 - trunk/test-applications/jsp/src/main/webapp/WEB-INF.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-09-26 05:29:14 -0400 (Fri, 26 Sep 2008)
New Revision: 10565
Modified:
trunk/test-applications/jsp/src/main/webapp/WEB-INF/web.xml
Log:
+extDTable
Modified: trunk/test-applications/jsp/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/WEB-INF/web.xml 2008-09-26 09:28:55 UTC (rev 10564)
+++ trunk/test-applications/jsp/src/main/webapp/WEB-INF/web.xml 2008-09-26 09:29:14 UTC (rev 10565)
@@ -5,35 +5,43 @@
<context-param>
<param-name>org.ajax4jsf.SKIN</param-name>
<param-value>#{skinBean.skin}</param-value>
+ </context-param>
+ <context-param>
+ <param-name>org.richfaces.CONTROL_SKINNING_CLASSES</param-name>
+ <param-value>#{skinning.skinning}</param-value>z
</context-param>
<context-param>
+ <param-name>org.richfaces.CONTROL_SKINNING</param-name>
+ <param-value>#{skinning.skinningClass}</param-value>
+ </context-param>
+ <context-param>
<param-name>org.richfaces.CONTROL_SKINNING_LEVEL</param-name>
<param-value>extended</param-value>
</context-param>
- <context-param>
- <param-name>org.richfaces.CONTROL_SKINNING_CLASSES</param-name>
- <param-value>#{skinning.skinningClass}</param-value>
+ <context-param>
+ <param-name>org.richfaces.CONTROL_SKINNING_CLASSES_LEVEL</param-name>
+ <param-value>extended</param-value>
</context-param>
<context-param>
- <param-name>org.richfaces.CONTROL_SKINNING</param-name>
- <param-value>#{skinning.skinning}</param-value>
+ <param-name>org.richfaces.LoadScriptStrategy</param-name>
+ <param-value>ALL</param-value>
</context-param>
<context-param>
+ <param-name>org.ajax4jsf.xmlfilter.forcenotrf</param-name>
+ <param-value>false</param-value>
+ </context-param>
+ <context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
- <param-value>/WEB-INF/faces-config-DataGrid.xml,/WEB-INF/faces-config-Validator.xml,/WEB-INF/faces-config-ComponentInfo.xml,/WEB-INF/faces-config-HotKey.xml,/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xml,/WEB-INF/faces-config-ToolBar.xml,/WEB-INF/faces-config-DataScroller.xml,/W!
EB-INF/faces-config-SuggestionBox.xml,/WEB-INF/faces-config-Message.xml,/WEB-INF/faces-config-VirtualEarth.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-RichTest.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-jQuery.xml,/WEB-INF/faces-config-DragAndDrop.xml,/WEB-INF/faces-config-OrderingList.xml,/WEB-INF/faces-config-DataOrderedList.xml,/WEB-INF/faces-config-DataDefinitionList.xml,/WEB-INF/faces-config-ContextMenu.xml,/WEB-INF/faces-config-ListShuttle.xml,/WEB-INF/faces-config-Converter.xml,/WEB-INF/faces-config-ComponentControl.xml,/WEB-INF/faces-config-Columns.xml,/WEB-INF/faces-config-PickList.xml,/WEB-INF/faces-config-Combobox.xml,/WEB-INF/faces-config-PTComponent.xml,/WEB-INF/faces-config-Event.xml,/WEB-INF/faces-config-ProgressBar.xml,/WEB-INF/faces-config-Options.xml,/WEB-INF/faces-config-SortingAndFiltering.xml,/WEB-INF/faces-config-Style.xml,/WEB-INF/faces-conf!
ig-FileUpload.xml,/WEB-INF/faces-config-InplaceSelect.xml,/WEB-INF/fac
es-config-InplaceInput.xml,/WEB-INF/faces-config-Skinning.xml,/WEB-INF/faces-config-Custom.xml</param-value>
+ <param-value>/WEB-INF/faces-config-ExtendedDataTable.xml,/WEB-INF/faces-config-DataGrid.xml,/WEB-INF/faces-config-Validator.xml,/WEB-INF/faces-config-ComponentInfo.xml,/WEB-INF/faces-config-HotKey.xml,/WEB-INF/faces-config-DataTable.xml,/WEB-INF/faces-config-SimpleTogglePanel.xml,/WEB-INF/faces-config-Panel.xml,/WEB-INF/faces-config-PanelBar.xml,/WEB-INF/faces-config-TabPanel.xml,/WEB-INF/faces-config-TogglePanel.xml,/WEB-INF/faces-config-Paint2D.xml,/WEB-INF/faces-config-InputNumberSlider.xml,/WEB-INF/faces-config-InputNumberSpinner.xml,/WEB-INF/faces-config-DDMenu.xml,/WEB-INF/faces-config-Tree.xml,/WEB-INF/faces-config-PanelMenu.xml,/WEB-INF/faces-config-Icon.xml,/WEB-INF/faces-config-ModalPanel.xml,/WEB-INF/faces-config-tooltip.xml,/WEB-INF/faces-config-Skin.xml,/WEB-INF/faces-config-Calendar.xml,/WEB-INF/faces-config-Gmap.xml,/WEB-INF/faces-config-DataFilterSlider.xml,/WEB-INF/faces-config-Separator.xml,/WEB-INF/faces-config-Spacer.xml,/WEB-INF/faces-config-ToolBar.x!
ml,/WEB-INF/faces-config-DataScroller.xml,/WEB-INF/faces-config-SuggestionBox.xml,/WEB-INF/faces-config-Message.xml,/WEB-INF/faces-config-VirtualEarth.xml,/WEB-INF/faces-config-Effect.xml,/WEB-INF/faces-config-Insert.xml,/WEB-INF/faces-config-RichBean.xml,/WEB-INF/faces-config-RichTest.xml,/WEB-INF/faces-config-ScrollableDataTable.xml,/WEB-INF/faces-config-jQuery.xml,/WEB-INF/faces-config-DragAndDrop.xml,/WEB-INF/faces-config-OrderingList.xml,/WEB-INF/faces-config-DataOrderedList.xml,/WEB-INF/faces-config-DataDefinitionList.xml,/WEB-INF/faces-config-ContextMenu.xml,/WEB-INF/faces-config-ListShuttle.xml,/WEB-INF/faces-config-Converter.xml,/WEB-INF/faces-config-ComponentControl.xml,/WEB-INF/faces-config-Columns.xml,/WEB-INF/faces-config-PickList.xml,/WEB-INF/faces-config-Combobox.xml,/WEB-INF/faces-config-PTComponent.xml,/WEB-INF/faces-config-Event.xml,/WEB-INF/faces-config-ProgressBar.xml,/WEB-INF/faces-config-Options.xml,/WEB-INF/faces-config-SortingAndFiltering.xml,/WEB-IN!
F/faces-config-Style.xml,/WEB-INF/faces-config-FileUpload.xml,/WEB-INF
/faces-config-InplaceSelect.xml,/WEB-INF/faces-config-InplaceInput.xml,/WEB-INF/faces-config-Skinning.xml,/WEB-INF/faces-config-Custom.xml</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name>
<param-value>false</param-value>
- </context-param>
- <context-param>
- <param-name>org.ajax4jsf.xmlparser.ORDER</param-name>
- <param-value>NONE</param-value>
- </context-param>
+ </context-param>
<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
15 years, 7 months
JBoss Rich Faces SVN: r10564 - trunk/test-applications/jsp/src/main/webapp/WEB-INF.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-09-26 05:28:55 -0400 (Fri, 26 Sep 2008)
New Revision: 10564
Modified:
trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config.xml
Log:
Modified: trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config.xml 2008-09-26 09:28:37 UTC (rev 10563)
+++ trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config.xml 2008-09-26 09:28:55 UTC (rev 10564)
@@ -39,7 +39,11 @@
<locale-config>
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
- </locale-config>
+ </locale-config>
+ <resource-bundle>
+ <base-name>message_en</base-name>
+ <var>msg</var>
+ </resource-bundle>
</application>
<lifecycle>
<phase-listener id="phaseTracker">util.phaseTracker.PhaseTracker</phase-listener>
15 years, 7 months
JBoss Rich Faces SVN: r10563 - trunk/test-applications/jsp/src/main/webapp/WEB-INF.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-09-26 05:28:37 -0400 (Fri, 26 Sep 2008)
New Revision: 10563
Added:
trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-ExtendedDataTable.xml
Log:
Added: trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-ExtendedDataTable.xml
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-ExtendedDataTable.xml (rev 0)
+++ trunk/test-applications/jsp/src/main/webapp/WEB-INF/faces-config-ExtendedDataTable.xml 2008-09-26 09:28:37 UTC (rev 10563)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
+ "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
+<faces-config>
+<managed-bean>
+ <managed-bean-name>extendedDataTableBean</managed-bean-name>
+ <managed-bean-class>
+ extendedDataTable.ExtendedDataTableBB
+ </managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+</managed-bean>
+<managed-bean>
+ <managed-bean-name>extendedDataTableControlBean</managed-bean-name>
+ <managed-bean-class>
+ extendedDataTable.ExtendedDataTableControlBean
+ </managed-bean-class>
+ <managed-bean-scope>session</managed-bean-scope>
+</managed-bean>
+</faces-config>
\ No newline at end of file
15 years, 7 months
JBoss Rich Faces SVN: r10562 - in trunk/test-applications/jsp/src/main/webapp: ExtendedDataTable and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-09-26 05:28:06 -0400 (Fri, 26 Sep 2008)
New Revision: 10562
Added:
trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/
trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTable.jsp
trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableDefault.jsp
trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableProperty.jsp
trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableStraightforward.jsp
Log:
Added: trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTable.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTable.jsp (rev 0)
+++ trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTable.jsp 2008-09-26 09:28:06 UTC (rev 10562)
@@ -0,0 +1,91 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
+<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
+
+<f:subview id="extendedDataTableSubviewID">
+ <style type="text/css">
+.leftColumn {
+ width: 50%;
+ height: 100%;
+}
+
+.rightColumn {
+ width: 50%;
+ height: 100%;
+}
+
+table {
+ cell-padding: 10;
+ cell-spacing: 10;
+}
+
+#mainPanel {
+ width: 100%;
+ height: 100%;
+}
+
+#leftPanel {
+ width: 100%;
+ height: 100%;
+}
+
+#rightPanel {
+ width: 100%;
+ height: 100%;
+}
+</style>
+
+ <h:form id="form1">
+ <rich:extendedDataTable id="demoTable"
+ value="#{extendedDataTableBean.dataModel}" var="patient"
+ style="margin: 0 auto;"
+ rows="#{extendedDataTableControlBean.rowsNumber}"
+ width="#{extendedDataTableControlBean.width}"
+ height="#{extendedDataTableControlBean.height}"
+ selectedClass="dataTableSelectedRow" footerClass="demo-footer"
+ sortMode="#{extendedDataTableControlBean.sortMode}"
+ selectionMode="#{extendedDataTableControlBean.selectionMode}"
+ selection="#{extendedDataTableBean.selection}" rowKeyVar="rkvar"
+ tableState="#{extendedDataTableBean.tableState}"
+ binding="#{extendedDataTableControlBean.extDTable}">
+ <rich:column id="firstName" headerClass="dataTableHeader" width="25%"
+ label="#{msg['patient.firstName']}" sortable="true"
+ sortBy="#{patient.firstName}" filterBy="#{patient.firstName}"
+ filterEvent="onkeyup">
+ <f:facet name="header">
+ <h:outputText value="#{msg['patient.firstName']}" />
+ </f:facet>
+ <h:outputText id="text" value="#{patient.firstName}">
+ <rich:toolTip value="sasasasasasa"/>
+ </h:outputText>
+ </rich:column>
+ <rich:column id="lastName" headerClass="dataTableHeader" width="25%"
+ label="#{msg['patient.lastName']}" sortable="true"
+ sortBy="#{patient.lastName}" filterBy="#{patient.lastName}"
+ filterEvent="onkeyup">
+ <f:facet name="header">
+ <h:outputText value="#{msg['patient.lastName']}" />
+ </f:facet>
+ <h:outputText value="#{patient.lastName}" />
+ </rich:column>
+ <rich:column id="admissionDate" headerClass="dataTableHeader"
+ width="50%" label="#{msg['patient.admissionDate']}" sortable="true"
+ sortBy="#{patient.admissionDate}">
+ <f:facet name="header">
+ <h:outputText value="#{msg['patient.admissionDate']}" />
+ </f:facet>
+ <h:outputText value="#{patient.admissionDate}" />
+ </rich:column>
+ <a4j:support event="onselectionchange"
+ action="#{extendedDataTableBean.takeSelection}"
+ reRender="selectedPatients">
+ </a4j:support>
+ </rich:extendedDataTable>
+ <rich:datascroller
+ style="width: #{extendedDataTableControlBean.width}"
+ rendered="#{extendedDataTableControlBean.paginated}" for="demoTable">
+ </rich:datascroller>
+ </h:form>
+ <div>ExtDT main page</div>
+</f:subview>
\ No newline at end of file
Added: trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableDefault.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableDefault.jsp (rev 0)
+++ trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableDefault.jsp 2008-09-26 09:28:06 UTC (rev 10562)
@@ -0,0 +1,4 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
+<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
\ No newline at end of file
Added: trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableProperty.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableProperty.jsp (rev 0)
+++ trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableProperty.jsp 2008-09-26 09:28:06 UTC (rev 10562)
@@ -0,0 +1,81 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
+<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
+
+<f:subview id="extendedDataTablePropertySubviewID">
+ <h:form>
+ <h:panelGrid columns="2">
+ <h:outputLabel value="#{msg['table.width']}" for="tableWidthInput" />
+ <h:inputText
+ id="tableWidthInput"
+ value="#{extendedDataTableControlBean.width}" />
+ <h:outputLabel value="#{msg['table.height']}" for="tableHeightInput" />
+ <h:inputText
+ id="tableHeightInput"
+ value="#{extendedDataTableControlBean.height}" />
+ <h:outputLabel value="#{msg['table.patientsNumber']}" for="tablePatientsNumberInput" />
+ <h:inputText
+ id="tablePatientsNumberInput"
+ value="#{extendedDataTableBean.patientsNumber}" />
+ <h:outputLabel value="#{msg['table.sortMode']}" for="tableSortModeSelect" />
+ <h:selectOneMenu
+ id="tableSortModeSelect"
+ value="#{extendedDataTableControlBean.sortMode}"
+ >
+ <f:selectItems value="#{extendedDataTableControlBean.sortModeSelectItems}"/>
+ </h:selectOneMenu>
+ <h:outputLabel value="#{msg['table.selectionMode']}" for="tableSelectionModeSelect" />
+ <h:selectOneMenu
+ id="tableSelectionModeSelect"
+ value="#{extendedDataTableControlBean.selectionMode}"
+ >
+ <f:selectItems value="#{extendedDataTableControlBean.selectionModeSelectItems}"/>
+ </h:selectOneMenu>
+ <h:outputLabel value="#{msg['table.paginated']}" for="paginatedChecxbox" />
+ <h:selectBooleanCheckbox
+ id="paginatedCheckbox"
+ value="#{extendedDataTableControlBean.paginated}" />
+ <h:outputLabel value="#{msg['table.rowsNumber']}" for="tableRowsNumberInput" />
+ <h:inputText
+ id="tableRowsNumberInput"
+ value="#{extendedDataTableControlBean.rowsNumber}" />
+
+ <h:commandButton value="binding" actionListener="#{extendedDataTableControlBean.checkBinding}"/>
+ <h:outputText value="#{extendedDataTableControlBean.bindLabel}" id="bindLabel"/>
+ </h:panelGrid>
+ <a4j:commandButton value="#{msg['table.update']}" reRender="mainPanel">
+ </a4j:commandButton>
+ <a4j:commandButton value="#{msg['table.testComponentState']}"
+ action="stateTest"
+ >
+ </a4j:commandButton>
+ <br/>
+
+ <rich:spacer height="5px" width="100%">
+ </rich:spacer>
+ <rich:dataTable id="selectedPatients" value="#{extendedDataTableBean.selectedItems}" var="selectedPatient">
+ <f:facet name="header">
+ <h:outputText value="#{msg['table.selectedPatients']}" />
+ </f:facet>
+ <rich:column id="selectedFirstName"
+ headerClass="dataTableHeader"
+ label="#{msg['patient.firstName']}">
+ <f:facet name="header">
+ <h:outputText value="#{msg['patient.firstName']}" />
+ </f:facet>
+ <h:outputText value="#{selectedPatient.firstName}" />
+ </rich:column>
+ <rich:column id="selectedLastName"
+ headerClass="dataTableHeader"
+ label="#{msg['patient.lastName']}">
+ <f:facet name="header">
+ <h:outputText value="#{msg['patient.lastName']}" />
+ </f:facet>
+ <h:outputText value="#{selectedPatient.lastName}" />
+ </rich:column>
+ </rich:dataTable>
+ <rich:messages>
+ </rich:messages>
+ </h:form>
+</f:subview>
\ No newline at end of file
Added: trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableStraightforward.jsp
===================================================================
--- trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableStraightforward.jsp (rev 0)
+++ trunk/test-applications/jsp/src/main/webapp/ExtendedDataTable/ExtendedDataTableStraightforward.jsp 2008-09-26 09:28:06 UTC (rev 10562)
@@ -0,0 +1,8 @@
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
+<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
+
+<f:subview id="extendedDataTableStraightforwardSubviewID">
+<div>ExtDT straightforward</div>
+</f:subview>
\ No newline at end of file
15 years, 7 months
JBoss Rich Faces SVN: r10561 - trunk/ui/columns/src/main/java/org/richfaces/taglib.
by richfaces-svn-commits@lists.jboss.org
Author: andrei_exadel
Date: 2008-09-25 11:29:56 -0400 (Thu, 25 Sep 2008)
New Revision: 10561
Modified:
trunk/ui/columns/src/main/java/org/richfaces/taglib/ColumnsTag.java
Log:
SortExpression evaluation
Modified: trunk/ui/columns/src/main/java/org/richfaces/taglib/ColumnsTag.java
===================================================================
--- trunk/ui/columns/src/main/java/org/richfaces/taglib/ColumnsTag.java 2008-09-25 14:47:04 UTC (rev 10560)
+++ trunk/ui/columns/src/main/java/org/richfaces/taglib/ColumnsTag.java 2008-09-25 15:29:56 UTC (rev 10561)
@@ -8,6 +8,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.regex.Pattern;
import javax.el.ELContext;
import javax.el.ELException;
@@ -365,8 +366,54 @@
new Class[] { Object.class });
((HtmlColumn) component).setFilterMethod(mexpr);
}
+ // Set SortExpression attribute especially for scrollable data table
+ if (_sortExpression != null) {
+ //((HtmlColumn) component).setSortExpression(createSortExpression());
+ String ex = createSortExpression();
+ ValueExpression vexpr = getFacesContext().getApplication()
+ .getExpressionFactory().createValueExpression(pageContext.getELContext(),
+ ex, _sortExpression.getExpectedType());
+ component.setValueExpression("sortExpression", vexpr);
+ }
+
+
}
+
+ /**
+ * Evaluates expression string for SortExpression attribute using resolved vars nodes.
+ * @return
+ */
+ private String createSortExpression() {
+ String expr = null;
+ try {
+ String orig = _sortExpression.getExpressionString()
+ .replaceAll("[\\#\\{\\}]", "").trim();
+ String varReplacement = __value.getExpressionString()
+ .replaceAll("[#{}]", "")+ "[" + index + "]";
+ if (itemId.equals(orig)) {
+ expr = varReplacement;
+ } else {
+ String indexReplacement = String.valueOf(index);
+ String varPatter1 = "^" + itemId + "([\\.\\[\\]])";
+ String varPatter2 = "([\\s\"$%#\\^|]+)" + itemId
+ + "([\\.\\[\\]])";
+ String indexPattern = "([\\[\\]]{1})" + indexId
+ + "([\\[\\]]{1})";
+
+ orig = orig.replaceAll(varPatter1, varReplacement + "$1");
+ orig = orig
+ .replaceAll(varPatter2, "$1" + varReplacement + "$2");
+ orig = orig.replaceAll(indexPattern, "$1" + indexReplacement
+ + "$2");
+ expr = orig;
+ }
+ } catch (Exception e) {
+ }
+ expr = "#{" + expr + "}";
+ return expr;
+ }
+
/**
* Creates value expression to be out into column
*
15 years, 7 months
JBoss Rich Faces SVN: r10560 - in trunk/framework: test/src/test/java/org/ajax4jsf and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2008-09-25 10:47:04 -0400 (Thu, 25 Sep 2008)
New Revision: 10560
Added:
trunk/framework/test/src/test/java/org/ajax4jsf/cache/
trunk/framework/test/src/test/java/org/ajax4jsf/cache/ServletContextInitMapTest.java
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/cache/ServletContextInitMap.java
Log:
https://jira.jboss.org/jira/browse/RF-4537
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/cache/ServletContextInitMap.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/cache/ServletContextInitMap.java 2008-09-25 14:32:54 UTC (rev 10559)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/cache/ServletContextInitMap.java 2008-09-25 14:47:04 UTC (rev 10560)
@@ -64,7 +64,7 @@
}
public void remove() {
- throw new UnsupportedOperationException();
+ throw new UnsupportedOperationException("This map is read-only");
}
};
@@ -75,6 +75,7 @@
int result = 0;
Enumeration<String> initNames = servletContext.getInitParameterNames();
while (initNames.hasMoreElements()) {
+ initNames.nextElement();
result++;
}
@@ -86,7 +87,19 @@
}
};
}
+
+ public String remove(Object key) {
+ throw new UnsupportedOperationException("This map is read-only");
+ }
+ public String put(String key, String value) {
+ throw new UnsupportedOperationException("This map is read-only");
+ }
+
+ public void putAll(Map<? extends String, ? extends String> m) {
+ throw new UnsupportedOperationException("This map is read-only");
+ }
+
}
class ServletContextInitMapEntry<K, V> implements Map.Entry<K, V> {
@@ -100,11 +113,6 @@
this.value = value;
}
- public ServletContextInitMapEntry(K key) {
- super();
- this.key = key;
- }
-
public K getKey() {
return key;
}
@@ -114,9 +122,7 @@
}
public V setValue(V value) {
- V oldValue = this.value;
- this.value = value;
- return oldValue;
+ throw new UnsupportedOperationException("This map is read-only");
}
}
\ No newline at end of file
Added: trunk/framework/test/src/test/java/org/ajax4jsf/cache/ServletContextInitMapTest.java
===================================================================
--- trunk/framework/test/src/test/java/org/ajax4jsf/cache/ServletContextInitMapTest.java (rev 0)
+++ trunk/framework/test/src/test/java/org/ajax4jsf/cache/ServletContextInitMapTest.java 2008-09-25 14:47:04 UTC (rev 10560)
@@ -0,0 +1,255 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces - Ajax4jsf Component Library
+ *
+ * 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.ajax4jsf.cache;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import org.apache.shale.test.mock.MockServletContext;
+
+import junit.framework.TestCase;
+
+/**
+ * Created 25.09.2008
+ * @author Nick Belaevski
+ * @since 3.3.0
+ */
+
+public class ServletContextInitMapTest extends TestCase {
+
+ private ServletContextInitMap filledMap;
+
+ private ServletContextInitMap emptyMap;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ MockServletContext filledContext = new MockServletContext();
+
+ filledContext.addInitParameter("org.richfaces.SKIN", "blueSky");
+ filledContext.addInitParameter("org.ajax4jsf.COMPRESS", "true");
+ filledContext.addInitParameter("userParam", "xyz");
+
+ filledMap = new ServletContextInitMap(filledContext);
+
+ emptyMap = new ServletContextInitMap(new MockServletContext());
+ }
+
+ private boolean isValidEntryValue(Entry<String, String> entry) {
+ String key = entry.getKey();
+ String value = entry.getValue();
+
+ if ("org.richfaces.SKIN".equals(key)) {
+ return "blueSky".equals(value);
+ } else if ("org.ajax4jsf.COMPRESS".equals(key)) {
+ return "true".equals(value);
+ } else if ("userParam".equals(key)) {
+ return "xyz".equals(value);
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+
+ filledMap = null;
+
+ emptyMap = null;
+ }
+
+ public void testGet() throws Exception {
+ assertEquals("blueSky", filledMap.get("org.richfaces.SKIN"));
+ assertEquals("true", filledMap.get("org.ajax4jsf.COMPRESS"));
+ assertEquals("xyz", filledMap.get("userParam"));
+ }
+
+ public void testEntrySet() throws Exception {
+ Set<Entry<String, String>> emptySet = emptyMap.entrySet();
+ assertNotNull(emptySet);
+ assertFalse(emptySet.iterator().hasNext());
+
+ try {
+ emptySet.iterator().next();
+
+ fail();
+ } catch (Exception e) {
+ //ok
+ }
+
+ assertEquals(0, emptyMap.entrySet().size());
+
+ Set<Entry<String, String>> filledSet = filledMap.entrySet();
+
+ Entry<String, String> entry;
+ Set<String> processedKeys = new HashSet<String>();
+
+ Iterator<Entry<String, String>> iterator = filledSet.iterator();
+ assertTrue(iterator.hasNext());
+ entry = iterator.next();
+ assertTrue(entry.toString(), isValidEntryValue(entry));
+ processedKeys.add(entry.getKey());
+
+ assertTrue(iterator.hasNext());
+ entry = iterator.next();
+ assertTrue(entry.toString(), isValidEntryValue(entry));
+ processedKeys.add(entry.getKey());
+
+ assertTrue(iterator.hasNext());
+ entry = iterator.next();
+ assertTrue(entry.toString(), isValidEntryValue(entry));
+ processedKeys.add(entry.getKey());
+
+ assertFalse(iterator.hasNext());
+ try {
+ iterator.next();
+
+ fail();
+ } catch (Exception e) {
+ //ok
+ }
+
+ assertEquals(3, processedKeys.size());
+ assertEquals(3, filledMap.entrySet().size());
+ }
+
+ public void testMapSize() throws Exception {
+ assertEquals(0, emptyMap.size());
+ assertEquals(3, filledMap.size());
+ }
+
+ public void testIsEmpty() throws Exception {
+ assertTrue(emptyMap.isEmpty());
+ assertFalse(filledMap.isEmpty());
+ }
+
+ public void testEntrySetIsEmpty() throws Exception {
+ assertTrue(emptyMap.entrySet().isEmpty());
+ assertFalse(filledMap.entrySet().isEmpty());
+ }
+
+ public void testRemoveEntry() throws Exception {
+ //emptyMap - not applicable
+
+ Iterator<Entry<String, String>> iterator = filledMap.entrySet().iterator();
+
+ assertTrue(iterator.hasNext());
+
+ while (iterator.hasNext()) {
+ iterator.next();
+
+ try {
+ iterator.remove();
+
+ fail();
+ } catch (UnsupportedOperationException e) {
+ //ok
+ }
+ }
+ }
+
+ public void testRemove() throws Exception {
+ try {
+ emptyMap.remove("key");
+
+ fail();
+ } catch (UnsupportedOperationException e) {
+ //ok
+ }
+
+ try {
+ filledMap.remove("blueSky");
+
+ fail();
+ } catch (UnsupportedOperationException e) {
+ //ok
+ }
+ }
+
+ public void testPut() throws Exception {
+ try {
+ emptyMap.put("key", "value");
+
+ fail();
+ } catch (UnsupportedOperationException e) {
+ //ok
+ }
+
+ try {
+ filledMap.put("key", "value");
+
+ fail();
+ } catch (UnsupportedOperationException e) {
+ //ok
+ }
+ }
+
+ public void testPutAll() throws Exception {
+ try {
+ Map<String,String> map = new HashMap<String, String>();
+ map.put("key", "value");
+
+ emptyMap.putAll(map);
+
+ fail();
+ } catch (UnsupportedOperationException e) {
+ //ok
+ }
+
+ try {
+ Map<String,String> map = new HashMap<String, String>();
+ map.put("key", "value");
+
+ filledMap.putAll(map);
+
+ fail();
+ } catch (UnsupportedOperationException e) {
+ //ok
+ }
+ }
+
+ public void testEntryWrite() throws Exception {
+ //emptyMap - not applicable
+
+ Iterator<Entry<String, String>> iterator = filledMap.entrySet().iterator();
+
+ assertTrue(iterator.hasNext());
+
+ while (iterator.hasNext()) {
+ Entry<String, String> entry = iterator.next();
+ try {
+ entry.setValue("a");
+
+ fail();
+ } catch (UnsupportedOperationException e) {
+ //ok
+ }
+ }
+ }
+}
15 years, 7 months