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 2007/04/21 00:59:12 UTC

svn commit: r530960 - in /incubator/xap/trunk/codebase/src/xap: bridges/dojo/WindowBridge.js widgets/dojo/Window.js

Author: jmargaris
Date: Fri Apr 20 17:59:12 2007
New Revision: 530960

URL: http://svn.apache.org/viewvc?view=rev&rev=530960
Log:
For dgennaco: https://issues.apache.org/jira/browse/XAP-385

Modified:
    incubator/xap/trunk/codebase/src/xap/bridges/dojo/WindowBridge.js
    incubator/xap/trunk/codebase/src/xap/widgets/dojo/Window.js

Modified: incubator/xap/trunk/codebase/src/xap/bridges/dojo/WindowBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/bridges/dojo/WindowBridge.js?view=diff&rev=530960&r1=530959&r2=530960
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/bridges/dojo/WindowBridge.js (original)
+++ incubator/xap/trunk/codebase/src/xap/bridges/dojo/WindowBridge.js Fri Apr 20 17:59:12 2007
@@ -56,15 +56,10 @@
 	
 	var peer = this.getPeer() ;
 	
-	dojo.event.connect(peer,"maximizeWindow",this,"onMaximize");
-	dojo.event.connect(peer,"minimizeWindow",this,"onMinimize");
+	// move to only connect when events are specified.
+	// exception is close, we need to catch a successful close
+	// event to remove our Xal DOM element.
 	dojo.event.connect(peer,"closeWindow",this,"onClose");
-	dojo.event.connect(peer,"restoreWindow",this,"onRestore");
-	
-	dojo.event.connectBefore(peer,"maximizeWindow",this,"onMaximizing");
-	dojo.event.connectBefore(peer,"minimizeWindow",this,"onMinimizing");
-	dojo.event.connectBefore(peer,"closeWindow",this,"onClosing");
-	dojo.event.connectBefore(peer,"restoreWindow",this,"onRestoring");
 
 	//TODO move this to peer?
 	dojo.event.connectBefore(peer.titleBar,"ondblclick",this,"toggleMaximized");
@@ -122,10 +117,10 @@
  
 
 xap.bridges.dojo.WindowBridge.prototype.getNewAllowedAttributes = function(){
-	return ["maximized","minimized","resizable","centered","title"];
-}	
-
-
+	return ["maximized","minimized","resizable","centered","title","titleColor","titleBackgroundColor",
+	        "onMinimize","onMaximize","onClose","onRestore","onMinimizing","onMaximizing","onClosing","onRestoring",
+	        "iconImage", "minimizeImage", "maximizeImage", "restoreImage", "closeImage","showTitleBar"];
+}
 
 /**
  * 
@@ -158,6 +153,38 @@
 	xap.bridges.dojo.WindowBridge.superclass.mapAllowedInitialPropertiesFromXalToDojo.call(this, propertyMap, attrHolder);
 }
 
+/* onXXX attribute setting */
+xap.bridges.dojo.WindowBridge.prototype.setOnMinimizeAttribute = function(value) {
+	dojo.event.connectOnce(getPeer(),"minimizeWindow",this,"onMinimize");
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setOnMaximizeAttribute = function(value) {
+	dojo.event.connectOnce(getPeer(),"maximizeWindow",this,"onMaximize");
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setOnCloseAttribute = function(value) {
+    // handled in init() since we need to remove the bridged element in any case
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setOnRestoreAttribute = function(value) {
+	dojo.event.connectOnce(getPeer(),"restoreWindow",this,"onRestore");
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setOnMinimizingAttribute = function(value) {
+	dojo.event.connectBefore(getPeer(),"minimizeWindow",this,"onMinimizing");
+}
+	
+xap.bridges.dojo.WindowBridge.prototype.setOnMaximizingAttribute = function(value) {
+	dojo.event.connectBefore(getPeer(),"maximizeWindow",this,"onMaximizing");
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setOnClosingAttribute = function(value) {
+	dojo.event.connectBefore(getPeer(),"closeWindow",this,"onClosing");
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setOnRestoringAttribute = function(value) {
+	dojo.event.connectBefore(getPeer(),"restoreWindow",this,"onRestoring");
+}
 
 
 
@@ -252,7 +279,6 @@
 	}		
 }
 
-
 xap.bridges.dojo.WindowBridge.prototype.toggleMaximized = function(){
 	if (this.getPeer().windowState != 'maximized'){
 		this.setMaximizedAttribute( 'true' ) ;	
@@ -321,6 +347,29 @@
 	}
 }
 
+xap.bridges.dojo.WindowBridge.prototype.setCloseImageAttribute = function( val ){
+    this.getPeer().setCloseImage(this.getElement().getAttributeAsUrl("closeImage"));
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setIconImageAttribute = function( val ){
+    this.getPeer().setIconImage(this.getElement().getAttributeAsUrl("iconImage"));
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setMaximizeImageAttribute = function( val ){
+    this.getPeer().setMaximizeImage(this.getElement().getAttributeAsUrl("maximizeImage"));
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setMinimizeImageAttribute = function( val ){
+    this.getPeer().setMinimizeImage(this.getElement().getAttributeAsUrl("minimizeImage"));
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setRestoreImageAttribute = function( val ){
+    this.getPeer().setRestoreImage(this.getElement().getAttributeAsUrl("restoreImage"));
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setShowTitleBarAttribute = function(value) {
+	this.getPeer().showTitleBar(value);
+}
 
 xap.bridges.dojo.WindowBridge.prototype.center = function(){
 		var node = this.getRootDomNode() ;
@@ -337,6 +386,14 @@
 	this.getPeer().setTitle( txt ) ;
 }
 
+xap.bridges.dojo.WindowBridge.prototype.setTitleColorAttribute = function(color){
+    this.getPeer().setTitleColor(color);
+}
+
+xap.bridges.dojo.WindowBridge.prototype.setTitleBackgroundColorAttribute = function(color){
+    this.getPeer().setTitleBackgroundColor(color);
+}
+
 /**
  * We need a specified remover for the "title" attribute because the
  * root dom node's style doesn't have a "title" attribute.
@@ -345,4 +402,28 @@
 **/ 
 xap.bridges.dojo.WindowBridge.prototype.attributeRemovers["title"] = function(event){
 	this.setTitleAttribute("") ;	
+}
+xap.bridges.dojo.WindowBridge.prototype.attributeRemovers["iconImage"] = function(event){
+    this.getPeer().setIconImage("");
+}
+xap.bridges.dojo.WindowBridge.prototype.attributeRemovers["maximizeImage"] = function(event){
+    this.getPeer().setMaximizeImage("");
+}
+xap.bridges.dojo.WindowBridge.prototype.attributeRemovers["minimizeImage"] = function(event){
+    this.getPeer().setMinimizeImage("");
+}
+xap.bridges.dojo.WindowBridge.prototype.attributeRemovers["restoreImage"] = function(event){
+    this.getPeer().setRestoreImage("");
+}
+xap.bridges.dojo.WindowBridge.prototype.attributeRemovers["closeImage"] = function(event){
+    this.getPeer().setCloseImage("");
+}
+xap.bridges.dojo.WindowBridge.prototype.attributeRemovers["titleBackgroundColor"] = function(event){
+    this.getPeer().setTitleBackgroundColor("");
+}
+xap.bridges.dojo.WindowBridge.prototype.attributeRemovers["titleColor"] = function(event){
+    this.getPeer().setTitleColor("");
+}
+xap.bridges.dojo.WindowBridge.prototype.attributeRemovers["showTitleBar"] = function(event){
+    this.getPeer().showTitleBar("true");
 }

Modified: incubator/xap/trunk/codebase/src/xap/widgets/dojo/Window.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/widgets/dojo/Window.js?view=diff&rev=530960&r1=530959&r2=530960
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/widgets/dojo/Window.js (original)
+++ incubator/xap/trunk/codebase/src/xap/widgets/dojo/Window.js Fri Apr 20 17:59:12 2007
@@ -417,7 +417,61 @@
 	setTitle:function(val){
 		this.titleBarText.innerHTML=val ;	
 		this.title = val ;
+	},
+	setTitleColor:function(color){
+	    this.titleBarText.style.color = color;
+	},
+	setTitleBackgroundColor:function(color){
+	    this.titleBar.style.backgroundColor = color;
+	},
+	_setActionImage:function(action, imageUrl){
+		if (!imageUrl) {
+			action.style.backgroundImage = null;
+		} else {
+		    action.style.backgroundImage = "url(" + imageUrl + ")";
+		}
+	    action.style.backgroundRepeat = "no-repeat";
+	    action.style.backgroundPosition = "center center";
+	},
+	setCloseImage:function(imageUrl){
+		this._setActionImage(this.closeAction, imageUrl);
+	},
+	setRestoreImage:function(imageUrl){
+		this._setActionImage(this.restoreAction, imageUrl);
+	},
+	setMinimizeImage:function(imageUrl) {
+		this._setActionImage(this.minimizeAction, imageUrl);
+	},
+	setMaximizeImage:function(imageUrl) {
+		this._setActionImage(this.maximizeAction, imageUrl);
+	},
+	setIconImage:function(imageUrl) {
+	    var icon = this.titleBarIcon;
+		var hadSrc = this.iconSrc;
+		
+		if (imageUrl) {
+			icon.src = imageUrl;
+		    icon.style.display = "";
+			if (!hadSrc) {
+				dojo.dom.prependChild(icon, this.titleBar);
+			}
+		} else {
+			if (hadSrc) {
+				dojo.html.removeNode(icon);
+			}
+		}
+	    this.iconSrc=imageUrl;
+	},
+	showTitleBar:function(show) {
+		if (show === "false") {
+			this.titleBar.style.visibility = "hidden";
+			this.titleBar.style.display = "none";
+		} else {
+			this.titleBar.style.visibility = "visible";
+			this.titleBar.style.display = "";
+		}
 	}
+
 });