1 //<script type="text/javascript">
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
7 // register the module first
8 Pman.on('beforeload', function()
11 modKey : '001-Pman.Tab.BuilderView',
12 module : Pman.Tab.BuilderView,
14 parent : Pman.Tab.BuilderTab,
15 name : "Pman.Tab.BuilderView",
21 Pman.Tab.BuilderView = new Roo.util.Observable({
27 add : function(parentLayout, region)
31 this.parentLayout = parentLayout;
33 this.panel = parentLayout.addxtype({
34 xtype: 'NestedLayoutPanel',
37 activate : function (_self)
44 clearAll : function(isAuto) {
45 // this.renderObj = { isBuilder : true };
49 this.scroll = this.panelroot.el.getScroll();
50 this.layout.remove('center', this.panelroot);
51 this.panelroot = false;
53 if (this.dialogroot) {
54 this.dialogroot.remove();
55 this.dialogroot = false;
58 munge : function(cfg, keyname) {
59 keyname = keyname || false;
61 this.renderObj = this.renderObj || {};
69 if (typeof(cfg.background) != 'undefined') {
70 cfg.background = false;
75 // key is not string?!?!?!!?
76 if (typeof(p) != 'string') {
80 if (typeof(cfg[p]) == 'object') { // listeners!!!
81 this.munge(cfg[p], p);
85 if (p.charAt(0) == '|' || keyname=='listeners') {
92 if (str.match(/\s*function/)) {
93 var btz = str.split('{');
94 str = btz.shift() +'{ try {' + btz.join('{') +
95 ' catch (e) { Roo.log(e) } }';
99 var _this = this.renderObj; /// fake '_this' object..
100 // stupid IE can not return objects evaluated..
107 eval('_tmp =(' + str + ')');
108 cfg[p.replace(/^\|/, '')] = _tmp;
109 if (typeof(_tmp) == 'undefined') {
113 } catch(e) { console.log('Error evaluating: ' + str); };
114 if (p.charAt(0) == '|' ) {
122 if ((p.charAt(0) == '*') || (p.charAt(0) == '+')) {
129 // now for all the children.. (items)
130 if (xitems === false) {
134 for (var i = 0; i < xitems.length; i++) {
135 // if +builderhide set !!!! drop it!!
139 if (typeof(xi['*prop']) != 'undefined') {
140 var pr = xi['*prop'];
142 // if prop is an array - then it's items are really the value..
143 if (pr.match(/\[\]$/)) {
144 pr = pr.replace(/\[\]$/, '');
145 if (typeof(cfg[pr]) == 'undefined') {
151 if (xi.xtype && xi.xtype == 'Array') {
164 if (cfg.items.length == 0) {
167 // remove listeners if there are none..
168 if (typeof(cfg['listeners']) != 'undefined') {
170 for (var i in cfg.listeners) { n++; }
172 delete cfg['listeners'];
177 if (typeof(cfg.id) != 'undefined') {
178 cfg.id = 'pman-dyn-' + cfg.id;
183 redraw : function(isAuto)
186 // top level is not relivant
188 // var btop = Pman.Tab.BuilderTop2;
189 // if (isAuto && btop.redrawBtn && !btop.redrawBtn.auto) {
190 // return; /// auto redraw is turned off..
193 this.clearAll(isAuto);
195 var cfg = this.toJS();
201 this.munge(cfg.items[0]);
203 // we draw either a dialog or a tab..
205 if (cfg.items[0].xtype == 'LayoutDialog') {
207 cfg.items[0].modal = false;
208 var xy = this.el.getXY();
209 cfg.items[0].x = xy[0];
210 cfg.items[0].y = xy[1];
211 cfg.items[0].constraintoviewport = false;
213 this.dialogroot = Roo.get( document.body).createChild();
215 this.dialog = new Roo[cfg.items[0].xtype](this.dialogroot, cfg.items[0]);
216 // this.dialog.el.on('click', this.panelClick, this);
218 var dlg = this.dialog;
220 dlg.moveTo(xy[0], xy[1]);
225 // should we render this into a dialog???
226 // force center region..
227 cfg.items[0].region = 'center';
228 cfg.items[0].background = false;
230 this.panelroot = _this.parentLayout.addxtype(cfg.items[0]);
233 //this.highlightElement(Pman.Tab.BuilderTree.currentNode);
235 if (this.panelroot.el) {
236 this.panelroot.el.scrollTo('top', this.scroll.top);
237 this.panelroot.el.scrollTo('left', this.scroll.left);
242 var bt = Pman.Tab.BuilderTree.tree;
244 return this.toJS(bt.root);
248 var ret = bt.cloneConfig(n.elConfig);
250 // flag to prevent rendering..
251 if ((typeof(ret['+buildershow']) != 'undefined') && !ret['+buildershow']) {
255 ret.id = typeof(ret.id) == 'undefined' ? 'builder-' + n.id : ret.id;
257 if (n.childNodes.length) {
259 n.eachChild(function(cn) {
260 var add = _this.toJS(cn);
273 this.layout = this.panel.layout;