1 //<script type="text/javascript">
4 // IPC: - via alert("IPC:{method}:{data}
7 var MODULE = { isBuilder : true };
22 // this lot is to deal with draging // selecting? - not used at present
26 findNode : function(ftg , method) {
30 // console.log(ftg.id);
31 if (ftg.id && typeof(ftg.id) == 'string' && ftg.id.match(/builder-/)) {
32 var nid = ftg.id.replace('builder-', '').replace('x-form-el-', '');
37 if (ftg.dom.className.match(/[0-9]+/)) {
38 //console.log(ftg.dom.className);
39 var cmat = ftg.dom.className.match(/x-grid-hd-builder-(form-gen-[0-9:]+)/);
41 this[method]( cmat[1] );
52 overPos: function(x,y)
55 var el = document.elementFromPoint(x,y);
56 // //console.log(el.id);
57 // console.log(document.body.innerHTML);
59 getTarget : function () {
62 stopEvent : function() {
69 onclick: function(e) {
70 var tg = Roo.get(e.getTarget());
72 //console.log('no target');
76 if (this.findNode(tg,'logClick')) {
79 var dp = Roo.get(tg.up(''));
80 if (dp && this.findNode(dp,'logClick')) {
84 var ns = Roo.get(tg.getNextSibling());
85 if (ns && this.findNode(ns,'logClick')) {
89 if (ns && ns.down('') && this.findNode(Roo.get(ns.down('')) ,'logClick') ) {
93 for(var i =0; i < 5; i++) {
94 tg = Roo.get(tg.up(''));
96 //console.log('no parent' + i);
99 if (tg && this.findNode(tg,'logClick')) {
103 //console.log('no target in parents');
106 logClick : function(id)
108 var bid = id.length ? 'builder-' + id : '';
109 console.log('{ "id" : "' + bid + '"}');
113 hover : function(e) {
116 var tg = Roo.get(e.getTarget());
118 //console.log('no target');
123 if (this.findNode(tg,'logMove')) {
127 var dp = Roo.get(tg.up(''));
128 if (dp && this.findNode(dp,'logMove')) {
133 var ns = Roo.get(tg.getNextSibling());
134 if (ns && this.findNode(ns,'logMove')) {
138 if (ns && ns.down('') && this.findNode(Roo.get(ns.down('')) ,'logMove' )) {
143 for(var i =0; i < 5; i++) {
144 tg = Roo.get(tg.up(''));
146 //console.log('no parent' + i);
150 if (tg && this.findNode(tg,'logMove')) {
155 //console.log('no target in parents');
158 logMove : function (id) {
159 //console.log("LOGMOVE: " + id);
161 if (this.lastID === id) {
165 var bid = id.length ? 'builder-' + id : '';
166 console.log('{ "hover-node" : "' + bid + '"}');
169 clearBootstrap : function()
171 // if the page is not bootstrap
173 if ( typeof(BuilderUseBootstrap) != 'undefined' ) {
174 Roo.log("it's boostrap - BuilderUseBootstrap is defined ");
175 // it's bootstrap - probably remove roo's css..
178 Roo.log("remove css = BuilderUseBootstrap is not defined");
180 var ar = document.getElementsByTagName('link');
181 for (var i = 0; i < ar.length;i++) {
183 Roo.log(l.getAttribute('href'));
184 if (l.getAttribute('href').match(/bootstrap/)) {
191 Roo.each(rem, function(l) { l.parentNode.removeChild(l);});
194 applyFlexy: function(tree)
196 if (typeof(tree['flexy:foreach']) != 'undefined') {
197 //Roo.log("add flexy:foreach");
198 tree.el.attr('flexy:foreach', tree['flexy:foreach']);
200 if (typeof(tree['flexy:if']) != 'undefined') {
201 //Roo.log("add flexy:if");
202 tree.el.attr('flexy:if', tree['flexy:if']);
204 if (typeof(tree['xtype-bootstrap']) != 'undefined') {
205 //Roo.log("add flexy:if");
206 tree.el.attr('xtype', tree['xtype-bootstrap']);
210 if (!tree.items || !tree.items.length) { return; }
212 for (var i = 0; i < tree.items.length; i++){
213 this.applyFlexy(tree.items[i]);
220 Roo.onReady(function() { Builder.clearBootstrap(); });
221 Roo.XComponent.on('buildcomplete', function() {
222 Roo.log("xcomponent built!");
224 Builder.applyFlexy(Roo.XComponent.modules[0].el);