aboutsummaryrefslogtreecommitdiff
path: root/includes/js/dojox/wire/TextAdapter.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/wire/TextAdapter.js')
-rw-r--r--includes/js/dojox/wire/TextAdapter.js88
1 files changed, 88 insertions, 0 deletions
diff --git a/includes/js/dojox/wire/TextAdapter.js b/includes/js/dojox/wire/TextAdapter.js
new file mode 100644
index 0000000..36e7f1d
--- /dev/null
+++ b/includes/js/dojox/wire/TextAdapter.js
@@ -0,0 +1,88 @@
+if(!dojo._hasResource["dojox.wire.TextAdapter"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.wire.TextAdapter"] = true;
+dojo.provide("dojox.wire.TextAdapter");
+
+dojo.require("dojox.wire.CompositeWire");
+
+dojo.declare("dojox.wire.TextAdapter", dojox.wire.CompositeWire, {
+ // summary:
+ // A composite Wire for a concatenated text
+ // description:
+ // This class has multiple child Wires for text segment values.
+ // Wires in 'segments' property are used to get text segments and
+ // values are concatenated with an optional delimiter string specified
+ // to 'delimiter' property.
+
+ _wireClass: "dojox.wire.TextAdapter",
+
+ constructor: function(/*Object*/args){
+ // summary:
+ // Initialize properties
+ // description:
+ // If array elements specified in 'segments' are not Wires, Wires
+ // are created from them as arguments, with 'parent' property set
+ // to this Wire instance.
+ // args:
+ // Arguments to initialize properties
+ // segments:
+ // An array containing child Wires for text segment values
+ // delimiter:
+ // A delimiter string
+ this._initializeChildren(this.segments);
+ if(!this.delimiter){
+ this.delimiter = "";
+ }
+ },
+
+ _getValue: function(/*Object||Array*/object){
+ // summary:
+ // Return a concatenated text
+ // description:
+ // This method calls getValue() method of the child Wires wuth
+ // 'object' argument and concatenate the values with 'delimiter'
+ // property to return.
+ // arg:
+ // A root object
+ // returns:
+ // A concatinated text
+ if(!object || !this.segments){
+ return object; //Object||Array
+ }
+
+ var text = "";
+ for(var i in this.segments){
+ var segment = this.segments[i].getValue(object);
+ text = this._addSegment(text, segment);
+ }
+ return text; //String
+ },
+
+ _setValue: function(/*Object||Array*/object, /*String*/value){
+ // summary:
+ // Not supported
+ throw new Error("Unsupported API: " + this._wireClass + "._setValue");
+ },
+
+ _addSegment: function(/*String*/text, /*String*/segment){
+ // summary:
+ // Return a concatenated text
+ // description:
+ // This method add a text segment specified to 'segment' argument
+ // to a base text specified to 'text', with 'delimiter' property.
+ // text:
+ // A base text
+ // segment:
+ // A text segment to add
+ // returns:
+ // A concatinated text
+ if(!segment){
+ return text; //String
+ }else if(!text){
+ return segment; //String
+ }else{
+ return text + this.delimiter + segment; //String
+ }
+ }
+});
+
+}