You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2009/07/16 21:14:56 UTC
svn commit: r794787 [25/34] - in
/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src: ./
animation/ cal/ charting/ charting/svg/ charting/vml/ collections/ crypto/
data/ data/core/ data/old/ data/old/format/ data/old/provider/ date/
debug/...
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/RichText.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/RichText.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/RichText.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/RichText.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,1167 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.RichText");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.html.*");
+dojo.require("dojo.html.layout");
+dojo.require("dojo.html.selection");
+dojo.require("dojo.event.*");
+dojo.require("dojo.string.extras");
+dojo.require("dojo.uri.Uri");
+dojo.require("dojo.Deferred");
+if (!djConfig["useXDomain"] || djConfig["allowXdRichTextSave"]) {
+ if (dojo.hostenv.post_load_) {
+ (function () {
+ var savetextarea = dojo.doc().createElement("textarea");
+ savetextarea.id = "dojo.widget.RichText.savedContent";
+ savetextarea.style = "display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;";
+ dojo.body().appendChild(savetextarea);
+ })();
+ } else {
+ try {
+ dojo.doc().write("<textarea id=\"dojo.widget.RichText.savedContent\" " + "style=\"display:none;position:absolute;top:-100px;left:-100px;height:3px;width:3px;overflow:hidden;\"></textarea>");
+ }
+ catch (e) {
+ }
+ }
+}
+dojo.widget.defineWidget("dojo.widget.RichText", dojo.widget.HtmlWidget, function () {
+ this.contentPreFilters = [];
+ this.contentPostFilters = [];
+ this.contentDomPreFilters = [];
+ this.contentDomPostFilters = [];
+ this.editingAreaStyleSheets = [];
+ if (dojo.render.html.moz) {
+ this.contentPreFilters.push(this._fixContentForMoz);
+ }
+ this._keyHandlers = {};
+ if (dojo.Deferred) {
+ this.onLoadDeferred = new dojo.Deferred();
+ }
+}, {inheritWidth:false, focusOnLoad:false, saveName:"", styleSheets:"", _content:"", height:"", minHeight:"1em", isClosed:true, isLoaded:false, useActiveX:false, relativeImageUrls:false, _SEPARATOR:"@@**%%__RICHTEXTBOUNDRY__%%**@@", onLoadDeferred:null, fillInTemplate:function () {
+ dojo.event.topic.publish("dojo.widget.RichText::init", this);
+ this.open();
+ dojo.event.connect(this, "onKeyPressed", this, "afterKeyPress");
+ dojo.event.connect(this, "onKeyPress", this, "keyPress");
+ dojo.event.connect(this, "onKeyDown", this, "keyDown");
+ dojo.event.connect(this, "onKeyUp", this, "keyUp");
+ this.setupDefaultShortcuts();
+}, setupDefaultShortcuts:function () {
+ var ctrl = this.KEY_CTRL;
+ var exec = function (cmd, arg) {
+ return arguments.length == 1 ? function () {
+ this.execCommand(cmd);
+ } : function () {
+ this.execCommand(cmd, arg);
+ };
+ };
+ this.addKeyHandler("b", ctrl, exec("bold"));
+ this.addKeyHandler("i", ctrl, exec("italic"));
+ this.addKeyHandler("u", ctrl, exec("underline"));
+ this.addKeyHandler("a", ctrl, exec("selectall"));
+ this.addKeyHandler("s", ctrl, function () {
+ this.save(true);
+ });
+ this.addKeyHandler("1", ctrl, exec("formatblock", "h1"));
+ this.addKeyHandler("2", ctrl, exec("formatblock", "h2"));
+ this.addKeyHandler("3", ctrl, exec("formatblock", "h3"));
+ this.addKeyHandler("4", ctrl, exec("formatblock", "h4"));
+ this.addKeyHandler("\\", ctrl, exec("insertunorderedlist"));
+ if (!dojo.render.html.ie) {
+ this.addKeyHandler("Z", ctrl, exec("redo"));
+ }
+}, events:["onBlur", "onFocus", "onKeyPress", "onKeyDown", "onKeyUp", "onClick"], open:function (element) {
+ if (this.onLoadDeferred.fired >= 0) {
+ this.onLoadDeferred = new dojo.Deferred();
+ }
+ var h = dojo.render.html;
+ if (!this.isClosed) {
+ this.close();
+ }
+ dojo.event.topic.publish("dojo.widget.RichText::open", this);
+ this._content = "";
+ if ((arguments.length == 1) && (element["nodeName"])) {
+ this.domNode = element;
+ }
+ if ((this.domNode["nodeName"]) && (this.domNode.nodeName.toLowerCase() == "textarea")) {
+ this.textarea = this.domNode;
+ var html = this._preFilterContent(this.textarea.value);
+ this.domNode = dojo.doc().createElement("div");
+ dojo.html.copyStyle(this.domNode, this.textarea);
+ var tmpFunc = dojo.lang.hitch(this, function () {
+ with (this.textarea.style) {
+ display = "block";
+ position = "absolute";
+ left = top = "-1000px";
+ if (h.ie) {
+ this.__overflow = overflow;
+ overflow = "hidden";
+ }
+ }
+ });
+ if (h.ie) {
+ setTimeout(tmpFunc, 10);
+ } else {
+ tmpFunc();
+ }
+ if (!h.safari) {
+ dojo.html.insertBefore(this.domNode, this.textarea);
+ }
+ if (this.textarea.form) {
+ dojo.event.connect("before", this.textarea.form, "onsubmit", dojo.lang.hitch(this, function () {
+ this.textarea.value = this.getEditorContent();
+ }));
+ }
+ var editor = this;
+ dojo.event.connect(this, "postCreate", function () {
+ dojo.html.insertAfter(editor.textarea, editor.domNode);
+ });
+ } else {
+ var html = this._preFilterContent(dojo.string.trim(this.domNode.innerHTML));
+ }
+ if (html == "") {
+ html = " ";
+ }
+ var content = dojo.html.getContentBox(this.domNode);
+ this._oldHeight = content.height;
+ this._oldWidth = content.width;
+ this._firstChildContributingMargin = this._getContributingMargin(this.domNode, "top");
+ this._lastChildContributingMargin = this._getContributingMargin(this.domNode, "bottom");
+ this.savedContent = html;
+ this.domNode.innerHTML = "";
+ this.editingArea = dojo.doc().createElement("div");
+ this.domNode.appendChild(this.editingArea);
+ if ((this.domNode["nodeName"]) && (this.domNode.nodeName == "LI")) {
+ this.domNode.innerHTML = " <br>";
+ }
+ if (this.saveName != "" && (!djConfig["useXDomain"] || djConfig["allowXdRichTextSave"])) {
+ var saveTextarea = dojo.doc().getElementById("dojo.widget.RichText.savedContent");
+ if (saveTextarea.value != "") {
+ var datas = saveTextarea.value.split(this._SEPARATOR);
+ for (var i = 0; i < datas.length; i++) {
+ var data = datas[i].split(":");
+ if (data[0] == this.saveName) {
+ html = data[1];
+ datas.splice(i, 1);
+ break;
+ }
+ }
+ }
+ dojo.event.connect("before", window, "onunload", this, "_saveContent");
+ }
+ if (h.ie70 && this.useActiveX) {
+ dojo.debug("activeX in ie70 is not currently supported, useActiveX is ignored for now.");
+ this.useActiveX = false;
+ }
+ if (this.useActiveX && h.ie) {
+ var self = this;
+ setTimeout(function () {
+ self._drawObject(html);
+ }, 0);
+ } else {
+ if (h.ie || this._safariIsLeopard() || h.opera) {
+ this.iframe = dojo.doc().createElement("iframe");
+ this.iframe.src = "javascript:void(0)";
+ this.editorObject = this.iframe;
+ with (this.iframe.style) {
+ border = "0";
+ width = "100%";
+ }
+ this.iframe.frameBorder = 0;
+ this.editingArea.appendChild(this.iframe);
+ this.window = this.iframe.contentWindow;
+ this.document = this.window.document;
+ this.document.open();
+ this.document.write("<html><head><style>body{margin:0;padding:0;border:0;overflow:hidden;}</style></head><body><div></div></body></html>");
+ this.document.close();
+ this.editNode = this.document.body.firstChild;
+ this.editNode.contentEditable = true;
+ with (this.iframe.style) {
+ if (h.ie70) {
+ if (this.height) {
+ height = this.height;
+ }
+ if (this.minHeight) {
+ minHeight = this.minHeight;
+ }
+ } else {
+ height = this.height ? this.height : this.minHeight;
+ }
+ }
+ var formats = ["p", "pre", "address", "h1", "h2", "h3", "h4", "h5", "h6", "ol", "div", "ul"];
+ var localhtml = "";
+ for (var i in formats) {
+ if (formats[i].charAt(1) != "l") {
+ localhtml += "<" + formats[i] + "><span>content</span></" + formats[i] + ">";
+ } else {
+ localhtml += "<" + formats[i] + "><li>content</li></" + formats[i] + ">";
+ }
+ }
+ with (this.editNode.style) {
+ position = "absolute";
+ left = "-2000px";
+ top = "-2000px";
+ }
+ this.editNode.innerHTML = localhtml;
+ var node = this.editNode.firstChild;
+ while (node) {
+ dojo.withGlobal(this.window, "selectElement", dojo.html.selection, [node.firstChild]);
+ var nativename = node.tagName.toLowerCase();
+ this._local2NativeFormatNames[nativename] = this.queryCommandValue("formatblock");
+ this._native2LocalFormatNames[this._local2NativeFormatNames[nativename]] = nativename;
+ node = node.nextSibling;
+ }
+ with (this.editNode.style) {
+ position = "";
+ left = "";
+ top = "";
+ }
+ this.editNode.innerHTML = html;
+ if (this.height) {
+ this.document.body.style.overflowY = "scroll";
+ }
+ dojo.lang.forEach(this.events, function (e) {
+ dojo.event.connect(this.editNode, e.toLowerCase(), this, e);
+ }, this);
+ this.onLoad();
+ } else {
+ this._drawIframe(html);
+ this.editorObject = this.iframe;
+ }
+ }
+ if (this.domNode.nodeName == "LI") {
+ this.domNode.lastChild.style.marginTop = "-1.2em";
+ }
+ dojo.html.addClass(this.domNode, "RichTextEditable");
+ this.isClosed = false;
+}, _hasCollapseableMargin:function (element, side) {
+ if (dojo.html.getPixelValue(element, "border-" + side + "-width", false)) {
+ return false;
+ } else {
+ if (dojo.html.getPixelValue(element, "padding-" + side, false)) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+}, _getContributingMargin:function (element, topOrBottom) {
+ if (topOrBottom == "top") {
+ var siblingAttr = "previousSibling";
+ var childSiblingAttr = "nextSibling";
+ var childAttr = "firstChild";
+ var marginProp = "margin-top";
+ var siblingMarginProp = "margin-bottom";
+ } else {
+ var siblingAttr = "nextSibling";
+ var childSiblingAttr = "previousSibling";
+ var childAttr = "lastChild";
+ var marginProp = "margin-bottom";
+ var siblingMarginProp = "margin-top";
+ }
+ var elementMargin = dojo.html.getPixelValue(element, marginProp, false);
+ function isSignificantNode(element) {
+ return !(element.nodeType == 3 && dojo.string.isBlank(element.data)) && dojo.html.getStyle(element, "display") != "none" && !dojo.html.isPositionAbsolute(element);
+ }
+ var childMargin = 0;
+ var child = element[childAttr];
+ while (child) {
+ while ((!isSignificantNode(child)) && child[childSiblingAttr]) {
+ child = child[childSiblingAttr];
+ }
+ childMargin = Math.max(childMargin, dojo.html.getPixelValue(child, marginProp, false));
+ if (!this._hasCollapseableMargin(child, topOrBottom)) {
+ break;
+ }
+ child = child[childAttr];
+ }
+ if (!this._hasCollapseableMargin(element, topOrBottom)) {
+ return parseInt(childMargin);
+ }
+ var contextMargin = 0;
+ var sibling = element[siblingAttr];
+ while (sibling) {
+ if (isSignificantNode(sibling)) {
+ contextMargin = dojo.html.getPixelValue(sibling, siblingMarginProp, false);
+ break;
+ }
+ sibling = sibling[siblingAttr];
+ }
+ if (!sibling) {
+ contextMargin = dojo.html.getPixelValue(element.parentNode, marginProp, false);
+ }
+ if (childMargin > elementMargin) {
+ return parseInt(Math.max((childMargin - elementMargin) - contextMargin, 0));
+ } else {
+ return 0;
+ }
+}, _drawIframe:function (html) {
+ var oldMoz = Boolean(dojo.render.html.moz && (typeof window.XML == "undefined"));
+ if (!this.iframe) {
+ var currentDomain = (new dojo.uri.Uri(dojo.doc().location)).host;
+ this.iframe = dojo.doc().createElement("iframe");
+ with (this.iframe) {
+ style.border = "none";
+ style.lineHeight = "0";
+ style.verticalAlign = "bottom";
+ scrolling = this.height ? "auto" : "no";
+ }
+ }
+ if (djConfig["useXDomain"] && !djConfig["dojoRichTextFrameUrl"]) {
+ dojo.debug("dojo.widget.RichText: When using cross-domain Dojo builds," + " please save src/widget/templates/richtextframe.html to your domain and set djConfig.dojoRichTextFrameUrl" + " to the path on your domain to richtextframe.html");
+ }
+ this.iframe.src = (djConfig["dojoRichTextFrameUrl"] || dojo.uri.moduleUri("dojo.widget", "templates/richtextframe.html")) + ((dojo.doc().domain != currentDomain) ? ("#" + dojo.doc().domain) : "");
+ this.iframe.width = this.inheritWidth ? this._oldWidth : "100%";
+ if (this.height) {
+ this.iframe.style.height = this.height;
+ } else {
+ var height = this._oldHeight;
+ if (this._hasCollapseableMargin(this.domNode, "top")) {
+ height += this._firstChildContributingMargin;
+ }
+ if (this._hasCollapseableMargin(this.domNode, "bottom")) {
+ height += this._lastChildContributingMargin;
+ }
+ this.iframe.height = height;
+ }
+ var tmpContent = dojo.doc().createElement("div");
+ tmpContent.innerHTML = html;
+ this.editingArea.appendChild(tmpContent);
+ if (this.relativeImageUrls) {
+ var imgs = tmpContent.getElementsByTagName("img");
+ for (var i = 0; i < imgs.length; i++) {
+ imgs[i].src = (new dojo.uri.Uri(dojo.global().location, imgs[i].src)).toString();
+ }
+ html = tmpContent.innerHTML;
+ }
+ var firstChild = dojo.html.firstElement(tmpContent);
+ var lastChild = dojo.html.lastElement(tmpContent);
+ if (firstChild) {
+ firstChild.style.marginTop = this._firstChildContributingMargin + "px";
+ }
+ if (lastChild) {
+ lastChild.style.marginBottom = this._lastChildContributingMargin + "px";
+ }
+ this.editingArea.appendChild(this.iframe);
+ if (dojo.render.html.safari) {
+ this.iframe.src = this.iframe.src;
+ }
+ var _iframeInitialized = false;
+ var ifrFunc = dojo.lang.hitch(this, function () {
+ if (!_iframeInitialized) {
+ _iframeInitialized = true;
+ } else {
+ return;
+ }
+ if (!this.editNode) {
+ if (this.iframe.contentWindow) {
+ this.window = this.iframe.contentWindow;
+ this.document = this.iframe.contentWindow.document;
+ } else {
+ if (this.iframe.contentDocument) {
+ this.window = this.iframe.contentDocument.window;
+ this.document = this.iframe.contentDocument;
+ }
+ }
+ var getStyle = (function (domNode) {
+ return function (style) {
+ return dojo.html.getStyle(domNode, style);
+ };
+ })(this.domNode);
+ var font = getStyle("font-weight") + " " + getStyle("font-size") + " " + getStyle("font-family");
+ var lineHeight = "1.0";
+ var lineHeightStyle = dojo.html.getUnitValue(this.domNode, "line-height");
+ if (lineHeightStyle.value && lineHeightStyle.units == "") {
+ lineHeight = lineHeightStyle.value;
+ }
+ dojo.html.insertCssText("body,html{background:transparent;padding:0;margin:0;}" + "body{top:0;left:0;right:0;" + (((this.height) || (dojo.render.html.opera)) ? "" : "position:fixed;") + "font:" + font + ";" + "min-height:" + this.minHeight + ";" + "line-height:" + lineHeight + "}" + "p{margin: 1em 0 !important;}" + "body > *:first-child{padding-top:0 !important;margin-top:" + this._firstChildContributingMargin + "px !important;}" + "body > *:last-child{padding-bottom:0 !important;margin-bottom:" + this._lastChildContributingMargin + "px !important;}" + "li > ul:-moz-first-node, li > ol:-moz-first-node{padding-top:1.2em;}\n" + "li{min-height:1.2em;}" + "", this.document);
+ dojo.html.removeNode(tmpContent);
+ this.document.body.innerHTML = html;
+ if (oldMoz || dojo.render.html.safari) {
+ this.document.designMode = "on";
+ }
+ this.onLoad();
+ } else {
+ dojo.html.removeNode(tmpContent);
+ this.editNode.innerHTML = html;
+ this.onDisplayChanged();
+ }
+ });
+ if (this.editNode) {
+ ifrFunc();
+ } else {
+ if (dojo.render.html.moz) {
+ this.iframe.onload = function () {
+ setTimeout(ifrFunc, 250);
+ };
+ } else {
+ this.iframe.onload = ifrFunc;
+ }
+ }
+}, _applyEditingAreaStyleSheets:function () {
+ var files = [];
+ if (this.styleSheets) {
+ files = this.styleSheets.split(";");
+ this.styleSheets = "";
+ }
+ files = files.concat(this.editingAreaStyleSheets);
+ this.editingAreaStyleSheets = [];
+ if (files.length > 0) {
+ for (var i = 0; i < files.length; i++) {
+ var url = files[i];
+ if (url) {
+ this.addStyleSheet(dojo.uri.dojoUri(url));
+ }
+ }
+ }
+}, addStyleSheet:function (uri) {
+ var url = uri.toString();
+ if (dojo.lang.find(this.editingAreaStyleSheets, url) > -1) {
+ dojo.debug("dojo.widget.RichText.addStyleSheet: Style sheet " + url + " is already applied to the editing area!");
+ return;
+ }
+ if (url.charAt(0) == "." || (url.charAt(0) != "/" && !uri.host)) {
+ url = (new dojo.uri.Uri(dojo.global().location, url)).toString();
+ }
+ this.editingAreaStyleSheets.push(url);
+ if (this.document.createStyleSheet) {
+ this.document.createStyleSheet(url);
+ } else {
+ var head = this.document.getElementsByTagName("head")[0];
+ var stylesheet = this.document.createElement("link");
+ with (stylesheet) {
+ rel = "stylesheet";
+ type = "text/css";
+ href = url;
+ }
+ head.appendChild(stylesheet);
+ }
+}, removeStyleSheet:function (uri) {
+ var url = uri.toString();
+ if (url.charAt(0) == "." || (url.charAt(0) != "/" && !uri.host)) {
+ url = (new dojo.uri.Uri(dojo.global().location, url)).toString();
+ }
+ var index = dojo.lang.find(this.editingAreaStyleSheets, url);
+ if (index == -1) {
+ dojo.debug("dojo.widget.RichText.removeStyleSheet: Style sheet " + url + " is not applied to the editing area so it can not be removed!");
+ return;
+ }
+ delete this.editingAreaStyleSheets[index];
+ var links = this.document.getElementsByTagName("link");
+ for (var i = 0; i < links.length; i++) {
+ if (links[i].href == url) {
+ if (dojo.render.html.ie) {
+ links[i].href = "";
+ }
+ dojo.html.removeNode(links[i]);
+ break;
+ }
+ }
+}, _drawObject:function (html) {
+ this.object = dojo.html.createExternalElement(dojo.doc(), "object");
+ with (this.object) {
+ classid = "clsid:2D360201-FFF5-11D1-8D03-00A0C959BC0A";
+ width = this.inheritWidth ? this._oldWidth : "100%";
+ style.height = this.height ? this.height : (this._oldHeight + "px");
+ Scrollbars = this.height ? true : false;
+ Appearance = this._activeX.appearance.flat;
+ }
+ this.editorObject = this.object;
+ this.editingArea.appendChild(this.object);
+ this.object.attachEvent("DocumentComplete", dojo.lang.hitch(this, "onLoad"));
+ dojo.lang.forEach(this.events, function (e) {
+ this.object.attachEvent(e.toLowerCase(), dojo.lang.hitch(this, e));
+ }, this);
+ this.object.DocumentHTML = "<!doctype HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">" + "<html><title></title>" + "<style type=\"text/css\">" + " body,html { padding: 0; margin: 0; }" + (this.height ? "" : " body, { overflow: hidden; }") + "</style>" + "<body><div>" + html + "<div></body></html>";
+ this._cacheLocalBlockFormatNames();
+}, _local2NativeFormatNames:{}, _native2LocalFormatNames:{}, _cacheLocalBlockFormatNames:function () {
+ if (!this._native2LocalFormatNames["p"]) {
+ var obj = this.object;
+ var error = false;
+ if (!obj) {
+ try {
+ obj = dojo.html.createExternalElement(dojo.doc(), "object");
+ obj.classid = "clsid:2D360201-FFF5-11D1-8D03-00A0C959BC0A";
+ dojo.body().appendChild(obj);
+ obj.DocumentHTML = "<html><head></head><body></body></html>";
+ }
+ catch (e) {
+ error = true;
+ }
+ }
+ try {
+ var oNamesParm = new ActiveXObject("DEGetBlockFmtNamesParam.DEGetBlockFmtNamesParam");
+ obj.ExecCommand(this._activeX.command["getblockformatnames"], 0, oNamesParm);
+ var vbNamesArray = new VBArray(oNamesParm.Names);
+ var localFormats = vbNamesArray.toArray();
+ var nativeFormats = ["p", "pre", "address", "h1", "h2", "h3", "h4", "h5", "h6", "ol", "ul", "", "", "", "", "div"];
+ for (var i = 0; i < nativeFormats.length; ++i) {
+ if (nativeFormats[i].length > 0) {
+ this._local2NativeFormatNames[localFormats[i]] = nativeFormats[i];
+ this._native2LocalFormatNames[nativeFormats[i]] = localFormats[i];
+ }
+ }
+ }
+ catch (e) {
+ error = true;
+ }
+ if (obj && !this.object) {
+ dojo.body().removeChild(obj);
+ }
+ }
+ return !error;
+}, _isResized:function () {
+ return false;
+}, onLoad:function (e) {
+ this.isLoaded = true;
+ if (this.object) {
+ this.document = this.object.DOM;
+ this.window = this.document.parentWindow;
+ this.editNode = this.document.body.firstChild;
+ this.editingArea.style.height = this.height ? this.height : this.minHeight;
+ if (!this.height) {
+ this.connect(this, "onDisplayChanged", "_updateHeight");
+ }
+ this.window._frameElement = this.object;
+ } else {
+ if (this.iframe && !dojo.render.html.ie) {
+ this.editNode = this.document.body;
+ if (!this.height) {
+ this.connect(this, "onDisplayChanged", "_updateHeight");
+ }
+ try {
+ this.document.execCommand("useCSS", false, true);
+ this.document.execCommand("styleWithCSS", false, false);
+ }
+ catch (e2) {
+ }
+ if (dojo.render.html.safari) {
+ this.connect(this.editNode, "onblur", "onBlur");
+ this.connect(this.editNode, "onfocus", "onFocus");
+ this.connect(this.editNode, "onclick", "onFocus");
+ this.interval = setInterval(dojo.lang.hitch(this, "onDisplayChanged"), 750);
+ } else {
+ if (dojo.render.html.mozilla || dojo.render.html.opera) {
+ var doc = this.document;
+ var addListener = dojo.event.browser.addListener;
+ var self = this;
+ dojo.lang.forEach(this.events, function (e) {
+ var l = addListener(self.document, e.substr(2).toLowerCase(), dojo.lang.hitch(self, e));
+ if (e == "onBlur") {
+ var unBlur = {unBlur:function (e) {
+ dojo.event.browser.removeListener(doc, "blur", l);
+ }};
+ dojo.event.connect("before", self, "close", unBlur, "unBlur");
+ }
+ });
+ }
+ }
+ } else {
+ if (dojo.render.html.ie) {
+ if (!this.height) {
+ this.connect(this, "onDisplayChanged", "_updateHeight");
+ }
+ this.editNode.style.zoom = 1;
+ }
+ }
+ }
+ this._applyEditingAreaStyleSheets();
+ if (this.focusOnLoad) {
+ this.focus();
+ }
+ this.onDisplayChanged(e);
+ if (this.onLoadDeferred) {
+ this.onLoadDeferred.callback(true);
+ }
+}, onKeyDown:function (e) {
+ if ((!e) && (this.object)) {
+ e = dojo.event.browser.fixEvent(this.window.event);
+ }
+ if ((dojo.render.html.ie) && (e.keyCode == e.KEY_TAB)) {
+ e.preventDefault();
+ e.stopPropagation();
+ this.execCommand((e.shiftKey ? "outdent" : "indent"));
+ } else {
+ if (dojo.render.html.ie) {
+ if ((65 <= e.keyCode) && (e.keyCode <= 90)) {
+ e.charCode = e.keyCode;
+ this.onKeyPress(e);
+ }
+ }
+ }
+}, onKeyUp:function (e) {
+ return;
+}, KEY_CTRL:1, onKeyPress:function (e) {
+ if ((!e) && (this.object)) {
+ e = dojo.event.browser.fixEvent(this.window.event);
+ }
+ var modifiers = e.ctrlKey ? this.KEY_CTRL : 0;
+ if (this._keyHandlers[e.key]) {
+ var handlers = this._keyHandlers[e.key], i = 0, handler;
+ while (handler = handlers[i++]) {
+ if (modifiers == handler.modifiers) {
+ e.preventDefault();
+ handler.handler.call(this);
+ break;
+ }
+ }
+ }
+ dojo.lang.setTimeout(this, this.onKeyPressed, 1, e);
+}, addKeyHandler:function (key, modifiers, handler) {
+ if (!(this._keyHandlers[key] instanceof Array)) {
+ this._keyHandlers[key] = [];
+ }
+ this._keyHandlers[key].push({modifiers:modifiers || 0, handler:handler});
+}, onKeyPressed:function (e) {
+ this.onDisplayChanged();
+}, onClick:function (e) {
+ this.onDisplayChanged(e);
+}, onBlur:function (e) {
+}, _initialFocus:true, onFocus:function (e) {
+ if ((dojo.render.html.mozilla) && (this._initialFocus)) {
+ this._initialFocus = false;
+ if (dojo.string.trim(this.editNode.innerHTML) == " ") {
+ this.placeCursorAtStart();
+ }
+ }
+}, blur:function () {
+ if (this.iframe) {
+ this.window.blur();
+ } else {
+ if (this.object) {
+ this.document.body.blur();
+ } else {
+ if (this.editNode) {
+ this.editNode.blur();
+ }
+ }
+ }
+}, focus:function () {
+ if (this.iframe && !dojo.render.html.ie) {
+ this.window.focus();
+ } else {
+ if (this.object) {
+ this.document.focus();
+ } else {
+ if (this.editNode && this.editNode.focus) {
+ this.editNode.focus();
+ } else {
+ dojo.debug("Have no idea how to focus into the editor!");
+ }
+ }
+ }
+}, onDisplayChanged:function (e) {
+}, _activeX:{command:{bold:5000, italic:5023, underline:5048, justifycenter:5024, justifyleft:5025, justifyright:5026, cut:5003, copy:5002, paste:5032, "delete":5004, undo:5049, redo:5033, removeformat:5034, selectall:5035, unlink:5050, indent:5018, outdent:5031, insertorderedlist:5030, insertunorderedlist:5051, inserttable:5022, insertcell:5019, insertcol:5020, insertrow:5021, deletecells:5005, deletecols:5006, deleterows:5007, mergecells:5029, splitcell:5047, setblockformat:5043, getblockformat:5011, getblockformatnames:5012, setfontname:5044, getfontname:5013, setfontsize:5045, getfontsize:5014, setbackcolor:5042, getbackcolor:5010, setforecolor:5046, getforecolor:5015, findtext:5008, font:5009, hyperlink:5016, image:5017, lockelement:5027, makeabsolute:5028, sendbackward:5036, bringforward:5037, sendbelowtext:5038, bringabovetext:5039, sendtoback:5040, bringtofront:5041, properties:5052}, ui:{"default":0, prompt:1, noprompt:2}, status:{notsupported:0, disabled:1, enabled
:3, latched:7, ninched:11}, appearance:{flat:0, inset:1}, state:{unchecked:0, checked:1, gray:2}}, _normalizeCommand:function (cmd) {
+ var drh = dojo.render.html;
+ var command = cmd.toLowerCase();
+ if (command == "formatblock") {
+ if (drh.safari) {
+ command = "heading";
+ }
+ } else {
+ if (this.object) {
+ switch (command) {
+ case "createlink":
+ command = "hyperlink";
+ break;
+ case "insertimage":
+ command = "image";
+ break;
+ }
+ } else {
+ if (command == "hilitecolor" && !drh.mozilla) {
+ command = "backcolor";
+ }
+ }
+ }
+ return command;
+}, _safariIsLeopard:function () {
+ var gt420 = false;
+ if (dojo.render.html.safari) {
+ var tmp = dojo.render.html.UA.split("AppleWebKit/")[1];
+ var ver = parseFloat(tmp.split(" ")[0]);
+ if (ver >= 420) {
+ gt420 = true;
+ }
+ }
+ return gt420;
+}, queryCommandAvailable:function (command) {
+ var ie = 1;
+ var mozilla = 1 << 1;
+ var safari = 1 << 2;
+ var opera = 1 << 3;
+ var safari420 = 1 << 4;
+ var gt420 = this._safariIsLeopard();
+ function isSupportedBy(browsers) {
+ return {ie:Boolean(browsers & ie), mozilla:Boolean(browsers & mozilla), safari:Boolean(browsers & safari), safari420:Boolean(browsers & safari420), opera:Boolean(browsers & opera)};
+ }
+ var supportedBy = null;
+ switch (command.toLowerCase()) {
+ case "bold":
+ case "italic":
+ case "underline":
+ case "subscript":
+ case "superscript":
+ case "fontname":
+ case "fontsize":
+ case "forecolor":
+ case "hilitecolor":
+ case "justifycenter":
+ case "justifyfull":
+ case "justifyleft":
+ case "justifyright":
+ case "delete":
+ case "selectall":
+ supportedBy = isSupportedBy(mozilla | ie | safari | opera);
+ break;
+ case "createlink":
+ case "unlink":
+ case "removeformat":
+ case "inserthorizontalrule":
+ case "insertimage":
+ case "insertorderedlist":
+ case "insertunorderedlist":
+ case "indent":
+ case "outdent":
+ case "formatblock":
+ case "inserthtml":
+ case "undo":
+ case "redo":
+ case "strikethrough":
+ supportedBy = isSupportedBy(mozilla | ie | opera | safari420);
+ break;
+ case "blockdirltr":
+ case "blockdirrtl":
+ case "dirltr":
+ case "dirrtl":
+ case "inlinedirltr":
+ case "inlinedirrtl":
+ supportedBy = isSupportedBy(ie);
+ break;
+ case "cut":
+ case "copy":
+ case "paste":
+ supportedBy = isSupportedBy(ie | mozilla | safari420);
+ break;
+ case "inserttable":
+ supportedBy = isSupportedBy(mozilla | (this.object ? ie : 0));
+ break;
+ case "insertcell":
+ case "insertcol":
+ case "insertrow":
+ case "deletecells":
+ case "deletecols":
+ case "deleterows":
+ case "mergecells":
+ case "splitcell":
+ supportedBy = isSupportedBy(this.object ? ie : 0);
+ break;
+ default:
+ return false;
+ }
+ return (dojo.render.html.ie && supportedBy.ie) || (dojo.render.html.mozilla && supportedBy.mozilla) || (dojo.render.html.safari && supportedBy.safari) || (gt420 && supportedBy.safari420) || (dojo.render.html.opera && supportedBy.opera);
+}, execCommand:function (command, argument) {
+ var returnValue;
+ this.focus();
+ command = this._normalizeCommand(command);
+ if (argument != undefined) {
+ if (command == "heading") {
+ throw new Error("unimplemented");
+ } else {
+ if (command == "formatblock") {
+ if (this.object) {
+ argument = this._native2LocalFormatNames[argument];
+ } else {
+ if (dojo.render.html.ie) {
+ argument = "<" + argument + ">";
+ }
+ }
+ }
+ }
+ }
+ if (this.object) {
+ switch (command) {
+ case "hilitecolor":
+ command = "setbackcolor";
+ break;
+ case "forecolor":
+ case "backcolor":
+ case "fontsize":
+ case "fontname":
+ command = "set" + command;
+ break;
+ case "formatblock":
+ command = "setblockformat";
+ }
+ if (command == "strikethrough") {
+ command = "inserthtml";
+ var range = this.document.selection.createRange();
+ if (!range.htmlText) {
+ return;
+ }
+ argument = range.htmlText.strike();
+ } else {
+ if (command == "inserthorizontalrule") {
+ command = "inserthtml";
+ argument = "<hr>";
+ }
+ }
+ if (command == "inserthtml") {
+ var range = this.document.selection.createRange();
+ if (this.document.selection.type.toUpperCase() == "CONTROL") {
+ for (var i = 0; i < range.length; i++) {
+ range.item(i).outerHTML = argument;
+ }
+ } else {
+ range.pasteHTML(argument);
+ range.select();
+ }
+ returnValue = true;
+ } else {
+ if (arguments.length == 1) {
+ returnValue = this.object.ExecCommand(this._activeX.command[command], this._activeX.ui.noprompt);
+ } else {
+ returnValue = this.object.ExecCommand(this._activeX.command[command], this._activeX.ui.noprompt, argument);
+ }
+ }
+ } else {
+ if (command == "inserthtml") {
+ if (dojo.render.html.ie) {
+ var insertRange = this.document.selection.createRange();
+ insertRange.pasteHTML(argument);
+ insertRange.select();
+ return true;
+ } else {
+ return this.document.execCommand(command, false, argument);
+ }
+ } else {
+ if ((command == "unlink") && (this.queryCommandEnabled("unlink")) && (dojo.render.html.mozilla)) {
+ var selection = this.window.getSelection();
+ var selectionRange = selection.getRangeAt(0);
+ var selectionStartContainer = selectionRange.startContainer;
+ var selectionStartOffset = selectionRange.startOffset;
+ var selectionEndContainer = selectionRange.endContainer;
+ var selectionEndOffset = selectionRange.endOffset;
+ var a = dojo.withGlobal(this.window, "getAncestorElement", dojo.html.selection, ["a"]);
+ dojo.withGlobal(this.window, "selectElement", dojo.html.selection, [a]);
+ returnValue = this.document.execCommand("unlink", false, null);
+ var selectionRange = this.document.createRange();
+ selectionRange.setStart(selectionStartContainer, selectionStartOffset);
+ selectionRange.setEnd(selectionEndContainer, selectionEndOffset);
+ selection.removeAllRanges();
+ selection.addRange(selectionRange);
+ return returnValue;
+ } else {
+ if ((command == "hilitecolor") && (dojo.render.html.mozilla)) {
+ this.document.execCommand("useCSS", false, false);
+ returnValue = this.document.execCommand(command, false, argument);
+ this.document.execCommand("useCSS", false, true);
+ } else {
+ if ((dojo.render.html.ie) && ((command == "backcolor") || (command == "forecolor"))) {
+ argument = arguments.length > 1 ? argument : null;
+ returnValue = this.document.execCommand(command, false, argument);
+ } else {
+ argument = arguments.length > 1 ? argument : null;
+ if (argument || command != "createlink") {
+ returnValue = this.document.execCommand(command, false, argument);
+ }
+ }
+ }
+ }
+ }
+ }
+ this.onDisplayChanged();
+ return returnValue;
+}, queryCommandEnabled:function (command) {
+ command = this._normalizeCommand(command);
+ if (this.object) {
+ switch (command) {
+ case "hilitecolor":
+ command = "setbackcolor";
+ break;
+ case "forecolor":
+ case "backcolor":
+ case "fontsize":
+ case "fontname":
+ command = "set" + command;
+ break;
+ case "formatblock":
+ command = "setblockformat";
+ break;
+ case "strikethrough":
+ command = "bold";
+ break;
+ case "inserthorizontalrule":
+ return true;
+ }
+ if (typeof this._activeX.command[command] == "undefined") {
+ return false;
+ }
+ var status = this.object.QueryStatus(this._activeX.command[command]);
+ return ((status != this._activeX.status.notsupported) && (status != this._activeX.status.disabled));
+ } else {
+ if (dojo.render.html.mozilla) {
+ if (command == "unlink") {
+ return dojo.withGlobal(this.window, "hasAncestorElement", dojo.html.selection, ["a"]);
+ } else {
+ if (command == "inserttable") {
+ return true;
+ }
+ }
+ }
+ var elem = (dojo.render.html.ie) ? this.document.selection.createRange() : this.document;
+ return elem.queryCommandEnabled(command);
+ }
+}, queryCommandState:function (command) {
+ command = this._normalizeCommand(command);
+ if (this.object) {
+ if (command == "forecolor") {
+ command = "setforecolor";
+ } else {
+ if (command == "backcolor") {
+ command = "setbackcolor";
+ } else {
+ if (command == "strikethrough") {
+ return dojo.withGlobal(this.window, "hasAncestorElement", dojo.html.selection, ["strike"]);
+ } else {
+ if (command == "inserthorizontalrule") {
+ return false;
+ }
+ }
+ }
+ }
+ if (typeof this._activeX.command[command] == "undefined") {
+ return null;
+ }
+ var status = this.object.QueryStatus(this._activeX.command[command]);
+ return ((status == this._activeX.status.latched) || (status == this._activeX.status.ninched));
+ } else {
+ return this.document.queryCommandState(command);
+ }
+}, queryCommandValue:function (command) {
+ command = this._normalizeCommand(command);
+ if (this.object) {
+ switch (command) {
+ case "forecolor":
+ case "backcolor":
+ case "fontsize":
+ case "fontname":
+ command = "get" + command;
+ return this.object.execCommand(this._activeX.command[command], this._activeX.ui.noprompt);
+ case "formatblock":
+ var retvalue = this.object.execCommand(this._activeX.command["getblockformat"], this._activeX.ui.noprompt);
+ if (retvalue) {
+ return this._local2NativeFormatNames[retvalue];
+ }
+ }
+ } else {
+ if (dojo.render.html.ie && command == "formatblock") {
+ return this._local2NativeFormatNames[this.document.queryCommandValue(command)] || this.document.queryCommandValue(command);
+ }
+ return this.document.queryCommandValue(command);
+ }
+}, placeCursorAtStart:function () {
+ this.focus();
+ if (dojo.render.html.moz && this.editNode.firstChild && this.editNode.firstChild.nodeType != dojo.dom.TEXT_NODE) {
+ dojo.withGlobal(this.window, "selectElementChildren", dojo.html.selection, [this.editNode.firstChild]);
+ } else {
+ dojo.withGlobal(this.window, "selectElementChildren", dojo.html.selection, [this.editNode]);
+ }
+ dojo.withGlobal(this.window, "collapse", dojo.html.selection, [true]);
+}, placeCursorAtEnd:function () {
+ this.focus();
+ if (dojo.render.html.moz && this.editNode.lastChild && this.editNode.lastChild.nodeType != dojo.dom.TEXT_NODE) {
+ dojo.withGlobal(this.window, "selectElementChildren", dojo.html.selection, [this.editNode.lastChild]);
+ } else {
+ dojo.withGlobal(this.window, "selectElementChildren", dojo.html.selection, [this.editNode]);
+ }
+ dojo.withGlobal(this.window, "collapse", dojo.html.selection, [false]);
+}, replaceEditorContent:function (html) {
+ html = this._preFilterContent(html);
+ if (this.isClosed) {
+ this.domNode.innerHTML = html;
+ } else {
+ if (this.window && this.window.getSelection && !dojo.render.html.moz) {
+ this.editNode.innerHTML = html;
+ } else {
+ if ((this.window && this.window.getSelection) || (this.document && this.document.selection)) {
+ this.execCommand("selectall");
+ if (dojo.render.html.moz && !html) {
+ html = " ";
+ }
+ this.execCommand("inserthtml", html);
+ }
+ }
+ }
+}, _preFilterContent:function (html) {
+ var ec = html;
+ dojo.lang.forEach(this.contentPreFilters, function (ef) {
+ ec = ef(ec);
+ });
+ if (this.contentDomPreFilters.length > 0) {
+ var dom = dojo.doc().createElement("div");
+ dom.style.display = "none";
+ dojo.body().appendChild(dom);
+ dom.innerHTML = ec;
+ dojo.lang.forEach(this.contentDomPreFilters, function (ef) {
+ dom = ef(dom);
+ });
+ ec = dom.innerHTML;
+ dojo.body().removeChild(dom);
+ }
+ return ec;
+}, _postFilterContent:function (html) {
+ var ec = html;
+ if (this.contentDomPostFilters.length > 0) {
+ var dom = this.document.createElement("div");
+ dom.innerHTML = ec;
+ dojo.lang.forEach(this.contentDomPostFilters, function (ef) {
+ dom = ef(dom);
+ });
+ ec = dom.innerHTML;
+ }
+ dojo.lang.forEach(this.contentPostFilters, function (ef) {
+ ec = ef(ec);
+ });
+ return ec;
+}, _lastHeight:0, _updateHeight:function () {
+ if (!this.isLoaded) {
+ return;
+ }
+ if (this.height) {
+ return;
+ }
+ var height = dojo.html.getBorderBox(this.editNode).height;
+ if (!height) {
+ height = dojo.html.getBorderBox(this.document.body).height;
+ }
+ if (height == 0) {
+ dojo.debug("Can not figure out the height of the editing area!");
+ return;
+ }
+ this._lastHeight = height;
+ this.editorObject.style.height = this._lastHeight + "px";
+ this.window.scrollTo(0, 0);
+}, _saveContent:function (e) {
+ var saveTextarea = dojo.doc().getElementById("dojo.widget.RichText.savedContent");
+ saveTextarea.value += this._SEPARATOR + this.saveName + ":" + this.getEditorContent();
+}, getEditorContent:function () {
+ var ec = "";
+ try {
+ ec = (this._content.length > 0) ? this._content : this.editNode.innerHTML;
+ if (dojo.string.trim(ec) == " ") {
+ ec = "";
+ }
+ }
+ catch (e) {
+ }
+ if (dojo.render.html.ie && !this.object) {
+ var re = new RegExp("(?:<p> </p>[\n\r]*)+$", "i");
+ ec = ec.replace(re, "");
+ }
+ ec = this._postFilterContent(ec);
+ if (this.relativeImageUrls) {
+ var siteBase = dojo.global().location.protocol + "//" + dojo.global().location.host;
+ var pathBase = dojo.global().location.pathname;
+ if (pathBase.match(/\/$/)) {
+ } else {
+ var pathParts = pathBase.split("/");
+ if (pathParts.length) {
+ pathParts.pop();
+ }
+ pathBase = pathParts.join("/") + "/";
+ }
+ var sameSite = new RegExp("(<img[^>]* src=[\"'])(" + siteBase + "(" + pathBase + ")?)", "ig");
+ ec = ec.replace(sameSite, "$1");
+ }
+ return ec;
+}, close:function (save, force) {
+ if (this.isClosed) {
+ return false;
+ }
+ if (arguments.length == 0) {
+ save = true;
+ }
+ this._content = this._postFilterContent(this.editNode.innerHTML);
+ var changed = (this.savedContent != this._content);
+ if (this.interval) {
+ clearInterval(this.interval);
+ }
+ if (dojo.render.html.ie && !this.object) {
+ dojo.event.browser.clean(this.editNode);
+ }
+ if (this.iframe) {
+ delete this.iframe;
+ }
+ if (this.textarea) {
+ with (this.textarea.style) {
+ position = "";
+ left = top = "";
+ if (dojo.render.html.ie) {
+ overflow = this.__overflow;
+ this.__overflow = null;
+ }
+ }
+ if (save) {
+ this.textarea.value = this._content;
+ } else {
+ this.textarea.value = this.savedContent;
+ }
+ dojo.html.removeNode(this.domNode);
+ this.domNode = this.textarea;
+ } else {
+ if (save) {
+ if (dojo.render.html.moz) {
+ var nc = dojo.doc().createElement("span");
+ this.domNode.appendChild(nc);
+ nc.innerHTML = this.editNode.innerHTML;
+ } else {
+ this.domNode.innerHTML = this._content;
+ }
+ } else {
+ this.domNode.innerHTML = this.savedContent;
+ }
+ }
+ dojo.html.removeClass(this.domNode, "RichTextEditable");
+ this.isClosed = true;
+ this.isLoaded = false;
+ delete this.editNode;
+ if (this.window._frameElement) {
+ this.window._frameElement = null;
+ }
+ this.window = null;
+ this.document = null;
+ this.object = null;
+ this.editingArea = null;
+ this.editorObject = null;
+ return changed;
+}, destroyRendering:function () {
+}, destroy:function () {
+ this.destroyRendering();
+ if (!this.isClosed) {
+ this.close(false);
+ }
+ dojo.widget.RichText.superclass.destroy.call(this);
+}, connect:function (targetObj, targetFunc, thisFunc) {
+ dojo.event.connect(targetObj, targetFunc, this, thisFunc);
+}, disconnect:function (targetObj, targetFunc, thisFunc) {
+ dojo.event.disconnect(targetObj, targetFunc, this, thisFunc);
+}, disconnectAllWithRoot:function (targetObj) {
+ dojo.deprecated("disconnectAllWithRoot", "is deprecated. No need to disconnect manually", "0.5");
+}, _fixContentForMoz:function (html) {
+ html = html.replace(/<strong([ \>])/gi, "<b$1");
+ html = html.replace(/<\/strong>/gi, "</b>");
+ html = html.replace(/<em([ \>])/gi, "<i$1");
+ html = html.replace(/<\/em>/gi, "</i>");
+ return html;
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/RichText.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/RichText.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/RichText.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Rounded.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Rounded.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Rounded.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Rounded.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,529 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.Rounded");
+dojo.widget.tags.addParseTreeHandler("dojo:rounded");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.widget.ContentPane");
+dojo.require("dojo.html.style");
+dojo.require("dojo.html.display");
+dojo.require("dojo.gfx.color");
+dojo.deprecated("dojo.widget.Rounded will be removed in version 0.5; you can now apply rounded corners to any block element using dojo.lfx.rounded.", "0.5");
+dojo.widget.defineWidget("dojo.widget.Rounded", dojo.widget.ContentPane, {isSafari:dojo.render.html.safari, boxMargin:"50px", radius:14, domNode:"", corners:"TR,TL,BR,BL", antiAlias:true, fillInTemplate:function (args, frag) {
+ dojo.widget.Rounded.superclass.fillInTemplate.call(this, args, frag);
+ dojo.html.insertCssFile(this.templateCssPath);
+ if (this.domNode.style.height <= 0) {
+ var minHeight = (this.radius * 1) + this.domNode.clientHeight;
+ this.domNode.style.height = minHeight + "px";
+ }
+ if (this.domNode.style.width <= 0) {
+ var minWidth = (this.radius * 1) + this.domNode.clientWidth;
+ this.domNode.style.width = minWidth + "px";
+ }
+ var cornersAvailable = ["TR", "TL", "BR", "BL"];
+ var cornersPassed = this.corners.split(",");
+ this.settings = {antiAlias:this.antiAlias};
+ var setCorner = function (currentCorner) {
+ var val = currentCorner.toLowerCase();
+ if (dojo.lang.inArray(cornersPassed, currentCorner)) {
+ this.settings[val] = {radius:this.radius, enabled:true};
+ } else {
+ this.settings[val] = {radius:0};
+ }
+ };
+ dojo.lang.forEach(cornersAvailable, setCorner, this);
+ this.domNode.style.margin = this.boxMargin;
+ this.curvyCorners(this.settings);
+ this.applyCorners();
+}, curvyCorners:function (settings) {
+ this.box = this.domNode;
+ this.topContainer = null;
+ this.bottomContainer = null;
+ this.masterCorners = [];
+ var boxHeight = dojo.html.getStyle(this.box, "height");
+ if (boxHeight == "") {
+ boxHeight = "0px";
+ }
+ var boxWidth = dojo.html.getStyle(this.box, "width");
+ var borderWidth = dojo.html.getStyle(this.box, "borderTopWidth");
+ if (borderWidth == "") {
+ borderWidth = "0px";
+ }
+ var borderColour = dojo.html.getStyle(this.box, "borderTopColor");
+ if (borderWidth > 0) {
+ this.antiAlias = true;
+ }
+ var boxColour = dojo.html.getStyle(this.box, "backgroundColor");
+ var backgroundImage = dojo.html.getStyle(this.box, "backgroundImage");
+ var boxPosition = dojo.html.getStyle(this.box, "position");
+ this.boxHeight = parseInt(((boxHeight != "" && boxHeight != "auto" && boxHeight.indexOf("%") == -1) ? boxHeight.substring(0, boxHeight.indexOf("px")) : this.box.scrollHeight));
+ this.boxWidth = parseInt(((boxWidth != "" && boxWidth != "auto" && boxWidth.indexOf("%") == -1) ? boxWidth.substring(0, boxWidth.indexOf("px")) : this.box.scrollWidth));
+ this.borderWidth = parseInt(((borderWidth != "" && borderWidth.indexOf("px") !== -1) ? borderWidth.slice(0, borderWidth.indexOf("px")) : 0));
+ var test = new dojo.gfx.color.Color(boxColour);
+ this.boxColour = ((boxColour != "" && boxColour != "transparent") ? ((boxColour.substr(0, 3) == "rgb") ? this.rgb2Hex(boxColour) : boxColour) : "#ffffff");
+ this.borderColour = ((borderColour != "" && borderColour != "transparent" && this.borderWidth > 0) ? ((borderColour.substr(0, 3) == "rgb") ? this.rgb2Hex(borderColour) : borderColour) : this.boxColour);
+ this.borderString = this.borderWidth + "px" + " solid " + this.borderColour;
+ this.backgroundImage = ((backgroundImage != "none") ? backgroundImage : "");
+ if (boxPosition != "absolute") {
+ this.box.style.position = "relative";
+ }
+ this.applyCorners = function () {
+ for (var t = 0; t < 2; t++) {
+ switch (t) {
+ case 0:
+ if (this.settings.tl.enabled || this.settings.tr.enabled) {
+ var newMainContainer = document.createElement("DIV");
+ with (newMainContainer.style) {
+ width = "100%";
+ fontSize = "1px";
+ overflow = "hidden";
+ position = "absolute";
+ paddingLeft = this.borderWidth + "px";
+ paddingRight = this.borderWidth + "px";
+ var topMaxRadius = Math.max(this.settings.tl ? this.settings.tl.radius : 0, this.settings.tr ? this.settings.tr.radius : 0);
+ height = topMaxRadius + "px";
+ top = 0 - topMaxRadius + "px";
+ left = 0 - this.borderWidth + "px";
+ }
+ this.topContainer = this.box.appendChild(newMainContainer);
+ }
+ break;
+ case 1:
+ if (this.settings.bl.enabled || this.settings.br.enabled) {
+ var newMainContainer = document.createElement("DIV");
+ with (newMainContainer.style) {
+ width = "100%";
+ fontSize = "1px";
+ overflow = "hidden";
+ position = "absolute";
+ paddingLeft = this.borderWidth + "px";
+ paddingRight = this.borderWidth + "px";
+ var botMaxRadius = Math.max(this.settings.bl ? this.settings.bl.radius : 0, this.settings.br ? this.settings.br.radius : 0);
+ height = botMaxRadius + "px";
+ bottom = 0 - botMaxRadius + "px";
+ left = 0 - this.borderWidth + "px";
+ }
+ this.bottomContainer = this.box.appendChild(newMainContainer);
+ }
+ break;
+ }
+ }
+ if (this.topContainer) {
+ this.box.style.borderTopWidth = "0px";
+ }
+ if (this.bottomContainer) {
+ this.box.style.borderBottomWidth = "0px";
+ }
+ var corners = ["tr", "tl", "br", "bl"];
+ for (var i in corners) {
+ var cc = corners[i];
+ if (!this.settings[cc]) {
+ if (((cc == "tr" || cc == "tl") && this.topContainer != null) || ((cc == "br" || cc == "bl") && this.bottomContainer != null)) {
+ var newCorner = document.createElement("DIV");
+ newCorner.style.position = "relative";
+ newCorner.style.fontSize = "1px";
+ newCorner.style.overflow = "hidden";
+ if (this.backgroundImage == "") {
+ newCorner.style.backgroundColor = this.boxColour;
+ } else {
+ newCorner.style.backgroundImage = this.backgroundImage;
+ }
+ switch (cc) {
+ case "tl":
+ with (newCorner.style) {
+ height = topMaxRadius - this.borderWidth + "px";
+ marginRight = this.settings.tr.radius - (this.borderWidth * 2) + "px";
+ borderLeft = this.borderString;
+ borderTop = this.borderString;
+ left = -this.borderWidth + "px";
+ }
+ break;
+ case "tr":
+ with (newCorner.style) {
+ height = topMaxRadius - this.borderWidth + "px";
+ marginLeft = this.settings.tl.radius - (this.borderWidth * 2) + "px";
+ borderRight = this.borderString;
+ borderTop = this.borderString;
+ backgroundPosition = "-" + this.boxWidth + "px 0px";
+ left = this.borderWidth + "px";
+ }
+ break;
+ case "bl":
+ with (newCorner.style) {
+ height = botMaxRadius - this.borderWidth + "px";
+ marginRight = this.settings.br.radius - (this.borderWidth * 2) + "px";
+ borderLeft = this.borderString;
+ borderBottom = this.borderString;
+ left = -this.borderWidth + "px";
+ }
+ break;
+ case "br":
+ with (newCorner.style) {
+ height = botMaxRadius - this.borderWidth + "px";
+ marginLeft = this.settings.bl.radius - (this.borderWidth * 2) + "px";
+ borderRight = this.borderString;
+ borderBottom = this.borderString;
+ left = this.borderWidth + "px";
+ }
+ break;
+ }
+ }
+ } else {
+ if (this.masterCorners[this.settings[cc].radius]) {
+ var newCorner = this.masterCorners[this.settings[cc].radius].cloneNode(true);
+ } else {
+ var newCorner = document.createElement("DIV");
+ with (newCorner.style) {
+ height = this.settings[cc].radius + "px";
+ width = this.settings[cc].radius + "px";
+ position = "absolute";
+ fontSize = "1px";
+ overflow = "hidden";
+ }
+ var borderRadius = parseInt(this.settings[cc].radius - this.borderWidth);
+ for (var intx = 0, j = this.settings[cc].radius; intx < j; intx++) {
+ if ((intx + 1) >= borderRadius) {
+ var y1 = -1;
+ } else {
+ var y1 = (Math.floor(Math.sqrt(Math.pow(borderRadius, 2) - Math.pow((intx + 1), 2))) - 1);
+ }
+ if (borderRadius != j) {
+ if ((intx) >= borderRadius) {
+ var y2 = -1;
+ } else {
+ var y2 = Math.ceil(Math.sqrt(Math.pow(borderRadius, 2) - Math.pow(intx, 2)));
+ }
+ if ((intx + 1) >= j) {
+ var y3 = -1;
+ } else {
+ var y3 = (Math.floor(Math.sqrt(Math.pow(j, 2) - Math.pow((intx + 1), 2))) - 1);
+ }
+ }
+ if ((intx) >= j) {
+ var y4 = -1;
+ } else {
+ var y4 = Math.ceil(Math.sqrt(Math.pow(j, 2) - Math.pow(intx, 2)));
+ }
+ if (y1 > -1) {
+ this.drawPixel(intx, 0, this.boxColour, 100, (y1 + 1), newCorner, -1, this.settings[cc].radius);
+ }
+ if (borderRadius != j) {
+ if (this.antiAlias) {
+ for (var inty = (y1 + 1); inty < y2; inty++) {
+ if (this.backgroundImage != "") {
+ var borderFract = (this.pixelFraction(intx, inty, borderRadius) * 100);
+ if (borderFract < 30) {
+ this.drawPixel(intx, inty, this.borderColour, 100, 1, newCorner, 0, this.settings[cc].radius);
+ } else {
+ this.drawPixel(intx, inty, this.borderColour, 100, 1, newCorner, -1, this.settings[cc].radius);
+ }
+ } else {
+ var pixelcolour = dojo.gfx.color.blend(this.boxColour, this.borderColour, this.pixelFraction(intx, inty, borderRadius));
+ this.drawPixel(intx, inty, pixelcolour, 100, 1, newCorner, 0, this.settings[cc].radius);
+ }
+ }
+ }
+ if (y3 >= y2) {
+ if (y1 == -1) {
+ y1 = 0;
+ }
+ this.drawPixel(intx, y2, this.borderColour, 100, (y3 - y2 + 1), newCorner, 0, this.settings[cc].radius);
+ }
+ var outsideColour = this.borderColour;
+ } else {
+ var outsideColour = this.boxColour;
+ var y3 = y1;
+ }
+ if (this.antiAlias) {
+ for (var inty = (y3 + 1); inty < y4; inty++) {
+ this.drawPixel(intx, inty, outsideColour, (this.pixelFraction(intx, inty, j) * 100), 1, newCorner, ((this.borderWidth > 0) ? 0 : -1), this.settings[cc].radius);
+ }
+ }
+ }
+ this.masterCorners[this.settings[cc].radius] = newCorner.cloneNode(true);
+ }
+ if (cc != "br") {
+ for (var t = 0, k = newCorner.childNodes.length; t < k; t++) {
+ var pixelBar = newCorner.childNodes[t];
+ var pixelBarTop = parseInt(pixelBar.style.top.substring(0, pixelBar.style.top.indexOf("px")));
+ var pixelBarLeft = parseInt(pixelBar.style.left.substring(0, pixelBar.style.left.indexOf("px")));
+ var pixelBarHeight = parseInt(pixelBar.style.height.substring(0, pixelBar.style.height.indexOf("px")));
+ if (cc == "tl" || cc == "bl") {
+ pixelBar.style.left = this.settings[cc].radius - pixelBarLeft - 1 + "px";
+ }
+ if (cc == "tr" || cc == "tl") {
+ pixelBar.style.top = this.settings[cc].radius - pixelBarHeight - pixelBarTop + "px";
+ }
+ var value;
+ switch (cc) {
+ case "tr":
+ value = (-1 * (Math.abs((this.boxWidth - this.settings[cc].radius + this.borderWidth) + pixelBarLeft) - (Math.abs(this.settings[cc].radius - pixelBarHeight - pixelBarTop - this.borderWidth))));
+ pixelBar.style.backgroundPosition = value + "px";
+ break;
+ case "tl":
+ value = (-1 * (Math.abs((this.settings[cc].radius - pixelBarLeft - 1) - this.borderWidth) - (Math.abs(this.settings[cc].radius - pixelBarHeight - pixelBarTop - this.borderWidth))));
+ pixelBar.style.backgroundPosition = value + "px";
+ break;
+ case "bl":
+ value = (-1 * (Math.abs((this.settings[cc].radius - pixelBarLeft - 1) - this.borderWidth) - (Math.abs((this.boxHeight + this.settings[cc].radius + pixelBarTop) - this.borderWidth))));
+ pixelBar.style.backgroundPosition = value + "px";
+ break;
+ }
+ }
+ }
+ }
+ if (newCorner) {
+ switch (cc) {
+ case "tl":
+ if (newCorner.style.position == "absolute") {
+ newCorner.style.top = "0px";
+ }
+ if (newCorner.style.position == "absolute") {
+ newCorner.style.left = "0px";
+ }
+ if (this.topContainer) {
+ this.topContainer.appendChild(newCorner);
+ }
+ break;
+ case "tr":
+ if (newCorner.style.position == "absolute") {
+ newCorner.style.top = "0px";
+ }
+ if (newCorner.style.position == "absolute") {
+ newCorner.style.right = "0px";
+ }
+ if (this.topContainer) {
+ this.topContainer.appendChild(newCorner);
+ }
+ break;
+ case "bl":
+ if (newCorner.style.position == "absolute") {
+ newCorner.style.bottom = "0px";
+ }
+ if (newCorner.style.position == "absolute") {
+ newCorner.style.left = "0px";
+ }
+ if (this.bottomContainer) {
+ this.bottomContainer.appendChild(newCorner);
+ }
+ break;
+ case "br":
+ if (newCorner.style.position == "absolute") {
+ newCorner.style.bottom = "0px";
+ }
+ if (newCorner.style.position == "absolute") {
+ newCorner.style.right = "0px";
+ }
+ if (this.bottomContainer) {
+ this.bottomContainer.appendChild(newCorner);
+ }
+ break;
+ }
+ }
+ }
+ var radiusDiff = [];
+ radiusDiff["t"] = this.settings.tl.enabled && this.settings.tr.enabled ? Math.abs(this.settings.tl.radius - this.settings.tr.radius) : 0;
+ radiusDiff["b"] = this.settings.bl.enabled && this.settings.br.enabled ? Math.abs(this.settings.bl.radius - this.settings.br.radius) : 0;
+ for (var z in radiusDiff) {
+ if (radiusDiff[z]) {
+ var smallerCornerType = ((this.settings[z + "l"].radius < this.settings[z + "r"].radius) ? z + "l" : z + "r");
+ var newFiller = document.createElement("DIV");
+ with (newFiller.style) {
+ height = radiusDiff[z] + "px";
+ width = this.settings[smallerCornerType].radius + "px";
+ position = "absolute";
+ fontSize = "1px";
+ overflow = "hidden";
+ backgroundColor = this.boxColour;
+ }
+ switch (smallerCornerType) {
+ case "tl":
+ with (newFiller.style) {
+ bottom = "0px";
+ left = "0px";
+ borderLeft = this.borderString;
+ }
+ this.topContainer.appendChild(newFiller);
+ break;
+ case "tr":
+ with (newFiller.style) {
+ bottom = "0px";
+ right = "0px";
+ borderRight = this.borderString;
+ }
+ this.topContainer.appendChild(newFiller);
+ break;
+ case "bl":
+ with (newFiller.style) {
+ top = "0px";
+ left = "0px";
+ borderLeft = this.borderString;
+ }
+ this.bottomContainer.appendChild(newFiller);
+ break;
+ case "br":
+ with (newFiller.style) {
+ top = "0px";
+ right = "0px";
+ borderRight = this.borderString;
+ }
+ this.bottomContainer.appendChild(newFiller);
+ break;
+ }
+ }
+ var newFillerBar = document.createElement("DIV");
+ with (newFillerBar.style) {
+ position = "relative";
+ fontSize = "1px";
+ overflow = "hidden";
+ backgroundColor = this.boxColour;
+ }
+ switch (z) {
+ case "t":
+ if (this.topContainer) {
+ with (newFillerBar.style) {
+ height = topMaxRadius - this.borderWidth + "px";
+ marginLeft = this.settings.tl.radius - this.borderWidth + "px";
+ marginRight = this.settings.tr.radius - this.borderWidth + "px";
+ borderTop = this.borderString;
+ }
+ this.topContainer.appendChild(newFillerBar);
+ }
+ break;
+ case "b":
+ if (this.bottomContainer) {
+ with (newFillerBar.style) {
+ height = botMaxRadius - this.borderWidth + "px";
+ marginLeft = this.settings.bl.radius - this.borderWidth + "px";
+ marginRight = this.settings.br.radius - this.borderWidth + "px";
+ borderBottom = this.borderString;
+ }
+ this.bottomContainer.appendChild(newFillerBar);
+ }
+ break;
+ }
+ }
+ };
+ this.drawPixel = function (intx, inty, colour, transAmount, height, newCorner, image, cornerRadius) {
+ var pixel = document.createElement("DIV");
+ pixel.style.height = height + "px";
+ pixel.style.width = "1px";
+ pixel.style.position = "absolute";
+ pixel.style.fontSize = "1px";
+ pixel.style.overflow = "hidden";
+ if (image == -1 && this.backgroundImage != "") {
+ pixel.style.backgroundImage = this.backgroundImage;
+ pixel.style.backgroundPosition = "-" + (this.boxWidth - (cornerRadius - intx) + this.borderWidth) + "px -" + ((this.boxHeight + cornerRadius + inty) - this.borderWidth) + "px";
+ } else {
+ pixel.style.backgroundColor = colour;
+ }
+ if (transAmount != 100) {
+ dojo.html.setOpacity(pixel, transAmount);
+ }
+ pixel.style.top = inty + "px";
+ pixel.style.left = intx + "px";
+ newCorner.appendChild(pixel);
+ };
+}, pixelFraction:function (x, y, r) {
+ var pixelfraction = 0;
+ var xvalues = [];
+ var yvalues = [];
+ var point = 0;
+ var whatsides = "";
+ var intersect = Math.sqrt((Math.pow(r, 2) - Math.pow(x, 2)));
+ if ((intersect >= y) && (intersect < (y + 1))) {
+ whatsides = "Left";
+ xvalues[point] = 0;
+ yvalues[point] = intersect - y;
+ point = point + 1;
+ }
+ var intersect = Math.sqrt((Math.pow(r, 2) - Math.pow(y + 1, 2)));
+ if ((intersect >= x) && (intersect < (x + 1))) {
+ whatsides = whatsides + "Top";
+ xvalues[point] = intersect - x;
+ yvalues[point] = 1;
+ point = point + 1;
+ }
+ var intersect = Math.sqrt((Math.pow(r, 2) - Math.pow(x + 1, 2)));
+ if ((intersect >= y) && (intersect < (y + 1))) {
+ whatsides = whatsides + "Right";
+ xvalues[point] = 1;
+ yvalues[point] = intersect - y;
+ point = point + 1;
+ }
+ var intersect = Math.sqrt((Math.pow(r, 2) - Math.pow(y, 2)));
+ if ((intersect >= x) && (intersect < (x + 1))) {
+ whatsides = whatsides + "Bottom";
+ xvalues[point] = intersect - x;
+ yvalues[point] = 0;
+ }
+ switch (whatsides) {
+ case "LeftRight":
+ pixelfraction = Math.min(yvalues[0], yvalues[1]) + ((Math.max(yvalues[0], yvalues[1]) - Math.min(yvalues[0], yvalues[1])) / 2);
+ break;
+ case "TopRight":
+ pixelfraction = 1 - (((1 - xvalues[0]) * (1 - yvalues[1])) / 2);
+ break;
+ case "TopBottom":
+ pixelfraction = Math.min(xvalues[0], xvalues[1]) + ((Math.max(xvalues[0], xvalues[1]) - Math.min(xvalues[0], xvalues[1])) / 2);
+ break;
+ case "LeftBottom":
+ pixelfraction = (yvalues[0] * xvalues[1]) / 2;
+ break;
+ default:
+ pixelfraction = 1;
+ }
+ return pixelfraction;
+}, rgb2Hex:function (rgbColour) {
+ try {
+ var rgbArray = this.rgb2Array(rgbColour);
+ var red = parseInt(rgbArray[0]);
+ var green = parseInt(rgbArray[1]);
+ var blue = parseInt(rgbArray[2]);
+ var hexColour = "#" + this.intToHex(red) + this.intToHex(green) + this.intToHex(blue);
+ }
+ catch (e) {
+ alert("There was an error converting the RGB value to Hexadecimal in function rgb2Hex");
+ }
+ return hexColour;
+}, intToHex:function (strNum) {
+ var base = strNum / 16;
+ var rem = strNum % 16;
+ var base = base - (rem / 16);
+ var baseS = this.makeHex(base);
+ var remS = this.makeHex(rem);
+ return baseS + "" + remS;
+}, makeHex:function (x) {
+ if ((x >= 0) && (x <= 9)) {
+ return x;
+ } else {
+ switch (x) {
+ case 10:
+ return "A";
+ case 11:
+ return "B";
+ case 12:
+ return "C";
+ case 13:
+ return "D";
+ case 14:
+ return "E";
+ case 15:
+ return "F";
+ }
+ }
+}, rgb2Array:function (rgbColour) {
+ var rgbValues = rgbColour.substring(4, rgbColour.indexOf(")"));
+ var rgbArray = rgbValues.split(", ");
+ return rgbArray;
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Rounded.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Rounded.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Rounded.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Select.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Select.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Select.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Select.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,39 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.Select");
+dojo.require("dojo.widget.ComboBox");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.widget.html.stabile");
+dojo.widget.defineWidget("dojo.widget.Select", dojo.widget.ComboBox, {forceValidOption:true, setValue:function (value) {
+ this.comboBoxValue.value = value;
+ dojo.widget.html.stabile.setState(this.widgetId, this.getState(), true);
+ this.onValueChanged(value);
+}, setLabel:function (value) {
+ this.comboBoxSelectionValue.value = value;
+ if (this.textInputNode.value != value) {
+ this.textInputNode.value = value;
+ }
+}, getLabel:function () {
+ return this.comboBoxSelectionValue.value;
+}, getState:function () {
+ return {value:this.getValue(), label:this.getLabel()};
+}, onKeyUp:function (evt) {
+ this.setLabel(this.textInputNode.value);
+}, setState:function (state) {
+ this.setValue(state.value);
+ this.setLabel(state.label);
+}, setAllValues:function (value1, value2) {
+ this.setLabel(value1);
+ this.setValue(value2);
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Select.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Select.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Select.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Show.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Show.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Show.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Show.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,211 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.Show");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.uri.Uri");
+dojo.require("dojo.event.*");
+dojo.require("dojo.lfx.*");
+dojo.require("dojo.math.curves");
+dojo.require("dojo.lang.common");
+dojo.require("dojo.lang.func");
+dojo.widget.defineWidget("dojo.widget.Show", dojo.widget.HtmlWidget, function () {
+ this._slides = [];
+}, {isContainer:true, _slide:-1, body:null, nav:null, hider:null, select:null, option:null, inNav:false, debugPane:null, noClick:false, templateString:"<div class=\"dojoShow\">\n\t<div dojoAttachPoint=\"contentNode\"></div>\n\t<div class=\"dojoShowNav\" dojoAttachPoint=\"nav\">\n\t\t<div class=\"dojoShowHider\" dojoAttachPoint=\"hider\"></div>\n\t\t<span unselectable=\"on\" style=\"cursor: default;\" dojoAttachEvent=\"onClick:previousSlide\"><</span>\n\t\t<select dojoAttachEvent=\"onClick:gotoSlideByEvent\" dojoAttachPoint=\"select\">\n\t\t\t<option dojoAttachPoint=\"option\">Title</option>\n\t\t</select>\n\t\t<span unselectable=\"on\" style=\"cursor: default;\" dojoAttachEvent=\"onClick:nextSlide\">></span>\n\t</div>\n</div>\n", templateCssString:"@media screen {\n\thtml, body {\n\t\tmargin: 0px;\n\t\tpadding: 0px;\n\t\twidth: 100%;\n\t}\n\th1 {\n\t\tfont-size: 50px;\n\t}\n\tp, li {\n\t\tfont-size: 30px;\n\t}\n\t.dojoShowNav {\n\t\tbackground: #369;\n\t\toverflow: hid
den;\n\t\tposition: absolute;\n\t\theight: 5px;\n\t\tbottom: 0px;\n\t\tleft: 0px;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t}\n\t.dojoShowNav input {\n\t\tmargin: 0px;\n\t}\n\t.dojoShowHider {\n\t\theight: 5px;\n\t\toverflow: hidden;\n\t\twidth: 100%;\n\t}\n\t.dojoShowPrint {\n\t\tposition: absolute;\n\t\tleft: 5px;\n\t\ttop: 0px;\n\t}\n\t.dojoShow {\n\t\tdisplay: none;\n\t}\n}\n@media print {\n\t.dojoShow {\n\t\tdisplay: none !important;\n\t}\n\t.dojoShowPrint {\n\t\tdisplay: block !important;\n\t}\n\t.dojoShowPrintSlide {\n\t\tborder: 1px solid #aaa;\n\t\tpadding: 10px;\n\t\tmargin-bottom: 15px;\n\t}\n\t.dojoShowPrintSlide, ul {\n\tpage-break-inside: avoid;\n\t}\n\th1 {\n\t\tmargin-top: 0;\n\t\tpage-break-after: avoid;\n\t}\n}\n", templateCssPath:dojo.uri.moduleUri("dojo.widget", "templates/Show.css"), fillInTemplate:function (args, frag) {
+ if (args.debugPane) {
+ var dp = this.debugPane = dojo.widget.byId(args.debugPane);
+ dp.hide();
+ dojo.event.connect(dp, "closeWindow", dojo.lang.hitch(this, function () {
+ this.debugPane = false;
+ }));
+ }
+ var source = this.getFragNodeRef(frag);
+ this.sourceNode = dojo.body().appendChild(source.cloneNode(true));
+ for (var i = 0, child; child = this.sourceNode.childNodes[i]; i++) {
+ if (child.tagName && child.getAttribute("dojotype").toLowerCase() == "showslide") {
+ child.className = "dojoShowPrintSlide";
+ child.innerHTML = "<h1>" + child.title + "</h1>" + child.innerHTML;
+ }
+ }
+ this.sourceNode.className = "dojoShowPrint";
+ this.sourceNode.style.display = "none";
+ dojo.event.connect(document, "onclick", this, "gotoSlideByEvent");
+ if (dojo.render.html.ie) {
+ dojo.event.connect(document, "onkeydown", this, "gotoSlideByEvent");
+ } else {
+ dojo.event.connect(document, "onkeypress", this, "gotoSlideByEvent");
+ }
+ dojo.event.connect(window, "onresize", this, "resizeWindow");
+ dojo.event.connect(this.nav, "onmousemove", this, "popUpNav");
+}, postCreate:function () {
+ this._slides = [];
+ for (var i = 0, child; child = this.children[i]; i++) {
+ if (child.widgetType == "ShowSlide") {
+ this._slides.push(child);
+ this.option.text = child.title + " (" + (i + 1) + ")";
+ this.option.parentNode.insertBefore(this.option.cloneNode(true), this.option);
+ }
+ }
+ this.option.parentNode.removeChild(this.option);
+ this.domNode.style.display = "block";
+ this.resizeWindow();
+ this.gotoSlide(0, true);
+ dojo.addOnLoad(dojo.lang.hitch(this, function () {
+ var th = window.location.hash;
+ if (th.length) {
+ var parts = ("" + window.location).split(this.widgetId + "_SlideNo_");
+ if (parts.length > 1) {
+ setTimeout(dojo.lang.hitch(this, function () {
+ this.gotoSlide(parseInt(parts[1]), true);
+ }), 300);
+ }
+ }
+ }));
+}, gotoSlide:function (slide, preventSetHash) {
+ if (slide == this._slide) {
+ return;
+ }
+ if (!this._slides[slide]) {
+ for (var i = 0, child; child = this._slides[i]; i++) {
+ if (child.title == slide) {
+ slide = i;
+ break;
+ }
+ }
+ }
+ if (!this._slides[slide]) {
+ return;
+ }
+ if (this.debugPane) {
+ if (this._slides[slide].debug) {
+ this.debugPane.show();
+ } else {
+ this.debugPane.hide();
+ }
+ }
+ if (this._slide != -1) {
+ while (this._slides[this._slide].previousAction()) {
+ }
+ }
+ if (!preventSetHash) {
+ window.location.href = "#" + this.widgetId + "_SlideNo_" + slide;
+ }
+ if (this._slides[this._slide]) {
+ this._slides[this._slide].hide();
+ }
+ this._slide = slide;
+ this.select.selectedIndex = slide;
+ var cn = this.contentNode;
+ while (cn.firstChild) {
+ cn.removeChild(cn.firstChild);
+ }
+ cn.appendChild(this._slides[slide].domNode);
+ this._slides[slide].show();
+}, gotoSlideByEvent:function (event) {
+ var node = event.target;
+ var type = event.type;
+ if (type == "click") {
+ if (node.tagName == "OPTION" && node.parentNode == this.select) {
+ this.gotoSlide(node.index);
+ } else {
+ if (node == this.select) {
+ this.gotoSlide(node.selectedIndex);
+ } else {
+ this.nextSlide(event);
+ }
+ }
+ } else {
+ if (type == "keydown" || type == "keypress") {
+ var key = event.keyCode;
+ var ch = event.charCode;
+ if (key == 63234 || key == 37) {
+ this.previousSlide(event);
+ } else {
+ if (key == 63235 || key == 39 || ch == 32) {
+ this.nextSlide(event);
+ }
+ }
+ }
+ }
+}, nextSlide:function (event) {
+ if (!this.stopEvent(event)) {
+ return false;
+ }
+ if (!this._slides[this._slide].nextAction(event)) {
+ if ((this._slide + 1) != this._slides.length) {
+ this.gotoSlide(this._slide + 1);
+ return true;
+ }
+ return false;
+ }
+}, previousSlide:function (event) {
+ if (!this.stopEvent(event)) {
+ return false;
+ }
+ if (!this._slides[this._slide].previousAction(event)) {
+ if ((this._slide - 1) != -1) {
+ this.gotoSlide(this._slide - 1);
+ return true;
+ }
+ return false;
+ }
+}, stopEvent:function (ev) {
+ if (!ev) {
+ return true;
+ }
+ if (ev.type == "click" && (this._slides[this._slide].noClick || this.noClick)) {
+ return false;
+ }
+ var target = ev.target;
+ while (target != null) {
+ if (target == this.domNode) {
+ target = ev.target;
+ break;
+ }
+ target = target.parentNode;
+ }
+ if (!dojo.dom.isDescendantOf(target, this.nav)) {
+ while (target && target != this.domNode) {
+ if (target.tagName == "A" || target.tagName == "INPUT" || target.tagName == "TEXTAREA" || target.tagName == "SELECT") {
+ return false;
+ }
+ if (typeof target.onclick == "function" || typeof target.onkeypress == "function") {
+ return false;
+ }
+ target = target.parentNode;
+ }
+ }
+ if (window.event) {
+ ev.returnValue = false;
+ ev.cancelBubble = true;
+ } else {
+ ev.preventDefault();
+ ev.stopPropagation();
+ }
+ return true;
+}, popUpNav:function () {
+ if (!this.inNav) {
+ dojo.lfx.propertyAnimation(this.nav, {"height":{start:5, end:30}}, 250).play();
+ }
+ clearTimeout(this.inNav);
+ this.inNav = setTimeout(dojo.lang.hitch(this, "hideNav"), 2000);
+}, hideNav:function () {
+ clearTimeout(this.inNav);
+ this.inNav = false;
+ dojo.lfx.propertyAnimation(this.nav, {"height":{start:30, end:5}}, 250).play();
+}, resizeWindow:function (ev) {
+ dojo.body().style.height = "auto";
+ var h = Math.max(document.documentElement.scrollHeight || dojo.body().scrollHeight, dojo.html.getViewport().height);
+ dojo.body().style.height = h + "px";
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Show.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Show.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/Show.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowAction.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowAction.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowAction.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowAction.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,20 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.ShowAction");
+dojo.require("dojo.widget.*");
+dojo.widget.defineWidget("dojo.widget.ShowAction", dojo.widget.HtmlWidget, {on:"", action:"fade", duration:350, from:"", to:"", auto:"false", postMixInProperties:function () {
+ if (dojo.render.html.opera) {
+ this.action = this.action.split("/").pop();
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowAction.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowAction.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowAction.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowSlide.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowSlide.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowSlide.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowSlide.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,201 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.ShowSlide");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.lang.common");
+dojo.require("dojo.widget.HtmlWidget");
+dojo.require("dojo.lfx.html");
+dojo.require("dojo.html.display");
+dojo.require("dojo.html.layout");
+dojo.require("dojo.animation.Animation");
+dojo.require("dojo.gfx.color");
+dojo.widget.defineWidget("dojo.widget.ShowSlide", dojo.widget.HtmlWidget, {title:"", _action:-1, isContainer:true, _components:{}, _actions:[], gotoAction:function (action) {
+ this._action = action;
+}, _nextAction:function (event) {
+ if ((this._action + 1) != this._actions.length) {
+ ++this._action;
+ return true;
+ }
+ return false;
+}, _previousAction:function (event) {
+ if ((this._action - 1) != -1) {
+ --this._action;
+ return true;
+ }
+ return false;
+}, htmlTitle:null, debug:false, noClick:false, templateString:"<div class=\"dojoShowSlide\">\n\t<div class=\"dojoShowSlideTitle\">\n\t\t<h1 dojoAttachPoint=\"htmlTitle\">Title</h1>\n\t</div>\n\t<div class=\"dojoShowSlideBody\" dojoAttachPoint=\"containerNode\"></div>\n</div>\n", templateCssString:".dojoShowSlideTitle {\n\theight: 100px;\n\tbackground: #369;\n}\n.dojoShowSlideTitle h1 {\n\tmargin-top: 0;\n\tline-height: 100px;\n\tmargin-left: 30px;\n}\n.dojoShowSlideBody {\n\tmargin: 15px;\n}\n", templateCssPath:dojo.uri.moduleUri("dojo.widget", "templates/ShowSlide.css"), postCreate:function () {
+ this.htmlTitle.innerHTML = this.title;
+ var actions = this.getChildrenOfType("ShowAction", false);
+ var atypes = {};
+ dojo.lang.forEach(actions, function (act) {
+ atypes[act.on] = true;
+ });
+ this._components = {};
+ var cn = this.containerNode;
+ var nodes = dojo.render.html.ie ? cn.all : cn.getElementsByTagName("*");
+ dojo.lang.forEach(nodes, function (node) {
+ var as = node.getAttribute("as");
+ if (as) {
+ if (!this._components[as]) {
+ this._components[as] = [];
+ }
+ this._components[as].push(node);
+ if (!atypes[as]) {
+ var tmpAction = dojo.widget.createWidget("ShowAction", {on:as});
+ this.addChild(tmpAction);
+ atypes[as] = true;
+ }
+ }
+ }, this);
+ this._actions = [];
+ actions = this.getChildrenOfType("ShowAction", false);
+ dojo.lang.forEach(actions, function (child) {
+ this._actions.push(child);
+ var components = this._components[child.on];
+ for (var j = 0, component; component = components[j]; j++) {
+ if (child["action"] && ((child.action != "remove") && (child.action != "fadeout") && (child.action != "wipeout"))) {
+ this.hideComponent(component);
+ }
+ }
+ }, this);
+}, previousAction:function (event) {
+ if (!this.parent.stopEvent(event)) {
+ return false;
+ }
+ var action = this._actions[this._action];
+ if (!action) {
+ return false;
+ }
+ var on = action.on;
+ while (action.on == on) {
+ var components = this._components[on];
+ for (var i = 0, component; component = components[i]; i++) {
+ if ((action.action == "remove") || (action.action == "fadeout") || (action.action == "wipeout")) {
+ if (component.style.display == "none") {
+ component.style.display = "";
+ component.style.visibility = "visible";
+ var exits = true;
+ }
+ dojo.html.setOpacity(component, 1);
+ } else {
+ if (action.action) {
+ this.hideComponent(component);
+ }
+ }
+ }
+ --this._action;
+ if (exits) {
+ return true;
+ }
+ if (action.auto == "true") {
+ on = this._actions[this._action].on;
+ }
+ action = this._actions[this._action];
+ if (!action) {
+ return false;
+ }
+ }
+ return true;
+}, hideComponent:function (component) {
+ component.style.visibility = "hidden";
+ component.style.backgroundColor = "transparent";
+ var parent = component.parentNode;
+ if ((parent) && (parent.tagName.toLowerCase() == "li")) {
+ parent.oldType = parent.style.listStyleType;
+ parent.style.listStyleType = "none";
+ }
+}, nextAction:function (event) {
+ if (!this.parent.stopEvent(event)) {
+ return false;
+ }
+ if (!this._nextAction(this)) {
+ return false;
+ }
+ var action = this._actions[this._action];
+ if (!action) {
+ return false;
+ }
+ var tmpAction = action["action"];
+ var components = this._components[action.on];
+ for (var i = 0, component; component = components[i]; i++) {
+ if (tmpAction) {
+ var duration = action.duration || 1000;
+ if ((tmpAction == "fade") || (tmpAction == "fadeIn")) {
+ dojo.html.setOpacity(component, 0);
+ dojo.lfx.html.fadeShow(component, duration).play(true);
+ } else {
+ if (tmpAction == "fadeout") {
+ dojo.lfx.html.fadeHide(component, duration).play(true);
+ } else {
+ if (tmpAction == "fly") {
+ var width = dojo.html.getMarginBox(component).width;
+ var position = dojo.html.getAbsolutePosition(component);
+ component.style.position = "relative";
+ component.style.left = -(width + position.x) + "px";
+ dojo.lfx.html.slideBy(component, {top:0, left:(width + position.x)}, duration, -1, this.callWith).play(true);
+ } else {
+ if ((tmpAction == "wipe") || (tmpAction == "wipein")) {
+ dojo.lfx.html.wipeIn(component, duration).play();
+ } else {
+ if (tmpAction == "wipeout") {
+ dojo.lfx.html.wipeOut(component, duration).play();
+ } else {
+ if (tmpAction == "color") {
+ var from = new dojo.gfx.color.Color(action.from).toRgb();
+ var to = new dojo.gfx.color.Color(action.to).toRgb();
+ var anim = new dojo.animation.Animation(new dojo.math.curves.Line(from, to), duration, 0);
+ var node = component;
+ dojo.event.connect(anim, "onAnimate", function (e) {
+ node.style.color = "rgb(" + e.coordsAsInts().join(",") + ")";
+ });
+ anim.play(true);
+ } else {
+ if (tmpAction == "bgcolor") {
+ dojo.lfx.html.unhighlight(component, action.to, duration).play();
+ } else {
+ if (tmpAction == "remove") {
+ component.style.display = "none";
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ if (tmpAction == "hide") {
+ component.style.visibility = "hidden";
+ } else {
+ component.style.visibility = "visible";
+ }
+ }
+ }
+ action = this._actions[this._action + 1];
+ if (action && action.auto == "true") {
+ this.nextAction();
+ }
+ return true;
+}, callWith:function (node) {
+ if (!node) {
+ return;
+ }
+ if (dojo.lang.isArray(node)) {
+ dojo.lang.forEach(node, arguments.callee);
+ return;
+ }
+ var parent = node.parentNode;
+ if ((parent) && (parent.tagName.toLowerCase() == "li")) {
+ parent.style.listStyleType = parent.oldType;
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowSlide.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowSlide.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/ShowSlide.js
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/SlideShow.js
URL: http://svn.apache.org/viewvc/geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/SlideShow.js?rev=794787&view=auto
==============================================================================
--- geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/SlideShow.js (added)
+++ geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/SlideShow.js Thu Jul 16 19:14:41 2009
@@ -0,0 +1,77 @@
+/*
+ Copyright (c) 2004-2006, The Dojo Foundation
+ All Rights Reserved.
+
+ Licensed under the Academic Free License version 2.1 or above OR the
+ modified BSD license. For more information on Dojo licensing, see:
+
+ http://dojotoolkit.org/community/licensing.shtml
+*/
+
+
+
+dojo.provide("dojo.widget.SlideShow");
+dojo.require("dojo.event.*");
+dojo.require("dojo.widget.*");
+dojo.require("dojo.lfx.*");
+dojo.require("dojo.html.display");
+dojo.widget.defineWidget("dojo.widget.SlideShow", dojo.widget.HtmlWidget, {templateString:"<div style=\"position: relative; padding: 3px;\">\n\t\t<div>\n\t\t\t<input type=\"button\" value=\"pause\" \n\t\t\t\tdojoAttachPoint=\"startStopButton\"\n\t\t\t\tdojoAttachEvent=\"onClick: togglePaused;\">\n\t\t</div>\n\t\t<div style=\"position: relative; width: ${this.width}; height: ${this.height};\"\n\t\t\tdojoAttachPoint=\"imagesContainer\"\n\t\t\tdojoAttachEvent=\"onClick: togglePaused;\">\n\t\t\t<img dojoAttachPoint=\"img1\" class=\"slideShowImg\" \n\t\t\t\tstyle=\"z-index: 1; width: ${this.width}; height: ${this.height};\" />\n\t\t\t<img dojoAttachPoint=\"img2\" class=\"slideShowImg\" \n\t\t\t\tstyle=\"z-index: 0; width: ${this.width}; height: ${this.height};\" />\n\t\t</div>\t\n</div>\n", templateCssString:".slideShowImg {\n\tposition: absolute;\n\tleft: 0px;\n\ttop: 0px; \n\tborder: 2px solid #4d4d4d;\n\tpadding: 0px;\n\tmargin: 0px;\n}\n\n", templateCssPath:dojo.uri.moduleUr
i("dojo.widget", "templates/SlideShow.css"), imgUrls:[], imgUrlBase:"", delay:4000, transitionInterval:2000, imgWidth:800, imgHeight:600, preventCache:false, stopped:false, _urlsIdx:0, _background:"img2", _foreground:"img1", fadeAnim:null, startStopButton:null, img1:null, img2:null, postMixInProperties:function () {
+ this.width = this.imgWidth + "px";
+ this.height = this.imgHeight + "px";
+}, fillInTemplate:function () {
+ if (dojo.render.html.safari && this.imgUrls.length == 2) {
+ this.preventCache = true;
+ }
+ dojo.html.setOpacity(this.img1, 0.9999);
+ dojo.html.setOpacity(this.img2, 0.9999);
+ if (this.imgUrls.length > 1) {
+ this.img2.src = this.imgUrlBase + this.imgUrls[this._urlsIdx++] + this._getUrlSuffix();
+ this._endTransition();
+ } else {
+ this.img1.src = this.imgUrlBase + this.imgUrls[this._urlsIdx++] + this._getUrlSuffix();
+ }
+}, _getUrlSuffix:function () {
+ if (this.preventCache) {
+ return "?ts=" + (new Date()).getTime();
+ } else {
+ return "";
+ }
+}, togglePaused:function () {
+ if (this.stopped) {
+ this.stopped = false;
+ this._backgroundImageLoaded();
+ this.startStopButton.value = "pause";
+ } else {
+ this.stopped = true;
+ this.startStopButton.value = "play";
+ }
+}, _backgroundImageLoaded:function () {
+ if (this.stopped) {
+ return;
+ }
+ if (this.fadeAnim) {
+ this.fadeAnim.stop();
+ }
+ this.fadeAnim = dojo.lfx.fadeOut(this[this._foreground], this.transitionInterval, null);
+ dojo.event.connect(this.fadeAnim, "onEnd", this, "_endTransition");
+ this.fadeAnim.play();
+}, _endTransition:function () {
+ with (this[this._background].style) {
+ zIndex = parseInt(zIndex) + 1;
+ }
+ with (this[this._foreground].style) {
+ zIndex = parseInt(zIndex) - 1;
+ }
+ var tmp = this._foreground;
+ this._foreground = this._background;
+ this._background = tmp;
+ this._loadNextImage();
+}, _loadNextImage:function () {
+ dojo.event.kwConnect({srcObj:this[this._background], srcFunc:"onload", adviceObj:this, adviceFunc:"_backgroundImageLoaded", once:true, delay:this.delay});
+ dojo.html.setOpacity(this[this._background], 1);
+ this[this._background].src = this.imgUrlBase + this.imgUrls[this._urlsIdx++];
+ if (this._urlsIdx > (this.imgUrls.length - 1)) {
+ this._urlsIdx = 0;
+ }
+}});
+
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/SlideShow.js
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/SlideShow.js
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/external/trunk/geronimo-dojo-0.4.3/src/main/webapp/src/widget/SlideShow.js
------------------------------------------------------------------------------
svn:mime-type = text/plain