1 //<Script type="text/javascript">
4 console = imports.console;
5 XObject = imports.XObject.XObject;
8 //----------------------- our roo verison
9 Base = imports.Builder.Provider.File.Base.Base;
17 //"name":"Edit Module Details",
19 //"btype":"FORM", // was to be components...
21 //"module":"Pman.Tab.BuilderTop2"
23 cfg.parent = cfg.parent || '';
24 if (!cfg.name || !cfg.fullname ) {
25 cfg.name = cfg.path.split('/').pop().replace(/\.js$/, '');
26 cfg.fullname = (cfg.parent.length ? (cfg.parent + '.') : '' ) + cfg.name;
32 var jstr = JSON.parse(cfg.json);
33 this.items = [ jstr ];
34 //console.log(cfg.items.length);
35 delete cfg.json; // not needed!
39 var p = cfg.items && cfg.items.length && cfg.items[0].parent ? cfg.items[0].parent : false;
41 // ensure real data is set...
52 Gtk.superclass.constructor.call(this, cfg);
56 this.id = 'file-gtk-' + gid++;
57 // various loader methods..
63 setNSID : function(id)
66 this.items[0]['*class'] = id;
74 loadItems : function(cb)
77 throw "no callback for loadItems";
79 console.log("load Items!");
80 if (this.items.length) {
83 Seed.print("load: " + this.path);
86 var file = Gio.file_new_for_path(this.path);
89 file.read_async(0, null, function(source,result) {
90 var stream = source.read_finish(result)
91 var dstream = new Gio.DataInputStream.c_new(stream);
93 var src = dstream.read_until("");
94 var cfg = JSON.parse(src);
98 _this.name = cfg.name;
99 _this.parent = cfg.parent;
100 _this.title = cfg.title;
101 _this.items = cfg.items || [];
104 // update to new JSDOC api!?
106 var tstream = new JSDOC.TextStream(src);
107 var tr = new JSDOC.TokenReader( {
111 var toks = tr.tokenize(tstream);
112 //console.dump(toks);
114 var ts = new JSDOC.Collapse(toks);
115 //console.dump(ts.tokens);
116 var rd = new JSDOC.GtkFile(ts.tokens);
121 _this.items = [ src ];
126 console.dump(rd.cfg);
127 //!!??? have we got engouth!
128 // try parsing self..
129 _this.items = [ rd.cfg ];
130 _this.imports = rd.imports;
131 _this.giImports = rd.giImports ;
142 * fixme - update to new style
148 toSourceStdClass: function()
150 var cfg = this.items[0]
151 var fcfg = XObject.extend({ }, this.items[0]);
152 delete fcfg['*class'];
153 delete fcfg['*extends'];
154 delete fcfg['*static'];
155 delete fcfg['|constructor'];
157 var hasExtends = (typeof(cfg['*extends']) != 'undefined') && cfg['*extends'].length;
158 var hasConstructor = (typeof(cfg['|constructor']) != 'undefined');
159 var isStatic = (typeof(cfg['*static']) == '*static');
164 newline = hasConstructor ?
167 cfg['//constructor'] + "\n" +
168 cfg['*class'] + " = " + cfg['|constructor'] + "\n\n"+
169 "Roo.extend(" + cfg['*class'] + ":, " + cfg['*extends'] + ", " :
171 cfg['//*class'] + "\n" +
172 cfg['*class'] + " = new " + cfg['*extends'] + "(" ;
179 newline = hasConstructor ?
181 cfg['//constructor'] + "\n" +
182 cfg['*class'] + " = " + cfg['|constructor'] + "\n\n"+
183 'Roo.apply( ' + cfg['*class'] + ".prototype , " :
185 cfg['//*class'] + "\n" +
186 cfg['*class'] + " = ";
189 endline = hasConstructor ? ');' : ';';
192 return this.outputHeader() +
194 this.objectToJsString(fcfg,1) +
205 // dump the file tree back out to a string.
207 if (typeof(this.items[0]['*class']) != 'undefined') {
208 return this.toSourceStdClass();
212 // technically there will be different versions of this.
213 var o = this.mungePropObj(this.items[0]);
217 return this.outputHeader() +
223 this.objectToJsString(o,2) +
225 ";", // end return value..
239 outputHeader : function()
241 var ret = '//<script type="text/javascript">' + "\n";
242 ret += "\n\n// gi imports\n";
243 Roo.each(this.giImports, function(i) {
244 ret += i + " = imports.gi." + i + ";\n";
246 ret += "\n\n// file imports\n";
247 for(var k in this.imports) {
248 ret += k + " = imports[" + JSON.stringify(this.imports[k]) + "];\n";
255 getTree : function( o ) {