}
+ public static string listAllToString()
+ {
+ var all = new Gee.ArrayList<Project>();
+
+ var fiter = projects.map_iterator();
+
+ while(fiter.next()) {
+ all.add(fiter.get_value());
+ }
+
+ all.sort((fa,fb) => {
+ return ((Project)fa).name.collate(((Project)fb).name);
+
+ });
+
+ var iter = all.list_iterator();
+ var ret = "ID\tName\tDirectory\n";
+ while (iter.next()) {
+ ret += "%s\t%s\t%s\n".printf(
+ iter.get().fn,
+ iter.get().name,
+ iter.get().firstPath()
+ );
+
+
+ }
+
+ return ret;
+
+ }
+
+
+
+ public static Project getProjectByHash(string fn)
+ {
+
+ var iter = projects.map_iterator();
+ while (iter.next()) {
+ if (iter.get_value().fn == fn) {
+ return iter.get_value();
+ }
+
+ }
+
+ return null;
+
+ }
// load project data from project file.
public static void factoryFromFile(string jsonfile)
{
- GLib.debug("parse %s\n", jsonfile);
+ GLib.debug("parse %s", jsonfile);
var pa = new Json.Parser();
pa.load_from_file(jsonfile);
if (node == null || node.get_node_type () != Json.NodeType.OBJECT) {
- GLib.debug("SKIP " + jsonfile + " - invalid format?\n");
+ GLib.debug("SKIP " + jsonfile + " - invalid format?");
return;
}
});
proj.initRooDatabase();
+ GLib.debug("Add Project %s", proj.id);
+
projects.set(proj.id,proj);
while(fiter.next()) {
files.add(fiter.get_value());
}
- files.sort((fa,fb) => {
+ files.sort((fa,fb) => {
return ((JsRender.JsRender)fa).name.collate(((JsRender.JsRender)fb).name);
});
}
+
+ public string listAllFilesToString()
+ {
+ this.scanDirs();
+ var iter = this.sortedFiles().list_iterator();
+ var ret = "ID\tName\tDirectory\n";
+ while (iter.next()) {
+ ret += "%s\n".printf(
+
+ iter.get().name
+
+ );
+
+
+ }
+
+ return ret;
+
+ }
+
+
+
+
public JsRender.JsRender? getByName(string name)
{
var f = fiter.get_value();
- GLib.debug ("Project.getByName: %s ?= %s\n" ,f.name , name);
+ GLib.debug ("Project.getByName: %s ?= %s" ,f.name , name);
if (f.name == name) {
return f;
}
};
return null;
}
+ public JsRender.JsRender? getByPath(string path)
+ {
+
+ var fiter = files.map_iterator();
+ while(fiter.next()) {
+
+ var f = fiter.get_value();
+
+
+ //GLib.debug ("Project.getByName: %s ?= %s" ,f.name , name);
+ if (f.path == path) {
+ return f;
+ }
+ };
+ return null;
+ }
public JsRender.JsRender? getById(string id)
{