Author: nbelaevski
Date: 2007-11-21 20:47:49 -0500 (Wed, 21 Nov 2007)
New Revision: 4168
Modified:
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java
branches/3.1.x/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
Log:
Model handling corrected in UIOrderingList
Value holders made Serializable
OrderingList.js updated to be compatible with TEXTAREA tags
a4j:repeat resurrected for orderingListDemo
Modified:
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java
===================================================================
---
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java 2007-11-22
01:47:39 UTC (rev 4167)
+++
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingBaseComponent.java 2007-11-22
01:47:49 UTC (rev 4168)
@@ -3,6 +3,7 @@
*/
package org.richfaces.component;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -49,7 +50,12 @@
};
- private static class EditableState {
+ private static class EditableState implements Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3276243811945890889L;
+
private boolean translated = false;
//setting this flag to true means we should reorder elements
Modified:
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java
===================================================================
---
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java 2007-11-22
01:47:39 UTC (rev 4167)
+++
branches/3.1.x/ui/orderingList/src/main/java/org/richfaces/component/UIOrderingList.java 2007-11-22
01:47:49 UTC (rev 4168)
@@ -1,6 +1,7 @@
package org.richfaces.component;
import java.io.IOException;
+import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
@@ -41,7 +42,11 @@
public abstract class UIOrderingList extends UIOrderingBaseComponent {
- protected static final class ValueHolder {
+ protected static final class ValueHolder implements Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 2124352131407581704L;
private Collection selection;
private boolean selectionSet;
@@ -49,7 +54,11 @@
private boolean activeItemSet;
}
- protected static final class SubmittedValue {
+ protected static final class SubmittedValue implements Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 5860506816451180551L;
private int[] permutationOrder;
private Set selectedItems = new HashSet();
private Integer activeItem;
@@ -81,7 +90,7 @@
}
} catch (NumberFormatException e) {
- // TODO: handle exception
+ throw new FacesException(e.getLocalizedMessage(), e);
}
}
}
@@ -177,15 +186,16 @@
private transient SubmittedValue submittedValueHolder = null;
private void convertState(FacesContext faces) {
+ Object rowKey = getRowKey();
+
final HashSet selectionItemsSet = new HashSet();
- final ExtendedDataModel dataModel = getExtendedDataModel();
try {
- dataModel.walk(faces, new DataVisitor() {
+ walk(faces, new DataVisitor() {
public void process(FacesContext context, Object rowKey,
Object argument) throws IOException {
- dataModel.setRowKey(rowKey);
+ setRowKey(context, rowKey);
if (localSelection != null && localSelection.contains(rowKey)) {
selectionItemsSet.add(getRowData());
@@ -196,15 +206,16 @@
}
}
- }, null, null);
+ }, null);
} catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ throw new FacesException(e.getLocalizedMessage(), e);
}
if (this.localSelection != null) {
this.localSelection = selectionItemsSet;
}
+
+ setRowKey(rowKey);
}
public void restoreState(FacesContext faces, Object object) {
@@ -228,15 +239,15 @@
final HashSet selectionKeySet = new HashSet();
final HashSet activeItemSet = new HashSet(1);
- final ExtendedDataModel dataModel = getExtendedDataModel();
+ Object rowKey = getRowKey();
try {
- dataModel.walk(faces, new DataVisitor() {
+ walk(faces, new DataVisitor() {
public void process(FacesContext context, Object rowKey,
Object argument) throws IOException {
- dataModel.setRowKey(rowKey);
- Object data = dataModel.getRowData();
+ setRowKey(context, rowKey);
+ Object data = getRowData();
if (data.equals(localActiveItem)) {
activeItemSet.add(getTranslatedRowKey());
}
@@ -247,12 +258,13 @@
}
- }, null, null);
+ }, null);
} catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ throw new FacesException(e.getLocalizedMessage(), e);
}
+ setRowKey(rowKey);
+
state[5] = selectionKeySet;
state[6] = activeItemSet.isEmpty() ? null : activeItemSet.iterator().next();
@@ -674,13 +686,14 @@
// If our value is valid, store the new value, erase the
// "submitted" value, and emit a ValueChangeEvent if appropriate
if (isValid()) {
+ Object rowKey = getRowKey();
+
Set selectionSet = new HashSet();
- ExtendedDataModel dataModel = getExtendedDataModel();
Set selectedItems = submittedValueHolder.selectedItems;
for (Iterator iterator = selectedItems.iterator(); iterator
.hasNext();) {
- dataModel.setRowKey(iterator.next());
- Object selectionItem = dataModel.getRowData();
+ setRowKey(context, iterator.next());
+ Object selectionItem = getRowData();
selectionSet.add(selectionItem);
}
@@ -688,8 +701,8 @@
setSelection(selectionSet);
if (submittedValueHolder.activeItem != null) {
- dataModel.setRowKey(submittedValueHolder.activeItem);
- Object activeItem = dataModel.getRowData();
+ setRowKey(context, submittedValueHolder.activeItem);
+ Object activeItem = getRowData();
setActiveItem(activeItem);
} else {
@@ -705,6 +718,8 @@
}
this.submittedValueHolder = null;
+
+ setRowKey(rowKey);
}
}
@@ -936,10 +951,6 @@
return ScriptUtils.toScript(order);
}
- public int getModelSize() {
- return getExtendedDataModel().getRowCount();
- }
-
public ItemState getItemState() {
if (submittedValueHolder != null) {
return new SubmittedItemState(submittedValueHolder.selectedItems,
submittedValueHolder.activeItem);
Modified:
branches/3.1.x/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js
===================================================================
---
branches/3.1.x/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-22
01:47:39 UTC (rev 4167)
+++
branches/3.1.x/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/OrderingList.js 2007-11-22
01:47:49 UTC (rev 4168)
@@ -2,8 +2,15 @@
Richfaces.disableSelectionText = function(target) {
target.onselectstart = function(e) {
e = window.event||e;
- if (e.srcElement.tagName != "INPUT")
- return false;
+ if (e.srcElement) {
+ if (e.srcElement.tagName) {
+ var tagName = e.srcElement.tagName.toUpperCase();
+
+ if (tagName != "INPUT" && tagName != "TEXTAREA" /* any
items more? */) {
+ return false;
+ }
+ }
+ }
}
}