public Xcls_build_module build_module;
public Xcls_dbcellrenderer dbcellrenderer;
public Xcls_dbmodel dbmodel;
+ public Xcls_dir dir;
+ public Xcls_dircellrenderer dircellrenderer;
+ public Xcls_dirmodel dirmodel;
public Xcls_save_btn save_btn;
// my vars (def)
- if (c.path.length > 0) {
-
- this.save_btn.el.set_label("Save");
- } else {
- this.save_btn.el.set_label("Create");
- _this.ftdbmodel.loadData("bjs"); // fixme - need to determine type..
-
- }
var ar = new Gee.ArrayList<string>();
_this.dbmodel.loadData(ar,"");
if (c.path.length > 0) {
+ this.save_btn.el.set_label("Save");
_this.filetype.el.hide();
_this.filetypelbl.el.hide();
- this.save_btn.el.set_label("Save");
+ _this.filetype.showhide(true); // as we only work on bjs files currently
} else {
this.save_btn.el.set_label("Create");
_this.ftdbmodel.loadData("bjs"); // fixme - need to determine type..
var child_1 = new Xcls_grid( _this );
child_1.ref();
this.el.pack_start ( child_1.el , false,false,4 );
- var child_2 = new Xcls_HButtonBox25( _this );
+ var child_2 = new Xcls_HButtonBox29( _this );
child_2.ref();
this.el.pack_end ( child_2.el , false,true,0 );
}
var child_15 = new Xcls_build_module( _this );
child_15.ref();
this.el.attach ( child_15.el , 1,7,1,1 );
+ var child_16 = new Xcls_Label25( _this );
+ child_16.ref();
+ this.el.attach ( child_16.el , 0,8 );
+ var child_17 = new Xcls_dir( _this );
+ child_17.ref();
+ this.el.attach ( child_17.el , 1,8 );
}
// user defined functions
is_bjs = ((string)vfname) == "bjs";
}
- for (var i = 2; i < 8;i++) {
- var el = _this.grid.el.get_child_at(0,i);
- if (is_bjs) {
- el.show();
- } else {
- el.hide();
- }
- el = _this.grid.el.get_child_at(1,i);
- if (is_bjs) {
- el.show();
- } else {
- el.hide();
- }
- }
-
-
+
+ // directory is only available for non-bjs
+ this.showhide(is_bjs);
});
}
// user defined functions
+ public void showhide (bool is_bjs) {
+ for (var i = 2; i < 9;i++) {
+ var el = _this.grid.el.get_child_at(0,i);
+
+ var showhide= is_bjs;
+ if (i> 7) {
+ showhide = !showhide;
+ }
+
+ if (showhide) {
+ el.show();
+ } else {
+ el.hide();
+ }
+ el = _this.grid.el.get_child_at(1,i);
+ if (showhide) {
+ el.show();
+ } else {
+ el.hide();
+ }
+ }
+ // load up the directories
+ //??? why can we not create bjs files in other directories??
+ if (!is_bjs && _this.file.path.length < 1) {
+ _this.dirmodel.loadData();
+
+
+ }
+
+
+ }
}
public class Xcls_ftdbcellrenderer : Object
{
}
+ public class Xcls_Label25 : Object
+ {
+ public Gtk.Label el;
+ private Xcls_PopoverFileDetails _this;
+
+
+ // my vars (def)
+
+ // ctor
+ public Xcls_Label25(Xcls_PopoverFileDetails _owner )
+ {
+ _this = _owner;
+ this.el = new Gtk.Label( "Directory" );
+
+ // my vars (dec)
+
+ // set gobject values
+ this.el.justify = Gtk.Justification.RIGHT;
+ this.el.xalign = 0.900000f;
+ this.el.visible = true;
+ }
+
+ // user defined functions
+ }
+
+ public class Xcls_dir : Object
+ {
+ public Gtk.ComboBox el;
+ private Xcls_PopoverFileDetails _this;
+
+
+ // my vars (def)
+
+ // ctor
+ public Xcls_dir(Xcls_PopoverFileDetails _owner )
+ {
+ _this = _owner;
+ _this.dir = this;
+ this.el = new Gtk.ComboBox();
- public class Xcls_HButtonBox25 : Object
+ // my vars (dec)
+
+ // set gobject values
+ var child_0 = new Xcls_dircellrenderer( _this );
+ child_0.ref();
+ this.el.pack_start ( child_0.el , true );
+ var child_1 = new Xcls_dirmodel( _this );
+ child_1.ref();
+ this.el.set_model ( child_1.el );
+
+ // init method
+
+ this.el.add_attribute(_this.dircellrenderer.el , "markup", 1 );
+ }
+
+ // user defined functions
+ }
+ public class Xcls_dircellrenderer : Object
+ {
+ public Gtk.CellRendererText el;
+ private Xcls_PopoverFileDetails _this;
+
+
+ // my vars (def)
+
+ // ctor
+ public Xcls_dircellrenderer(Xcls_PopoverFileDetails _owner )
+ {
+ _this = _owner;
+ _this.dircellrenderer = this;
+ this.el = new Gtk.CellRendererText();
+
+ // my vars (dec)
+
+ // set gobject values
+ }
+
+ // user defined functions
+ }
+
+ public class Xcls_dirmodel : Object
+ {
+ public Gtk.ListStore el;
+ private Xcls_PopoverFileDetails _this;
+
+
+ // my vars (def)
+
+ // ctor
+ public Xcls_dirmodel(Xcls_PopoverFileDetails _owner )
+ {
+ _this = _owner;
+ _this.dirmodel = this;
+ this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) );
+
+ // my vars (dec)
+
+ // set gobject values
+ }
+
+ // user defined functions
+ public void loadData () {
+
+
+
+ this.el.clear();
+
+ if (!(_this.project is Project.Gtk)) {
+ return;
+ }
+ var sd = ((Project.Gtk)_this.project).sourcedirs();
+
+ Gtk.TreeIter iter;
+ var el = this.el;
+
+ /// el.append(out iter);
+
+
+ // el.set_value(iter, 0, "");
+ // el.set_value(iter, 1, "aaa - Just add Element - aaa");
+
+ // el.append(out iter);
+
+
+ // el.set_value(iter, 0, "");
+ // el.set_value(iter, 1, "-- select a directoyr --");
+ //_this.build_module.el.set_active_iter(iter);
+
+ for (var i = 0; i < sd.length;i++) {
+
+
+ el.append(out iter);
+
+ el.set_value(iter, 0, sd[i]);
+ el.set_value(iter, 1, sd[i]);
+
+ //if (data.get(i) == cur) {
+ // _this.build_module.el.set_active_iter(iter);
+ // }
+
+ }
+ // this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);
+
+ }
+ }
+
+
+
+ public class Xcls_HButtonBox29 : Object
{
public Gtk.HButtonBox el;
private Xcls_PopoverFileDetails _this;
// my vars (def)
// ctor
- public Xcls_HButtonBox25(Xcls_PopoverFileDetails _owner )
+ public Xcls_HButtonBox29(Xcls_PopoverFileDetails _owner )
{
_this = _owner;
this.el = new Gtk.HButtonBox();
this.el.margin_right = 4;
this.el.margin_left = 4;
this.el.margin_bottom = 4;
- var child_0 = new Xcls_Button26( _this );
+ var child_0 = new Xcls_Button30( _this );
child_0.ref();
this.el.add ( child_0.el );
var child_1 = new Xcls_save_btn( _this );
// user defined functions
}
- public class Xcls_Button26 : Object
+ public class Xcls_Button30 : Object
{
public Gtk.Button el;
private Xcls_PopoverFileDetails _this;
// my vars (def)
// ctor
- public Xcls_Button26(Xcls_PopoverFileDetails _owner )
+ public Xcls_Button30(Xcls_PopoverFileDetails _owner )
{
_this = _owner;
this.el = new Gtk.Button();
_this.el.hide();
return;
}
+
+ // ---------------- NEW FILES...
+ Gtk.TreeIter iter;
+
+ if (!_this.filetype.el.get_active_iter(out iter)) {
+ // should not happen...
+ // so we are jut going to return without
+ StandardErrorDialog.show(
+ _this.mainwindow.el,
+ "You must select a file type. "
+ );
+ return;
+
+ }
+
+
var fn = _this.name.el.get_text();
- var dir = _this.project.firstPath();
+
+ Value ftypename;
+ _this.ftdbmodel.el.get_value (iter, 0, out ftypename);
+ var ext = ((string)ftypename);
+ var dir = _this.project.firstPath();
+ if (ext != "bjs") {
+
+ if (!_this.dir.el.get_active_iter(out iter)) {
+ // should not happen...
+ // so we are jut going to return without
+ StandardErrorDialog.show(
+ _this.mainwindow.el,
+ "You must select a directory "
+ );
+ return;
+ }
+ Value vdir;
+ _this.dirmodel.el.get_value (iter, 0, out vdir);
+ dir = (string)vdir;
+ }
+
+ var targetfile = dir + "/" + fn;
+
+ // strip the file type off the end..
+
+
+ var rx = new GLib.Regex("\\." + ext + "$",GLib.RegexCompileFlags.CASELESS);
+ targetfile = rx.replace(targetfile, targetfile.length, 0, "");
- if (GLib.FileUtils.test(dir + "/" + fn + ".bjs", GLib.FileTest.EXISTS)) {
+ if (GLib.FileUtils.test(targetfile + "." + ext, GLib.FileTest.EXISTS)) {
Xcls_StandardErrorDialog.singleton().show(
_this.mainwindow.el,
"That file already exists"
}
var f = JsRender.JsRender.factory(
- _this.file.project.xtype,
+ ext == "bjs" ? _this.file.project.xtype : "PlainFile",
_this.file.project,
- dir + "/" + fn + ".bjs");
+ targetfile + "." + ext);
_this.file = f;
_this.updateFileFromEntry();
_this.file.loaded = true;
_this.file.save();
- _this.file.project.addFile(_this.file);
+ if (ext == "bjs") {
+ _this.file.project.addFile(_this.file);
+ }
// what about .js ?
_this.done = true;
_this.el.hide();
-
+ // hopefull this will work with bjs files..
_this.success(_this.project, _this.file);