+/**
+ *
+ * this is the code represents a File when using the Gtk view..
+ *
+ * It ues NodeToGtk
+ *
+ *
+ */
+
+namespace JsRender {
+
+
+
+ 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;
+
+
+ }
+
+ this.language = "";
+
+ // fixme...
+
+
+ this.contents = "";
+
+ // super?!?!
+ this.id = "file-plain-%d".printf(plid++);
+ //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() {
+ 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.
+ {
+ if (this.loaded) {
+ return;
+ }
+ GLib.FileUtils.get_contents(this.path, out this.contents);
+ this.loaded = true;
+ }
+
+
+
+ public override string toSourcePreview()
+ {
+ return "";
+ }
+ public override void setSource(string str) {
+ this.contents = str;
+ }
+ public override string toSource()
+ {
+ return this.contents;
+
+
+
+ }
+ public override string toSourceCode()
+ {
+ return this.contents;
+
+
+
+ }
+ public override void save() {
+ 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 ) {}
+
+
+ /**
+ * saveJS
+ *
+ * save as a javascript file.
+ * why is this not save...???
+ *
+ */
+
+
+ string getHelpUrl(string cls)
+ {
+ return "";
+ }
+ public override void findTransStrings(Node? node )
+ {
+ // not yet..
+ }
+
+
+
+
+
+
+ }
+}
+
+
+