- public class Gtk : JsRender
- {
-
-
- public Gtk(Project.Project project, string path) {
-
- base( project, path);
- this.xtype = "Gtk";
- this.language = "vala";
-
-
- //this.items = false;
- //if (cfg.json) {
- // var jstr = JSON.parse(cfg.json);
- // this.items = [ jstr ];
- // //console.log(cfg.items.length);
- // delete cfg.json; // not needed!
- // }
-
-
-
- // super?!?!
- this.id = "file-gtk-%d".printf(gid++);
- //console.dump(this);
- // various loader methods..
-
- // Class = list of arguments ... and which property to use as a value.
-
-
-
-
- }
-
-
- /*
- setNSID : function(id)
- {
-
- this.items[0]['*class'] = id;
-
-
- },
- getType: function() {
- return 'Gtk';
- },
- */
-
- public override void removeFiles() {
- var js = GLib.Path.get_dirname(this.path) +"/" + name + ".js";
- if (FileUtils.test(js, FileTest.EXISTS)) {
- GLib.FileUtils.remove(js);
- }
- var vala = GLib.Path.get_dirname(this.path) +"/" + name + ".vala";
- if (FileUtils.test(vala, FileTest.EXISTS)) {
- GLib.FileUtils.remove(vala);
- }
- }
-
- public override void loadItems() throws GLib.Error // : function(cb, sync) == original was async.
- {
-
- print("load Items!");
- if (this.tree != null) {
- return;
- }
-
- print("load: " + this.path);
-
-
- var pa = new Json.Parser();
- pa.load_from_file(this.path);
- var node = pa.get_root();
-
- if (node.get_node_type () != Json.NodeType.OBJECT) {
- throw new Error.INVALID_FORMAT ("Unexpected element type %s", node.type_name ());
- }
- var obj = node.get_object ();
- //this.modOrder = obj.get_string_member("modOrder");
- this.name = obj.get_string_member("name");
- this.parent = obj.get_string_member("parent");
- //this.permname = obj.get_string_member("permname");
- this.title = obj.get_string_member("title");
- //this.modOrder = obj.get_string_member("modOrder");
-
- // load items[0] ??? into tree...
- var bjs_version_str = this.jsonHasOrEmpty(obj, "bjs-version");
- bjs_version_str = bjs_version_str == "" ? "1" : bjs_version_str;
-
- if (obj.has_member("items")
- &&
- obj.get_member("items").get_node_type() == Json.NodeType.ARRAY
- &&
- obj.get_array_member("items").get_length() > 0
- ) {
- var ar = obj.get_array_member("items");
- var tree_base = ar.get_object_element(0);
- this.tree = new Node();
- this.tree.loadFromJson(tree_base, int.parse(bjs_version_str));