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/08/29 00:20:32 UTC

svn commit: r437887 - in /incubator/xap/trunk/src/xap: bridges/basic/ bridges/dojo/ taghandling/

Author: jmargaris
Date: Mon Aug 28 17:20:32 2006
New Revision: 437887

URL: http://svn.apache.org/viewvc?rev=437887&view=rev
Log:
developing standard widgets properly

Added:
    incubator/xap/trunk/src/xap/bridges/dojo/BoxPanelBridge.js   (with props)
    incubator/xap/trunk/src/xap/bridges/dojo/SplitPaneBridge.js
      - copied, changed from r432022, incubator/xap/trunk/src/xap/bridges/dojo/DojoSplitPaneBridge.js
    incubator/xap/trunk/src/xap/bridges/dojo/TabBridge.js   (with props)
    incubator/xap/trunk/src/xap/bridges/dojo/TabPaneBridge.js   (with props)
Removed:
    incubator/xap/trunk/src/xap/bridges/dojo/DojoSplitPaneBridge.js
Modified:
    incubator/xap/trunk/src/xap/bridges/basic/AbstractBlackBoxWidgetBridge.js
    incubator/xap/trunk/src/xap/bridges/dojo/DojoWidgetBridge.js
    incubator/xap/trunk/src/xap/taghandling/plugin.xml

Modified: incubator/xap/trunk/src/xap/bridges/basic/AbstractBlackBoxWidgetBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/bridges/basic/AbstractBlackBoxWidgetBridge.js?rev=437887&r1=437886&r2=437887&view=diff
==============================================================================
--- incubator/xap/trunk/src/xap/bridges/basic/AbstractBlackBoxWidgetBridge.js (original)
+++ incubator/xap/trunk/src/xap/bridges/basic/AbstractBlackBoxWidgetBridge.js Mon Aug 28 17:20:32 2006
@@ -92,6 +92,7 @@
 	this.parseInitialAttributes( this.getElement() );
 	this.parseInitialChildren( this.getElement() );
 	xap.taghandling.AbstractTagImpl.prototype.init.call( this );
+	
 
 }
 
@@ -198,6 +199,10 @@
 
 	var parent = this.getElement().getParent();
 	var parentHandler = this.getUiContentHandler().getHandlerForElement( parent );
+	
+	alert("Get parent handler for element " + parent.toXml());
+	alert("this element = " +this.getElement().toXml());
+	alert("Parent handler = " + parentHandler);
 	var parentPeer = parentHandler.getPeer();
 
 	var parentPeerDomNode = null ;

Added: incubator/xap/trunk/src/xap/bridges/dojo/BoxPanelBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/bridges/dojo/BoxPanelBridge.js?rev=437887&view=auto
==============================================================================
--- incubator/xap/trunk/src/xap/bridges/dojo/BoxPanelBridge.js (added)
+++ incubator/xap/trunk/src/xap/bridges/dojo/BoxPanelBridge.js Mon Aug 28 17:20:32 2006
@@ -0,0 +1,91 @@
+/*
+ * 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.
+ *
+ */
+ 
+ /**
+ * @fileoverview
+ * 
+ * A bridge class that controls a dojo TabContainer peer.
+ */
+
+Xap.provide("xap.bridges.dojo.BoxPanelBridge"); 
+
+Xap.require("xap.bridges.dojo.DojoWidgetBridge");
+Xap.require("dojo.widget.LayoutContainer"); 
+
+
+ 
+ /**
+ * @fileoverview
+ * 
+ * A bridge class with dojo toolkit box panel peer.
+ */
+ 
+xap.bridges.dojo.BoxPanelBridge= function() {
+	xap.bridges.dojo.DojoWidgetBridge.call(this);
+}
+
+
+Xap.setupClassAsSubclassOf(
+				"xap.bridges.dojo.BoxPanelBridge",
+				"xap.bridges.dojo.DojoWidgetBridge"						
+);
+
+
+
+xap.bridges.dojo.BoxPanelBridge.prototype.getPeerString = function(){
+    return "LayoutContainer" ;
+}
+
+
+/** XML attribute set method for "width" */
+xap.bridges.dojo.BoxPanelBridge.prototype.setWidthAttribute = function(value){
+	this.getRootDomNode().style.width = value ;
+	this.getPeer().onResized();
+}
+
+/** XML attribute set method for "height" */
+xap.bridges.dojo.BoxPanelBridge.prototype.setHeightAttribute = function(value){
+	this.getRootDomNode().style.height = value ;
+	this.getPeer().onResized();
+}
+
+xap.bridges.dojo.BoxPanelBridge.prototype.getXalToToolkitMapper = function(){
+ 	var mappings = this.superclass.getXalToToolkitMapper();
+ 	mappings.orientation = new String("layoutChildPriority");
+ 	mappings.orientation.vertical = "top-bottom";
+ 	mappings.orientation.horizontal = "left-right";
+ 	return mappings;
+} 
+ 
+
+ 
+/**
+ * 
+ * 
+ * Attribute definitions
+ * 
+ */ 
+ 
+ 
+/**
+ * No new dynamic attributes
+ */
+xap.bridges.dojo.BoxPanelBridge.prototype.getNewAllowedAttributes = function(){
+	return [];
+}	
+
+

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

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?rev=437887&r1=437886&r2=437887&view=diff
==============================================================================
--- incubator/xap/trunk/src/xap/bridges/dojo/DojoWidgetBridge.js (original)
+++ incubator/xap/trunk/src/xap/bridges/dojo/DojoWidgetBridge.js Mon Aug 28 17:20:32 2006
@@ -58,34 +58,17 @@
 
 /**
  * 
- * @return an object mapping allowed XAL properties to their Dojo equivalents
+ * @return an object mapping allowed initial
+ * XAL properties to their Dojo equivalents
  */
  xap.bridges.dojo.DojoWidgetBridge.prototype.getXalToToolkitMapper = function(){
- 	return {id:"widgetId",x:"left",y:"top"} ;
- }
- 
- /**
- * 
- * @return a list of allowed properties for the underlying widget's creation
- *  via dojo.wiget.createWidget(type, initial_properties[, replacement_node]) ;
- */
- xap.bridges.dojo.DojoWidgetBridge.prototype.getAllowedInitialProperties = function(){
- 	return ["id", "x", "y"] ; 
+ 	return {id:"widgetId",x:"left",y:"top",layoutAlign:"layoutAlign"} ;
  }
 
 
 
 
 
-/**
- * 
- * Is the named property in the list of allowed ones that will be passed into <code>createWidget</code>?
- * @param prop{string} The name of the property for which to check our list.
- */
-xap.bridges.dojo.DojoWidgetBridge.prototype.allowsInitialProperty = function(prop){
-	return xap.util.ArrayHelper.indexOf(this.getAllowedInitialProperties(),prop)>-1 ;
-}
-
  /**
  * 
  * Since the <code>dojo.widget.createWidget()</code> 
@@ -95,7 +78,7 @@
  * We get the string Dojo will use to locate the widget to create from 
  * the subclass' <code>this.getPeerString()</code>. 
  */
-xap.bridges.dojo.DojoWidgetBridge.prototype.obtainPeer = function() {
+xap.bridges.dojo.DojoWidgetBridge.prototype.createPeer = function() {
         
    		// These properties of the map might be overwritten by a passed-in map:
    		// (by default, widget i.d. === xap i.d.)
@@ -106,6 +89,7 @@
 		// attributes we're going to handle here from the xal attributes
 		// that will be applied to the object after its creation (so we
 		// don't set them on creation and then afterward again).
+		
         this.mapAllowedInitialPropertiesFromXalToDojo(propertyMap, 
         												this.getElement(),
         												true            	
@@ -119,56 +103,72 @@
 		} else {
 			dojoType = propertyMap.dojoType ;
 		}
-		delete propertyMap.dojoType ;		
+		delete propertyMap.dojoType ;	
+		
+		if (dojoType == null ){
+			throw new xap.util.Exception("No dojo type specified by class or passed-in map.") ;		
+		}	
+
 
 
 		var parent = this.getElement().getParent();
-		var handler = this.getUiContentHandler().getHandlerForElement( parent );
+		var parentHandler = this.getUiContentHandler().getHandlerForElement( parent );
 		var parentPeerNode = null ;
-      
-    
-		// This is necessary if a Dojo widget is the parentPeer:
-		if( handler.getNodeForChildren ){
-			if (!handler.getNodeForChildren()){
+		var parentPeer = parentHandler.getPeer();
+		
+		var htmlContainerNode = this.getSpecifiedDisplayNode();
+		
+		
+		//basic strategy:
+		//if the parent is a dojo widget, add to the parent using the addChild
+		//method. If the parent is not a dojo widget, just add to it's container
+		//HTML node
+		
+		//if there is no addChild, do something else
+		//TODO if they specifcy container node should that override something?
+		if (!parentPeer.addChild){
+			//if they didn't specify a target, use the parent's target
+			if (!htmlContainerNode){
+				if (parentHandler.getNodeForChildren){
+					htmlContainerNode = parentHandler.getNodeForChildren();
+				}
+			}
+			
+			//if there still is no target there is nothing we can do
+			if (!htmlContainerNode){
 				throw new xap.util.Exception(
-							"Problem inserting component managed by "
-							+ this.toString()
-							+ " into a container managed by " 
-							+ parentHandler.toString()
-							+ "; parent doesn't have a suitable container."
-												) ;
-				return ;
-			}			
-			parentPeerNode = handler.getNodeForChildren() ;
-		}	    
-
-		// If we've specified a node....
-	    var specifiedDomNode = this.getSpecifiedDisplayNode() ;
-	    if ( specifiedDomNode){
-	    	parentPeerNode = specifiedDomNode ;
-	    }
-	    
-	    var tmp = document.createElement('div');
+					"Problem inserting component managed by "
+					+ this.toString()
+					+ " into a container managed by " 
+					+ parentHandler.toString()
+					+ "; parent doesn't have a suitable container.") ;
+			}
+			var tmp = document.createElement('div');
 	    
-	    // Will setting the dimensions of the original div help us size the 
-	    // eventual Dojo widget?
-	    for( var fieldName in this._creationProperties ){
-	    	if( !tmp.style[fieldName]){
-		   	 tmp.style[fieldName] = this._creationProperties[fieldName] ; 
-		   	}  	 
+			// Will setting the dimensions of the original div help us size the 
+			// eventual Dojo widget?
+			//IMPORTANT put back in if needed?
+//			for( var fieldName in this._creationProperties ){
+//				if( !tmp.style[fieldName]){
+//					tmp.style[fieldName] = this._creationProperties[fieldName] ; 
+//				}
+//			}
+			tmp.parent = htmlContainerNode ;
+	    	htmlContainerNode.appendChild(tmp) ;
+	    	var peer = dojo.widget.createWidget(dojoType,propertyMap, tmp); 
+	    	this.setPeer(peer ) ;	
+	    	this.autoAttachBridgeEventsToPeerEvents() ;	  	 
+		}
+		
+		//TODO checking for addChild isn't really enough, that
+		//doesn't really mean it is a dojo widget
+		else{
+			var peer = dojo.widget.createWidget(dojoType,propertyMap); 
+			parentHandler.getPeer().addChild(peer);
+			this.setPeer(peer ) ;
+			this.autoAttachBridgeEventsToPeerEvents() ;
+			
 		}
-
-
-	    tmp.parent = parentPeerNode ;
-	    parentPeerNode.appendChild(tmp) ;
-
-		if (dojoType == null ){
-			throw new xap.util.Exception("No dojo type specified by class or passed-in map.") ;		
-   		}
-   
-   		// The candy in the middle of the wrapper:
-		var peer = dojo.widget.createWidget(dojoType,propertyMap,tmp); 
-		this.setPeer(peer ) ;
 }
 
 
@@ -183,6 +183,9 @@
  *  @param trimP  If there and true, trim allowed initial attributes from the 
  *                attributes list so that they're not handled twice.
 **/ 
+
+//IMPORTANT old code that may or may not be useful, keep for now
+//tried to set properties initially to help dojo widgets size better
 xap.bridges.dojo.DojoWidgetBridge.prototype.mapAllowedInitialPropertiesFromXalToDojo = function(propertyMap,attrHolder,trimP){
 	var arrAttributes = attrHolder.attributes
 	// if trimP, all attributes we handle here will be
@@ -194,14 +197,10 @@
 	if(arrAttributes){
 		for(var ii =0; ii<arrAttributes.length; ++ii){
 			var xalName = arrAttributes[ii].nodeName ;
-			// This might get remapped:
-			var name = xalName ;
+			
 			if (mapper[xalName]){
-				name = mapper[xalName] ;
-			}
-			//Doesn't do much here, but for subclasses:
-			if( this.allowsInitialProperty(xalName)){
-				// What about the value?  
+				var name = mapper[xalName] ;
+				alert("FOund mapping for xal attribute:" + xalName + " to " + name);
 				var xalValue = arrAttributes[ii].nodeValue ;
 				//...but we'll just do a little bit here:
 				//If necessary we could introduce 
@@ -214,8 +213,16 @@
 				} else if (xalValue == "false"){
 					value = false ;
 				}
-				propertyMap[name] = value ;				
-			} else if (trimP){
+				
+				alert("Now looking for " + xalValue + " on " + name);
+				if (name[xalValue]){
+					alert("found sub-property lookup:" + name[xalValue]);
+				}
+				value = name[xalValue] || value;
+				
+				propertyMap[name] = value ;			
+			} 
+			else if (trimP){
 				postInitAttributes.push( arrAttributes[ii] ) ;
 			}  		
    		} // end iteration over attributes
@@ -278,6 +285,8 @@
 		this.getPeer().show();
 	}
 }
+
+
 /**
  * Add this widget's needs to the superclass' more general list:
 **/
@@ -285,4 +294,11 @@
 	return [];
 }	
 
+
+xap.bridges.dojo.DojoWidgetBridge.prototype.getNodeForChildren = function(){  
+	if (this.getPeer().isContainer){
+		return this.containerNode;
+	}
+	return null;
+} 
 

Copied: incubator/xap/trunk/src/xap/bridges/dojo/SplitPaneBridge.js (from r432022, incubator/xap/trunk/src/xap/bridges/dojo/DojoSplitPaneBridge.js)
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/bridges/dojo/SplitPaneBridge.js?p2=incubator/xap/trunk/src/xap/bridges/dojo/SplitPaneBridge.js&p1=incubator/xap/trunk/src/xap/bridges/dojo/DojoSplitPaneBridge.js&r1=432022&r2=437887&rev=437887&view=diff
==============================================================================
--- incubator/xap/trunk/src/xap/bridges/dojo/DojoSplitPaneBridge.js (original)
+++ incubator/xap/trunk/src/xap/bridges/dojo/SplitPaneBridge.js Mon Aug 28 17:20:32 2006
@@ -22,45 +22,12 @@
  */
 
 // This:
-Xap.provide("xap.bridges.dojo.DojoSplitPaneBridge"); 
-// Superclass:
-Xap.require("xap.bridges.dojo.DojoWidgetBridge");
-// Peer:
-Xap.require("dojo.widget.SplitPane"); 
-
-
-/**
- * Creates a xap.bridges.dojo.DojoSplitPaneBridge.
- * 
- * 
- * @class xap.bridges.dojo.DojoSplitPaneBridge is the bridge between an XML element
- * representing a button and the Dojo SplitPane class.
- * 
- * @author jmargaris
- * @author mturyn
- */
-
+Xap.provide("xap.bridges.dojo.SplitPaneBridge"); 
 
-Xap.setupClassAsSubclassOf( "xap.bridges.dojo.DojoSplitPaneBridge", "xap.bridges.dojo.DojoWidgetBridge") ;
+Xap.require("xap.bridges.dojo.DojoWidgetBridge");
+Xap.require("dojo.widget.SplitContainer"); 
 
- 
-/**
- * @private
- * A list of properties to be held by any 
- * DojoSplitPane instances and handled directly 
- * by this bridge, not a superclass.
-**/ 
-xap.bridges.dojo.DojoSplitPaneBridge._propertyMap = {"orientation":true, "sizerWidth":true, "activeSizing":true, 
-									"sizeMin":true, "sizeShare":true} ;
 
-/**
- * isManagedProperty
- * @param propertyName Does a xap.bridges.dojo.DojoSplitPaneBridge handle this property?
- * @return boolean
-**/ 
-xap.bridges.dojo.DojoSplitPaneBridge.hasManagedPeerProperty = function(propertyName){
-	return (xap.bridges.dojo.DojoSplitPaneBridge._propertyMap[propertyName]!= null) ;
-}
  
  /**
  * @fileoverview
@@ -68,58 +35,68 @@
  * A bridge class with dojo toolkit button peer.
  */
  
-xap.bridges.dojo.DojoSplitPaneBridge= function() {
-	xap.bridges.dojo.DojoPaneBridge.call(this);
+xap.bridges.dojo.SplitPaneBridge= function() {
+	xap.bridges.dojo.DojoWidgetBridge.call(this);
 }
 
-xap.bridges.dojo.DojoSplitPaneBridge.prototype = new xap.bridges.dojo.DojoPaneBridge;
 
+Xap.setupClassAsSubclassOf(
+				"xap.bridges.dojo.SplitPaneBridge",
+				"xap.bridges.dojo.DojoWidgetBridge"						
+);
 
-xap.bridges.dojo.DojoSplitPaneBridge.prototype.constructor=xap.bridges.dojo.DojoSplitPaneBridge ;
 
-xap.bridges.dojo.DojoSplitPaneBridge.s_log = xap.util.LogFactory.getLog( "xap.bridges.dojo.DojoSplitPaneBridge" );
 
-xap.bridges.dojo.DojoSplitPaneBridge.prototype.toString = function() {
-	return "xap.bridges.dojo.DojoSplitPaneBridge";
+xap.bridges.dojo.SplitPaneBridge.prototype.getPeerString = function(){
+    return "SplitContainer" ;
 }
 
 
-
-xap.bridges.dojo.DojoSplitPaneBridge.prototype.getPeerString = function(){
-    return "SplitPane" ;
-}
-
-
-
-
-
 /**
- * This method is called whenever an attribute
- * on the XML element that maps to this bridge class
- * is changed. 
- * <ul>
- * <li>text - the HTML text of the label</li>
- * </ul>
  * 
- * Attributes not handled here are are passed to the 
- * superclass attributeSet method.
+ * @return an object mapping allowed XAL properties to their Dojo equivalents
  */
-xap.bridges.dojo.DojoSplitPaneBridge.prototype.attributeSet = function( event ) {
-    var name = event.getName();
-    var value = event.getNewValue();
-    var peer = this.getPeer();
-    
-    if ( xap.bridges.dojo.DojoSplitPaneBridge.hasManagedPeerProperty(name) ){
-    	//Simple
-    	peer[name] = value ;
-    }    
-    else{
-        xap.bridges.dojo.DojoPaneBridge.prototype.attributeSet.call( this, event );
-    }
-    peer.onResized() ;
+xap.bridges.dojo.SplitPaneBridge.prototype.getXalToToolkitMapper = function(){
+ 	var mappings = this.superclass.getXalToToolkitMapper();
+ 	mappings.orientation = "orientation";
+ 	return mappings;
+} 
+
+//TODO we need to use the addchild method instead here
+//to add children to the split pane
+xp.bridges.dojo.SplitPaneBridge.prototype.getNodeForChildren = function(){  
+// This is the large pane in the middle of the widget, and so the best parent for other
+// components:
+	return this.getRootDomNode() ;
+} 
+
+/** XML attribute set method for "width" */
+xap.bridges.dojo.SplitPaneBridge.prototype.setWidthAttribute = function(value){
+	this.getRootDomNode().style.width = value ;
+	this.getPeer().onResized();
 }
 
+/** XML attribute set method for "height" */
+xap.bridges.dojo.SplitPaneBridge.prototype.setHeightAttribute = function(value){
+	this.getRootDomNode().style.height = value ;
+	this.getPeer().onResized();
+}
+ 
 
-
+ 
+/**
+ * 
+ * 
+ * Attribute definitions
+ * 
+ */ 
+ 
+ 
+/**
+ * No new dynamic attributes
+ */
+xap.bridges.dojo.SplitPaneBridge.prototype.getNewAllowedAttributes = function(){
+	return [];
+}	
 
 

Added: incubator/xap/trunk/src/xap/bridges/dojo/TabBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/bridges/dojo/TabBridge.js?rev=437887&view=auto
==============================================================================
--- incubator/xap/trunk/src/xap/bridges/dojo/TabBridge.js (added)
+++ incubator/xap/trunk/src/xap/bridges/dojo/TabBridge.js Mon Aug 28 17:20:32 2006
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ *
+ */
+ 
+ /**
+ * @fileoverview
+ * 
+ * A bridge class that controls a tab.
+ */
+
+Xap.provide("xap.bridges.dojo.Tab"); 
+
+Xap.require("xap.bridges.dojo.DojoWidgetBridge");
+Xap.require("dojo.widget.LayoutContainer"); 
+
+
+ 
+ /**
+ * @fileoverview
+ * 
+ * A bridge class with dojo toolkit button peer.
+ */
+ 
+xap.bridges.dojo.TabBridge= function() {
+	xap.bridges.dojo.DojoWidgetBridge.call(this);
+}
+
+
+Xap.setupClassAsSubclassOf(
+				"xap.bridges.dojo.TabBridge",
+				"xap.bridges.dojo.DojoWidgetBridge"						
+);
+
+
+
+xap.bridges.dojo.TabBridge.prototype.getPeerString = function(){
+    return "LayoutContainer" ;
+}
+
+
+
+/**
+ * 
+ * @return an object mapping allowed XAL properties to their Dojo equivalents
+ */
+xap.bridges.dojo.TabBridge.prototype.getXalToToolkitMapper = function(){
+	
+	//the initial attribute text maps to the label property
+ 	var mappings = this.superclass.getXalToToolkitMapper();
+ 	mappings.text = "label";
+ 	return mappings;
+}
+ 
+/**
+ * 
+ * 
+ * Attribute definitions
+ * 
+ */ 
+ 
+ 
+/**
+ * No new dynamic attributes
+ */
+xap.bridges.dojo.TabBridge.prototype.getNewAllowedAttributes = function(){
+	return [];
+}	
+
+

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

Added: incubator/xap/trunk/src/xap/bridges/dojo/TabPaneBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/bridges/dojo/TabPaneBridge.js?rev=437887&view=auto
==============================================================================
--- incubator/xap/trunk/src/xap/bridges/dojo/TabPaneBridge.js (added)
+++ incubator/xap/trunk/src/xap/bridges/dojo/TabPaneBridge.js Mon Aug 28 17:20:32 2006
@@ -0,0 +1,83 @@
+/*
+ * 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.
+ *
+ */
+ 
+ /**
+ * @fileoverview
+ * 
+ * A bridge class that controls a dojo TabContainer peer.
+ */
+
+Xap.provide("xap.bridges.dojo.TabPaneBridge"); 
+
+Xap.require("xap.bridges.dojo.DojoWidgetBridge");
+Xap.require("dojo.widget.TabContainer"); 
+
+
+ 
+ /**
+ * @fileoverview
+ * 
+ * A bridge class with dojo toolkit button peer.
+ */
+ 
+xap.bridges.dojo.TabPaneBridge= function() {
+	xap.bridges.dojo.DojoWidgetBridge.call(this);
+}
+
+
+Xap.setupClassAsSubclassOf(
+				"xap.bridges.dojo.TabPaneBridge",
+				"xap.bridges.dojo.DojoWidgetBridge"						
+);
+
+
+
+xap.bridges.dojo.TabPaneBridge.prototype.getPeerString = function(){
+    return "TabContainer" ;
+}
+
+
+/** XML attribute set method for "width" */
+xap.bridges.dojo.TabPaneBridge.prototype.setWidthAttribute = function(value){
+	this.getRootDomNode().style.width = value ;
+	this.getPeer().onResized();
+}
+
+/** XML attribute set method for "height" */
+xap.bridges.dojo.TabPaneBridge.prototype.setHeightAttribute = function(value){
+	this.getRootDomNode().style.height = value ;
+	this.getPeer().onResized();
+}
+ 
+
+ 
+/**
+ * 
+ * 
+ * Attribute definitions
+ * 
+ */ 
+ 
+ 
+/**
+ * No new dynamic attributes
+ */
+xap.bridges.dojo.TabPaneBridge.prototype.getNewAllowedAttributes = function(){
+	return [];
+}	
+
+

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

Modified: incubator/xap/trunk/src/xap/taghandling/plugin.xml
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/src/xap/taghandling/plugin.xml?rev=437887&r1=437886&r2=437887&view=diff
==============================================================================
--- incubator/xap/trunk/src/xap/taghandling/plugin.xml (original)
+++ incubator/xap/trunk/src/xap/taghandling/plugin.xml Mon Aug 28 17:20:32 2006
@@ -26,8 +26,11 @@
 		<mapping class="xap.bridges.dojo.DojoFloatingPaneBridge" name="floatingPane"/>	
 		<mapping class="xap.bridges.dojo.DojoGenericWidgetBridge" name="generic"/>
 		<mapping class="xap.bridges.dojo.DojoLayoutPaneBridge" name="layoutPane"/>	
-		
-		
+		<mapping class="xap.bridges.dojo.SplitPaneBridge" name="splitPane"/>	
+		<mapping class="xap.bridges.dojo.TabPaneBridge" name="tabPane"/>	
+		<mapping class="xap.bridges.dojo.TabBridge" name="tab"/>	
+		<mapping class="xap.bridges.dojo.BoxPanelBridge" name="boxPanel"/>	
+				
 		<mapping class="xap.bridges.basic.DomNodeBridge" name="dom"/>
 		<mapping class="xap.bridges.dojo.DojoDatePickerBridge" name="datePicker"/>
 		<mapping class="xap.bridges.dojo.DojoColorPaletteBridge" name="colorPalette"/>