X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=src%2FJsRender%2FPlainFile.vala;h=69872879e17045d7ebda6b9aedebf6db5d9aed7b;hb=HEAD;hp=72ddeab45b6da6d5bf624ea4834837a9db2acf8f;hpb=ff6dd2c39f4f2364e318941d1c680a07d501f13d;p=app.Builder.js diff --git a/src/JsRender/PlainFile.vala b/src/JsRender/PlainFile.vala index 72ddeab45..69872879e 100644 --- a/src/JsRender/PlainFile.vala +++ b/src/JsRender/PlainFile.vala @@ -12,35 +12,45 @@ namespace JsRender { - int gid = 1; + int plid = 1; public class PlainFile : JsRender { - + string contents; public PlainFile(Project.Project project, string path) { base( project, path); this.xtype = "PlainFile"; + // if the file does not exist... + if (GLib.FileUtils.test(path, GLib.FileTest.EXISTS)) { + var f = File.new_for_path (path) ; + var info = f.query_info ("standard::*", 0); + var ct = info.get_content_type(); + this.content_type = ct; + } else { + this.content_type = "text/plain"; // hopefully.. +// var ar = path.split("."); + // var ext = ar[ar.length -1]; // hopefully not fail... + + // switch(ext) { + // case "vala"; + this.loaded = true; + - // fixme... - 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! - // } + } + + this.language = ""; + // fixme... + + this.contents = ""; // super?!?! - this.id = "file-gtk-%d".printf(gid++); + this.id = "file-plain-%d".printf(plid++); //console.dump(this); // various loader methods.. @@ -65,111 +75,56 @@ namespace JsRender { }, */ - 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 removeFiles() { + if (FileUtils.test(this.path, FileTest.EXISTS)) { + GLib.FileUtils.remove(this.path); } - - public override void loadItems() throws GLib.Error // : function(cb, sync) == original was async. - { - - print("load Items!"); - if (this.tree != null) { + + } + + public override void loadItems() throws GLib.Error // : function(cb, sync) == original was async. + { + if (this.loaded) { 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.name = obj.get_string_member("name"); - this.parent = obj.get_string_member("parent"); - this.title = obj.get_string_member("title"); - - if (obj.has_member("build_module")) { // should check type really.. - this.build_module = obj.get_string_member("build_module"); - } - - // 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)); - - } - NodeToVala.mungeFile(this); // force line numbering.. - - } - + GLib.FileUtils.get_contents(this.path, out this.contents); + this.loaded = true; + } + public override string toSourcePreview() { - return ""; + return ""; + } + public override void setSource(string str) { + this.contents = str; } - public override string toSource() { - - - if (this.tree == null) { - return ""; - } - - // var data = JSON.parse(JSON.stringify(this.items[0])); - // we should base this on the objects in the tree really.. - string[] inc = { "Gtk", "Gdk", "Pango", "GLib", "Gio", "GObject", - "GtkSource", "WebKit", "Vte" }; //, "GtkClutter" , "Gdl"]; - var src = ""; - - for (var i=0; i< inc.length; i++) { - var e = inc[i]; - src += e+" = imports.gi." + e +";\n"; - } - - src += "console = imports.console;\n"; // path?!!? - src += "XObject = imports.XObject.XObject;\n"; // path?!!? - - - src += this.name + "=new XObject("+ this.mungeToString(" ") + ");\n"; - src += this.name + ".init();\n"; - // register it in the cache - src += "XObject.cache['/" + this.name + "'] = " + this.name + ";\n"; + return this.contents; + - return src; + } + public override string toSourceCode() + { + return this.contents; + } - public override void save() { - this.saveBJS(); - // this.saveJS(); - disabled at present.. project settings will probably enable this later.. - - this.saveVala(); + if (!this.loaded) { + print("Ignoring Save - as file was never loaded?\n"); + return; + } + try { + this.writeFile(this.path, this.contents); + } catch (GLib.Error e) { + // error ??? + } + } // ignore these calls. public override void saveHTML ( string html ) {} @@ -182,56 +137,11 @@ namespace JsRender { * why is this not save...??? * */ - - void saveJS() - { - - var fn = GLib.Path.get_dirname(this.path) + "/" + this.name + ".js"; - print("WRITE :%s\n " , fn); - this.writeFile(fn, this.toSource()); - - } - - void saveVala() - { - if (this.tree == null) { - return; - } - var fn = GLib.Path.get_dirname(this.path) + "/" + this.name + ".vala"; - print("WRITE :%s\n " , fn); - this.writeFile(fn, NodeToVala.mungeFile(this)); - - - } - /* - valaCompileCmd : function() - { - - var fn = '/tmp/' + this.name + '.vala'; - print("WRITE : " + fn); - File.write(fn, this.toVala(true)); - - - - return ["valac", - "--pkg", "gio-2.0", - "--pkg" , "posix" , - "--pkg" , "gtk+-3.0", - "--pkg", "libnotify", - "--pkg", "gtksourceview-3.0", - "--pkg", "libwnck-3.0", - fn , "-o", "/tmp/" + this.name]; - - - - - }, - */ - + string getHelpUrl(string cls) { - return "http://devel.akbkhome.com/seed/" + cls + ".html"; + return ""; } public override void findTransStrings(Node? node ) {