summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js
diff options
context:
space:
mode:
Diffstat (limited to 'webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js')
-rw-r--r--webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js360
1 files changed, 0 insertions, 360 deletions
diff --git a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js b/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js
deleted file mode 100644
index 8416988717..0000000000
--- a/webapps/qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js
+++ /dev/null
@@ -1,360 +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
- 2006 by Derrell Lipman
- 2006 by STZ-IDA, Germany, http://www.stz-ida.de
-
- License:
- LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
-
- Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
- * Derrell Lipman (derrell)
- * Andreas Junghans (lucidcake)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-#require(qx.io.remote.Exchange)
-
-************************************************************************ */
-
-/*!
- Transports requests to a server using dynamic script tags.
-
- This class should not be used directly by client programmers.
- */
-qx.OO.defineClass("qx.io.remote.ScriptTransport", qx.io.remote.AbstractRemoteTransport,
-function()
-{
- qx.io.remote.AbstractRemoteTransport.call(this);
-
- var vUniqueId = ++qx.io.remote.ScriptTransport._uniqueId;
- if (vUniqueId >= 2000000000) {
- qx.io.remote.ScriptTransport._uniqueId = vUniqueId = 1;
- }
-
- this._element = null;
- this._uniqueId = vUniqueId;
-});
-
-qx.Class._uniqueId = 0;
-qx.Class._instanceRegistry = {};
-qx.Class.ScriptTransport_PREFIX = "_ScriptTransport_";
-qx.Class.ScriptTransport_ID_PARAM = qx.Class.ScriptTransport_PREFIX + "id";
-qx.Class.ScriptTransport_DATA_PARAM = qx.Class.ScriptTransport_PREFIX + "data";
-qx.Proto._lastReadyState = 0;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- CLASS PROPERTIES AND METHODS
----------------------------------------------------------------------------
-*/
-
-// basic registration to qx.io.remote.Exchange
-// the real availability check (activeX stuff and so on) follows at the first real request
-qx.io.remote.Exchange.registerType(qx.io.remote.ScriptTransport, "qx.io.remote.ScriptTransport");
-
-qx.io.remote.ScriptTransport.handles =
-{
- synchronous : false,
- asynchronous : true,
- crossDomain : true,
- fileUpload: false,
- responseTypes : [ "text/plain", "text/javascript", "text/json" ]
-}
-
-qx.io.remote.ScriptTransport.isSupported = function() {
- return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- USER METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.send = function()
-{
- var vUrl = this.getUrl();
-
-
-
- // --------------------------------------
- // Adding parameters
- // --------------------------------------
-
- vUrl += (vUrl.indexOf("?") >= 0 ? "&" : "?") + qx.io.remote.ScriptTransport.ScriptTransport_ID_PARAM + "=" + this._uniqueId;
-
- var vParameters = this.getParameters();
- var vParametersList = [];
- for (var vId in vParameters) {
- if (vId.indexOf(qx.io.remote.ScriptTransport.ScriptTransport_PREFIX) == 0) {
- this.error("Illegal parameter name. The following prefix is used internally by qooxdoo): " +
- qx.io.remote.ScriptTransport.ScriptTransport_PREFIX);
- }
- var value = vParameters[vId];
- if (value instanceof Array) {
- for (var i = 0; i < value.length; i++) {
- vParametersList.push(encodeURIComponent(vId) + "=" +
- encodeURIComponent(value[i]));
- }
- } else {
- vParametersList.push(encodeURIComponent(vId) + "=" +
- encodeURIComponent(value));
- }
- }
-
- if (vParametersList.length > 0) {
- vUrl += "&" + vParametersList.join("&");
- }
-
-
-
- // --------------------------------------
- // Sending data
- // --------------------------------------
-
- vData = this.getData();
- if (vData != null) {
- vUrl += "&" + qx.io.remote.ScriptTransport.ScriptTransport_DATA_PARAM + "=" + encodeURIComponent(vData);
- }
-
- qx.io.remote.ScriptTransport._instanceRegistry[this._uniqueId] = this;
- this._element = document.createElement("script");
- this._element.charset = "utf-8"; // IE needs this (it ignores the
- // encoding from the header sent by the
- // server for dynamic script tags)
- this._element.src = vUrl;
-
- document.body.appendChild(this._element);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- EVENT LISTENER
----------------------------------------------------------------------------
-*/
-
-// For reference:
-// http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/readyState_1.asp
-qx.io.remote.ScriptTransport._numericMap =
-{
- "uninitialized" : 1,
- "loading" : 2,
- "loaded" : 2,
- "interactive" : 3,
- "complete" : 4
-}
-
-qx.Proto._switchReadyState = function(vReadyState)
-{
- // Ignoring already stopped requests
- switch(this.getState())
- {
- case "completed":
- case "aborted":
- case "failed":
- case "timeout":
- this.warn("Ignore Ready State Change");
- return;
- }
-
- // Updating internal state
- while (this._lastReadyState < vReadyState) {
- this.setState(qx.io.remote.Exchange._nativeMap[++this._lastReadyState]);
- }
-}
-qx.Class._requestFinished = function(id, content) {
- var vInstance = qx.io.remote.ScriptTransport._instanceRegistry[id];
- if (vInstance == null) {
- if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
- this.warn("Request finished for an unknown instance (probably aborted or timed out before)");
- }
- } else {
- vInstance._responseContent = content;
- vInstance._switchReadyState(qx.io.remote.ScriptTransport._numericMap.complete);
- }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- REQUEST HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setRequestHeader = function(vLabel, vValue)
-{
- // TODO
- // throw new Error("setRequestHeader is abstract");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- RESPONSE HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getResponseHeader = function(vLabel)
-{
- return null;
-
- // TODO
- // this.error("Need implementation", "getResponseHeader");
-}
-
-/*!
- Provides an hash of all response headers.
-*/
-qx.Proto.getResponseHeaders = function()
-{
- return {}
-
- // TODO
- // throw new Error("getResponseHeaders is abstract");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- STATUS SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
- Returns the current status code of the request if available or -1 if not.
-*/
-qx.Proto.getStatusCode = function()
-{
- return 200;
-
- // TODO
- // this.error("Need implementation", "getStatusCode");
-}
-
-/*!
- Provides the status text for the current request if available and null otherwise.
-*/
-qx.Proto.getStatusText = function()
-{
- return "";
-
- // TODO
- // this.error("Need implementation", "getStatusText");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- RESPONSE DATA SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
- Returns the length of the content as fetched thus far
-*/
-qx.Proto.getFetchedLength = function()
-{
- return 0;
-
- // TODO
- // throw new Error("getFetchedLength is abstract");
-}
-
-qx.Proto.getResponseContent = function()
-{
- if (this.getState() !== "completed")
- {
- if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
- this.warn("Transfer not complete, ignoring content!");
- }
-
- return null;
- }
-
- if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
- this.debug("Returning content for responseType: " + this.getResponseType());
- }
-
- switch(this.getResponseType())
- {
- case "text/plain":
- // server is responsible for using a string as the response
-
- case "text/json":
-
- case "text/javascript":
- return this._responseContent;
-
- default:
- this.warn("No valid responseType specified (" + this.getResponseType() + ")!");
- return null;
- }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
- DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
- if (this.getDisposed()) {
- return true;
- }
-
- if (this._element != null)
- {
- delete qx.io.remote.ScriptTransport._instanceRegistry[this._uniqueId];
- document.body.removeChild(this._element);
- this._element = null;
- }
-
- return qx.io.remote.AbstractRemoteTransport.prototype.dispose.call(this);
-}