1 //<Script type="text/javascript">
4 GObject = imports.gi.GObject;
6 GLib = imports.gi.GLib;
8 console = imports.console;
9 XObject = imports.XObject.XObject;
11 Window = imports.Builder.Window.Window;
12 StandardErrorDialog = imports.Builder.StandardErrorDialog.StandardErrorDialog;
16 * basically uses a standard template ? pulled from the web?
18 * you have to pick which template, and give it a name..
20 * and pick which directory to put it in?
24 DialogNewComponent = new XObject({
27 // type: Gtk.WindowType.TOPLEVEL,
30 title : "New Component",
35 XObject.prototype.init.call(this);
36 this.el.add_button("OK",1 );
37 this.el.add_button("Cancel",0 );
41 this.el.set_default_size (600, 400);
50 c = c || { name : '' , xtype : '' };
51 // check whic project we are adding to..
52 XObject.extend(this, c);
54 this.el.set_screen(Window.el.get_screen());
57 for (var i in this.project.paths) {
65 this.get('directory_model').loadData(paths);
70 this.success = c.success;
72 var tm = this.get('template_model');
77 var dir = __script_path__ + '/templates/';
79 var f = Gio.file_new_for_path(dir);
80 f.enumerate_children_async ("*", Gio.FileQueryInfoFlags.NONE,
81 GLib.PRIORITY_DEFAULT, null, function(o,ar) {
83 var fe = f.enumerate_children_finish(ar);
85 while (ch = fe.next_file(null)) {
86 var add = dir + '/' + ch.get_name();
87 if (!add.match(/\.js$/)) {
90 tm.templates.push(add);
101 'delete-event' : function (widget, event) {
106 response : function (w, id)
108 if (id < 1) { // cancel!
117 if (!DialogNewComponent.get(xnsid).el.get_text().length ||
118 DialogNewComponent.get('template').getValue().length ||
119 DialogNewComponent.get('directory').getValue().length
121 StandardErrorDialog.show(
122 "You have to set Project name ,template and directory"
128 var dir = DialogNewComponent.get('template').getValue();
129 var xidns = DialogNewComponent.get('xnsid').get_text();
132 if (GLib.file_test (GLib.dir + '/' + xidns + '.js', GLib.FileTest.EXISTS)) {
133 StandardErrorDialog.show(
134 "That file already exists"
141 var tmpl = this.project.loadFileOnlyDialogNewComponent.get('template').getValue());
144 tmpl.copyTo(dir + '/' + xidns + '.js', function() {
146 _this.project.addFile(tmpl);
147 this.success(_this.project, tmpl);
167 packing : function(p,e) {
168 p.el.get_content_area().add(e.el)
174 packing : [ 'pack_start', false, true , 0 ],
179 packing : [ 'pack_start', false, true , 0 ],
181 label : "Component Name:"
189 packing : [ 'pack_end', true, true , 0 ],
191 setValue : function(v) {
194 getValue : function()
196 return this.el.get_text();
206 packing : [ 'pack_start', false, true , 0 ],
211 packing : [ 'pack_start', false, true , 0 ],
213 label : "Using Template:"
221 packing : [ 'pack_end', true, true , 0 ],
223 // set_text_column : [1]
224 //set_size_request : [150,-1]
228 setValue : function(v)
232 Roo.each(XN.get(this).template_model.templates, function(n) {
239 getValue : function()
241 var ix = this.el.get_active();
245 return XN.get(this).template_model.templates[ix];
247 var iter = new Gtk.TreeIter();
248 if (this.el.get_active_iter(iter)) {
251 var value = new GObject.Value('');
252 this.model.el.get_value(iter, 0, value);
261 _rendered : function ()
264 // _form.xtype = this;
265 this.el.add_attribute(this.items[0].el , 'markup', 1 );
266 //this.el.add_attribute(this.items[0].el , 'popup', 2 );
278 xtype : 'CellRendererText',
279 packing : ['pack_start'],
285 xid : 'template_model',
287 packing : [ 'set_model' ],
292 _rendered : function ()
295 this.el.set_column_types ( 2, [
296 GObject.TYPE_STRING, // real key
297 GObject.TYPE_STRING // real type
311 loadData : function () {
313 var iter = new Gtk.TreeIter();
315 Roo.each(this.templates, function(p) {
319 el.set_value(iter, 0, p);
320 el.set_value(iter, 1, p);
340 packing : [ 'pack_start', false, true , 0 ],
345 packing : [ 'pack_start', false, true , 0 ],
347 label : "In Directory:"
355 packing : [ 'pack_end', true, true , 0 ],
357 // set_text_column : [1]
358 //set_size_request : [150,-1]
362 setValue : function(v)
366 Roo.each(XN.get(this).directory_model.data, function(n, ix) {
373 getValue : function()
375 var ix = this.el.get_active();
379 return XN.get(this).directory_model.data[ix].xtype;
381 var iter = new Gtk.TreeIter();
382 if (this.el.get_active_iter(iter)) {
385 var value = new GObject.Value('');
386 this.model.el.get_value(iter, 0, value);
395 _rendered : function ()
398 // _form.xtype = this;
399 this.el.add_attribute(this.items[0].el , 'markup', 1 );
400 //this.el.add_attribute(this.items[0].el , 'popup', 2 );
412 xtype : 'CellRendererText',
413 packing : ['pack_start'],
420 packing : [ 'set_model' ],
422 xid: 'directory_model',
425 _rendered : function ()
428 this.el.set_column_types ( 2, [
429 GObject.TYPE_STRING, // real key
430 GObject.TYPE_STRING // real type
444 loadData : function (data) {
446 var iter = new Gtk.TreeIter();
448 Roo.each(data, function(p) {
453 el.set_value(iter, 0, p.id);
454 el.set_value(iter, 1, p.desc);
473 packing : [ 'pack_end', true, true , 0 ],
490 //_win = XN.xnew(create());