X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Builder%2FProvider%2FProjectManager.js;h=d4f446f7ba9277ac0c1e9c40b5920707628b3f5e;hb=7c0e7f2665021ee4593bee6aa43366d16cfe7b26;hp=a4daf22c8155bed8246f86b099300e5903dd141c;hpb=ddb11de82d6c97bb45897cca62f77e4bbec7a838;p=app.Builder.js diff --git a/Builder/Provider/ProjectManager.js b/Builder/Provider/ProjectManager.js index a4daf22c8..d4f446f7b 100755 --- a/Builder/Provider/ProjectManager.js +++ b/Builder/Provider/ProjectManager.js @@ -7,7 +7,7 @@ console = imports.console; XObject = imports.XObject.XObject; Observable = imports.Observable.Observable; - +File = imports['../../File.js'].File; /** * * /home/alan/.BuilderConfig/* @@ -29,7 +29,7 @@ ProjectManager = new Observable({ }, - providers : { }, + palete : { }, projects : [], filename : false, @@ -43,28 +43,16 @@ ProjectManager = new Observable({ dir.make_directory(); return; } - - - + this.projects = []; - var gdir = GLib.dir_open(this.dirname,0); - while (true) { - - var fn = GLib.dir_read_name(gdir); - if (!fn) { - GLib.dir_close(gdir); - return; - } + var files = File.list(this.dirname); + for (var i =0 ; i < files.length;i++) { + var fn = files[i]; + if (!fn.match(/.json$/)) { continue; } - var file = Gio.file_new_for_path(this.dirname + '/' + fn); - Seed.print(this.dirname + '/' + fn); - var stream = file.read(); - var dstream = new Gio.DataInputStream.c_new(stream); - Seed.print(dstream); - - str = dstream.read_until(""); + var str = File.read(this.dirname + '/' + fn); if (!str || !str.length) { continue; // empty file. } @@ -84,7 +72,17 @@ ProjectManager = new Observable({ } + this.projects.sort(function(a,b) { + if (a.getName() == b.getName()) { + return 0; + } + return a.getName() > b.getName() ? 1 : -1; + + + }); + + @@ -149,6 +147,27 @@ ProjectManager = new Observable({ }, + + deleteProject : function (fn) + { + var newplist = []; + var _this = this; + this.projects.forEach(function(p) { + if (p.fn != fn) { + newplist.push(p); + return; + } + var file = _this.dirname + '/' + p.fn + '.json'; + if (File.exists(file)) { + File.remove(file); + } + + }); + this.projects = newplist; + this.fireEvent('changed', this); + }, + + getByFn : function (fn) { var ret = false; this.projects.forEach(function(p) { @@ -160,12 +179,16 @@ ProjectManager = new Observable({ return ret; }, - function getProvider(type) { - if (typeof(ProjectManager[type]) != 'undefined') { - return ProjectManager[type]; + getPalete: function(type) { + if (typeof(ProjectManager.palete[type]) != 'undefined') { + print ("ALREADY GOT " + type); + return ProjectManager.palete[type]; } - ProjectManager[type] = new imports.Builder.Provider.Palete[type][type](); - return ProjectManager[type]; + var cls = imports.Builder.Provider.Palete[type][type]; + + ProjectManager.palete[type] = new cls(); + print (typeof(ProjectManager.palete[type])); + return ProjectManager.palete[type]; }