Fix #8003 - undo code
[roobuilder] / src / JsRender / Gtk.vala
index 57ce644..fad040f 100644 (file)
@@ -131,14 +131,17 @@ namespace JsRender {
                        ) {
                                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));
-
+                               this.loadTree(tree_base,  int.parse(bjs_version_str));
                        }
-                       NodeToVala.mungeFile(this); // force line numbering..
+                       this.gen_extended ? 
+                               NodeToValaExtended.mungeFile(this) :
+                               NodeToValaWrapped.mungeFile(this); // force line numbering..?? should we call toSourceCode???
                        this.loaded = true;
+                       this.updateUndo();
                
                }
+               
+               
             
            
        
@@ -153,10 +156,19 @@ namespace JsRender {
            public override string toSourceCode() // no seed support currently.
            {
                    if (this.version == this.last_source_version) {
+                       GLib.debug("toSource - using Cache");
                        return this.last_source;
                }
-                   this.last_source =   NodeToVala.mungeFile(this);
+               GLib.debug("toSource - generating %s", this.gen_extended  ? "Extended": "Wrapped");
+               
+                   this.last_source =          this.gen_extended ? 
+                               NodeToValaExtended.mungeFile(this) :
+                               NodeToValaWrapped.mungeFile(this);
+                               
                    this.last_source_version = this.version;
+                   
+                   
+                   
                    return this.last_source;
                    
            }
@@ -170,13 +182,17 @@ namespace JsRender {
                
            }
        
-           public override void save() {
+           public override void save() 
+           {
                this.saveBJS();
                // this.saveJS(); - disabled at present.. project settings will probably enable this later..
        
                this.saveVala();
 
-               this.getLanguageServer().document_save(this);
+                       
+               this.getLanguageServer().document_save.begin(this, (obj, res) => {
+                       this.getLanguageServer().document_save.end(res);
+               });
                BuilderApplication.showSpinner("spinner", "document save send");                
            }
                // ignore these calls.
@@ -214,7 +230,7 @@ namespace JsRender {
                        var fn = this.targetName();
                        GLib.debug("WRITE :%s\n " , fn);
                        try {
-                               this.writeFile(fn,  NodeToVala.mungeFile(this));
+                               this.writeFile(fn, this.toSourceCode());
                } catch (GLib.Error e) {}