{
"build_module" : "builder",
+ "gen_extended" : false,
"items" : [
{
"# JsRender.JsRender file" : "null",
"# bool new_window" : true,
"$ xns" : "Gtk",
"@ void success" : "(Project.Project pr, JsRender.JsRender file)",
- "Gtk.PositionType position" : "Gtk.PositionType.RIGHT",
"Xcls_MainWindow mainwindow" : "null",
"bool done" : false,
+ "bool is_new" : true,
"bool modal" : true,
"id" : "PopoverFileDetails",
"items" : [
{
"$ pack" : "add",
"$ xns" : "Gtk",
- "* pack" : "add",
+ "* pack" : "set_child",
"Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL",
+ "bool hexpand" : true,
"bool homogeneous" : false,
+ "int margin_bottom" : 4,
+ "int margin_end" : 4,
+ "int margin_start" : 4,
+ "int margin_top" : 4,
"items" : [
{
"$ xns" : "Gtk",
- "* pack" : "pack_start,false,true,0",
- "string title" : "Add / Edit File",
- "xtype" : "HeaderBar"
- },
- {
- "$ homogeneous" : true,
- "$ xns" : "Gtk",
- "* pack" : "pack_start,false,false,4",
+ "* columns" : 2,
+ "* pack" : "append",
+ "bool hexpand" : true,
"id" : "grid",
- "int margin_left" : 4,
- "int margin_right" : 4,
+ "int column_spacing" : 4,
+ "int margin_end" : 4,
+ "int margin_start" : 4,
"items" : [
{
"$ justify" : "Gtk.Justification.RIGHT",
"$ xns" : "Gtk",
- "* pack" : "attach,0,0,1,1",
- "id" : "filetypelbl",
+ "id" : "filetype_lbl",
"label" : "File type",
"x_options" : 4,
"xalign" : 0.90000000000000002,
},
{
"$ xns" : "Gtk",
- "* init" : "this.el.add_attribute(_this.ftdbcellrenderer.el , \"markup\", 1 );",
- "* pack" : "attach,1,0,1,1",
+ "bool hexpand" : true,
+ "bool in_showhide" : false,
"id" : "filetype",
"items" : [
{
"$ xns" : "Gtk",
- "* pack" : "pack_start,true",
- "id" : "ftdbcellrenderer",
- "xtype" : "CellRendererText"
- },
- {
- "$ columns" : "typeof(string),typeof(string)",
- "$ xns" : "Gtk",
- "* pack" : "set_model",
- "id" : "ftdbmodel",
- "n_columns" : 2,
- "xtype" : "ListStore",
- "| void loadData" : [
- " (string cur) {",
- " this.el.clear(); ",
- " Gtk.TreeIter iter;",
+ "* prop" : "model",
+ "id" : "filetype_model",
+ "strings" : "{}",
+ "xtype" : "StringList",
+ "| void load" : [
+ "() {",
" 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, \"bjs\");",
- " el.set_value(iter, 1, \"User Interface File (bjs)\");",
- " _this.filetype.el.set_active_iter(iter);",
- "",
- " el.append(out iter);",
- " ",
- " el.set_value(iter, 0, \"vala\");",
- " el.set_value(iter, 1, \"Vala\");",
- "\tif (cur == \"vala\") {",
- "\t _this.filetype.el.set_active_iter(iter);",
- " }",
- "",
- "",
- "",
- " el.append(out iter);",
+ " while (el.get_n_items() > 0) {",
+ " \tel.remove(0);",
+ "\t}",
+ " \tel.append(\"bjs - User Interface File\");",
+ " ",
" ",
- " el.set_value(iter, 0, \"js\");",
- " el.set_value(iter, 1, \"Javascript\");",
- "",
- "\tif (cur == \"js\") {",
- "\t _this.filetype.el.set_active_iter(iter);",
- " }",
+ " switch(_this.project.xtype) {",
+ " \tcase \"Roo\":",
+ " \t \tel.append(\"js - Javascript File\");",
+ " \t \tel.append(\"css - CSS File\");",
+ " \t \tel.append(\"php - Javascript File\");",
+ " \t \t",
+ "\t\tbreak;",
"",
- " el.append(out iter);",
- " ",
- " el.set_value(iter, 0, \"css\");",
- " el.set_value(iter, 1, \"CSS\");",
+ "\tcase \"Gtk\":\t\t",
+ "\t\t\t",
+ " \t \tel.append(\"vala - Vala File\");",
+ " \t \tel.append(\"css - CSS File\");",
+ " \t \tel.append(\"other - Other Type\");",
+ " \t \tbreak;",
+ " \t default : ",
+ " \t \tbreak;",
+ "\t}",
"",
- "\tif (cur == \"css\") {",
- "\t _this.filetype.el.set_active_iter(iter);",
- " }",
- " ",
- "}",
- ""
+ "\t",
+ "\t",
+ "\t",
+ "}"
]
}
],
"listeners" : {
- "changed" : [
+ "notify[\"selected\"]" : [
"() => {",
- "\tGtk.TreeIter iter;",
- "\tbool is_bjs = true;",
- "\tif (this.el.get_active_iter(out iter)) {",
- "\t\tValue vfname;",
- "\t\t_this.ftdbmodel.el.get_value (iter, 0, out vfname);",
- "\t\t is_bjs = ((string)vfname) == \"bjs\";",
- "\t}",
- " ",
- " ",
- " // directory is only available for non-bjs ",
- " this.showhide(is_bjs);",
"",
+ " \t_this.onFileTypeChange();",
"",
- "}",
- ""
+ " }"
]
},
- "xtype" : "ComboBox",
- "| void showhide" : [
- "(bool is_bjs) {",
- "",
- "",
- "\tif (_this.project.xtype != \"Roo\") {",
- "\t \tis_bjs = false;",
- " \t}",
- "",
- "\tfor (var i = 2; i < 9;i++) {",
- "\t\tvar el = _this.grid.el.get_child_at(0,i);",
- "\t\t",
- "\t\tvar showhide= is_bjs;",
- "\t\tif (i> 7) {",
- "\t\t\tshowhide = !showhide;",
+ "xtype" : "DropDown",
+ "| string getValue" : [
+ "() {",
+ "\t",
+ "\tif (!_this.is_new) {",
+ "\t\treturn _this.file.xtype != \"Plainfile\" ? \"bjs\" : _this.file.file_ext;",
+ "\t}",
+ "\t",
+ "\tif (this.el.selected == Gtk.INVALID_LIST_POSITION) {",
+ "\t\treturn \"\";",
+ "\t}",
+ "\t",
+ "\treturn _this.filetype_model.el.get_string(this.el.selected).split(\" \")[0];",
+ "}"
+ ],
+ "| void setValue" : [
+ "(string cur) {",
+ "\tvar el = _this.filetype_model.el;",
+ "\tfor(var i= 0; i < el.get_n_items();i++) {",
+ "\t\tif (el.get_string(i).has_prefix(cur)) {",
+ "\t\t\tthis.el.selected = i;",
+ "\t\t\tbreak;",
"\t\t}",
- "\t\t",
- "\t\tif (showhide) {",
- "\t\t el.show();",
- "\t\t} else {",
- "\t\t\tel.hide();",
+ "\t}",
+ "}"
+ ]
+ },
+ {
+ "$ justify" : "Gtk.Justification.RIGHT",
+ "$ visible" : true,
+ "$ xns" : "Gtk",
+ "id" : "dir_dropdown_lbl",
+ "label" : "Create File in this Directory",
+ "x_options" : 4,
+ "xalign" : 0.90000000000000002,
+ "xtype" : "Label"
+ },
+ {
+ "$ xns" : "Gtk",
+ "id" : "dir_dropdown",
+ "int colspan" : 1,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "model",
+ "id" : "dir_model",
+ "strings" : "{}",
+ "xtype" : "StringList"
+ }
+ ],
+ "listeners" : {
+ "notify[\"selected\"]" : [
+ "() => {",
+ "",
+ "\t _this.onDirChanged();",
+ "\t",
+ "\t",
+ "\t",
+ " } "
+ ]
+ },
+ "xtype" : "DropDown",
+ "| string getValue" : [
+ "() {",
+ "\treturn _this.dir_model.el.get_string(this.el.selected);",
+ "}"
+ ],
+ "| void setValue" : [
+ "(string cur) {",
+ "\tvar el = _this.dir_model.el;",
+ "\tfor(var i= 0; i < el.get_n_items();i++) {",
+ "\t\tif (el.get_string(i) == cur) {",
+ "\t\t\tthis.el.selected = i;",
+ "\t\t\tbreak;",
"\t\t}",
- "\t\t el = _this.grid.el.get_child_at(1,i);",
- "\t\tif (showhide) {",
- "\t\t el.show();",
- "\t\t} else {",
- "\t\t\tel.hide();",
- "\t\t} ",
- " }",
- " // load up the directories",
- " //??? why can we not create bjs files in other directories??",
- "\t//if (!is_bjs && _this.file.path.length < 1) {",
- "\t",
- "\t\t_this.dirmodel.loadData();",
- "\t\t",
- "\t\t",
- "\t//}",
- " ",
- " ",
- "}",
- ""
+ "\t}",
+ "}"
]
},
{
"$ justify" : "Gtk.Justification.RIGHT",
"$ xns" : "Gtk",
- "* pack" : "attach,0,1,1,1",
- "label" : "Component Name",
+ "id" : "name_lbl",
+ "label" : "Component Name (File name without extension)",
"x_options" : 4,
"xalign" : 0.90000000000000002,
"xtype" : "Label"
{
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,1,1,1,1",
+ "bool hexpand" : true,
"id" : "name",
"xtype" : "Entry"
},
"$ justify" : "Gtk.Justification.RIGHT",
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,0,2,1,1",
+ "id" : "title_lbl",
"label" : "Title",
"x_options" : 4,
"xalign" : 0.90000000000000002,
"$ visible" : true,
"$ xns" : "Gtk",
"* pack" : "attach,1,2,1,1",
+ "bool hexpand" : true,
"id" : "title",
"xtype" : "Entry"
},
"$ justify" : "Gtk.Justification.RIGHT",
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,0,3,1,1",
+ "id" : "region_lbl",
"label" : "Region",
"tooltip_text" : "center, north, south, east, west",
"x_options" : 4,
{
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,1,3,1,1",
+ "bool hexpand" : true,
"id" : "region",
"xtype" : "Entry"
},
"$ justify" : "Gtk.Justification.RIGHT",
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,0,4,1,1",
+ "id" : "parent_lbl",
"label" : "Parent Name",
"x_options" : 4,
"xalign" : 0.90000000000000002,
{
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,1,4,1,1",
"id" : "parent",
"xtype" : "Entry"
},
"$ justify" : "Gtk.Justification.RIGHT",
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,0,5,1,1",
+ "id" : "permname_lbl",
"label" : "Permission Name",
"x_options" : 4,
"xalign" : 0.90000000000000002,
{
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,1,5,1,1",
"id" : "permname",
"xtype" : "Entry"
},
"$ justify" : "Gtk.Justification.RIGHT",
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,0,6,1,1",
+ "id" : "modOrder_lbl",
"label" : "Order (for tabs)",
"x_options" : 4,
"xalign" : 0.90000000000000002,
{
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,1,6,1,1",
"id" : "modOrder",
"xtype" : "Entry"
},
"$ justify" : "Gtk.Justification.RIGHT",
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,0,7,1,1",
- "label" : "Module to build (Vala only)",
+ "id" : "build_module_lbl",
+ "label" : "Module to build",
"x_options" : 4,
"xalign" : 0.90000000000000002,
"xtype" : "Label"
},
{
"$ xns" : "Gtk",
- "* init" : "this.el.add_attribute(_this.dbcellrenderer.el , \"markup\", 1 );",
- "* pack" : "attach,1,7,1,1",
"id" : "build_module",
"items" : [
{
"$ xns" : "Gtk",
- "* pack" : "pack_start,true",
- "id" : "dbcellrenderer",
- "xtype" : "CellRendererText"
- },
- {
- "$ columns" : "typeof(string),typeof(string)",
- "$ xns" : "Gtk",
- "* pack" : "set_model",
- "id" : "dbmodel",
- "n_columns" : 2,
- "xtype" : "ListStore",
- "| void loadData" : [
- " (Gee.ArrayList<string> data, string cur) {",
- " this.el.clear(); ",
- " 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 module --\");",
- " _this.build_module.el.set_active_iter(iter);",
- " ",
- " for (var i = 0; i < data.size;i++) {",
- " ",
- "",
- " el.append(out iter);",
- " ",
- " el.set_value(iter, 0, data.get(i));",
- " el.set_value(iter, 1, data.get(i));",
- " ",
- " if (data.get(i) == cur) {",
- " _this.build_module.el.set_active_iter(iter);",
- " }",
- " ",
- " }",
- " this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING); ",
- " ",
- "}",
- ""
+ "* prop" : "model",
+ "id" : "build_module_model",
+ "strings" : "{}",
+ "xtype" : "StringList",
+ "| void load" : [
+ "(Gee.HashMap<string,Project.GtkValaSettings>? compilegroups)",
+ "{",
+ "\t",
+ "\t_this.build_module.el.hide();",
+ "\t\t_this.build_module_lbl.el.hide();",
+ "\tvar el = _this.build_module_model.el;",
+ "\t while (el.get_n_items() > 0) {",
+ "\t\t\tel.remove(0);",
+ "\t}",
+ "\t",
+ "\tif (compilegroups == null) {",
+ "\t\treturn;",
+ "\t}",
+ "\tforeach(var k in compilegroups.keys) {",
+ "\t\tthis.el.append(k);",
+ "\t}",
+ "\tif (compilegroups.keys.size > 0) {",
+ "\t\t_this.build_module.el.selected = 0;",
+ "\t\t_this.build_module.el.show();",
+ "\t\t_this.build_module_lbl.el.show();",
+ "\t} else {",
+ "\t\t",
+ "\t}",
+ "\t",
+ "}"
]
}
],
- "xtype" : "ComboBox"
+ "xtype" : "DropDown",
+ "| string getValue" : [
+ " ",
+ "() {",
+ "\tif (this.el.selected < 0) {",
+ "\t\treturn \"\";",
+ "\t}",
+ "\t",
+ "\treturn _this.build_module_model.el.get_string(this.el.selected);",
+ "}",
+ " "
+ ],
+ "| void setValue" : [
+ "(string str) {",
+ "\tvar m = _this.build_module_model.el;",
+ "\tfor(var i = 0; i < m.get_n_items(); i++) {",
+ "\t\tif (m.get_string(i) == str) {",
+ "\t\t\tthis.el.selected = i;",
+ "\t\t\treturn;",
+ "\t\t}",
+ "\t}",
+ "\t\t",
+ "}"
+ ]
},
{
"$ justify" : "Gtk.Justification.RIGHT",
"$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "attach,0,8,1,1",
- "label" : "Directory",
+ "id" : "path_lbl",
+ "int colspan" : 1,
+ "label" : "Full path",
"x_options" : 4,
"xalign" : 0.90000000000000002,
"xtype" : "Label"
},
{
+ "$ visible" : true,
"$ xns" : "Gtk",
- "* init" : "this.el.add_attribute(_this.dircellrenderer.el , \"markup\", 1 );",
- "* pack" : "attach,1,8,1,1",
- "id" : "dir",
- "items" : [
- {
- "$ xns" : "Gtk",
- "* pack" : "pack_start,true",
- "id" : "dircellrenderer",
- "xtype" : "CellRendererText"
- },
- {
- "$ columns" : "typeof(string),typeof(string)",
- "$ xns" : "Gtk",
- "* pack" : "set_model",
- "id" : "dirmodel",
- "n_columns" : 2,
- "xtype" : "ListStore",
- "| void loadData" : [
- " () {",
- "\t",
- "\t",
- " ",
- " this.el.clear(); ",
- " ",
- " if (!(_this.project is Project.Gtk)) {",
- "\t\treturn;",
- "\t}",
- " 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); ",
- " ",
- "}",
- ""
- ]
- }
- ],
- "xtype" : "ComboBox"
- }
- ],
- "n_columns" : 2,
- "n_rows" : 7,
- "uint row_spacing" : 2,
- "xtype" : "Grid"
- },
- {
- "$ xns" : "Gtk",
- "* pack" : "add",
- "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
- "int margin_bottom" : 4,
- "int margin_left" : 4,
- "int margin_right" : 4,
- "int margin_top" : 4,
- "items" : [
+ "bool editable" : false,
+ "bool hexpand" : true,
+ "id" : "path",
+ "int colspan" : 1,
+ "xtype" : "Entry"
+ },
{
+ "$ justify" : "Gtk.Justification.RIGHT",
+ "$ visible" : true,
"$ xns" : "Gtk",
- "* pack" : "add",
- "listeners" : {
- "clicked" : [
- "() => { ",
- "",
- " _this.done = true;",
- " _this.el.hide(); ",
- "}"
- ]
- },
- "string label" : "Cancel",
- "xtype" : "Button"
+ "id" : "gen_lbl",
+ "int colspan" : 1,
+ "label" : "Generate as Extended (no working)",
+ "x_options" : 4,
+ "xalign" : 0.90000000000000002,
+ "xtype" : "Label"
},
{
"$ xns" : "Gtk",
- "* pack" : "add",
- "id" : "save_btn",
+ "id" : "gen",
"listeners" : {
- "clicked" : [
- "( ) => { ",
- "",
- " ",
- "",
- "",
- "\tif (_this.name.el.get_text().length < 1) {",
- "\t Xcls_StandardErrorDialog.singleton().show(",
- "\t _this.mainwindow.el,",
- "\t \"You have to set Component name \"",
- "\t );",
- "\t ",
- "\t return;",
- "\t}",
- "\t// what does this do?",
- "\t",
- "\tvar isNew = _this.file.name.length > 0 ? false : true;",
- "\t/*",
- "\tif (!isNew && this.file.name != _this.name.el.get_text()) {",
- "\t Xcls_StandardErrorDialog.singleton().show(",
- "\t this.el,",
- "\t \"Sorry changing names does not work yet. \"",
- "\t );",
- "\t ",
- "\t return;",
- "\t}",
- "\t*/",
- "\t ",
- "\t",
- " ",
- "\t// FIXME - this may be more complicated...",
- "\t//for (var i in this.def) {",
- "\t// this.file[i] = this.get(i).el.get_text();",
- "\t//}",
- "",
- "\tif (!isNew) {",
- "\t try {",
- "\t _this.updateFileFromEntry();",
- "\t } catch( JsRender.Error.RENAME_FILE_EXISTS er) {",
- "\t Xcls_StandardErrorDialog.singleton().show(",
- "\t _this.mainwindow.el,",
- "\t \"The name you used already exists \"",
- "\t );",
- "\t return;",
- "\t ",
- "\t }",
+ "toggled" : [
+ "( ) => {",
+ "\t ",
+ "\tthis.el.label = this.el.active ? \"Extended\" : \"Wrapped\";",
"",
- "\t _this.done = true;",
- "\t _this.file.save();",
- "\t _this.el.hide();",
- "\t return;",
- "\t}",
- "\t",
- "\t// ---------------- NEW FILES...",
- "\tGtk.TreeIter iter;",
- "",
- "\tif (!_this.filetype.el.get_active_iter(out iter)) {",
- "\t\t// should not happen...",
- "\t\t// so we are jut going to return without ",
- "\t\tXcls_StandardErrorDialog.singleton().show(",
- "\t _this.mainwindow.el,",
- "\t \"You must select a file type. \"",
- "\t );",
- "\t return;",
- "\t\t ",
- "\t}",
- "\t",
- "\t",
- "\tvar fn = _this.name.el.get_text();",
- "\t",
- "\tValue ftypename;",
- "\t_this.ftdbmodel.el.get_value (iter, 0, out ftypename);",
- "\tvar ext = ((string)ftypename);",
- "\tvar dir = _this.project.firstPath(); ",
- "\tif (ext != \"bjs\") {",
- "\t ",
- "\t\tif (!_this.dir.el.get_active_iter(out iter)) {",
- "\t\t\t// should not happen...",
- "\t\t\t// so we are jut going to return without ",
- "\t\t\tXcls_StandardErrorDialog.singleton().show(",
- "\t\t\t _this.mainwindow.el,",
- "\t\t\t \"You must select a directory \"",
- "\t\t\t);",
- "\t\t\treturn;",
- "\t\t}",
- "\t\tValue vdir;",
- "\t\t_this.dirmodel.el.get_value (iter, 0, out vdir);",
- "\t\tdir = (string)vdir;",
- "\t}",
- "\t",
- "\tvar targetfile = dir + \"/\" + fn;",
- "\t",
- "\t// strip the file type off the end..",
- "\t",
- "\t",
- " var rx = new GLib.Regex(\"\\\\.\" + ext + \"$\",GLib.RegexCompileFlags.CASELESS);",
- " targetfile = rx.replace(targetfile, targetfile.length, 0, \"\"); ",
- " ",
- "\tif (GLib.FileUtils.test(targetfile + \".\" + ext, GLib.FileTest.EXISTS)) {",
- "\t Xcls_StandardErrorDialog.singleton().show(",
- "\t _this.mainwindow.el,",
- "\t \"That file already exists\"",
- "\t ); ",
- "\t return;",
- "\t}",
- " ",
- " var f = JsRender.JsRender.factory(",
- "\t\text == \"bjs\" ? _this.file.project.xtype : \"PlainFile\", ",
- "\t\t_this.file.project, ",
- "\t\ttargetfile + \".\" + ext);",
- "",
- "\t_this.file = f;",
- "\t",
- "",
- "\t",
- "\t_this.updateFileFromEntry();",
- "\t_this.file.loaded = true;",
- "\t_this.file.save();",
- "\tif (ext == \"bjs\") {",
- "\t\t_this.file.project.addFile(_this.file);",
- "\t}",
- "\t",
- " ",
- "\t// what about .js ?",
- " _this.done = true;",
- "\t_this.el.hide();",
- "",
- "// hopefull this will work with bjs files..",
- "\t",
- "\t_this.success(_this.project, _this.file);",
- " ",
- "}"
+ "}",
+ ""
]
},
- "string label" : "Save",
- "xtype" : "Button"
+ "string label" : "Wrapped",
+ "xtype" : "CheckButton"
}
],
- "xtype" : "ButtonBox"
+ "uint row_spacing" : 2,
+ "xtype" : "Grid",
+ "| void xhideRow" : [
+ "(int row) ",
+ "{",
+ "\tvar el = _this.grid.el.get_child_at(0,row);",
+ "",
+ "\tel.hide();",
+ "\tel = _this.grid.el.get_child_at(1,row);",
+ "\tel.hide();",
+ "",
+ "}"
+ ],
+ "| void xshowAllRows" : [
+ "() {",
+ "\tfor (var i = 2; i < 10;i++) {",
+ "\t\tvar el = _this.grid.el.get_child_at(0,i);",
+ "\t\tel.show();",
+ "\t\tel = _this.grid.el.get_child_at(1,i);",
+ "\t\tel.show();",
+ " }",
+ "}"
+ ]
}
],
"xtype" : "Box"
+ },
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "titlebar",
+ "bool show_title_buttons" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* pack" : "pack_start",
+ "listeners" : {
+ "clicked" : [
+ "() => { ",
+ " \t_this.done = true;",
+ " _this.el.hide(); ",
+ "}"
+ ]
+ },
+ "string label" : "Cancel",
+ "xtype" : "Button"
+ },
+ {
+ "$ css_classes" : "{ \"suggested-action\" }",
+ "$ xns" : "Gtk",
+ "* pack" : "pack_end",
+ "bool always_show_image" : true,
+ "bool hexpand" : false,
+ "id" : "save_btn",
+ "listeners" : {
+ "clicked" : [
+ "( ) => { ",
+ "",
+ " ",
+ "",
+ "",
+ "\tif (_this.name.el.get_text().length < 1) {",
+ "\t Xcls_StandardErrorDialog.singleton().show(",
+ "\t _this.mainwindow.el,",
+ "\t \"You have to set a Component name \"",
+ "\t );",
+ "\t ",
+ "\t return;",
+ "\t}",
+ "\t// what does this do?",
+ "\t",
+ " ",
+ "\t/*",
+ "\tif (!isNew && this.file.name != _this.name.el.get_text()) {",
+ "\t Xcls_StandardErrorDialog.singleton().show(",
+ "\t this.el,",
+ "\t \"Sorry changing names does not work yet. \"",
+ "\t );",
+ "\t ",
+ "\t return;",
+ "\t}",
+ "\t*/",
+ "\t ",
+ " ",
+ "\t// FIXME - this may be more complicated...",
+ "\t//for (var i in this.def) {",
+ "\t// this.file[i] = this.get(i).el.get_text();",
+ "\t//}",
+ "",
+ "\tif (!_this.is_new) {",
+ "\t // try {",
+ "\t ",
+ "\t \tvar old_target = _this.file.build_module;",
+ " _this.updateFileFromEntry();",
+ "\t if (_this.project.xtype == \"Gtk\" && old_target != _this.file.build_module) {",
+ "\t \tvar gp = (JsRender.Gtk)_this.file;",
+ "\t \tgp.updateCompileGroup(old_target, _this.file.build_module);",
+ " \t}",
+ "",
+ "\t _this.done = true;",
+ "\t _this.file.save();",
+ "\t _this.el.hide();",
+ "\t return;",
+ "\t} ",
+ "\t",
+ "\t// ---------------- NEW FILES...",
+ "\tvar ftype = _this.filetype.getValue();",
+ "",
+ "\tif (ftype == \"\") {",
+ "\t\t// should not happen...",
+ "\t\t// so we are jut going to return without ",
+ "\t\tXcls_StandardErrorDialog.singleton().show(",
+ "\t _this.mainwindow.el,",
+ "\t \"You must select a file type. \"",
+ "\t );",
+ "\t return;",
+ "\t\t ",
+ "\t}",
+ "\t",
+ "\t",
+ "\tvar fn = _this.name.el.get_text();",
+ "\t",
+ "\t ",
+ "\tvar ext = ftype;",
+ "\t//var dir = _this.project.path; ",
+ "\t ",
+ "\t var dir = _this.dir_dropdown.getValue();",
+ "\t",
+ "\t ",
+ "\t",
+ "\t ",
+ "\tvar targetfile = _this.project.path;",
+ "\tif (dir != \"\") {",
+ "\t\ttargetfile += dir;",
+ "\t}",
+ "\ttargetfile += \"/\" + fn;",
+ "\t",
+ "\t// strip the file type off the end..",
+ "\t",
+ "\ttry {",
+ "\t\tvar rx = new GLib.Regex(\"\\\\.\" + ext + \"$\",GLib.RegexCompileFlags.CASELESS);",
+ "\t\tfn = rx.replace(targetfile, targetfile.length, 0, \"\"); ",
+ "\t } catch (RegexError e) {} // ignore.",
+ "\t ",
+ "\t targetfile += \".\" + ext;",
+ "\t ",
+ "\t ",
+ "\tif (GLib.FileUtils.test(targetfile, GLib.FileTest.EXISTS)) {",
+ "\t Xcls_StandardErrorDialog.singleton().show(",
+ "\t _this.mainwindow.el,",
+ "\t \"That file already exists\"",
+ "\t ); ",
+ "\t return;",
+ "\t}",
+ "\tJsRender.JsRender f;",
+ " try {",
+ "\t f = JsRender.JsRender.factory(",
+ "\t\t\text == \"bjs\" ? _this.file.project.xtype : \"PlainFile\", ",
+ "\t\t\t_this.file.project, ",
+ "\t\t\ttargetfile);",
+ "\t} catch (JsRender.Error e) {",
+ "\t\tXcls_StandardErrorDialog.singleton().show(",
+ "\t _this.mainwindow.el,",
+ "\t \"Error creating file\"",
+ "\t ); ",
+ "\t\treturn;",
+ "\t}",
+ "\t_this.file = f;",
+ "\t",
+ "\t",
+ "",
+ "\t",
+ "\t_this.updateFileFromEntry();",
+ "\t_this.file.loaded = true;",
+ "\t_this.file.save();",
+ " _this.file.project.addFile(_this.file);",
+ " var sel = _this.filetype.getValue();",
+ "\t if (_this.file.project.xtype == \"Gtk\" && ",
+ "\t \t_this.file.build_module.length > 0 &&",
+ "\t \t( sel == \"bjs\" || sel == \"vala\")) {",
+ "\t ",
+ "\t\tvar pr = (Project.Gtk) _this.file.project;",
+ "\t\tif (pr.compilegroups.has_key(_this.file.build_module)) {",
+ "\t\t\tvar cg = pr.compilegroups.get(_this.file.build_module);",
+ "\t\t\tif (!cg.sources.contains(_this.file.relpath)) {",
+ "\t\t\t\tcg.sources.add(_this.file.relpath);",
+ "\t\t\t}",
+ "\t\t}",
+ "\t",
+ "\t}",
+ "\t ",
+ " ",
+ "\t// what about .js ?",
+ " _this.done = true;",
+ "\t_this.el.hide();",
+ "",
+ "// hopefull this will work with bjs files..",
+ "\t",
+ "\t_this.success(_this.project, _this.file);",
+ " ",
+ "}"
+ ]
+ },
+ "string icon_name" : "document-save",
+ "string label" : "Save",
+ "xtype" : "Button"
+ }
+ ],
+ "title" : "Add / Edit File",
+ "xtype" : "HeaderBar"
}
],
"listeners" : {
- "closed" : [
- "() => {",
- " if (!this.done) {",
- " _this.el.show();",
- " ",
- " }",
- "} "
- ],
- "hide" : [
+ "close_request" : [
"( ) => {",
- "",
- " if (!this.done) {",
- " _this.el.show();",
- " ",
- " }",
+ "\t_this.el.hide();",
+ "\treturn true;",
"}",
""
]
},
+ "string title" : "Add / Edit File",
"uint border_width" : 0,
- "xtype" : "Popover",
+ "xtype" : "Window",
+ "| void hideAll" : [
+ "() {",
+ "",
+ "\t// exiting only",
+ "\tthis.path_lbl.el.hide();",
+ " this.path.el.hide();",
+ " ",
+ " // new ",
+ " this.name_lbl.el.hide();",
+ " this.name.el.hide();",
+ " //new ",
+ " this.dir_dropdown_lbl.el.hide();",
+ " this.dir_dropdown.el.hide();",
+ "\t// roo",
+ "\tthis.title_lbl.el.hide();",
+ "\tthis.title.el.hide();",
+ "\t",
+ "\tthis.region_lbl.el.hide();",
+ "\tthis.region.el.hide();",
+ "\t",
+ "\tthis.parent_lbl.el.hide();",
+ "\tthis.parent.el.hide();",
+ "\t",
+ "\tthis.permname_lbl.el.hide();",
+ "\tthis.permname.el.hide();",
+ "\t",
+ "\tthis.modOrder_lbl.el.hide();",
+ "\tthis.modOrder.el.hide();",
+ "\t",
+ "\tthis.build_module_lbl.el.hide();",
+ "\tthis.build_module.el.hide();",
+ "\t",
+ "\tthis.gen_lbl.el.hide();",
+ "\tthis.gen.el.hide();",
+ "\t\tthis.filetype_lbl.el.hide();",
+ "\t\tthis.filetype.el.hide();",
+ "}\t"
+ ],
+ "| void onDirChanged" : [
+ "() {",
+ "if (this.dir_dropdown.el.selected == Gtk.INVALID_LIST_POSITION) {",
+ "\t\tthis.build_module_lbl.el.hide();",
+ "\t\tthis.build_module.el.hide();",
+ "\t\tthis.name_lbl.el.hide();",
+ "\t\tthis.name.el.hide();",
+ "\t\t ",
+ " \tthis.gen_lbl.el.hide();",
+ "\t\tthis.gen.el.hide();",
+ " ",
+ "\t\treturn;",
+ "\t\t",
+ "\t",
+ "\t}",
+ "\t// directory selected",
+ "\tvar sel = this.filetype.getValue();",
+ "\t",
+ "\tif (this.file.project.xtype==\"Gtk\" && (sel == \"bjs\" || sel == \"vala\")) {",
+ "\t\tthis.build_module_lbl.el.show();",
+ "\t\tthis.build_module.el.show();",
+ "\t}",
+ "\tthis.name_lbl.el.show();",
+ "\tthis.name.el.show();",
+ "\t",
+ "\tif (sel == \"bjs\") {",
+ " _this.gen_lbl.el.show();",
+ " _this.gen.el.show();",
+ " }",
+ " ",
+ " if (this.file.project.xtype == \"Roo\" && sel == \"bjs\") {",
+ " \tthis.title_lbl.el.show();",
+ "\t\tthis.title.el.show();",
+ "\t\t",
+ "\t\tthis.region_lbl.el.show();",
+ "\t\tthis.region.el.show();",
+ "\t\t",
+ "\t\tthis.parent_lbl.el.show();",
+ "\t\tthis.parent.el.show();",
+ "\t\t",
+ "\t\tthis.permname_lbl.el.show();",
+ "\t\tthis.permname.el.show();",
+ "\t\t",
+ "\t\tthis.modOrder_lbl.el.show();",
+ "\t\tthis.modOrder.el.show();",
+ "\t}",
+ " ",
+ " ",
+ "}"
+ ],
+ "| void onFileTypeChange" : [
+ "() {",
+ "\tif (this.filetype.el.selected == Gtk.INVALID_LIST_POSITION) {",
+ "\t\tthis.dir_dropdown.el.hide();",
+ "\t\tthis.dir_dropdown_lbl.el.hide();",
+ "\t\tthis.build_module_lbl.el.hide();",
+ "\t\tthis.build_module.el.hide();",
+ "\t\tthis.name_lbl.el.hide();",
+ "\t\tthis.name.el.hide();",
+ "\t ",
+ " \tthis.gen_lbl.el.hide();",
+ "\t\tthis.gen.el.hide();",
+ " ",
+ " ",
+ " \tthis.title_lbl.el.hide();",
+ "\t\tthis.title.el.hide();",
+ "\t\t",
+ "\t\tthis.region_lbl.el.hide();",
+ "\t\tthis.region.el.hide();",
+ "\t\t",
+ "\t\tthis.parent_lbl.el.hide();",
+ "\t\tthis.parent.el.hide();",
+ "\t\t",
+ "\t\tthis.permname_lbl.el.hide();",
+ "\t\tthis.permname.el.hide();",
+ "\t\t",
+ "\t\tthis.modOrder_lbl.el.hide();",
+ "\t\tthis.modOrder.el.hide();",
+ " ",
+ "\t\treturn;",
+ "\t\t ",
+ "\t}",
+ "\t",
+ "\tthis.dir_dropdown.el.show();",
+ "\tthis.dir_dropdown_lbl.el.show();",
+ "\tvar sel = this.filetype.getValue();",
+ "\t",
+ "\tvar old_sel = _this.dir_dropdown.el.selected != Gtk.INVALID_LIST_POSITION;",
+ "\tvar olddir = this.dir_dropdown.getValue();",
+ "\tGLib.debug(\"old dir = %s\", olddir);",
+ "\tif (this.file.project.xtype==\"Gtk\" && (sel == \"bjs\" || sel == \"vala\")) {",
+ "\t\t_this.project.loadDirsToStringList(_this.dir_model.el, \"/src\");",
+ "\t\tif (old_sel && olddir.has_prefix(\"/src\")) {",
+ "\t\t \tthis.dir_dropdown.setValue(olddir);",
+ " \t\t} else {",
+ "\t \t _this.dir_dropdown.el.selected = Gtk.INVALID_LIST_POSITION;",
+ " \t }",
+ " ",
+ "\t} else {",
+ "",
+ " _this.project.loadDirsToStringList(_this.dir_model.el, \"\");",
+ "\t\tif (old_sel) {",
+ "\t\t\tthis.dir_dropdown.setValue(olddir);",
+ "\t\t} else {",
+ "\t\t _this.dir_dropdown.el.selected = Gtk.INVALID_LIST_POSITION;",
+ "\t }",
+ " ",
+ " }",
+ "",
+ " ",
+ " // is this confusing? - should we just strip out / add if necessary..",
+ " if (sel == \"bjs\" || sel == \"vala\" || sel == \"js\" || sel == \"css\" || sel == \"php\") {",
+ " _this.name_lbl.el.label = \"Component Name (Filename with-out extension)\";\t\t\t\t ",
+ " } else {",
+ "\t _this.name_lbl.el.label = \"File Name (with extension)\";",
+ " }",
+ " ",
+ "}"
+ ],
"| void show" : [
- "(JsRender.JsRender c, Gtk.Widget btn, bool new_window) ",
+ "(JsRender.JsRender c, Gtk.Window pwin, bool new_window) ",
"{",
+ " ",
" this.project = c.project;",
" this.done = false;",
" this.new_window = new_window;",
" ",
" //if (!this.el) {",
" //this.init();",
- " //}",
- " ",
+ " //} ",
+ " ",
+ " this.is_new = c.name == \"\";",
+ "",
" _this.name.el.set_text(c.name);",
" _this.title.el.set_text(c.title);",
" _this.parent.el.set_text(c.parent); ",
" _this.region.el.set_text(c.region);",
" _this.modOrder.el.set_text(c.modOrder);",
- " _this.permname.el.set_text(c.permname);",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
+ " _this.permname.el.set_text(c.permname);",
+ " ",
+ " _this.gen.el.active = c.gen_extended;",
+ " ",
+ "",
" ",
- " var ar = new Gee.ArrayList<string>();",
- " _this.dbmodel.loadData(ar,\"\");",
- " // load the modules... if relivant..",
" if (this.project.xtype == \"Gtk\") {",
- " var p = (Project.Gtk)c.project;",
- " var cg = p.compilegroups;",
- "",
- " var iter = cg.map_iterator();",
- " while(iter.next()) {",
- " var key = iter.get_key();",
- " if (key == \"_default_\") {",
- " continue;",
- " }",
- " ar.add(key);",
- " };",
- " _this.dbmodel.loadData(ar, c.build_module);",
- "",
+ " \tvar p = (Project.Gtk) this.project;",
+ "\t this.build_module_model.load(p.compilegroups);",
+ "\t // it will select first if available...",
+ "\t // only for new files.",
+ "\t if (!this.is_new) {",
+ "\t\t this.build_module.setValue(c.build_module);",
+ "\t }",
" }",
- " ",
+ "\t ",
" ",
" _this.file = c;",
- " //console.log('show all');",
- " this.el.set_modal(true);",
- " this.el.set_relative_to(btn);",
+ " ",
+ " // this.el.set_size_request( 550, 100); // should expand height, but give a min width.",
"",
- " this.el.set_position(Gtk.PositionType.RIGHT);",
+ " this.el.set_transient_for(pwin);",
" ",
" // window + header?",
- " print(\"SHOWALL - POPIP\\n\");",
- " this.el.show_all();",
- " this.name.el.grab_focus();",
+ " this.hideAll();",
+ " this.el.show();",
+ " // this.name.el.grab_focus();",
" ",
" ",
- " ",
- " if (c.path.length > 0) {",
- "\t this.save_btn.el.set_label(\"Save\");",
- "\t\t_this.filetype.el.hide();",
- "\t\t_this.filetypelbl.el.hide();",
- "\t\t_this.filetype.showhide(true); // as we only work on bjs files currently",
+ " if (!this.is_new) {",
+ "\t this.showEditFile();",
" } else {",
- " this.save_btn.el.set_label(\"Create\");",
- " _this.ftdbmodel.loadData(\"bjs\"); // fixme - need to determine type..",
- "\t _this.filetype.el.show();",
- "\t _this.filetypelbl.el.show();",
+ " \tthis.showNewFile();",
+ "\t\t ",
+ " ",
+ "\t ",
" }",
" ",
" ",
" ",
"}"
],
+ "| void showEditFile" : [
+ "() {",
+ " \tthis.save_btn.el.set_label(\"Save\");",
+ "\tthis.filetype_lbl.el.hide();",
+ "\tthis.filetype.el.hide();",
+ "\t\t ",
+ "\tvar sel = this.filetype.getValue();",
+ "\tswitch(_this.project.xtype) {",
+ "\t\tcase \"Roo\":\t ",
+ "\t\t\t if (sel == \"bjs\") {",
+ "\t\t\t\t_this.title_lbl.el.show();",
+ "\t\t\t\t_this.title.el.show();",
+ "\t\t\t\t",
+ "\t\t\t\t_this.region_lbl.el.show();",
+ "\t\t\t\t_this.region.el.show();",
+ "\t\t\t\t",
+ "\t\t\t\t_this.parent_lbl.el.show();",
+ "\t\t\t\t_this.parent.el.show();",
+ "\t\t\t\t",
+ "\t\t\t\t_this.permname_lbl.el.show();",
+ "\t\t\t\t_this.permname.el.show();",
+ "\t\t\t\t",
+ "\t\t\t\t_this.modOrder_lbl.el.show();",
+ "\t\t\t\t_this.modOrder.el.show();",
+ "\t\t\t",
+ "\t\t\t}",
+ "\t\t\tbreak;",
+ "\t\tdefault:",
+ "\t\t\t_this.build_module_lbl.el.show();",
+ "\t\t\t_this.build_module.el.show();\t",
+ "\t\t\t",
+ "\t\t\tif (sel == \"bjs\") {",
+ "\t\t\t",
+ "\t\t\t\t _this.gen_lbl.el.show();",
+ "\t\t\t\t_this.gen.el.show();",
+ "\t\t\t}",
+ "\t\t\tbreak;",
+ "\t}",
+ "\tthis.path.el.show();",
+ "\tthis.path_lbl.el.show();",
+ "\tthis.path.el.set_text(_this.file.relpath);",
+ "}"
+ ],
+ "| void showNewFile" : [
+ "() {",
+ " \tthis.save_btn.el.set_label(\"Create\");",
+ " \tthis.hideAll();",
+ " \tthis.filetype.el.show();",
+ " this.filetype_lbl.el.show();",
+ " this.filetype_model.load();",
+ "\tthis.filetype.el.selected = Gtk.INVALID_LIST_POSITION;",
+ " ",
+ "\t ",
+ "}"
+ ],
"| void updateFileFromEntry" : [
"() {",
"",
" _this.file.parent = _this.parent.el.get_text(); ",
" _this.file.permname = _this.permname.el.get_text(); ",
" _this.file.modOrder = _this.modOrder.el.get_text();",
- " ",
- " if (_this.file.name.length > 0 && _this.file.name != _this.name.el.get_text()) {",
- " _this.file.renameTo(_this.name.el.get_text());",
- " }",
- " // store the module...",
- " _this.file.build_module = \"\"; ",
- " Gtk.TreeIter iter; ",
- " if (_this.build_module.el.get_active_iter (out iter)) {",
- " Value vfname;",
- " this.dbmodel.el.get_value (iter, 0, out vfname);",
- " if (((string)vfname).length > 0) {",
- " _this.file.build_module = (string)vfname;",
- " }",
- " ",
+ " _this.file.gen_extended = _this.gen.el.active;",
+ " var new_name = _this.name.el.get_text();",
+ " if (_this.file.name.length > 0 && _this.file.name != new_name) {",
+ " try {",
+ " \t_this.file.renameTo( new_name );",
+ " \t} catch (JsRender.Error e) { } // do nothing?",
" }",
" ",
+ " _this.file.build_module = _this.build_module.getValue();",
+ "\t\t",
+ " ",
" ",
"",
" ",
]
}
],
- "modOrder" : "",
- "name" : "PopoverFileDetails",
- "parent" : "",
- "path" : "/home/alan/gitlive/roobuilder/src/Builder4/PopoverFileDetails.bjs",
- "permname" : "",
- "title" : ""
+ "name" : "PopoverFileDetails"
}
\ No newline at end of file