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 bb...@apache.org on 2006/11/02 22:16:01 UTC

svn commit: r470552 - /incubator/xap/trunk/src/xap/bridges/basic/HtmlHostBridge.js

Author: bbuffone
Date: Thu Nov  2 14:16:00 2006
New Revision: 470552

URL: http://svn.apache.org/viewvc?view=rev&rev=470552
Log:
I have updated the starting process of the XAP engine with the HTML page.
This changes is defined in emails from me on the 8/29.  
This changes break compatibilty with existing samples. 
To see how the new process works check out the new samples in 
the startup folder.

Added:
    incubator/xap/trunk/src/xap/bridges/basic/HtmlHostBridge.js   (with props)

Added: incubator/xap/trunk/src/xap/bridges/basic/HtmlHostBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/bridges/basic/HtmlHostBridge.js?view=auto&rev=470552
==============================================================================
--- incubator/xap/trunk/src/xap/bridges/basic/HtmlHostBridge.js (added)
+++ incubator/xap/trunk/src/xap/bridges/basic/HtmlHostBridge.js Thu Nov  2 14:16:00 2006
@@ -0,0 +1,118 @@
+/*
+ * Copyright  2006 The Apache Software Foundation.
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+ 
+Xap.provide("xap.bridges.basic.HtmlHostBridge"); 
+// Auto-added---o.k.?
+Xap.require("xap.taghandling.AbstractTagImpl");
+
+/**
+ * @fileoverview
+ * 
+ * A bridge class that controls the hosting of XAL with in the HTML.
+ *
+ */
+
+/**
+ * Creates a xap.bridges.basic.HtmlHostBridge.
+ * 
+ * 
+ * @class xap.bridges.basic.HtmlHostBridge is the bridge between an XML element
+ * representing the insertion point in the HTML document
+ * 
+ * @constructor
+ * 
+ * @author bbuffone
+ */
+xap.bridges.basic.HtmlHostBridge = function() {
+	xap.taghandling.AbstractTagImpl.call( this );
+}
+
+xap.bridges.basic.HtmlHostBridge.prototype = new xap.taghandling.AbstractTagImpl;
+
+xap.bridges.basic.HtmlHostBridge.s_log = xap.util.LogFactory.getLog( "xap.bridges.basic.HtmlHostBridge" );
+
+xap.bridges.basic.HtmlHostBridge.prototype.toString = function() {
+	return "xap.bridges.basic.HtmlHostBridge";
+}
+
+/**
+ * All bridges to DwtControls should go through these steps:
+ * 
+ * 1: Create the peer object
+ * 2: Handle all the initial attributes
+ * 3: Recursively parse the inititial children
+ * 
+ * It's not clear if we need zShow everwhere. (probably not)
+ * Also the workflow here is a bit strange in that when you create
+ * DwtControls you create them with a parent. Typically with most component
+ * frameworks the parent is responsible for adding the child control
+ * when the parent gets the onChildAdded() event. But with the Zimbra
+ * hierarchy the child adds itself to the parent in it's createPeer(),
+ * before onChildAdded() is ever called.
+ * 
+ * One effect of this is that instead of hooking up the hierarchy 
+ * from tail to head we do it from head to tail.
+ */
+xap.bridges.basic.HtmlHostBridge.prototype.init = function() {
+	this.createPeer();
+}
+
+/**
+ * Creates the peer component that this bridge controls.
+ */
+xap.bridges.basic.HtmlHostBridge.prototype.createPeer = function() {
+}
+
+xap.bridges.basic.HtmlHostBridge.prototype.createHost = function(parentElement, toolkitType) {
+    var parentElementWrapper = null ;    
+    // If the handler handles a dojo widget, its relevant dom node will be the parentElement;
+    // if zimbroid, it will have to be found some other way Zimbra will handle:
+    if( toolkitType && toolkitType=="dojo"){
+		parentElementWrapper = parentElement!=null? parentElement : document.body ;
+
+		this.getNodeForChildren = function(){
+			return parentElement ;
+		}
+		
+		this.childAdded = function( e ) {
+			var childElement = e.getChange();
+			var childHandler = this.getUiContentHandler().getHandlerForElement( childElement );
+			this.addChild(childHandler, e.getIndex());
+		}		
+
+		this.addChild = function(child, index){
+			if (child.getRootDomNode && child.getRootDomNode()){
+				this.getNodeForChildren().appendChild(child.getRootDomNode());
+			}
+		}
+    }
+    
+    //have the parentElementWrapper be the peer of the xap.taghandling.AbstractTagImpl
+    this.setPeer(parentElementWrapper);
+    
+}
+
+/**
+ * Returns the node that represents this widget at the top level,
+ * for example the wrapping div. We will set basic attributes
+ * like color on this div in the absence of better setter methods.
+ */
+xap.bridges.basic.HtmlHostBridge.prototype.getRootDomNode =  function(){
+	return this.getPeer();
+}
+
+

Propchange: incubator/xap/trunk/src/xap/bridges/basic/HtmlHostBridge.js
------------------------------------------------------------------------------
    svn:eol-style = native