resources/RooUsage.txt
[app.Builder.js] / src / JsRender / PlainFile.vala
index 1625634..6987287 100644 (file)
@@ -12,26 +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;
+                       
             
+            }
+       
+            this.language = "";
+             
             // fixme...
-            this.language = "vala";
+
             
-          
+            this.contents = "";
             
             // super?!?!
-            this.id = "file-plain-%d".printf(gid++);
+            this.id = "file-plain-%d".printf(plid++);
             //console.dump(this);
             // various loader methods..
 
@@ -56,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 ) {}
@@ -173,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 )
                {