src/JsRender/PlainFile.vala
[app.Builder.js] / src / JsRender / PlainFile.vala
1
2 /**
3  * 
4  *  this is the code represents a File when using the Gtk view..
5  *   
6  *  It ues NodeToGtk
7  * 
8  * 
9  */
10
11 namespace JsRender {
12
13
14  
15     int plid = 1;
16
17   
18     public  class PlainFile : JsRender
19     {
20                 string contents;
21
22         public PlainFile(Project.Project project, string path) {
23         
24             base( project, path);
25             this.xtype = "PlainFile";
26             
27             // if the file does not exist...
28             if (GLib.FileUtils.test(path, GLib.FileTest.EXISTS)) {
29                         var f = File.new_for_path (path) ;
30                         var info = f.query_info ("standard::*", 0);
31                         var ct = info.get_content_type();
32                     this.content_type = ct;
33             } else {
34                         this.content_type = "text/plain"; // hopefully..
35 //                      var ar = path.split(".");
36   //                    var ext = ar[ar.length -1]; // hopefully not fail...
37                         
38   //                    switch(ext) { 
39         //                      case "vala";
40                         this.loaded = true;
41                         
42             
43             }
44        
45             this.language = "";
46              
47             // fixme...
48
49             
50             this.contents = "";
51             
52             // super?!?!
53             this.id = "file-plain-%d".printf(plid++);
54             //console.dump(this);
55             // various loader methods..
56
57             // Class = list of arguments ... and which property to use as a value.
58        
59
60             
61             
62         }
63           
64
65         /*
66         setNSID : function(id)
67         {
68             
69             this.items[0]['*class'] = id;
70             
71             
72         },
73         getType: function() {
74             return 'Gtk';
75         },
76         */
77
78         public   override void   removeFiles() {
79                 if (FileUtils.test(this.path, FileTest.EXISTS)) {
80                         GLib.FileUtils.remove(this.path);
81                 }
82                  
83         }
84     
85         public   override void  loadItems() throws GLib.Error // : function(cb, sync) == original was async.
86         {
87            
88                GLib.FileUtils.get_contents(this.path, out this.contents);
89                this.loaded = true;
90         }
91      
92         
93                 
94         public override string toSourcePreview()
95         {
96                          return "";
97                 }
98                 public override void setSource(string str) {
99                         this.contents = str;
100                 }
101         public override string toSource()
102         {
103                         return this.contents;
104             
105              
106             
107         }
108                 
109         public override void save() {
110                 if (!this.loaded) {
111                         print("Ignoring Save  - as file was never loaded?\n");
112                         return;
113                 }
114                 try { 
115                     this.writeFile(this.path, this.contents);
116             } catch (GLib.Error e) {
117                     // error ???
118                 }
119             
120         }
121             // ignore these calls.
122         public override void saveHTML ( string html ) {}
123             
124                     
125         /** 
126          *  saveJS
127          * 
128          * save as a javascript file.
129          * why is this not save...???
130          * 
131          */ 
132          
133    
134         string getHelpUrl(string cls)
135         {
136             return ""; 
137         }
138         public override void  findTransStrings(Node? node )
139                 {
140                         // not yet..
141                 }
142         
143         
144           
145
146                 
147
148         }
149 }
150
151
152