3 * this is the code represents a File when using the Gtk view..
17 public class Gtk : JsRender
21 public Gtk(Project.Project project, string path) {
23 aconstruct( project, path);
25 this.language = "vala";
30 // var jstr = JSON.parse(cfg.json);
31 // this.items = [ jstr ];
32 // //console.log(cfg.items.length);
33 // delete cfg.json; // not needed!
39 this.id = "file-gtk-%d".printf(gid++);
41 // various loader methods..
43 // Class = list of arguments ... and which property to use as a value.
52 setNSID : function(id)
55 this.items[0]['*class'] = id;
64 public override void removeFiles() {
65 var js = GLib.Path.get_dirname(this.path) +"/" + name + ".js";
66 if (FileUtils.test(js, FileTest.EXISTS)) {
67 GLib.FileUtils.remove(js);
69 var vala = GLib.Path.get_dirname(this.path) +"/" + name + ".vala";
70 if (FileUtils.test(vala, FileTest.EXISTS)) {
71 GLib.FileUtils.remove(vala);
75 public override void loadItems() throws GLib.Error // : function(cb, sync) == original was async.
78 print("load Items!\n");
79 if (this.tree != null) {
85 print("load: %s\n" , this.path);
86 if (!GLib.FileUtils.test(this.path, GLib.FileTest.EXISTS)) {
94 var pa = new Json.Parser();
95 pa.load_from_file(this.path);
96 var node = pa.get_root();
98 if (node.get_node_type () != Json.NodeType.OBJECT) {
99 throw new Error.INVALID_FORMAT ("Unexpected element type %s", node.type_name ());
101 var obj = node.get_object ();
103 this.name = obj.get_string_member("name");
104 this.parent = obj.get_string_member("parent");
105 this.title = obj.get_string_member("title");
107 if (obj.has_member("build_module")) { // should check type really..
108 this.build_module = obj.get_string_member("build_module");
111 // load items[0] ??? into tree...
112 var bjs_version_str = this.jsonHasOrEmpty(obj, "bjs-version");
113 bjs_version_str = bjs_version_str == "" ? "1" : bjs_version_str;
115 if (obj.has_member("items")
117 obj.get_member("items").get_node_type() == Json.NodeType.ARRAY
119 obj.get_array_member("items").get_length() > 0
121 var ar = obj.get_array_member("items");
122 var tree_base = ar.get_object_element(0);
123 this.tree = new Node();
124 this.tree.loadFromJson(tree_base, int.parse(bjs_version_str));
127 NodeToVala.mungeFile(this); // force line numbering..
134 public override string toSourcePreview()
138 public override void setSource(string str) {}
140 public override string toSourceCode() // no seed support currently.
142 return NodeToVala.mungeFile(this);
145 // this is only used by dumping code...
146 public override string toSource() // no seed support currently.
149 return NodeToVala.mungeFile(this);
154 public override void save() {
156 // this.saveJS(); - disabled at present.. project settings will probably enable this later..
160 // ignore these calls.
161 public override void saveHTML ( string html ) {}
167 * save as a javascript file. - not used currently
168 * why is this not save...???
175 var fn = GLib.Path.get_dirname(this.path) + "/" + this.name + ".js";
176 print("WRITE :%s\n " , fn);
177 this.writeFile(fn, this.toSource());
182 public override string targetName()
184 return GLib.Path.get_dirname(this.path) + "/" + this.name + ".vala";
189 if (this.tree == null) {
192 var fn = this.targetName();
193 GLib.debug("WRITE :%s\n " , fn);
195 this.writeFile(fn, NodeToVala.mungeFile(this));
196 } catch (GLib.Error e) {}
201 valaCompileCmd : function()
204 var fn = '/tmp/' + this.name + '.vala';
205 print("WRITE : " + fn);
206 File.write(fn, this.toVala(true));
213 "--pkg" , "gtk+-3.0",
214 "--pkg", "libnotify",
215 "--pkg", "gtksourceview-3.0",
216 "--pkg", "libwnck-3.0",
217 fn , "-o", "/tmp/" + this.name];
227 public override void findTransStrings(Node? node )
232 public override string toGlade()
234 return NodeToGlade.mungeFile(this);