From f07b324e6f0f2edb71c4dc1d6b63e8a3743c48a6 Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Wed, 2 Feb 2011 10:04:44 +0000 Subject: Support for wiring and unwiring references. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1066399 13f79535-47bb-0310-9956-ffa450edef68 --- sca-cpp/trunk/modules/js/htdocs/elemutil.js | 34 ++---------- sca-cpp/trunk/modules/js/htdocs/ui.css | 8 +-- sca-cpp/trunk/modules/js/htdocs/uicyan.css | 8 +-- sca-cpp/trunk/modules/js/htdocs/util.js | 80 +++++++---------------------- 4 files changed, 30 insertions(+), 100 deletions(-) (limited to 'sca-cpp/trunk/modules/js') diff --git a/sca-cpp/trunk/modules/js/htdocs/elemutil.js b/sca-cpp/trunk/modules/js/htdocs/elemutil.js index f6f8dcd186..85eea29aa3 100644 --- a/sca-cpp/trunk/modules/js/htdocs/elemutil.js +++ b/sca-cpp/trunk/modules/js/htdocs/elemutil.js @@ -248,36 +248,10 @@ function namedElementChild(name, l) { */ /** - * Set the value of the attribute with the given name. + * Set the contents of an element. */ -function setNamedAttributeValue(name, v, l) { - var f = filter(function(v) { return isAttribute(v) && attributeName(v) == name; }, l); - if (!isNil(f)) { - - // Un-memoize attribute and change its value - unmemo(l, name); - car(f)[2] = '' + v; - return v; - } - - // Insert new attribute - insertn$(mklist(attribute, name, '' + v), l, 2); - return v; -} - -/** - * Set the value of an element. - */ -function setElementValue(v, l) { - if (elementHasValue(l)) { - - // Change existing element value - l[length(l) - 1] = v; - return v; - } - - // Append element value - $append(l, mklist(v)); - return v; +function setElement(l, e) { + setlist(l, e); + l.memo = {}; } diff --git a/sca-cpp/trunk/modules/js/htdocs/ui.css b/sca-cpp/trunk/modules/js/htdocs/ui.css index 7e57d184ba..2bb36f9319 100644 --- a/sca-cpp/trunk/modules/js/htdocs/ui.css +++ b/sca-cpp/trunk/modules/js/htdocs/ui.css @@ -57,21 +57,21 @@ vertical-align: middle; } a:link { -color: blue; +color: #598edd; } a:visited { -color: blue; +color: #598edd; } .amenu { -color: blue; +color: #598edd; text-decoration: underline } .smenu { font-weight: bold; -color: blue; +color: #598edd; text-decoration: underline } diff --git a/sca-cpp/trunk/modules/js/htdocs/uicyan.css b/sca-cpp/trunk/modules/js/htdocs/uicyan.css index 7e57d184ba..2bb36f9319 100644 --- a/sca-cpp/trunk/modules/js/htdocs/uicyan.css +++ b/sca-cpp/trunk/modules/js/htdocs/uicyan.css @@ -57,21 +57,21 @@ vertical-align: middle; } a:link { -color: blue; +color: #598edd; } a:visited { -color: blue; +color: #598edd; } .amenu { -color: blue; +color: #598edd; text-decoration: underline } .smenu { font-weight: bold; -color: blue; +color: #598edd; text-decoration: underline } diff --git a/sca-cpp/trunk/modules/js/htdocs/util.js b/sca-cpp/trunk/modules/js/htdocs/util.js index 873874c7be..2521b82311 100644 --- a/sca-cpp/trunk/modules/js/htdocs/util.js +++ b/sca-cpp/trunk/modules/js/htdocs/util.js @@ -52,10 +52,18 @@ function cddr(l) { return cdr(cdr(l)); } +function cdddr(l) { + return cdr(cdr(cdr(l))); +} + function caddr(l) { return car(cddr(l)); } +function cadddr(l) { + return car(cdddr(l)); +} + function append(a, b) { return a.concat(b); } @@ -213,16 +221,18 @@ function writeValue(v) { * Apply a function and memoize its result. */ function memo(obj, key, f) { - if (obj[key]) - return obj[key]; - return obj[key] = f(); + if (!obj[memo]) + obj.memo = {}; + if (obj.memo[key]) + return obj.memo[key]; + return obj.memo[key] = f(); } /** - * Un-memoize a value. + * Un-memoize store results. */ -function unmemo(obj, key) { - obj[key] = null; +function unmemo(obj) { + obj.memo = {}; return true; } @@ -276,63 +286,9 @@ function setcdr(a, b) { * Set the contents of a list. */ function setlist(a, b) { + if (b == a) + return b; a.length = 0; return setappend(a, b); } -/** - * Insert a value at a given position in a list. - */ -function insertn$(v, n, l) { - function upshift(i) { - if (i == n) - return true; - l[i] = l[i - 1]; - return upshift(i - 1); - } - - upshift(length(l)); - l[n] = v; - return l; -} - -/** - * Insert a value at the beginning of a list. - */ -function insert$(v, l) { - return insertn$(v, 0, l); -} - -/** - * Append a list at the end of a list. - */ -function append$(a, b) { - if (isNil(b)) - return a; - a.push(car(b)); - return append$(a, cdr(b)); -} - -/** - * Delete a value from a list. - */ -function delete$(v, l) { - function dnshift(i, max) { - if (i >= max) - return true; - l[i] = l[i + 1]; - return dnshift(i + 1, max); - } - - dnshift(n, length(l) - 1); - l.pop(); - return l; -} - -/** - * Delete a value at the beginning of a list. - */ -function delete$(l) { - return deleten$(l, 0); -} - -- cgit v1.2.3