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 = "";
+ }
}
+
});