summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js
diff options
context:
space:
mode:
Diffstat (limited to 'webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js')
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js611
1 files changed, 0 insertions, 611 deletions
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js
deleted file mode 100644
index 0cc25a9d5c..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js
+++ /dev/null
@@ -1,611 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#resource(core:static/image)
-
-************************************************************************ */
-
-/**
- * This widget is for all images in qooxdoo projects.
- *
- * @event error {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.basic.Image", qx.ui.basic.Terminator,
-function(vSource, vWidth, vHeight)
-{
- qx.ui.basic.Terminator.call(this);
-
- // Reset Alt and Title
- this.setHtmlProperty("alt", "");
- this.setHtmlProperty("title", "");
-
- // Apply constructor arguments
- this.setSource(qx.util.Validation.isValid(vSource) ? vSource : "static/image/blank.gif");
-
- // Dimensions
- this.setWidth(qx.util.Validation.isValid(vWidth) ? vWidth : "auto");
- this.setHeight(qx.util.Validation.isValid(vHeight) ? vHeight : "auto");
-
- // Prohibit selection
- this.setSelectable(false);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
- PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
- The source uri of the image.
-*/
-qx.OO.addProperty({ name : "source", type : "string" });
-
-/*!
- The assigned preloader instance of the image.
-*/
-qx.OO.addProperty({ name : "preloader", type : "object" });
-
-/*!
- The loading status.
-
- True if the image is loaded correctly. False if no image is loaded
- or the one that should be loaded is currently loading or not available.
-*/
-qx.OO.addProperty({ name : "loaded", type : "boolean", defaultValue : false });
-
-/*!
- Should the image be maxified in it's own container?
-*/
-qx.OO.addProperty({ name : "resizeToInner", type : "boolean", defaultValue : false });
-
-/*!
- Appearance of the widget
-*/
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "image" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT MAPPERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onload = function() {
- this.setLoaded(true);
-}
-
-qx.Proto._onerror = function()
-{
- this.debug("Could not load: " + this.getSource());
-
- this.setLoaded(false);
-
- if (this.hasEventListeners("error")) {
- this.dispatchEvent(new qx.event.type.Event("error"), true);
- }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPLAYBLE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._beforeAppear = function()
-{
- var vSource = this.getSource();
-
- if (qx.util.Validation.isValidString(vSource)) {
- qx.manager.object.ImageManager.getInstance()._sources[vSource]++;
- }
-
- return qx.ui.basic.Terminator.prototype._beforeAppear.call(this);
-}
-
-qx.Proto._beforeDisappear = function()
-{
- var vSource = this.getSource();
-
- if (qx.util.Validation.isValidString(vSource))
- {
- if (qx.manager.object.ImageManager.getInstance()._sources[vSource] <= 1)
- {
- delete qx.manager.object.ImageManager.getInstance()._sources[vSource];
- }
- else
- {
- qx.manager.object.ImageManager.getInstance()._sources[vSource]--;
- }
- }
-
- return qx.ui.basic.Terminator.prototype._beforeDisappear.call(this);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifySource = function(propValue, propOldValue, propData)
-{
- if (propValue && typeof qx.manager.object.ImageManager.getInstance()._sources[propValue] === "undefined") {
- qx.manager.object.ImageManager.getInstance()._sources[propValue] = 0;
- }
-
- if (propOldValue)
- {
- if (qx.manager.object.ImageManager.getInstance()._sources[propOldValue] <= 1)
- {
- delete qx.manager.object.ImageManager.getInstance()._sources[propOldValue];
- }
- else
- {
- qx.manager.object.ImageManager.getInstance()._sources[propOldValue]--;
- }
- }
-
- if (this.isCreated())
- {
- if (propValue)
- {
- this.setPreloader(qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(propValue)));
- }
- else if (propOldValue)
- {
- this._resetContent();
- this.setPreloader(null);
- }
- }
-
- return true;
-}
-
-qx.Proto._modifyPreloader = function(propValue, propOldValue, propData)
-{
- if (propOldValue)
- {
- // remove event connection
- propOldValue.removeEventListener("load", this._onload, this);
- propOldValue.removeEventListener("error", this._onerror, this);
- }
-
- if (propValue)
- {
- // Register to image manager
- qx.manager.object.ImageManager.getInstance().add(this);
-
- // Omit here, otherwise the later setLoaded(true)
- // will not be executed (prevent recursion)
-
- // Changed: Use forceLoaded instead of setLoaded => should be faster
- this.forceLoaded(false);
-
- if (propValue.isErroneous())
- {
- this._onerror();
- }
- else if (propValue.isLoaded())
- {
- this.setLoaded(true);
- }
- else
- {
- propValue.addEventListener("load", this._onload, this);
- propValue.addEventListener("error", this._onerror, this);
- }
- }
- else
- {
- // Remove from image manager
- qx.manager.object.ImageManager.getInstance().remove(this);
-
- this.setLoaded(false);
- }
-
- return true;
-}
-
-qx.Proto._modifyLoaded = function(propValue, propOldValue, propData)
-{
- if (propValue && this.isCreated())
- {
- this._applyContent();
- }
- else if (!propValue)
- {
- this._invalidatePreferredInnerWidth();
- this._invalidatePreferredInnerHeight();
- }
-
- return true;
-}
-
-qx.Proto._modifyElement = function(propValue, propOldValue, propData)
-{
- if (propValue)
- {
- if (!this._image)
- {
- try
- {
- // Create Image-Node
- // Webkit has problems with "new Image". Maybe related to "new Function" with
- // is also not working correctly.
- if (qx.sys.Client.getInstance().isWebkit())
- {
- this._image = document.createElement("img");
- }
- else
- {
- this._image = new Image;
- }
-
- // Possible alternative for MSHTML for PNG images
- // But it seems not to be faster
- // this._image = document.createElement("div");
-
- // this costs much performance, move setup to blank gif to error handling
- // is this SSL save?
- // this._image.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-
- this._image.style.border = "0 none";
- this._image.style.verticalAlign = "top";
- }
- catch(ex)
- {
- this.error("Failed while creating image #1", ex);
- }
-
- if (!qx.sys.Client.getInstance().isMshtml()) {
- this._applyEnabled();
- }
- }
-
- propValue.appendChild(this._image);
- }
-
- // call widget implmentation
- qx.ui.basic.Terminator.prototype._modifyElement.call(this, propValue, propOldValue, propData);
-
- if (propValue)
- {
- try
- {
- // initialisize preloader
- var vSource = this.getSource();
- if (qx.util.Validation.isValidString(vSource)) {
- this.setPreloader(qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(vSource)));
- }
- }
- catch(ex)
- {
- this.error("Failed while creating image #2", ex);
- }
- }
-
- return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- CLIENT OPTIMIZED MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._postApply = function()
-{
- if (!this.getLoaded()) {
- this._updateContent(qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif"));
- return;
- }
-
- this._postApplyDimensions();
- this._updateContent();
-}
-
-if (qx.sys.Client.getInstance().isMshtml())
-{
- qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
- {
- if (this._image) {
- this._applyEnabled();
- }
-
- return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
- }
-
- qx.Proto._updateContent = function(vSource)
- {
- var i = this._image;
- var pl = this.getPreloader();
-
- if (pl.getIsPng() && this.getEnabled())
- {
- i.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
- i.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + (vSource || pl.getSource()) + "',sizingMethod='scale')";
- }
- else
- {
- i.src = vSource || pl.getSource();
- i.style.filter = this.getEnabled() ? "" : "Gray() Alpha(Opacity=30)";
- }
- }
-
- qx.Proto._resetContent = function()
- {
- var i = this._image;
-
- i.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
- i.style.filter = "";
- }
-
- qx.Proto._applyEnabled = qx.Proto._postApply;
-}
-else
-{
- qx.Proto._updateContent = function(vSource) {
- this._image.src = vSource || this.getPreloader().getSource();
- }
-
- qx.Proto._resetContent = function() {
- this._image.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
- }
-
- qx.Proto._applyEnabled = function()
- {
- if (this._image)
- {
- var o = this.getEnabled() ? "" : 0.3;
- var s = this._image.style;
-
- s.opacity = s.KhtmlOpacity = s.MozOpacity = o;
- }
- }
-
- qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
- {
- if (this._image) {
- this._applyEnabled();
- }
-
- return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
- }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- PREFERRED DIMENSIONS: INNER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computePreferredInnerWidth = function()
-{
- if (this.getLoaded())
- {
- return this.getPreloader().getWidth();
- }
- else if (qx.util.Validation.isValidString(this.getSource()))
- {
- var vPreloader = qx.manager.object.ImagePreloaderManager.getInstance().get(qx.manager.object.AliasManager.getInstance().resolvePath(this.getSource()));
-
- if (vPreloader && vPreloader.isLoaded()) {
- return vPreloader.getWidth();
- }
- }
-
- return 0;
-}
-
-qx.Proto._computePreferredInnerHeight = function()
-{
- if (this.getLoaded())
- {
- return this.getPreloader().getHeight();
- }
- else if (qx.util.Validation.isValidString(this.getSource()))
- {
- var vPreloader = qx.manager.object.ImagePreloaderManager.getInstance().get(qx.manager.object.AliasManager.getInstance().resolvePath(this.getSource()));
-
- if (vPreloader && vPreloader.isLoaded()) {
- return vPreloader.getHeight();
- }
- }
-
- return 0;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- APPLY
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyContent = function()
-{
- qx.ui.basic.Terminator.prototype._applyContent.call(this);
-
- // Images load asyncron, so we need to force flushing here
- // to get an up-to-date view when an image is loaded.
- qx.ui.core.Widget.flushGlobalQueues();
-}
-
-if (qx.sys.Client.getInstance().isMshtml())
-{
- qx.Proto._postApplyDimensions = function()
- {
- try
- {
- var vImageStyle = this._image.style;
-
- if (this.getResizeToInner())
- {
- vImageStyle.pixelWidth = this.getInnerWidth();
- vImageStyle.pixelHeight = this.getInnerHeight();
- }
- else
- {
- vImageStyle.pixelWidth = this.getPreferredInnerWidth();
- vImageStyle.pixelHeight = this.getPreferredInnerHeight();
- }
- }
- catch(ex)
- {
- this.error("postApplyDimensions failed", ex);
- }
- }
-}
-else
-{
- qx.Proto._postApplyDimensions = function()
- {
- try
- {
- var vImageNode = this._image;
-
- if (this.getResizeToInner())
- {
- vImageNode.width = this.getInnerWidth();
- vImageNode.height = this.getInnerHeight();
- }
- else
- {
- vImageNode.width = this.getPreferredInnerWidth();
- vImageNode.height = this.getPreferredInnerHeight();
- }
- }
- catch(ex)
- {
- this.error("postApplyDimensions failed", ex);
- }
- }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
- CHANGES IN DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-if (qx.sys.Client.getInstance().isMshtml())
-{
- qx.Proto._changeInnerWidth = function(vNew, vOld)
- {
- if (this.getResizeToInner()) {
- this._image.style.pixelWidth = vNew;
- }
- }
-
- qx.Proto._changeInnerHeight = function(vNew, vOld)
- {
- if (this.getResizeToInner()) {
- this._image.style.pixelHeight = vNew;
- }
- }
-}
-else
-{
- qx.Proto._changeInnerWidth = function(vNew, vOld)
- {
- if (this.getResizeToInner()) {
- this._image.width = vNew;
- }
- }
-
- qx.Proto._changeInnerHeight = function(vNew, vOld)
- {
- if (this.getResizeToInner()) {
- this._image.height = vNew;
- }
- }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if (this.getDisposed()) {
- return true;
- }
-
- var vPreloader = this.getPreloader();
- if (vPreloader)
- {
- // remove event connection
- vPreloader.removeEventListener("load", this._onload, this);
- vPreloader.removeEventListener("error", this._onerror, this);
-
- this.forcePreloader(null);
- }
-
- if (this._image)
- {
- // Remove leaking filter attribute before leaving page
- this._image.style.filter = "";
- this._image = null;
- }
-
- qx.manager.object.ImageManager.getInstance().remove(this);
-
- return qx.ui.basic.Terminator.prototype.dispose.call(this);
-}