[richfaces-svn-commits] JBoss Rich Faces SVN: r4890 - branches/3.1.x/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Tue Dec 18 06:43:46 EST 2007


Author: vmolotkov
Date: 2007-12-18 06:43:46 -0500 (Tue, 18 Dec 2007)
New Revision: 4890

Modified:
   branches/3.1.x/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js
Log:
bug: 	 RF-1637

Modified: branches/3.1.x/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js
===================================================================
--- branches/3.1.x/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js	2007-12-18 11:10:55 UTC (rev 4889)
+++ branches/3.1.x/ui/listShuttle/src/main/resources/org/richfaces/renderkit/html/scripts/ListShuttle.js	2007-12-18 11:43:46 UTC (rev 4890)
@@ -158,8 +158,22 @@
 		if (!(item instanceof Richfaces.SelectItem)) {
 			item = sourceComponent.getSelectItemByNode(item);
 		}
-		this.removeItem(sourceComponent, item);
-		this.addItem(targetComponent, item);
+		if (!LayoutManager.isIE() && (targetComponent.shuttleTbody.rows.length == 0)) {
+			var newItem = null;
+			if (item instanceof Richfaces.ListShuttle.Target.SelectItem) {
+				newItem = new Richfaces.ListShuttle.Target.SelectItem(item._label, item._id, item._node.cloneNode(true));
+			} else {
+				newItem = new Richfaces.ListShuttle.Source.SelectItem(item._label, item._id, item._node.cloneNode(true));
+			}
+			this.tableUpdate(targetComponent);
+			this.addItem(targetComponent, newItem);
+			
+			this.removeItem(sourceComponent, item);
+			sourceComponent.shuttleTable.deleteRow(item._node.rowIndex);
+		} else {
+			this.addItem(targetComponent, item);
+			this.removeItem(sourceComponent, item);
+		}
 	},
 	
 	removeItem : function(component, item) {
@@ -174,10 +188,19 @@
 	addItem : function(component, item) {
 		//var newItem = Object.clone(item);
 		item.doNormal();
+		
 		component.shuttleTbody.insertBefore(item._node, null);
 		component.shuttleItems.push(item);
 	},
 	
+	tableUpdate : function(component) {
+		var table = component.shuttleTable;
+		table.removeChild(table.tBodies[0]);
+		var tbody = document.createElement("TBODY");
+		table.appendChild(tbody);
+		component.shuttleTbody = table.tBodies[0];
+	},
+	
 	saveState : function() {
 		this.targetList.saveState();
 		this.sourceList.saveState();




More information about the richfaces-svn-commits mailing list