You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-commits@incubator.apache.org by jm...@apache.org on 2006/11/02 02:43:28 UTC

svn commit: r470200 - /incubator/xap/trunk/src/xap/bridges/dojo/DojoWidgetBridge.js

Author: jmargaris
Date: Wed Nov  1 18:43:28 2006
New Revision: 470200

URL: http://svn.apache.org/viewvc?view=rev&rev=470200
Log:
Bug fix for adding non-dojo children to borderPanel

Modified:
    incubator/xap/trunk/src/xap/bridges/dojo/DojoWidgetBridge.js

Modified: incubator/xap/trunk/src/xap/bridges/dojo/DojoWidgetBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/bridges/dojo/DojoWidgetBridge.js?view=diff&rev=470200&r1=470199&r2=470200
==============================================================================
--- incubator/xap/trunk/src/xap/bridges/dojo/DojoWidgetBridge.js (original)
+++ incubator/xap/trunk/src/xap/bridges/dojo/DojoWidgetBridge.js Wed Nov  1 18:43:28 2006
@@ -156,35 +156,45 @@
 	
 	//index -1 just append!
 	var insertIndex = index<0?this.getPeer().children.length:index;
-	var childPeer = childHandler.getPeer();
 	
+	var childPeer = this.getDojoWidgetPeer(childHandler);
+	if (!childPeer) return;
+	this.getPeer().addChild(childPeer,null,'insertAtIndex',null,insertIndex);
+}
+
+
+/**
+ * Given a child handler, return a peer that is a dojo widget. We do this
+ * because Dojo widgets like to have other dojo widgets added to them.
+ * If the thing being added is NOT a dojo widget then we wrap it in one
+ * and do some bookkeeping.
+ */
+xap.bridges.dojo.DojoWidgetBridge.prototype.getDojoWidgetPeer = function( childHandler ){
+	if (childHandler._dojoWrapper){
+		return childHandler._dojoWrapper;
+	}
+	var childPeer = childHandler.getPeer();
 	if (childPeer instanceof dojo.widget.HtmlWidget){
 		
 	}
 	else{
 		if (!childHandler.getRootDomNode()){
-			return;
+			return null;
 		}
 		childPeer = new xap.widgets.dojo.HtmlWrapper();
 		childPeer.setDomNode(childHandler.getRootDomNode());
 		childHandler._dojoWrapper = childPeer;	
 	}
-	this.getPeer().addChild(childPeer,null,'insertAtIndex',null,insertIndex);
+	return childPeer;
+	
 }
 
 
 xap.bridges.dojo.DojoWidgetBridge.prototype.removeChild = function(childHandler){
-	var childPeer = childHandler.getPeer();
+	var childPeer = this.getDojoWidgetPeer(childHandler);
 	if (!childPeer){
 		return;
 	}
-	if (childPeer instanceof dojo.widget.HtmlWidget){
-		
-	}
-	else{
-		childPeer = childHandler._dojoWrapper;
-	}
-	
 	this.getPeer().removeChild(childPeer);
 	
 }