allow string based values for comboboxarray
[roojs1] / Roo / form / DisplayField.js
index de3c027..96d7cc8 100644 (file)
  * @class Roo.form.DisplayField
  * @extends Roo.form.Field
  * A generic Field to display non-editable data.
+ * @cfg {Boolean} closable (true|false) default false
  * @constructor
  * Creates a new Display Field item.
  * @param {Object} config Configuration options
  */
-Roo.form.DisplayText = function(config){
-    Roo.form.DisplayText.superclass.constructor.call(this, config);
+Roo.form.DisplayField = function(config){
+    Roo.form.DisplayField.superclass.constructor.call(this, config);
     
+    this.addEvents({
+        /**
+         * @event close
+         * Fires after the click the close btn
+            * @param {Roo.form.DisplayField} this
+            */
+        close : true
+    });
 };
 
-Roo.extend(Roo.form.DisplayText, Roo.form.TextField,  {
-    fieldLabel:      '',
+Roo.extend(Roo.form.DisplayField, Roo.form.TextField,  {
     inputType:      'hidden',
-    width:          50,
     allowBlank:     true,
-    labelSeparator: '',
-    hidden:         true,
+    readOnly:         true,
     
  
     /**
@@ -49,9 +55,11 @@ Roo.extend(Roo.form.DisplayText, Roo.form.TextField,  {
      * @cfg {String/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to
      * {tag: "input", type: "checkbox", autocomplete: "off"})
      */
-   /*  
-    defaultAutoCreate : { tag: 'input', type: 'hidden', autocomplete: 'off'},
-
+     
+ //   defaultAutoCreate : { tag: 'input', type: 'hidden', autocomplete: 'off'},
+    closable : false,
+    
     onResize : function(){
         Roo.form.DisplayField.superclass.onResize.apply(this, arguments);
         
@@ -60,6 +68,10 @@ Roo.extend(Roo.form.DisplayText, Roo.form.TextField,  {
     initEvents : function(){
         // Roo.form.Checkbox.superclass.initEvents.call(this);
         // has no events...
+        
+        if(this.closable){
+            this.closeEl.on('click', this.onClose, this);
+        }
        
     },
 
@@ -74,12 +86,16 @@ Roo.extend(Roo.form.DisplayText, Roo.form.TextField,  {
 
     // private
     onRender : function(ct, position){
+        
         Roo.form.DisplayField.superclass.onRender.call(this, ct, position);
         //if(this.inputValue !== undefined){
+        this.wrap = this.el.wrap();
         
+        this.viewEl = this.wrap.createChild({ tag: 'div', cls: 'x-form-displayfield'});
         
-        this.wrap = this.el.wrap();
-        this.viewEl = this.wrap.createChild({ tag: 'div'});
+        if(this.closable){
+            this.closeEl = this.wrap.createChild({ tag: 'div', cls: 'x-dlg-close'});
+        }
         
         if (this.bodyStyle) {
             this.viewEl.applyStyles(this.bodyStyle);
@@ -89,7 +105,6 @@ Roo.extend(Roo.form.DisplayText, Roo.form.TextField,  {
         this.setValue(this.value);
         
     },
-    */
 /*
     // private
     initValue : Roo.emptyFn,
@@ -97,7 +112,6 @@ Roo.extend(Roo.form.DisplayText, Roo.form.TextField,  {
   */
 
        // private
-    
     onClick : function(){
         
     },
@@ -106,13 +120,22 @@ Roo.extend(Roo.form.DisplayText, Roo.form.TextField,  {
      * Sets the checked state of the checkbox.
      * @param {Boolean/String} checked True, 'true', '1', or 'on' to check the checkbox, any other value will uncheck it.
      */
-     /*
     setValue : function(v){
         this.value = v;
         var html = this.valueRenderer ?  this.valueRenderer(v) : String.format('{0}', v);
+        // this might be called before we have a dom element..
+        if (!this.viewEl) {
+            return;
+        }
         this.viewEl.dom.innerHTML = html;
         Roo.form.DisplayField.superclass.setValue.call(this, v);
 
+    },
+    
+    onClose : function(e)
+    {
+        e.preventDefault();
+        
+        this.fireEvent('close', this);
     }
-    */
 });
\ No newline at end of file