Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.5.3, 1.6DR#1, 1.6DR#2
-
Fix Version/s: 1.7.1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:Any
-
ICEsoft Forum Reference:
Description
The select event of the RowSelector component is explicitly fired in the RowSelectorRenderer during the APPLY_REQUEST_VALUES phase (see code below). This means that during the UPDATE_MODEL_VALUES phase all backing bean changes made by the select listener will be overwritten.
Code:
if (rowSelector.getSelectionListener() != null) {
RowSelectorEvent evt = new RowSelectorEvent(rowSelector, rowIndex, b);
evt.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
rowSelector.queueEvent(evt);
}
The event should better by fired in the INVOKE_APPLICATION phase e.g.
Code:
if (rowSelector.getSelectionListener() != null) {
RowSelectorEvent evt = new RowSelectorEvent(rowSelector, rowIndex, b);
evt.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
rowSelector.queueEvent(evt);
}
A similar issue applies to the ValueChangeEvent fired by the SelectInputText component. For some reasons the event is fired in the PROCESS_VALIDATIONS phase witch leads to the same problem as described above. Changes made at the backing bean will be overwritten in the UPDATE_MODEL_VALUES phase.
Code:
if (rowSelector.getSelectionListener() != null) {
RowSelectorEvent evt = new RowSelectorEvent(rowSelector, rowIndex, b);
evt.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
rowSelector.queueEvent(evt);
}
The event should better by fired in the INVOKE_APPLICATION phase e.g.
Code:
if (rowSelector.getSelectionListener() != null) {
RowSelectorEvent evt = new RowSelectorEvent(rowSelector, rowIndex, b);
evt.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
rowSelector.queueEvent(evt);
}
A similar issue applies to the ValueChangeEvent fired by the SelectInputText component. For some reasons the event is fired in the PROCESS_VALIDATIONS phase witch leads to the same problem as described above. Changes made at the backing bean will be overwritten in the UPDATE_MODEL_VALUES phase.
Issue Links
Activity
Grün Ling
created issue -
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #16882 | Thu Jun 12 20:33:07 MDT 2008 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/RowSelector.java
MODIFY /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_cust_properties/cust-rowselector-props.xml |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #16883 | Thu Jun 12 20:34:06 MDT 2008 | mark.collette | |
Files Changed | ||||
MODIFY
/icefaces/branches/icefaces-1.7/icefaces/component/src/com/icesoft/faces/component/ext/RowSelector.java
MODIFY /icefaces/branches/icefaces-1.7/icefaces/component-metadata/src/main/resources/conf/ice_cust_properties/cust-rowselector-props.xml |
Mark Collette
made changes -
Field | Original Value | New Value |
---|---|---|
Status | Open [ 1 ] | Resolved [ 5 ] |
Fix Version/s | 1.7.1 [ 10122 ] | |
Resolution | Fixed [ 1 ] | |
Assignee | Mark Collette [ mark.collette ] |
Paul van Rossem
made changes -
Thomas Greve
made changes -
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
Assignee | Mark Collette [ mark.collette ] |
The selectionListener is fired then, because we now skip all of the other phases, and go straight to render, so that no validations will be done.