mirror of
http://git.whoc.org.uk/git/password-manager.git
synced 2024-11-01 11:27:16 +01:00
250 lines
7.5 KiB
JavaScript
250 lines
7.5 KiB
JavaScript
|
/*
|
||
|
|
||
|
Copyright 2008-2011 Clipperz Srl
|
||
|
|
||
|
This file is part of Clipperz's Javascript Crypto Library.
|
||
|
Javascript Crypto Library provides web developers with an extensive
|
||
|
and efficient set of cryptographic functions. The library aims to
|
||
|
obtain maximum execution speed while preserving modularity and
|
||
|
reusability.
|
||
|
For further information about its features and functionalities please
|
||
|
refer to http://www.clipperz.com
|
||
|
|
||
|
* Javascript Crypto Library is free software: you can redistribute
|
||
|
it and/or modify it under the terms of the GNU Affero General Public
|
||
|
License as published by the Free Software Foundation, either version
|
||
|
3 of the License, or (at your option) any later version.
|
||
|
|
||
|
* Javascript Crypto Library is distributed in the hope that it will
|
||
|
be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||
|
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||
|
See the GNU Affero General Public License for more details.
|
||
|
|
||
|
* You should have received a copy of the GNU Affero General Public
|
||
|
License along with Javascript Crypto Library. If not, see
|
||
|
<http://www.gnu.org/licenses/>.
|
||
|
|
||
|
*/
|
||
|
|
||
|
if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
|
||
|
if (typeof(Clipperz.YUI) == 'undefined') { Clipperz.YUI = {}; }
|
||
|
|
||
|
|
||
|
Clipperz.YUI.IBLayoutRegion = function(aManager, aName, aConfig) {
|
||
|
this._configuration = aConfig;
|
||
|
|
||
|
// Clipperz.YUI.IBLayoutRegion.superclass.constructor.call();
|
||
|
Clipperz.YUI.IBLayoutRegion.superclass.constructor.call(this, aManager, aConfig, aName);
|
||
|
};
|
||
|
|
||
|
YAHOO.extendX(Clipperz.YUI.IBLayoutRegion, YAHOO.ext.LayoutRegion, {
|
||
|
|
||
|
'toString': function() {
|
||
|
return "IBLayoutRegion (" + this.name() + ")";
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'name': function() {
|
||
|
return this.position;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'manager': function() {
|
||
|
return this.mgr;
|
||
|
},
|
||
|
|
||
|
'configuration': function() {
|
||
|
return this._configuration;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'getAttributeValue': function(anAttribute) {
|
||
|
var result;
|
||
|
|
||
|
switch(anAttribute) {
|
||
|
case "top":
|
||
|
result = this.element().getTop();
|
||
|
break;
|
||
|
case "left":
|
||
|
result = this.element().getLeft();
|
||
|
break;
|
||
|
case "bottom":
|
||
|
result = this.element().getBottom();
|
||
|
break;
|
||
|
case "right":
|
||
|
result = this.element().getRight();
|
||
|
break;
|
||
|
case "height":
|
||
|
result = this.element().getHeight();
|
||
|
break;
|
||
|
case "width":
|
||
|
result = this.element().getWidth();
|
||
|
break;
|
||
|
}
|
||
|
//MochiKit.Logging.logDebug("--- " + this.name() + " [" + anAttribute + "] = " + result);
|
||
|
|
||
|
return result;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'normalizeConfigureValue': function(aConfigurationValue) {
|
||
|
var result;
|
||
|
|
||
|
//MochiKit.Logging.logDebug("--- normalizeConfigureValue - " + aConfigurationValue);
|
||
|
if (typeof(aConfigurationValue) == 'number') {
|
||
|
result = aConfigurationValue;
|
||
|
} else if (aConfigurationValue == 'auto') {
|
||
|
result = aConfigurationValue;
|
||
|
} else {
|
||
|
var splitValues;
|
||
|
var referenceValue;
|
||
|
var deltaValue;
|
||
|
var targetRegion;
|
||
|
var targetAttribute;
|
||
|
|
||
|
splitValues = aConfigurationValue.split('+');
|
||
|
referenceValue = Clipperz.Base.trim(splitValues[0]);
|
||
|
deltaValue = Clipperz.Base.trim(splitValues[1] || "");
|
||
|
|
||
|
splitValues = referenceValue.split('.');
|
||
|
targetRegion = splitValues[0];
|
||
|
targetAttribute = splitValues[1];
|
||
|
|
||
|
//MochiKit.Logging.logDebug("> " + aConfigurationValue);
|
||
|
//MochiKit.Logging.logDebug(">> manager: " + this.manager());
|
||
|
//MochiKit.Logging.logDebug(">> targetRegion: " + targetRegion);
|
||
|
//MochiKit.Logging.logDebug(">>> " + this.manager().getRegion(targetRegion));
|
||
|
targetValue = this.manager().getRegion(targetRegion).getAttributeValue(targetAttribute);
|
||
|
//MochiKit.Logging.logDebug(">>>> " + targetRegion + "." + targetAttribute + " + " + deltaValue + " = " + targetValue);
|
||
|
|
||
|
result = targetValue + (deltaValue - 0);
|
||
|
|
||
|
//MochiKit.Logging.logDebug("<<< " + aConfigurationValue + " = " + result);
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
},
|
||
|
|
||
|
'normalizedConfiguration': function(aConfiguration) {
|
||
|
var result;
|
||
|
var key;
|
||
|
|
||
|
result = {};
|
||
|
|
||
|
//MochiKit.Logging.logDebug("--- normalizedConfiguration - keys: " + Clipperz.Base.serializeJSON(MochiKit.Base.keys(aConfiguration)));
|
||
|
for (key in aConfiguration) {
|
||
|
if ((key == 'top') || (key == 'bottom') || (key == 'left') || (key == 'rigth') || (key == 'width') || (key == 'height')) {
|
||
|
result[key] = this.normalizeConfigureValue(aConfiguration[key]);
|
||
|
} else {
|
||
|
result[key] = aConfiguration[key];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'element': function() {
|
||
|
return this.el;
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
/*
|
||
|
'hide': function() {
|
||
|
MochiKit.Logging.logDebug(">>> IBLayoutManager.hide()")
|
||
|
Clipperz.YUI.IBLayoutRegion.superclass.hide.call(this);
|
||
|
},
|
||
|
*/
|
||
|
//-----------------------------------------------------
|
||
|
/*
|
||
|
'add': function(aPanel) {
|
||
|
Clipperz.YUI.IBLayoutRegion.superclass.add.call(this, aPanel);
|
||
|
aPanel.el.fitToParent(true);
|
||
|
},
|
||
|
*/
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'updateBox': function(aBox) {
|
||
|
//MochiKit.Logging.logDebug(">>> IBLayoutRegion.updateBox - " + aBox);
|
||
|
Clipperz.YUI.IBLayoutRegion.superclass.updateBox.call(this, aBox);
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
|
||
|
'layout': function() {
|
||
|
var top, left, bottom, right, width, height;
|
||
|
var element;
|
||
|
var config;
|
||
|
var windowSize;
|
||
|
var containerSize;
|
||
|
|
||
|
//MochiKit.Logging.logDebug(">>> IBLayoutRegion.layout - " + this);
|
||
|
config = this.normalizedConfiguration(this.configuration());
|
||
|
element = this.element();
|
||
|
// containerSize = this.manager().getSize(true);
|
||
|
containerSize = this.manager().getSize(false);
|
||
|
windowSize = {width: YAHOO.util.Dom.getViewportWidth(), height: YAHOO.util.Dom.getViewportHeight()};
|
||
|
|
||
|
// element.setStyle("position", "absolute");
|
||
|
// element.setStyle("overflow", "none");
|
||
|
|
||
|
if (typeof(config.top) == 'number') {
|
||
|
top = config.top;
|
||
|
|
||
|
if (typeof(config.bottom) == 'number') {
|
||
|
height = containerSize.height - top - config.bottom;
|
||
|
} else if (typeof(config.height) == 'number') {
|
||
|
height = config.height;
|
||
|
} else {
|
||
|
// ???
|
||
|
}
|
||
|
} else {
|
||
|
if ((typeof(config.bottom) == 'number') && (typeof(config.height) == 'number')) {
|
||
|
top = containerSize.height - (config.height + config.bottom);
|
||
|
height = config.height;
|
||
|
} else if ((config.bottom == 'auto') && (typeof(config.height) == 'number')) {
|
||
|
top = ((containerSize.height - config.height) / 2);
|
||
|
height = config.height;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (typeof(config.left) == 'number') {
|
||
|
left = config.left;
|
||
|
|
||
|
if (typeof(config.right) == 'number') {
|
||
|
width = (containerSize.width - left - config.right);
|
||
|
} else if (typeof(config.width) == 'number') {
|
||
|
width = config.width;
|
||
|
} else {
|
||
|
// ???
|
||
|
}
|
||
|
} else {
|
||
|
if ((typeof(config.right) == 'number') && (typeof(config.width) == 'number')) {
|
||
|
left = containerSize.width - (config.width + config.right);
|
||
|
width = config.width;
|
||
|
} else if ((config.right == 'auto') && (typeof(config.width) == 'number')) {
|
||
|
left = ((containerSize.width - config.width) / 2);
|
||
|
width = config.width;
|
||
|
}
|
||
|
}
|
||
|
//MochiKit.Logging.logDebug("--- setting position (top: " + top + ", left: " + left + ", width: " + width + ", height: " + height + ")");
|
||
|
element.setTop(top);
|
||
|
element.setLeft(left);
|
||
|
element.setWidth(width);
|
||
|
element.setHeight(height);
|
||
|
|
||
|
if (this.activePanel != null) {
|
||
|
this.activePanel.setSize(width, height);
|
||
|
}
|
||
|
//MochiKit.Logging.logDebug("<<< IBLayoutRegion.layout");
|
||
|
},
|
||
|
|
||
|
//-----------------------------------------------------
|
||
|
__syntaxFix__: '__syntaxFix__'
|
||
|
});
|