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);
}