summaryrefslogtreecommitdiff
path: root/includes/js/dojox/string/Builder.js
diff options
context:
space:
mode:
authormensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>2008-11-13 09:49:11 +0000
committermensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>2008-11-13 09:49:11 +0000
commite44a7e37b6c7b5961adaffc62b9042b8d442938e (patch)
tree95b67c356e93163467db2451f2b8cce84ed5d582 /includes/js/dojox/string/Builder.js
parenta62b9742ee5e28bcec6872d88f50f25b820914f6 (diff)
downloadsemanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.gz
semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.bz2
New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/string/Builder.js')
-rw-r--r--includes/js/dojox/string/Builder.js101
1 files changed, 101 insertions, 0 deletions
diff --git a/includes/js/dojox/string/Builder.js b/includes/js/dojox/string/Builder.js
new file mode 100644
index 0000000..02082ec
--- /dev/null
+++ b/includes/js/dojox/string/Builder.js
@@ -0,0 +1,101 @@
+if(!dojo._hasResource["dojox.string.Builder"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.string.Builder"] = true;
+dojo.provide("dojox.string.Builder");
+
+(function(){
+ dojox.string.Builder = function(/*String?*/str){
+ // summary:
+ // A fast buffer for creating large strings
+ // str: The initial string to seed the buffer with
+ this.b = dojo.isIE ? [] : "";
+ if(str){ this.append(str); }
+ };
+
+ var m = {
+ append: function(/*String*/s){
+ // summary: Append all arguments to the end of the buffer
+ return this.appendArray(dojo._toArray(arguments)); // dojox.string.Builder
+ },
+ concat: function(/*String*/s){
+ return this.append(s);
+ },
+ appendArray: function(/*Array*/strings) {
+ this.b = String.prototype.concat.apply(this.b, strings);
+ return this;
+ },
+ clear: function(){
+ // summary: Remove all characters from the buffer
+ this._clear();
+ this.length = 0;
+ return this;
+ },
+ replace: function(oldStr,newStr){
+ // summary: Replace instances of one string with another in the buffer
+ var s = this.toString();
+ s = s.replace(oldStr,newStr);
+ this._reset(s);
+ this.length = s.length;
+ return this;
+ },
+ remove: function(start, len){
+ // summary: Remove len characters starting at index start
+ if(len == 0){ return this; }
+ var s = this.toString();
+ this.clear();
+ if(start > 0){
+ this.append(s.substring(0, start));
+ }
+ if(start+len < s.length){
+ this.append(s.substring(start+len));
+ }
+ return this;
+ },
+ insert: function(index, str){
+ // summary: Insert string str starting at index
+ var s = this.toString();
+ this.clear();
+ if(index == 0){
+ this.append(str);
+ this.append(s);
+ return this;
+ }else{
+ this.append(s.substring(0, index));
+ this.append(str);
+ this.append(s.substring(index));
+ }
+ return this;
+ },
+ toString: function(){
+ return this.b;
+ },
+ _clear: function(){
+ this.b = "";
+ },
+ _reset: function(s){
+ this.b = s;
+ }
+ }; // will hold methods for Builder
+
+ if(dojo.isIE){
+ dojo.mixin(m, {
+ toString: function(){
+ // Summary: Get the buffer as a string
+ return this.b.join("");
+ },
+ appendArray: function(strings){
+ this.b = this.b.concat(strings);
+ return this;
+ },
+ _clear: function(){
+ this.b = [];
+ },
+ _reset: function(s){
+ this.b = [ s ];
+ }
+ });
+ }
+
+ dojo.extend(dojox.string.Builder, m);
+})();
+
+}