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 console.log("load Items!");
78 if (this.items !== false) {
82 throw "no callback for loadItems";
84 Seed.print("load: " + this.path);
87 var file = Gio.file_new_for_path(this.path);
90 file.read_async(0, null, function(source,result) {
91 var stream = source.read_finish(result)
92 var dstream = new Gio.DataInputStream.c_new(stream);
94 var src = dstream.read_until("");
95 var cfg = JSON.parse(src);
99 _this.name = cfg.name;
100 _this.parent = cfg.parent;
101 _this.title = cfg.title;
102 _this.items = cfg.items || [];
105 // update to new JSDOC api!?
107 var tstream = new JSDOC.TextStream(src);
108 var tr = new JSDOC.TokenReader( {
112 var toks = tr.tokenize(tstream);
113 //console.dump(toks);
115 var ts = new JSDOC.Collapse(toks);
116 //console.dump(ts.tokens);
117 var rd = new JSDOC.GtkFile(ts.tokens);
122 _this.items = [ src ];
127 console.dump(rd.cfg);
128 //!!??? have we got engouth!
129 // try parsing self..
130 _this.items = [ rd.cfg ];
131 _this.imports = rd.imports;
132 _this.giImports = rd.giImports ;
143 * fixme - update to new style
149 toSourceStdClass: function()
151 var cfg = this.items[0]
152 var fcfg = XObject.extend({ }, this.items[0]);
153 delete fcfg['*class'];
154 delete fcfg['*extends'];
155 delete fcfg['*static'];
156 delete fcfg['|constructor'];
158 var hasExtends = (typeof(cfg['*extends']) != 'undefined') && cfg['*extends'].length;
159 var hasConstructor = (typeof(cfg['|constructor']) != 'undefined');
160 var isStatic = (typeof(cfg['*static']) == '*static');
165 newline = hasConstructor ?
168 cfg['//constructor'] + "\n" +
169 cfg['*class'] + " = " + cfg['|constructor'] + "\n\n"+
170 "Roo.extend(" + cfg['*class'] + ":, " + cfg['*extends'] + ", " :
172 cfg['//*class'] + "\n" +
173 cfg['*class'] + " = new " + cfg['*extends'] + "(" ;
180 newline = hasConstructor ?
182 cfg['//constructor'] + "\n" +
183 cfg['*class'] + " = " + cfg['|constructor'] + "\n\n"+
184 'Roo.apply( ' + cfg['*class'] + ".prototype , " :
186 cfg['//*class'] + "\n" +
187 cfg['*class'] + " = ";
190 endline = hasConstructor ? ');' : ';';
193 return this.outputHeader() +
195 this.objectToJsString(fcfg,1) +
206 // dump the file tree back out to a string.
208 if (typeof(this.items[0]['*class']) != 'undefined') {
209 return this.toSourceStdClass();
213 // technically there will be different versions of this.
214 var o = this.mungePropObj(this.items[0]);
218 return this.outputHeader() +
224 this.objectToJsString(o,2) +
226 ";", // end return value..
240 outputHeader : function()
242 var ret = '//<script type="text/javascript">' + "\n";
243 ret += "\n\n// gi imports\n";
244 Roo.each(this.giImports, function(i) {
245 ret += i + " = imports.gi." + i + ";\n";
247 ret += "\n\n// file imports\n";
248 for(var k in this.imports) {
249 ret += k + " = imports[" + JSON.stringify(this.imports[k]) + "];\n";
256 getTree : function( o ) {