Fix #5718 - Change the order / layout of tabs. / new master lists
[roojs1] / docs / src / Roo_form_GridField.js.html
1 <html><head><title>/home/edward/gitlive/roojs1/Roo/form/GridField.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">//&lt;script type=&quot;text/javascript&quot;&gt;
2 /**
3  * @class Roo.form.GridField
4  * @extends Roo.form.Field
5  * Embed a grid (or editable grid into a form)
6  * STATUS ALPHA
7  * 
8  * This embeds a grid in a form, the value of the field should be the json encoded array of rows
9  * it needs 
10  * xgrid.store = Roo.data.Store
11  * xgrid.store.proxy = Roo.data.MemoryProxy (data = [] )
12  * xgrid.store.reader = Roo.data.JsonReader 
13  * 
14  * 
15  * @constructor
16  * Creates a new GridField
17  * @param {Object} config Configuration options
18  */
19 </span><span class="jsdoc-var">Roo.form.GridField </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
20     </span><span class="jsdoc-var">Roo.form.GridField.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
21
22 };
23
24 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.GridField</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Field</span><span class="jsdoc-syntax">,  {
25     </span><span class="jsdoc-comment">/**
26      * @cfg {Number} width  - used to restrict width of grid..
27      */
28     </span><span class="jsdoc-var">width </span><span class="jsdoc-syntax">: 100,
29     </span><span class="jsdoc-comment">/**
30      * @cfg {Number} height - used to restrict height of grid..
31      */
32     </span><span class="jsdoc-var">height </span><span class="jsdoc-syntax">: 50,
33      </span><span class="jsdoc-comment">/**
34      * @cfg {Object} xgrid (xtype'd description of grid) { xtype : 'Grid', dataSource: .... }
35          * 
36          *}
37      */
38     </span><span class="jsdoc-var">xgrid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
39     </span><span class="jsdoc-comment">/**
40      * @cfg {String/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to
41      * {tag: &quot;input&quot;, type: &quot;checkbox&quot;, autocomplete: &quot;off&quot;})
42      */
43    // defaultAutoCreate : { tag: 'div' },
44     </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: { </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'input'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'hidden'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">autocomplete</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'new-password'</span><span class="jsdoc-syntax">},
45     </span><span class="jsdoc-comment">/**
46      * @cfg {String} addTitle Text to include for adding a title.
47      */
48     </span><span class="jsdoc-var">addTitle </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
49     </span><span class="jsdoc-comment">//
50     </span><span class="jsdoc-var">onResize </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
51         </span><span class="jsdoc-var">Roo.form.Field.superclass.onResize.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
52     },
53
54     </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
55         </span><span class="jsdoc-comment">// Roo.form.Checkbox.superclass.initEvents.call(this);
56         // has no events...
57
58     </span><span class="jsdoc-syntax">},
59
60
61     </span><span class="jsdoc-var">getResizeEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
62         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.wrap</span><span class="jsdoc-syntax">;
63     },
64
65     </span><span class="jsdoc-var">getPositionEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
66         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.wrap</span><span class="jsdoc-syntax">;
67     },
68
69     </span><span class="jsdoc-comment">// private
70     </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
71
72         </span><span class="jsdoc-var">this.style </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.style </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'overflow: hidden; border:1px solid #c3daf9;'</span><span class="jsdoc-syntax">;
73         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">style </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.style</span><span class="jsdoc-syntax">;
74         </span><span class="jsdoc-keyword">delete </span><span class="jsdoc-var">this.style</span><span class="jsdoc-syntax">;
75
76         </span><span class="jsdoc-var">Roo.form.GridField.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
77         </span><span class="jsdoc-var">this.wrap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.wrap</span><span class="jsdoc-syntax">({</span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">}); </span><span class="jsdoc-comment">// not sure why ive done thsi...
78         </span><span class="jsdoc-var">this.viewEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.wrap.createChild</span><span class="jsdoc-syntax">({ </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div' </span><span class="jsdoc-syntax">});
79         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">) {
80             </span><span class="jsdoc-var">this.viewEl.applyStyles</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">);
81         }
82         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">) {
83             </span><span class="jsdoc-var">this.viewEl.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">);
84         }
85         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">) {
86             </span><span class="jsdoc-var">this.viewEl.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">);
87         }
88         </span><span class="jsdoc-comment">//if(this.inputValue !== undefined){
89         //this.setValue(this.value);
90
91
92         </span><span class="jsdoc-var">this.grid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.grid</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.xgrid.xtype</span><span class="jsdoc-syntax">](</span><span class="jsdoc-var">this.viewEl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.xgrid</span><span class="jsdoc-syntax">);
93
94
95         </span><span class="jsdoc-var">this.grid.render</span><span class="jsdoc-syntax">();
96         </span><span class="jsdoc-var">this.grid.getDataSource</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'remove'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.refreshValue</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
97         </span><span class="jsdoc-var">this.grid.getDataSource</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'update'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.refreshValue</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
98         </span><span class="jsdoc-var">this.grid.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'afteredit'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.refreshValue</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
99
100     },
101
102
103     </span><span class="jsdoc-comment">/**
104      * Sets the value of the item. 
105      * @param {String} either an object  or a string..
106      */
107     </span><span class="jsdoc-var">setValue </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">){
108         </span><span class="jsdoc-comment">//this.value = v;
109         </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">v </span><span class="jsdoc-syntax">|| []; </span><span class="jsdoc-comment">// empty set..
110         // this does not seem smart - it really only affects memoryproxy grids..
111         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.grid.getDataSource</span><span class="jsdoc-syntax">() &amp;&amp; </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
112             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ds </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.grid.getDataSource</span><span class="jsdoc-syntax">();
113             </span><span class="jsdoc-comment">// assumes a json reader..
114             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= {}
115             </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">ds.reader.meta.root </span><span class="jsdoc-syntax">] =  </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">Roo.decode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
116             </span><span class="jsdoc-var">ds.loadData</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">);
117         }
118         </span><span class="jsdoc-comment">// clear selection so it does not get stale.
119         </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.grid.sm</span><span class="jsdoc-syntax">) {
120             </span><span class="jsdoc-var">this.grid.sm.clearSelections</span><span class="jsdoc-syntax">();
121         }
122
123         </span><span class="jsdoc-var">Roo.form.GridField.superclass.setValue.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">);
124         </span><span class="jsdoc-var">this.refreshValue</span><span class="jsdoc-syntax">();
125         </span><span class="jsdoc-comment">// should load data in the grid really....
126     </span><span class="jsdoc-syntax">},
127
128     </span><span class="jsdoc-comment">// private
129     </span><span class="jsdoc-var">refreshValue</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
130          </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">val </span><span class="jsdoc-syntax">= [];
131         </span><span class="jsdoc-var">this.grid.getDataSource</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">) {
132             </span><span class="jsdoc-var">val.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">r.data</span><span class="jsdoc-syntax">);
133         });
134         </span><span class="jsdoc-var">this.el.dom.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.encode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">val</span><span class="jsdoc-syntax">);
135     }
136
137
138
139
140 });</span></code></body></html>