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-' + id++;
57 // various loader methods..
63 setNSID : function(id)
66 this.items[0]['*class'] = id;
70 loadItems : function(cb)
73 throw "no callback for loadItems";
75 console.log("load Items!");
76 if (this.items.length) {
79 Seed.print("load: " + this.path);
82 var file = Gio.file_new_for_path(this.path);
85 file.read_async(0, null, function(source,result) {
86 var stream = source.read_finish(result)
87 var dstream = new Gio.DataInputStream.c_new(stream);
89 var src = dstream.read_until("");
92 // update to new JSDOC api!?
94 var tstream = new JSDOC.TextStream(src);
95 var tr = new JSDOC.TokenReader( {
99 var toks = tr.tokenize(tstream);
100 //console.dump(toks);
102 var ts = new JSDOC.Collapse(toks);
103 //console.dump(ts.tokens);
104 var rd = new JSDOC.GtkFile(ts.tokens);
109 _this.items = [ src ];
114 console.dump(rd.cfg);
115 //!!??? have we got engouth!
116 // try parsing self..
117 _this.items = [ rd.cfg ];
118 _this.imports = rd.imports;
119 _this.giImports = rd.giImports ;
130 toSourceStdClass: function()
132 var cfg = this.items[0]
133 var fcfg = Roo.apply({ }, this.items[0]);
134 delete fcfg['*class'];
135 delete fcfg['*extends'];
136 delete fcfg['*static'];
137 delete fcfg['|constructor'];
139 var hasExtends = (typeof(cfg['*extends']) != 'undefined') && cfg['*extends'].length;
140 var hasConstructor = (typeof(cfg['|constructor']) != 'undefined');
141 var isStatic = (typeof(cfg['*static']) == '*static');
146 newline = hasConstructor ?
149 cfg['//constructor'] + "\n" +
150 cfg['*class'] + " = " + cfg['|constructor'] + "\n\n"+
151 "Roo.extend(" + cfg['*class'] + ":, " + cfg['*extends'] + ", " :
153 cfg['//*class'] + "\n" +
154 cfg['*class'] + " = new " + cfg['*extends'] + "(" ;
161 newline = hasConstructor ?
163 cfg['//constructor'] + "\n" +
164 cfg['*class'] + " = " + cfg['|constructor'] + "\n\n"+
165 'Roo.apply( ' + cfg['*class'] + ".prototype , " :
167 cfg['//*class'] + "\n" +
168 cfg['*class'] + " = ";
171 endline = hasConstructor ? ');' : ';';
174 return this.outputHeader() +
176 this.objectToJsString(fcfg,1) +
187 // dump the file tree back out to a string.
189 if (typeof(this.items[0]['*class']) != 'undefined') {
190 return this.toSourceStdClass();
194 // technically there will be different versions of this.
195 var o = this.mungePropObj(this.items[0]);
199 return this.outputHeader() +
205 this.objectToJsString(o,2) +
207 ";", // end return value..
221 outputHeader : function()
223 var ret = '//<script type="text/javascript">' + "\n";
224 ret += "\n\n// gi imports\n";
225 Roo.each(this.giImports, function(i) {
226 ret += i + " = imports.gi." + i + ";\n";
228 ret += "\n\n// file imports\n";
229 for(var k in this.imports) {
230 ret += k + " = imports[" + JSON.stringify(this.imports[k]) + "];\n";
237 getTree : function( o ) {