summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/YUI/IBLayoutRegion.js
Side-by-side diff
Diffstat (limited to 'frontend/beta/js/Clipperz/YUI/IBLayoutRegion.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/YUI/IBLayoutRegion.js249
1 files changed, 249 insertions, 0 deletions
diff --git a/frontend/beta/js/Clipperz/YUI/IBLayoutRegion.js b/frontend/beta/js/Clipperz/YUI/IBLayoutRegion.js
new file mode 100644
index 0000000..2fd4377
--- a/dev/null
+++ b/frontend/beta/js/Clipperz/YUI/IBLayoutRegion.js
@@ -0,0 +1,249 @@
+/*
+
+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__'
+});