[fusion-commits] r1858 - trunk/common

svn_fusion at osgeo.org svn_fusion at osgeo.org
Wed May 20 15:25:24 EDT 2009


Author: pagameba
Date: 2009-05-20 15:25:24 -0400 (Wed, 20 May 2009)
New Revision: 1858

Added:
   trunk/common/browserdetect.js
   trunk/common/json.js
   trunk/common/mgsamples.css
Log:
adding missing common code for new task pane widgets #248, 249, 259

Added: trunk/common/browserdetect.js
===================================================================
--- trunk/common/browserdetect.js	                        (rev 0)
+++ trunk/common/browserdetect.js	2009-05-20 19:25:24 UTC (rev 1858)
@@ -0,0 +1,39 @@
+var agent = navigator.userAgent.toLowerCase();
+var firefox = agent.indexOf("firefox") != -1;
+var opera = agent.indexOf("opera") != -1;
+
+var safariIndex = agent.indexOf("safari");
+var safari1or2 = false;
+var safari3plus = false;
+var safari = false;
+if(safariIndex != -1)
+{
+    safari = true;
+    var safariVersion = agent.substr(safariIndex + 7, 3);
+    if(parseFloat(safariVersion) >= 500)
+    {
+        safari3plus = true;
+    }
+    else
+    {
+        safari1or2 = true;
+    }
+}
+
+var msieIndex = agent.indexOf("msie");
+var msie = false;
+var msie7plus = false;
+var msie6minus = false;
+if(msieIndex != -1)
+{
+    msie = true;
+    var msieVersion = agent.substr(msieIndex + 5, 1);
+    if(parseFloat(msieVersion) >= 7)
+    {
+        msie7plus = true;
+    }
+    else
+    {
+        msie6minus = true;
+    }
+}

Added: trunk/common/json.js
===================================================================
--- trunk/common/json.js	                        (rev 0)
+++ trunk/common/json.js	2009-05-20 19:25:24 UTC (rev 1858)
@@ -0,0 +1,120 @@
+/*
+    json.js
+    2006-04-28
+
+    This file adds these methods to JavaScript:
+
+        object.toJSONString()
+
+            This method produces a JSON text from an object. The
+            object must not contain any cyclical references.
+
+        array.toJSONString()
+
+            This method produces a JSON text from an array. The
+            array must not contain any cyclical references.
+
+        string.parseJSON()
+
+            This method parses a JSON text to produce an object or
+            array. It will return false if there is an error.
+*/
+(function () {
+    var m = {
+            '\b': '\\b',
+            '\t': '\\t',
+            '\n': '\\n',
+            '\f': '\\f',
+            '\r': '\\r',
+            '"' : '\\"',
+            '\\': '\\\\'
+        },
+        s = {
+            array: function (x) {
+                var a = ['['], b, f, i, l = x.length, v;
+                for (i = 0; i < l; i += 1) {
+                    v = x[i];
+                    f = s[typeof v];
+                    if (f) {
+                        v = f(v);
+                        if (typeof v == 'string') {
+                            if (b) {
+                                a[a.length] = ',';
+                            }
+                            a[a.length] = v;
+                            b = true;
+                        }
+                    }
+                }
+                a[a.length] = ']';
+                return a.join('');
+            },
+            'boolean': function (x) {
+                return String(x);
+            },
+            'null': function (x) {
+                return "null";
+            },
+            number: function (x) {
+                return isFinite(x) ? String(x) : 'null';
+            },
+            object: function (x) {
+                if (x) {
+                    if (x instanceof Array) {
+                        return s.array(x);
+                    }
+                    var a = ['{'], b, f, i, v;
+                    for (i in x) {
+                        v = x[i];
+                        f = s[typeof v];
+                        if (f) {
+                            v = f(v);
+                            if (typeof v == 'string') {
+                                if (b) {
+                                    a[a.length] = ',';
+                                }
+                                a.push(s.string(i), ':', v);
+                                b = true;
+                            }
+                        }
+                    }
+                    a[a.length] = '}';
+                    return a.join('');
+                }
+                return 'null';
+            },
+            string: function (x) {
+                if (/["\\\x00-\x1f]/.test(x)) {
+                    x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
+                        var c = m[b];
+                        if (c) {
+                            return c;
+                        }
+                        c = b.charCodeAt();
+                        return '\\u00' +
+                            Math.floor(c / 16).toString(16) +
+                            (c % 16).toString(16);
+                    });
+                }
+                return '"' + x + '"';
+            }
+        };
+
+    Object.prototype.toJSONString = function () {
+        return s.object(this);
+    };
+
+    Array.prototype.toJSONString = function () {
+        return s.array(this);
+    };
+})();
+
+String.prototype.parseJSON = function () {
+    try {
+        return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
+                this.replace(/"(\\.|[^"\\])*"/g, ''))) &&
+            eval('(' + this + ')');
+    } catch (e) {
+        return false;
+    }
+};

Added: trunk/common/mgsamples.css
===================================================================
--- trunk/common/mgsamples.css	                        (rev 0)
+++ trunk/common/mgsamples.css	2009-05-20 19:25:24 UTC (rev 1858)
@@ -0,0 +1,43 @@
+td.Title
+{
+	font-family: Arial, Helvetica, sans-serif;
+	font-weight: bold;
+	font-size: 13pt;
+}
+td.SubTitle
+{
+	font-family: Arial, Helvetica, sans-serif;
+	font-weight: bold;
+	font-size: 8pt;
+	background-color: #DCDCDC;
+	color: black;
+	height: 20px;
+}
+td.Spacer
+{
+    height: 4px;
+}
+.Swatch
+{
+	border: black 1px solid;
+	height: 16px;
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 10pt;
+}
+td.InfoText
+{
+	background-color: #FFFFCC;
+	color: #666666;
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 8pt;
+}
+.RegText
+{
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 8pt;
+}
+.Ctrl
+{
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 8pt;
+}



More information about the fusion-commits mailing list