src/Builder4/PopoverFileDetails.bjs
authorAlan Knowles <alan@roojs.com>
Tue, 12 May 2015 08:06:56 +0000 (16:06 +0800)
committerAlan Knowles <alan@roojs.com>
Tue, 12 May 2015 08:06:56 +0000 (16:06 +0800)
src/Builder4/PopoverFileDetails.vala

src/Builder4/PopoverFileDetails.bjs
src/Builder4/PopoverFileDetails.vala

index 8e36552..0975dff 100644 (file)
          "$ xns" : "Gtk"
         },
         {
+         "listeners" : {
+          "activate" : " ( ) =>  { \n  \n\tif (response_id < 1) { // cancel!\n            this.el.hide();\n            return;\n        }\n\n\n\n        if (_this.name.el.get_text().length  < 1) {\n            StandardErrorDialog.show(\n                this.el,\n                \"You have to set Component name \"\n            );\n             \n            return;\n        }\n        // what does this do?\n        \n        var isNew = _this.file.name.length  > 0 ? false : true;\n        /*\n        if (!isNew && this.file.name != _this.name.el.get_text()) {\n            Xcls_StandardErrorDialog.singleton().show(\n                this.el,\n                \"Sorry changing names does not work yet. \"\n            );\n             \n            return;\n        }\n        */\n         \n        \n      \n        // FIXME - this may be more complicated...\n        //for (var i in this.def) {\n        //    this.file[i] =  this.get(i).el.get_text();\n        //}\n\n        if (!isNew) {\n            try {\n                 this.updateFileFromEntry();\n             } catch( JsRender.Error.RENAME_FILE_EXISTS er) {\n                  Xcls_StandardErrorDialog.singleton().show(\n                    this.el,\n                    \"The name you used already exists \"\n                );\n                return;\n                 \n             }\n                                                        \n        \n            _this.file.save();\n            this.el.hide();\n            return;\n        }\n        var fn = this.name.el.get_text();\n        var dir = _this.project.firstPath();\n       \n        if (GLib.FileUtils.test(dir + \"/\" + fn + \".bjs\", GLib.FileTest.EXISTS)) {\n            Xcls_StandardErrorDialog.singleton().show(\n                this.el,\n                \"That file already exists\"\n            ); \n            return;\n        }\n       \n       var f =  JsRender.JsRender.factory(\n                _this.file.project.xtype,  \n                _this.file.project, \n                dir + \"/\" + fn + \".bjs\");\n\n        _this.file = f;\n        \n\n        \n        this.updateFileFromEntry();\n        _this.file.save();\n        _this.file.project.addFile(_this.file);\n        \n\t \n        // what about .js ?\n       \n        this.el.hide();\n        \n        \n        //var tmpl = this.project.loadFileOnly(DialogNewComponent.get('template').getValue());\n         \n        //var nf = _this.project.create(dir + \"/\" + _this.file.name + \".bjs\");\n        //for (var i in this.file) {\n        //    nf[i] = this.file[i];\n        //}\n        _this.success(_this.project, _this.file);\n        /*\n\n        -- fixme -- needs to be a signal..\n        if (DialogNewComponent.success != null) {\n            DialogNewComponent.success(_this.project, nf);\n        }\n        */\n}"
+         },
          "* pack" : "pack_start,?bool?,?bool?,?uint?",
          "xtype" : "Button",
          "string label" : "Save",
index 9b5bce6..f8e6e99 100644 (file)
@@ -689,6 +689,108 @@ public class Xcls_PopoverFileDetails : Object
 
             // set gobject values
             this.el.label = "Save";
+
+            // listeners 
+            this.el.activate.connect( ( ) =>  { 
+              
+               if (response_id < 1) { // cancel!
+                        this.el.hide();
+                        return;
+                    }
+            
+            
+            
+                    if (_this.name.el.get_text().length  < 1) {
+                        StandardErrorDialog.show(
+                            this.el,
+                            "You have to set Component name "
+                        );
+                         
+                        return;
+                    }
+                    // what does this do?
+                    
+                    var isNew = _this.file.name.length  > 0 ? false : true;
+                    /*
+                    if (!isNew && this.file.name != _this.name.el.get_text()) {
+                        Xcls_StandardErrorDialog.singleton().show(
+                            this.el,
+                            "Sorry changing names does not work yet. "
+                        );
+                         
+                        return;
+                    }
+                    */
+                     
+                    
+                  
+                    // FIXME - this may be more complicated...
+                    //for (var i in this.def) {
+                    //    this.file[i] =  this.get(i).el.get_text();
+                    //}
+            
+                    if (!isNew) {
+                        try {
+                             this.updateFileFromEntry();
+                         } catch( JsRender.Error.RENAME_FILE_EXISTS er) {
+                              Xcls_StandardErrorDialog.singleton().show(
+                                this.el,
+                                "The name you used already exists "
+                            );
+                            return;
+                             
+                         }
+                                                                    
+                    
+                        _this.file.save();
+                        this.el.hide();
+                        return;
+                    }
+                    var fn = this.name.el.get_text();
+                    var dir = _this.project.firstPath();
+                   
+                    if (GLib.FileUtils.test(dir + "/" + fn + ".bjs", GLib.FileTest.EXISTS)) {
+                        Xcls_StandardErrorDialog.singleton().show(
+                            this.el,
+                            "That file already exists"
+                        ); 
+                        return;
+                    }
+                   
+                   var f =  JsRender.JsRender.factory(
+                            _this.file.project.xtype,  
+                            _this.file.project, 
+                            dir + "/" + fn + ".bjs");
+            
+                    _this.file = f;
+                    
+            
+                    
+                    this.updateFileFromEntry();
+                    _this.file.save();
+                    _this.file.project.addFile(_this.file);
+                    
+                
+                    // what about .js ?
+                   
+                    this.el.hide();
+                    
+                    
+                    //var tmpl = this.project.loadFileOnly(DialogNewComponent.get('template').getValue());
+                     
+                    //var nf = _this.project.create(dir + "/" + _this.file.name + ".bjs");
+                    //for (var i in this.file) {
+                    //    nf[i] = this.file[i];
+                    //}
+                    _this.success(_this.project, _this.file);
+                    /*
+            
+                    -- fixme -- needs to be a signal..
+                    if (DialogNewComponent.success != null) {
+                        DialogNewComponent.success(_this.project, nf);
+                    }
+                    */
+            });
         }
 
         // user defined functions