Author: sylvain
Date: Sat Mar 12 14:50:07 2005
New Revision: 157291

URL: http://svn.apache.org/viewcvs?view=rev&rev=157291
Log:
Do not clear selection after adding rows

Modified:
    
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java

Modified: 
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java
URL: 
http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java?view=diff&r1=157290&r2=157291
==============================================================================
--- 
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java
 (original)
+++ 
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java
 Sat Mar 12 14:50:07 2005
@@ -118,7 +118,8 @@
     
//---------------------------------------------------------------------------------------------
 
     /**
-     * The definition of a repeater action that insert rows before the 
selected rows in a sibling repeater.
+     * The definition of a repeater action that insert rows before the 
selected rows in a sibling repeater,
+     * or at the end of the repeater if no row is selected.
      */
     public static class InsertRowsActionDefinition extends 
RepeaterActionDefinition {
         
@@ -131,14 +132,20 @@
             this.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent event) {
                     Repeater repeater = 
((RepeaterAction)event.getSource()).getRepeater();
+                    boolean foundSelection = false;
                     for (int i = repeater.getSize() - 1; i >= 0; i--) {
                         Repeater.RepeaterRow row = repeater.getRow(i);
                         Widget selectWidget = row.getChild(selectName);
                         if (Boolean.TRUE.equals(selectWidget.getValue())) {
-                            // Clear selection and add a row
-                            selectWidget.setValue(Boolean.FALSE);
+                            // Add a row
                             repeater.addRow(i);
+                            foundSelection = true;
                         }
+                    }
+                    
+                    if (!foundSelection) {
+                        // Add a row at the end
+                        repeater.addRow();
                     }
                 }
             });


Reply via email to