]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/wire/TextAdapter.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / wire / TextAdapter.js
diff --git a/static/dojo-release-1.1.1/dojox/wire/TextAdapter.js b/static/dojo-release-1.1.1/dojox/wire/TextAdapter.js
new file mode 100644 (file)
index 0000000..36e7f1d
--- /dev/null
@@ -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
+               }
+       }
+});
+
+}