stabile.js
资源名称:oa.rar [点击查看]
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:4k
源码类别:
OA系统
开发平台:
Java
- /*
- 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.html.stabile");
- dojo.widget.html.stabile = {_sqQuotables:new RegExp("([\\'])", "g"), _depth:0, _recur:false, depthLimit:2};
- dojo.widget.html.stabile.getState = function (id) {
- dojo.widget.html.stabile.setup();
- return dojo.widget.html.stabile.widgetState[id];
- };
- dojo.widget.html.stabile.setState = function (id, state, isCommit) {
- dojo.widget.html.stabile.setup();
- dojo.widget.html.stabile.widgetState[id] = state;
- if (isCommit) {
- dojo.widget.html.stabile.commit(dojo.widget.html.stabile.widgetState);
- }
- };
- dojo.widget.html.stabile.setup = function () {
- if (!dojo.widget.html.stabile.widgetState) {
- var text = dojo.widget.html.stabile._getStorage().value;
- dojo.widget.html.stabile.widgetState = text ? dj_eval("(" + text + ")") : {};
- }
- };
- dojo.widget.html.stabile.commit = function (state) {
- dojo.widget.html.stabile._getStorage().value = dojo.widget.html.stabile.description(state);
- };
- dojo.widget.html.stabile.description = function (v, showAll) {
- var depth = dojo.widget.html.stabile._depth;
- var describeThis = function () {
- return this.description(this, true);
- };
- try {
- if (v === void (0)) {
- return "undefined";
- }
- if (v === null) {
- return "null";
- }
- if (typeof (v) == "boolean" || typeof (v) == "number" || v instanceof Boolean || v instanceof Number) {
- return v.toString();
- }
- if (typeof (v) == "string" || v instanceof String) {
- var v1 = v.replace(dojo.widget.html.stabile._sqQuotables, "\$1");
- v1 = v1.replace(/n/g, "\n");
- v1 = v1.replace(/r/g, "\r");
- return "'" + v1 + "'";
- }
- if (v instanceof Date) {
- return "new Date(" + d.getFullYear + "," + d.getMonth() + "," + d.getDate() + ")";
- }
- var d;
- if (v instanceof Array || v.push) {
- if (depth >= dojo.widget.html.stabile.depthLimit) {
- return "[ ... ]";
- }
- d = "[";
- var first = true;
- dojo.widget.html.stabile._depth++;
- for (var i = 0; i < v.length; i++) {
- if (first) {
- first = false;
- } else {
- d += ",";
- }
- d += arguments.callee(v[i], showAll);
- }
- return d + "]";
- }
- if (v.constructor == Object || v.toString == describeThis) {
- if (depth >= dojo.widget.html.stabile.depthLimit) {
- return "{ ... }";
- }
- if (typeof (v.hasOwnProperty) != "function" && v.prototype) {
- throw new Error("description: " + v + " not supported by script engine");
- }
- var first = true;
- d = "{";
- dojo.widget.html.stabile._depth++;
- for (var key in v) {
- if (v[key] == void (0) || typeof (v[key]) == "function") {
- continue;
- }
- if (first) {
- first = false;
- } else {
- d += ", ";
- }
- var kd = key;
- if (!kd.match(/^[a-zA-Z_][a-zA-Z0-9_]*$/)) {
- kd = arguments.callee(key, showAll);
- }
- d += kd + ": " + arguments.callee(v[key], showAll);
- }
- return d + "}";
- }
- if (showAll) {
- if (dojo.widget.html.stabile._recur) {
- var objectToString = Object.prototype.toString;
- return objectToString.apply(v, []);
- } else {
- dojo.widget.html.stabile._recur = true;
- return v.toString();
- }
- } else {
- throw new Error("Unknown type: " + v);
- return "'unknown'";
- }
- }
- finally {
- dojo.widget.html.stabile._depth = depth;
- }
- };
- dojo.widget.html.stabile._getStorage = function () {
- if (dojo.widget.html.stabile.dataField) {
- return dojo.widget.html.stabile.dataField;
- }
- var form = document.forms._dojo_form;
- return dojo.widget.html.stabile.dataField = form ? form.stabile : {value:""};
- };