XObject = imports.XObject.XObject;
Observable = imports.Observable.Observable;
-
+File = imports['../../File.js'].File;
/**
*
* /home/alan/.BuilderConfig/*
},
- providers : { },
+ palete : { },
projects : [],
filename : false,
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.
}
}
+ this.projects.sort(function(a,b) {
+ if (a.getName() == b.getName()) {
+ return 0;
+ }
+ return a.getName() > b.getName() ? 1 : -1;
+
+
+ });
+
+
},
+
+ 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) {
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];
}