[qooxdoo-commit] SF.net SVN: qooxdoo: [13602] trunk/qooxdoo/frontend/framework/source/class/ qx
Brought to you by:
ecker,
martinwittemann
From: <wp...@us...> - 2008-05-17 20:36:10
|
Revision: 13602 http://qooxdoo.svn.sourceforge.net/qooxdoo/?rev=13602&view=rev Author: wpbasti Date: 2008-05-17 13:36:03 -0700 (Sat, 17 May 2008) Log Message: ----------- Replaced singleton ImageRegistry with more general static class ResourceManager Modified Paths: -------------- trunk/qooxdoo/frontend/framework/source/class/qx/html/ClippedImage.js trunk/qooxdoo/frontend/framework/source/class/qx/ui/basic/Image.js trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Beveled.js trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Double.js trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Grid.js trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Rounded.js trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Single.js trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Uniform.js Added Paths: ----------- trunk/qooxdoo/frontend/framework/source/class/qx/util/ResourceManager.js Removed Paths: ------------- trunk/qooxdoo/frontend/framework/source/class/qx/util/ImageRegistry.js Modified: trunk/qooxdoo/frontend/framework/source/class/qx/html/ClippedImage.js =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/html/ClippedImage.js 2008-05-17 16:57:07 UTC (rev 13601) +++ trunk/qooxdoo/frontend/framework/source/class/qx/html/ClippedImage.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -21,7 +21,7 @@ /** * A ClippedImage wraps a DOM element, which displays a clipped image. * All images shown with this class must be registered using - * {@link qx.util.ImageRegistry#register} before. + * {@link qx.util.ResourceManager#register} before. */ qx.Class.define("qx.html.ClippedImage", { @@ -56,7 +56,7 @@ { /** * Sets the image source. The image must be registered using - * {@link qx.util.ImageRegistry#register} before. + * {@link qx.util.ResourceManager#register} before. * * @param source {String} the image URL * @param resize {Boolean?true} Whether the element should be resized to @@ -64,9 +64,9 @@ */ setSource : function(source, resize) { - var data = qx.util.ImageRegistry.getInstance().get(source); + var data = qx.util.ResourceManager.getData(source); if (!data) { - throw new Error("The image '" + source + "' must be registered at qx.util.ImageRegistry!"); + throw new Error("The image '" + source + "' must be registered at qx.util.ResourceManager!"); } this.__width = data[0]; @@ -88,7 +88,7 @@ var format = data[2]; } - var url = qx.util.ImageRegistry.getInstance().toUri(source); + var url = qx.util.ResourceManager.toUri(source); var styles = qx.bom.element.Background.getStyles(url, "repeat", xpos, ypos, format); this.setStyles(styles); Modified: trunk/qooxdoo/frontend/framework/source/class/qx/ui/basic/Image.js =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/ui/basic/Image.js 2008-05-17 16:57:07 UTC (rev 13601) +++ trunk/qooxdoo/frontend/framework/source/class/qx/ui/basic/Image.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -203,7 +203,7 @@ return; } - var Registry = qx.util.ImageRegistry.getInstance(); + var Registry = qx.util.ResourceManager; var ImageLoader = qx.io2.ImageLoader; // Detect if the image registry knows this image @@ -289,7 +289,7 @@ /* // Dynamically register image if (size) { - qx.util.ImageRegistry.getInstance().register(source, source, 0, 0, size.width, size.height); + qx.util.ResourceManager.register(source, source, 0, 0, size.width, size.height); } else { this.warn("Image could not be loaded: " + source); } Modified: trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Beveled.js =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Beveled.js 2008-05-17 16:57:07 UTC (rev 13601) +++ trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Beveled.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -219,7 +219,7 @@ var innerStyle = "1px solid " + this.__innerColor; var bgId = qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage()); - var bgSource = qx.util.ImageRegistry.getInstance().toUri(bgId); + var bgSource = qx.util.ResourceManager.toUri(bgId); // Colors Modified: trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Double.js =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Double.js 2008-05-17 16:57:07 UTC (rev 13601) +++ trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Double.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -144,7 +144,7 @@ { var el = el.getChild(0); - var bgImage = qx.util.ImageRegistry.getInstance().toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); + var bgImage = qx.util.ResourceManager.toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); if (!bgImage || this.getBackgroundRepeat() !== "scale") { el.removeAll(); Modified: trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Grid.js =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Grid.js 2008-05-17 16:57:07 UTC (rev 13601) +++ trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Grid.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -200,16 +200,16 @@ var images = this.__images || this.__computeImages(); // Resolve image data - var reg = qx.util.ImageRegistry.getInstance(); - var tl = reg.getClipped(images.tl); - var t = reg.getClipped(images.t); - var tr = reg.getClipped(images.tr); - var bl = reg.getClipped(images.bl); - var b = reg.getClipped(images.b); - var br = reg.getClipped(images.br); - var l = reg.getClipped(images.l); - var c = reg.getClipped(images.c); - var r = reg.getClipped(images.r); + var mgr = qx.util.ResourceManager; + var tl = mgr.getClipped(images.tl); + var t = mgr.getClipped(images.t); + var tr = mgr.getClipped(images.tr); + var bl = mgr.getClipped(images.bl); + var b = mgr.getClipped(images.b); + var br = mgr.getClipped(images.br); + var l = mgr.getClipped(images.l); + var c = mgr.getClipped(images.c); + var r = mgr.getClipped(images.r); // Store dimensions @@ -234,35 +234,34 @@ var pixel = "px"; var html = []; - var leftCombined = reg.getClipped(l[0]); + var leftCombined = mgr.getClipped(l[0]); leftImageWidth = leftCombined ? leftCombined[3] : l[3]; - var rightCombined = reg.getClipped(r[0]); + var rightCombined = mgr.getClipped(r[0]); rightImageWidth = rightCombined ? rightCombined[3] : r[3]; - var Registry = qx.util.ImageRegistry.getInstance(); - + // Top: left, center, right html.push( '<div style="position:absolute;top:0;left:0;', 'width:', leftWidth, 'px;height:', topWidth, "px;", - qx.bom.element.Background.compile(Registry.toUri(tl[0]), "repeat-x", tl[1], tl[2]), + qx.bom.element.Background.compile(mgr.toUri(tl[0]), "repeat-x", tl[1], tl[2]), '"></div>' ); html.push( '<div style="position:absolute;top:0;', 'left:', leftWidth, 'px;height:',topWidth, 'px;', - qx.bom.element.Background.compile(Registry.toUri(t[0]), "repeat-x", t[1], t[2]), + qx.bom.element.Background.compile(mgr.toUri(t[0]), "repeat-x", t[1], t[2]), '"></div>' ); html.push( '<div style="position:absolute;top:0;right:0;', 'width:', rightWidth, 'px;height:', topWidth, "px;", - qx.bom.element.Background.compile(Registry.toUri(tr[0]), "repeat-x", tr[1], tr[2]), + qx.bom.element.Background.compile(mgr.toUri(tr[0]), "repeat-x", tr[1], tr[2]), '"></div>' ); @@ -271,37 +270,37 @@ '<div style="position:absolute;bottom:0;left:0;', 'width:', leftWidth, 'px;height:', bottomWidth, "px;", - qx.bom.element.Background.compile(Registry.toUri(bl[0]), "repeat-x", bl[1], bl[2]), + qx.bom.element.Background.compile(mgr.toUri(bl[0]), "repeat-x", bl[1], bl[2]), '"></div>' ); html.push( '<div style="position:absolute;bottom:0;', 'left:', leftWidth, 'px;height:', bottomWidth, "px;", - qx.bom.element.Background.compile(Registry.toUri(b[0]), "repeat-x", b[1], b[2]), + qx.bom.element.Background.compile(mgr.toUri(b[0]), "repeat-x", b[1], b[2]), '"></div>' ); html.push( '<div style="position:absolute;bottom:0;right:0;', 'width:', rightWidth, 'px;height:', bottomWidth, "px;", - qx.bom.element.Background.compile(Registry.toUri(br[0]), "repeat-x", br[1], br[2]), + qx.bom.element.Background.compile(mgr.toUri(br[0]), "repeat-x", br[1], br[2]), '"></div>' ); // Middle: left, center, right html.push( - '<img src="', Registry.toUri(l[0]), '" style="position:absolute;left:' + l[1] + 'px;', + '<img src="', mgr.toUri(l[0]), '" style="position:absolute;left:' + l[1] + 'px;', 'top:', topWidth, 'px;width:', leftImageWidth, 'px;', qx.bom.element.Clip.compile({left: -l[1], width: leftWidth}),'"/>' ); html.push( - '<img src="', Registry.toUri(c[0]), '" style="position:absolute;', + '<img src="', mgr.toUri(c[0]), '" style="position:absolute;', 'top:', topWidth, 'px;left:', leftWidth, 'px;"/>' ); html.push( - '<img src="', Registry.toUri(r[0]), '" style="position:absolute;', + '<img src="', mgr.toUri(r[0]), '" style="position:absolute;', 'right:', rightWidth - (rightImageWidth + r[1]) , 'px;top:', topWidth, 'px;width:', rightImageWidth, 'px;', qx.bom.element.Clip.compile({left: -r[1], width: rightWidth}),'"/>' ); Modified: trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Rounded.js =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Rounded.js 2008-05-17 16:57:07 UTC (rev 13601) +++ trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Rounded.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -172,7 +172,7 @@ var fillColor = backgroundColor || this.__bgColor || "white"; // VML currently only supports the "imageRepeat" = "repeat" - var backgroundImage = qx.util.ImageRegistry.getInstance().toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); + var backgroundImage = qx.util.ResourceManager.toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); if (backgroundImage) { fill = '<v:fill type="tile" src="'+backgroundImage+'"/>' } else { Modified: trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Single.js =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Single.js 2008-05-17 16:57:07 UTC (rev 13601) +++ trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Single.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -322,7 +322,7 @@ if (bgRepeat === "scale") { bgRepeat = null; } else { - bgImage = qx.util.ImageRegistry.getInstance().toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); + bgImage = qx.util.ResourceManager.toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); } var styles = @@ -349,7 +349,7 @@ _updateScaledImage : function(el, width, height) { - var bgImage = qx.util.ImageRegistry.getInstance().toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); + var bgImage = qx.util.ResourceManager.toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); if (!bgImage || this.getBackgroundRepeat() !== "scale") { el.removeAll(); Modified: trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Uniform.js =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Uniform.js 2008-05-17 16:57:07 UTC (rev 13601) +++ trunk/qooxdoo/frontend/framework/source/class/qx/ui/decoration/Uniform.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -105,7 +105,7 @@ { if (changes.style || changes.init) { - var bgImage = qx.util.ImageRegistry.getInstance().toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); + var bgImage = qx.util.ResourceManager.toUri(qx.util.AliasManager.getInstance().resolve(this.getBackgroundImage())); element.setStyles({ border: this.getWidth() + "px " + this.getStyle() + " " + (this.__color || ""), backgroundImage: bgImage ? "url(" + bgImage + ")" : null, Deleted: trunk/qooxdoo/frontend/framework/source/class/qx/util/ImageRegistry.js =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/util/ImageRegistry.js 2008-05-17 16:57:07 UTC (rev 13601) +++ trunk/qooxdoo/frontend/framework/source/class/qx/util/ImageRegistry.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -1,181 +0,0 @@ -/* ************************************************************************ - - qooxdoo - the new era of web development - - http://qooxdoo.org - - Copyright: - 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de - - License: - LGPL: http://www.gnu.org/licenses/lgpl.html - EPL: http://www.eclipse.org/org/documents/epl-v10.php - See the LICENSE file in the project's top-level directory for details. - - Authors: - * Fabian Jakobs (fjakobs) - -************************************************************************ */ - -/** - * The image registry contains information about image sizes and information about - * clipped images. The {@link qx.ui.basic.Image} class uses this information to - * render images. - */ -qx.Class.define("qx.util.ImageRegistry", -{ - extend : qx.core.Object, - type : "singleton", - - - construct : function () - { - this.base(arguments); - - // {Map} the shared image registry - this.__registry = window.qxresourceinfo || {}; - }, - - - - - - /* - ***************************************************************************** - MEMBERS - ***************************************************************************** - */ - - members : - { - /** - * Register information about an image. - * - * @param iconUri {String} The URI of the image to register information about. - * @param mappedUri {String} The image URI, which should be used to display - * the image. This can be either the same as the image URI or the URI - * of a combined image containing several images. - * @param xOffset {Integer} The horizontal start offset of the image. - * @param yOffset {Integer} The vertical start offset of the image. - * @param width {Integer} The image width - * @param height {Integer} The image height - */ - register : function(iconUri, mappedUri, xOffset, yOffset, width, height) - { - // Protect overwriting - if (this.__registry[iconUri]) { - return; - } - - //this.debug("Register not yet supported: " + iconUri); - return; - - var isPng = qx.lang.String.endsWith(iconUri, ".png"); - - // Use clipped images unless the image is PNG and the browser IE6 - var Engine = qx.bom.client.Engine; - if (isPng && Engine.MSHTML && Engine.VERSION < 7) - { - this.__registry[iconUri] = [width, height, "type", "lib"]; - } - else - { - if (iconUri == mappedUri) - { - this.__registry[iconUri] = [width, height, "type", "lib"]; - } - else - { - this.__registry[iconUri] = [width, height, "type", "lib", mappedUri, xOffset, yOffset, "mtype", "mlib"]; - } - } - }, - - - /** - * Whether the registry has informations about the given resource. - * - * @type member - * @param uri {String} The resource to get the information for - * @return {Boolean} <code>true</code> when the resource is known. - */ - has : function(uri) { - return !!this.__registry[uri]; - }, - - - /** - * Get information about an resource. - * - * @param uri {String} The resource to get the information for - * @return {Array} Registered data - */ - get : function(uri) { - return this.__registry[uri] || null; - }, - - - // only used in grid decoration currently - getClipped : function(id) - { - var entry = this.__registry[id]; - if (!entry) { - return null; - } - - var width = entry[0]; - var height = entry[1]; - - if (entry.length > 4) - { - var uri = entry[4]; - var left = entry[5]; - var top = entry[6]; - } - else - { - var uri = id; - var left = 0; - var top = 0; - } - - return [uri, left, top, width, height]; - }, - - - toUri : function(id) - { - if (id == null) { - return null; - } - - var entry = this.__registry[id]; - - if (!entry) - { - this.debug("Oops: Missing image: " + id); - return id; - } - - if (typeof entry === "string") { - var lib = entry - } else { - var lib = entry[3]; - } - - return window.qxlibinfo[lib].resuri + "/" + id; - } - }, - - - - /* - ***************************************************************************** - DESTRUCTOR - ***************************************************************************** - */ - - destruct : function() { - this._disposeObjects("__registry"); - } -}); Copied: trunk/qooxdoo/frontend/framework/source/class/qx/util/ResourceManager.js (from rev 13601, trunk/qooxdoo/frontend/framework/source/class/qx/util/ImageRegistry.js) =================================================================== --- trunk/qooxdoo/frontend/framework/source/class/qx/util/ResourceManager.js (rev 0) +++ trunk/qooxdoo/frontend/framework/source/class/qx/util/ResourceManager.js 2008-05-17 20:36:03 UTC (rev 13602) @@ -0,0 +1,147 @@ +/* ************************************************************************ + + qooxdoo - the new era of web development + + http://qooxdoo.org + + Copyright: + 2004-2008 1&1 Internet AG, Germany, http://www.1und1.de + + License: + LGPL: http://www.gnu.org/licenses/lgpl.html + EPL: http://www.eclipse.org/org/documents/epl-v10.php + See the LICENSE file in the project's top-level directory for details. + + Authors: + * Sebastian Werner (wpbasti) + * Fabian Jakobs (fjakobs) + +************************************************************************ */ + +/** + * Contains information about images (size, format, clipping, ...) and + * other resources like CSS files, local data, ... + */ +qx.Bootstrap.define("qx.util.ResourceManager", +{ + statics : + { + /** {Map} the shared image registry */ + __registry : window.qxresourceinfo || {}, + + + /** + * Register information about an image. + * + * @param iconUri {String} The URI of the image to register information about. + * @param mappedUri {String} The image URI, which should be used to display + * the image. This can be either the same as the image URI or the URI + * of a combined image containing several images. + * @param xOffset {Integer} The horizontal start offset of the image. + * @param yOffset {Integer} The vertical start offset of the image. + * @param width {Integer} The image width + * @param height {Integer} The image height + */ + register : function(iconUri, mappedUri, xOffset, yOffset, width, height) + { + // Protect overwriting + if (this.__registry[iconUri]) { + return; + } + + //this.debug("Register not yet supported: " + iconUri); + return; + + var isPng = qx.lang.String.endsWith(iconUri, ".png"); + + // Use clipped images unless the image is PNG and the browser IE6 + var Engine = qx.bom.client.Engine; + if (isPng && Engine.MSHTML && Engine.VERSION < 7) + { + this.__registry[iconUri] = [width, height, "type", "lib"]; + } + else + { + if (iconUri == mappedUri) + { + this.__registry[iconUri] = [width, height, "type", "lib"]; + } + else + { + this.__registry[iconUri] = [width, height, "type", "lib", mappedUri, xOffset, yOffset, "mtype", "mlib"]; + } + } + }, + + + /** + * Whether the registry has informations about the given resource. + * + * @param id {String} The resource to get the information for + * @return {Boolean} <code>true</code> when the resource is known. + */ + has : function(id) { + return !!this.__registry[id]; + }, + + + /** + * Get information about an resource. + * + * @param id {String} The resource to get the information for + * @return {Array} Registered data + */ + getData : function(id) { + return this.__registry[id] || null; + }, + + + // only used in grid decoration currently + // internal structure: + // images: [width, height, format, library, [clipped, left, top]] + // other: library + getClippedImage : function(id) + { + var entry = this.__registry[id]; + if (!entry) { + return null; + } + + var width = entry[0]; + var height = entry[1]; + + if (entry.length > 4) + { + id = entry[4]; + + var left = entry[5]; + var top = entry[6]; + } + else + { + var left = 0; + var top = 0; + } + + return [id, left, top, width, height]; + }, + + + toUri : function(id) + { + if (id == null) { + return null; + } + + var entry = this.__registry[id]; + + if (typeof entry === "string") { + var lib = entry + } else { + var lib = entry[3]; + } + + return window.qxlibinfo[lib].resuri + "/" + id; + } + } +}); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |