allow string based values for comboboxarray
[roojs1] / Roo / form / HtmlEditor.js
index e8ec326..b632412 100644 (file)
@@ -105,7 +105,7 @@ Roo.extend(Roo.form.HtmlEditor, Roo.form.Field, {
     defaultAutoCreate : { // modified by initCompnoent..
         tag: "textarea",
         style:"width:500px;height:300px;",
-        autocomplete: "off"
+        autocomplete: "new-password"
     },
 
     // private
@@ -184,12 +184,19 @@ Roo.extend(Roo.form.HtmlEditor, Roo.form.Field, {
              * preview the saved version of htmlEditor
              * @param {HtmlEditor} this
              */
-            savedpreview: true
+            savedpreview: true,
+            
+            /**
+            * @event stylesheetsclick
+            * Fires when press the Sytlesheets button
+            * @param {Roo.HtmlEditorCore} this
+            */
+            stylesheetsclick: true
         });
         this.defaultAutoCreate =  {
             tag: "textarea",
             style:'width: ' + this.width + 'px;height: ' + this.height + 'px;',
-            autocomplete: "off"
+            autocomplete: "new-password"
         };
     },
 
@@ -261,40 +268,74 @@ Roo.extend(Roo.form.HtmlEditor, Roo.form.Field, {
             
             "tab" : function(e){
                 e.preventDefault();
-                Roo.log('TAB');
+                
+                var value = this.getValue();
+                
+                var start = this.el.dom.selectionStart;
+                var end = this.el.dom.selectionEnd;
+                
+                if(!e.shiftKey){
+                    
+                    this.setValue(value.substring(0, start) + "\t" + value.substring(end));
+                    this.el.dom.setSelectionRange(end + 1, end + 1);
+                    return;
+                }
+                
+                var f = value.substring(0, start).split("\t");
+                
+                if(f.pop().length != 0){
+                    return;
+                }
+                
+                this.setValue(f.join("\t") + value.substring(end));
+                this.el.dom.setSelectionRange(start - 1, start - 1);
+                
             },
             
             "home" : function(e){
                 e.preventDefault();
-                Roo.log('HOME');
                 
-                var curr = this.el.dom.selectionStart - 1;
+                var curr = this.el.dom.selectionStart;
                 var lines = this.getValue().split("\n");
                 
                 if(!lines.length){
                     return;
                 }
+                
+                if(e.ctrlKey){
+                    this.el.dom.setSelectionRange(0, 0);
+                    return;
+                }
+                
                 var pos = 0;
-                Roo.log(curr);
+                
                 for (var i = 0; i < lines.length;i++) {
-                    
                     pos += lines[i].length;
-                    Roo.log(pos);
+                    
+                    if(i != 0){
+                        pos += 1;
+                    }
+                    
                     if(pos < curr){
                         continue;
                     }
                     
-                    pos -= lines[i].length + 1;
+                    pos -= lines[i].length;
                     
                     break;
                 }
                 
-                this.el.dom.setSelectionRange(pos, pos)
+                if(!e.shiftKey){
+                    this.el.dom.setSelectionRange(pos, pos);
+                    return;
+                }
+                
+                this.el.dom.selectionStart = pos;
+                this.el.dom.selectionEnd = curr;
             },
             
             "end" : function(e){
                 e.preventDefault();
-                Roo.log('END');
                 
                 var curr = this.el.dom.selectionStart;
                 var lines = this.getValue().split("\n");
@@ -302,12 +343,22 @@ Roo.extend(Roo.form.HtmlEditor, Roo.form.Field, {
                 if(!lines.length){
                     return;
                 }
+                
+                if(e.ctrlKey){
+                    this.el.dom.setSelectionRange(this.getValue().length, this.getValue().length);
+                    return;
+                }
+                
                 var pos = 0;
                 
                 for (var i = 0; i < lines.length;i++) {
                     
                     pos += lines[i].length;
                     
+                    if(i != 0){
+                        pos += 1;
+                    }
+                    
                     if(pos < curr){
                         continue;
                     }
@@ -315,7 +366,13 @@ Roo.extend(Roo.form.HtmlEditor, Roo.form.Field, {
                     break;
                 }
                 
-                this.el.dom.setSelectionRange(pos, pos)
+                if(!e.shiftKey){
+                    this.el.dom.setSelectionRange(pos, pos);
+                    return;
+                }
+                
+                this.el.dom.selectionStart = curr;
+                this.el.dom.selectionEnd = pos;
             },
 
             scope : this,
@@ -360,7 +417,7 @@ Roo.extend(Roo.form.HtmlEditor, Roo.form.Field, {
                 
                 var ah = h - this.wrap.getFrameWidth('tb') - tbh;// this.tb.el.getHeight();
                 ah -= 5; // knock a few pixes off for look..
-                Roo.log(ah);
+//                Roo.log(ah);
                 this.el.setHeight(this.adjustWidth('textarea', ah));
                 var eh = ah;
             }
@@ -503,6 +560,16 @@ Roo.extend(Roo.form.HtmlEditor, Roo.form.Field, {
     pushValue : function()
     {
         this.editorcore.pushValue();
+    },
+    
+    setStylesheets : function(stylesheets)
+    {
+        this.editorcore.setStylesheets(stylesheets);
+    },
+    
+    removeStylesheets : function()
+    {
+        this.editorcore.removeStylesheets();
     }