src/Builder4/WindowRooView.bjs
[app.Builder.js] / src / Project / Project.vala
index 52e358e..d5b0f5b 100644 (file)
@@ -139,12 +139,59 @@ namespace Project {
                
                }
                
+               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);
@@ -152,7 +199,7 @@ namespace Project {
 
                        
                        if (node == null || node.get_node_type () != Json.NodeType.OBJECT) {
-                               GLib.debug("SKIP " + jsonfile + " - invalid format?\n");
+                               GLib.debug("SKIP " + jsonfile + " - invalid format?");
                                return;
                        }
                        
@@ -199,6 +246,8 @@ namespace Project {
                        });
                        proj.initRooDatabase();
                        
+                       GLib.debug("Add Project %s", proj.id);
+                       
                        projects.set(proj.id,proj);
                        
                        
@@ -359,7 +408,7 @@ namespace Project {
                        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);
 
                        });
@@ -368,6 +417,29 @@ namespace Project {
                }
                
         
+        
+               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)
                {
                        
@@ -377,13 +449,29 @@ namespace Project {
                                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)
                {