Index: icefaces/component/src/com/icesoft/faces/component/ext/RowSelector.java =================================================================== --- icefaces/component/src/com/icesoft/faces/component/ext/RowSelector.java (revision 22641) +++ icefaces/component/src/com/icesoft/faces/component/ext/RowSelector.java (working copy) @@ -86,10 +86,6 @@ "com.icesoft.faces.RowSelectorFamily"; public static final int DEFAULT_DBLCLICK_DELAY = 200; - //to deselect multiple rows with paginator we need to keep track of whole - //selection. - private List currentSelection = new ArrayList(); - public RowSelector(){ JavascriptContext .includeLib(JavascriptContext.ICE_EXTRAS, getFacesContext()); @@ -117,24 +113,9 @@ } else { this.value = value; } - //the value can be changed by decode as well as application code, so this - //is the single point to keep selection state in synch - try { - updateCurrentSelection(value); - //this catch satisfy JUNIT test, where its not a JSF environment - } catch (Exception e){e.printStackTrace();} - } - - private void updateCurrentSelection(Boolean value) { - HtmlDataTable dataTable = getParentDataTable(this); - int rowindex = dataTable.getRowIndex(); - if (value.booleanValue()) { - currentSelection.add(new Integer(rowindex)); - } else { - currentSelection.remove(new Integer(rowindex)); - } - } - public Integer getClickedRow() { + } + + public Integer getClickedRow() { ValueBinding vb = getValueBinding("clickedRow"); if (vb != null) { return (Integer) vb.getValue(getFacesContext()); @@ -302,7 +283,7 @@ public Boolean getImmediate() { if (immediate != null) { return immediate; - } + } ValueBinding vb = getValueBinding("immediate"); if (vb != null) { return (Boolean) vb.getValue(getFacesContext()); @@ -477,12 +458,13 @@ } private void deselectPreviousSelection(UIData uiData, int rowindex) { - Integer[] selection = new Integer[currentSelection.size()]; - currentSelection.toArray(selection); - for (int i=0; i