X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=src%2FProject%2FProject.vala;h=b8b3bd8f85a3cd6505524251967d7f40c9872665;hb=1eb7406e95f4a90ed6e88f4a57efa53c329dc46d;hp=3972c814f650159bee79b946b694551dfc9457c0;hpb=ee6057cbd37965049896c934151dca45ce68719f;p=app.Builder.js diff --git a/src/Project/Project.vala b/src/Project/Project.vala index 3972c814f..b8b3bd8f8 100644 --- a/src/Project/Project.vala +++ b/src/Project/Project.vala @@ -21,7 +21,7 @@ namespace Project { // static array of all projects. public Gee.HashMap projects; - + public bool projects_loaded = false; @@ -40,6 +40,9 @@ namespace Project { public Gee.HashMap files ; //tree : false, public string xtype; + + public Json.Object json_project_data; + public Palete.RooDatabase roo_database; bool is_scanned; @@ -47,7 +50,8 @@ namespace Project { public Project (string path) { this.name = GLib.Path.get_basename(path); // default.. - + this.json_project_data = new Json.Object(); + this.is_scanned = false; this.paths = new Gee.HashMap(); this.files = new Gee.HashMap(); @@ -56,12 +60,17 @@ namespace Project { if (path.length > 0) { this.paths.set(path, "dir"); } + // dummy roo database... + this.initRooDatabase(); } - - + public void initRooDatabase() + { + + this.roo_database = new Palete.RooDatabase.from_project(this); + } @@ -131,7 +140,7 @@ namespace Project { return; } - var obj = node.get_object (); + var obj = node.get_object (); var xtype = obj.get_string_member("xtype"); @@ -148,6 +157,8 @@ namespace Project { var proj = factory(xtype, fpath); + proj.json_project_data = obj; // store the original object... + proj.fn = Path.get_basename(jsonfile).split(".")[0]; // might not exist? @@ -170,7 +181,13 @@ namespace Project { paths.foreach_member((sobj, key, val) => { proj.paths.set(key, "dir"); }); + proj.initRooDatabase(); + projects.set(proj.id,proj); + + + + } @@ -236,60 +253,41 @@ namespace Project { public string toJSON(bool show_all) { - var builder = new Json.Builder (); - - builder.begin_object (); - - builder.set_member_name ("name"); - builder.add_string_value (this.name); - - - builder.set_member_name ("fn"); - builder.add_string_value (this.fn); - - builder.set_member_name ("xtype"); - builder.add_string_value (this.xtype); - - builder.set_member_name ("runhtml"); - builder.add_string_value (this.runhtml); - - - builder.set_member_name ("rootURL"); - builder.add_string_value (this.rootURL); - builder.set_member_name ("base_template"); - builder.add_string_value (this.base_template); - // file ??? try/false? - builder.set_member_name ("paths"); - - - builder.begin_object (); + this.json_project_data.set_string_member("name", this.name); + this.json_project_data.set_string_member("fn", this.fn); + this.json_project_data.set_string_member("xtype", this.xtype); + this.json_project_data.set_string_member("runhtml", this.runhtml); + this.json_project_data.set_string_member("rootURL", this.rootURL); + this.json_project_data.set_string_member("base_template", this.base_template); + this.json_project_data.set_string_member("rootURL", this.rootURL); + + var paths = new Json.Object(); var iter = this.paths.map_iterator(); while (iter.next()) { - builder.set_member_name (iter.get_key()); - builder.add_string_value("path"); + paths.set_string_member(iter.get_key(), "path"); } - builder.end_object (); + this.json_project_data.set_object_member("paths", paths); + if (show_all) { - builder.set_member_name ("files"); - builder.begin_array (); + var files = new Json.Array(); + + var fiter = this.files.map_iterator(); while (fiter.next()) { - builder.add_string_value (fiter.get_key()); + files.add_string_element (fiter.get_key()); } + this.json_project_data.set_array_member("files", files); - - builder.end_array (); } - builder.end_object (); - var generator = new Json.Generator (); - var root = builder.get_root (); + var root = new Json.Node(Json.NodeType.OBJECT); + root.init_object(this.json_project_data); generator.set_root (root); if (show_all) { generator.pretty = true; @@ -532,7 +530,20 @@ namespace Project { } } + // wrapper around the javascript data... + public string get_string_member(string key) { + + if (!this.json_project_data.has_member(key)) { + return ""; + } + var ret = this.json_project_data.get_string_member(key); + if (ret == null) { + return ""; + } + return ret; + + } } } - \ No newline at end of file +