diff --git a/ds_files/ds_types.anubis b/ds_files/ds_types.anubis index 5b05921..ec2f37d 100644 --- a/ds_files/ds_types.anubis +++ b/ds_files/ds_types.anubis @@ -10,6 +10,7 @@ read densaku_lib/types/densaku.anubis define String model_types = "hayamiki_lib/model/types/". +define String view_types = "hayamiki_lib/view/types/". public define List(DS_Type) hayamiki_lib_types_description = [ @@ -204,12 +205,52 @@ public define List(DS_Type) hayamiki_lib_types_description = ]) ]), + ds_type("HK_View_Editor_Cell", [ + alternative("ve_cell", [ + component(extern_type("VT_edit_entry", "hayamiki_lib/view/view_table_types.anubis"), "edit_entry") + ]) + ]), + + ds_type("HK_View_Editor_Line", [ + alternative("ve_line", [ + component(list, extern_type("HK_View_Editor_Cell", view_types+"hk_view_editor_cell.anubis"), "ve_cells") + ]) + ]), + + ds_type("HK_View_Editor_Table", [ + alternative("ve_table", [ + component(list, extern_type("HK_View_Editor_Line", view_types+"hk_view_editor_line.anubis"), "ve_lines") + ]) + ]), + + ds_type("HK_Edit_View_Cell", [ + alternative("ev_cell", [ + component(string, "column_name") + ]) + ]), + + ds_type("HK_Edit_View_Line", [ + alternative("ev_line", [ + component(list, extern_type("HK_Edit_View_Cell", model_types+"hk_edit_view_cell.anubis"), "ev_cells") + ]) + ]), + + ds_type("HK_Edit_View_Table", [ + alternative("ev_table", [ + component(list, extern_type("HK_Edit_View_Line", model_types+"hk_edit_view_line.anubis"), "ev_lines") + ]) + ]), + ds_type("HK_Edit_View", [ enum("edit_view_all"), - alternative("edit_view", [ + alternative("edit_view_list_form", [ component(string, "view_name"), component(list, string, "columns"), component(list, extern_type("HK_FK_View", model_types+"hk_fk_view.anubis"), "fk_view") + ]), + alternative("edit_view_table_form", [ + component(string, "view_name"), + component(extern_type("HK_Edit_View_Table", model_types+"hk_edit_view_table.anubis"), "ev_table") ]) ]), diff --git a/model/display.anubis b/model/display.anubis index 7fbeffd..7c8c8a6 100644 --- a/model/display.anubis +++ b/model/display.anubis @@ -27,12 +27,12 @@ public define HK_List_View public define HK_Edit_View - edit_view + edit_view_list_form ( String view_name, List(String) columns )= - edit_view(view_name, columns, []) + edit_view_list_form(view_name, columns, []) . diff --git a/model/types/hk_app.anubis b/model/types/hk_app.anubis index 5fed226..4e54b42 100644 --- a/model/types/hk_app.anubis +++ b/model/types/hk_app.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_app_name.anubis b/model/types/hk_app_name.anubis index 47abf6f..f648091 100644 --- a/model/types/hk_app_name.anubis +++ b/model/types/hk_app_name.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_database.anubis b/model/types/hk_database.anubis index 0afb524..cc79318 100644 --- a/model/types/hk_database.anubis +++ b/model/types/hk_database.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_datetime_field_attr.anubis b/model/types/hk_datetime_field_attr.anubis index bd6ad46..5f2957a 100644 --- a/model/types/hk_datetime_field_attr.anubis +++ b/model/types/hk_datetime_field_attr.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_display.anubis b/model/types/hk_display.anubis index d353f24..50a92ed 100644 --- a/model/types/hk_display.anubis +++ b/model/types/hk_display.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_edit_view.anubis b/model/types/hk_edit_view.anubis index e9d7bbe..e7ea826 100644 --- a/model/types/hk_edit_view.anubis +++ b/model/types/hk_edit_view.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ @@ -10,14 +10,19 @@ transmit system/muscle.anubis transmit system/convert.anubis transmit tools/basis.anubis +transmit hayamiki_lib/model/types/hk_edit_view_table.anubis transmit hayamiki_lib/model/types/hk_fk_view.anubis public type HK_Edit_View: - edit_view_all, - edit_view( - String view_name, - List(String) columns, - List(HK_FK_View) fk_view + edit_view_all, + edit_view_list_form( + String view_name, + List(String) columns, + List(HK_FK_View) fk_view + ), + edit_view_table_form( + String view_name, + HK_Edit_View_Table ev_table ) . @@ -38,16 +43,24 @@ public define Message edit_view_all then forget(add_string(_hk_edit_view_message, "__TYPE_ALT__", "edit_view_all")), - //Alternative edit_view - edit_view(_view_name, __columns, __fk_view) then - forget(add_string(_hk_edit_view_message, "__TYPE_ALT__", "edit_view")); - // [type = String] edit_view.view_name + //Alternative edit_view_list_form + edit_view_list_form(_view_name, __columns, __fk_view) then + forget(add_string(_hk_edit_view_message, "__TYPE_ALT__", "edit_view_list_form")); + // [type = String] edit_view_list_form.view_name forget(add_string(_hk_edit_view_message, "view_name", _view_name)); - // [type = List(String)] edit_view.columns + // [type = List(String)] edit_view_list_form.columns map_forget((String _columns) |-> add_string(_hk_edit_view_message, "columns", _columns), __columns); - // [type = List(HK_FK_View)] edit_view.fk_view + // [type = List(HK_FK_View)] edit_view_list_form.fk_view map_forget((HK_FK_View _fk_view) |-> add_message(_hk_edit_view_message, "fk_view", to_Message(_fk_view)), __fk_view), + //Alternative edit_view_table_form + edit_view_table_form(_view_name, _ev_table) then + forget(add_string(_hk_edit_view_message, "__TYPE_ALT__", "edit_view_table_form")); + // [type = String] edit_view_table_form.view_name + forget(add_string(_hk_edit_view_message, "view_name", _view_name)); + // [type = HK_Edit_View_Table] edit_view_table_form.ev_table + forget(add_message(_hk_edit_view_message, "ev_table", to_Message(_ev_table))), + }; _hk_edit_view_message . @@ -63,18 +76,28 @@ public define Maybe(HK_Edit_View) //Alternative edit_view_all (NO TYPE) if __type_alt__ = "edit_view_all" then success(edit_view_all) - else //Alternative edit_view - if __type_alt__ = "edit_view" then //Alternative edit_view - // [type = String] edit_view.view_name + else //Alternative edit_view_list_form + if __type_alt__ = "edit_view_list_form" then //Alternative edit_view_list_form + // [type = String] edit_view_list_form.view_name if find_string(_hk_edit_view_message, "view_name") is {failure then failure, success(view_name) then - // [type = List(String)] edit_view.columns + // [type = List(String)] edit_view_list_form.columns with columns = find_string_list(_hk_edit_view_message, "columns"), - // [type = List(HK_FK_View)] edit_view.fk_view + // [type = List(HK_FK_View)] edit_view_list_form.fk_view with mb_fk_view = map_escape(( Message msg ) |-> (Maybe(HK_FK_View)) from_Message(msg), find_messages(_hk_edit_view_message, "fk_view")), if mb_fk_view is {failure then failure, success(fk_view) then - success(edit_view(view_name, columns, fk_view)) + success(edit_view_list_form(view_name, columns, fk_view)) }} + else //Alternative edit_view_table_form + if __type_alt__ = "edit_view_table_form" then //Alternative edit_view_table_form + // [type = String] edit_view_table_form.view_name + if find_string(_hk_edit_view_message, "view_name") is {failure then failure, success(view_name) then + // [type = HK_Edit_View_Table] edit_view_table_form.ev_table + if find_message(_hk_edit_view_message, "ev_table") is {failure then failure, success(ev_table_msg) then + if (Maybe(HK_Edit_View_Table))from_Message(ev_table_msg) is {failure then failure, success(ev_table) then + + success(edit_view_table_form(view_name, ev_table)) + }}} else failure //No valid Alternative found ! else diff --git a/model/types/hk_edit_view_cell.anubis b/model/types/hk_edit_view_cell.anubis new file mode 100644 index 0000000..229541b --- /dev/null +++ b/model/types/hk_edit_view_cell.anubis @@ -0,0 +1,64 @@ +/* + * Created by 伝作 (Densaku). + * Types & Messages generator written by フランスのトトロ aka (David RENÉ) + * Date: 2017-04-03 + * Time: 23:52:46 + * + */ + +transmit system/muscle.anubis +transmit system/convert.anubis +transmit tools/basis.anubis + + +public type HK_Edit_View_Cell: + ev_cell( + String column_name + ) +. + + HK_Edit_View_Cell message format + ================================ + + +public define Message + to_Message + ( + HK_Edit_View_Cell _hk_edit_view_cell + )= + with _hk_edit_view_cell_message = message((Word32)0), // + forget(add_string(_hk_edit_view_cell_message, "__TYPE__", "HK_Edit_View_Cell")); + if _hk_edit_view_cell is + { + //Alternative ev_cell + ev_cell(_column_name) then + forget(add_string(_hk_edit_view_cell_message, "__TYPE_ALT__", "ev_cell")); + // [type = String] ev_cell.column_name + forget(add_string(_hk_edit_view_cell_message, "column_name", _column_name)), + + }; + _hk_edit_view_cell_message +. + +public define Maybe(HK_Edit_View_Cell) + from_Message + ( + Message _hk_edit_view_cell_message + )= + if find_string(_hk_edit_view_cell_message, "__TYPE__") is {failure then failure, success(__type__) then + if find_string(_hk_edit_view_cell_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then + if __type__ = "HK_Edit_View_Cell" then + //Alternative ev_cell + if __type_alt__ = "ev_cell" then //Alternative ev_cell + // [type = String] ev_cell.column_name + if find_string(_hk_edit_view_cell_message, "column_name") is {failure then failure, success(column_name) then + + success(ev_cell(column_name)) + } + else + failure //No valid Alternative found ! + else + failure //Type not found in message ! + }} +. + diff --git a/model/types/hk_edit_view_line.anubis b/model/types/hk_edit_view_line.anubis new file mode 100644 index 0000000..61f662b --- /dev/null +++ b/model/types/hk_edit_view_line.anubis @@ -0,0 +1,66 @@ +/* + * Created by 伝作 (Densaku). + * Types & Messages generator written by フランスのトトロ aka (David RENÉ) + * Date: 2017-04-03 + * Time: 23:52:46 + * + */ + +transmit system/muscle.anubis +transmit system/convert.anubis +transmit tools/basis.anubis + +transmit hayamiki_lib/model/types/hk_edit_view_cell.anubis + +public type HK_Edit_View_Line: + ev_line( + List(HK_Edit_View_Cell) ev_cells + ) +. + + HK_Edit_View_Line message format + ================================ + + +public define Message + to_Message + ( + HK_Edit_View_Line _hk_edit_view_line + )= + with _hk_edit_view_line_message = message((Word32)0), // + forget(add_string(_hk_edit_view_line_message, "__TYPE__", "HK_Edit_View_Line")); + if _hk_edit_view_line is + { + //Alternative ev_line + ev_line(__ev_cells) then + forget(add_string(_hk_edit_view_line_message, "__TYPE_ALT__", "ev_line")); + // [type = List(HK_Edit_View_Cell)] ev_line.ev_cells + map_forget((HK_Edit_View_Cell _ev_cells) |-> add_message(_hk_edit_view_line_message, "ev_cells", to_Message(_ev_cells)), __ev_cells), + + }; + _hk_edit_view_line_message +. + +public define Maybe(HK_Edit_View_Line) + from_Message + ( + Message _hk_edit_view_line_message + )= + if find_string(_hk_edit_view_line_message, "__TYPE__") is {failure then failure, success(__type__) then + if find_string(_hk_edit_view_line_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then + if __type__ = "HK_Edit_View_Line" then + //Alternative ev_line + if __type_alt__ = "ev_line" then //Alternative ev_line + // [type = List(HK_Edit_View_Cell)] ev_line.ev_cells + with mb_ev_cells = map_escape(( Message msg ) |-> (Maybe(HK_Edit_View_Cell)) from_Message(msg), find_messages(_hk_edit_view_line_message, "ev_cells")), + if mb_ev_cells is {failure then failure, success(ev_cells) then + + success(ev_line(ev_cells)) + } + else + failure //No valid Alternative found ! + else + failure //Type not found in message ! + }} +. + diff --git a/model/types/hk_edit_view_table.anubis b/model/types/hk_edit_view_table.anubis new file mode 100644 index 0000000..d41b7a3 --- /dev/null +++ b/model/types/hk_edit_view_table.anubis @@ -0,0 +1,66 @@ +/* + * Created by 伝作 (Densaku). + * Types & Messages generator written by フランスのトトロ aka (David RENÉ) + * Date: 2017-04-03 + * Time: 23:52:46 + * + */ + +transmit system/muscle.anubis +transmit system/convert.anubis +transmit tools/basis.anubis + +transmit hayamiki_lib/model/types/hk_edit_view_line.anubis + +public type HK_Edit_View_Table: + ev_table( + List(HK_Edit_View_Line) ev_lines + ) +. + + HK_Edit_View_Table message format + ================================= + + +public define Message + to_Message + ( + HK_Edit_View_Table _hk_edit_view_table + )= + with _hk_edit_view_table_message = message((Word32)0), // + forget(add_string(_hk_edit_view_table_message, "__TYPE__", "HK_Edit_View_Table")); + if _hk_edit_view_table is + { + //Alternative ev_table + ev_table(__ev_lines) then + forget(add_string(_hk_edit_view_table_message, "__TYPE_ALT__", "ev_table")); + // [type = List(HK_Edit_View_Line)] ev_table.ev_lines + map_forget((HK_Edit_View_Line _ev_lines) |-> add_message(_hk_edit_view_table_message, "ev_lines", to_Message(_ev_lines)), __ev_lines), + + }; + _hk_edit_view_table_message +. + +public define Maybe(HK_Edit_View_Table) + from_Message + ( + Message _hk_edit_view_table_message + )= + if find_string(_hk_edit_view_table_message, "__TYPE__") is {failure then failure, success(__type__) then + if find_string(_hk_edit_view_table_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then + if __type__ = "HK_Edit_View_Table" then + //Alternative ev_table + if __type_alt__ = "ev_table" then //Alternative ev_table + // [type = List(HK_Edit_View_Line)] ev_table.ev_lines + with mb_ev_lines = map_escape(( Message msg ) |-> (Maybe(HK_Edit_View_Line)) from_Message(msg), find_messages(_hk_edit_view_table_message, "ev_lines")), + if mb_ev_lines is {failure then failure, success(ev_lines) then + + success(ev_table(ev_lines)) + } + else + failure //No valid Alternative found ! + else + failure //Type not found in message ! + }} +. + diff --git a/model/types/hk_fk_view.anubis b/model/types/hk_fk_view.anubis index 802b643..411dceb 100644 --- a/model/types/hk_fk_view.anubis +++ b/model/types/hk_fk_view.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_help_text.anubis b/model/types/hk_help_text.anubis index 65b147e..687f269 100644 --- a/model/types/hk_help_text.anubis +++ b/model/types/hk_help_text.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_icon.anubis b/model/types/hk_icon.anubis index 21558d7..c41e652 100644 --- a/model/types/hk_icon.anubis +++ b/model/types/hk_icon.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_int_choice.anubis b/model/types/hk_int_choice.anubis index 7255773..929ed5a 100644 --- a/model/types/hk_int_choice.anubis +++ b/model/types/hk_int_choice.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_int_choices.anubis b/model/types/hk_int_choices.anubis index 6a95f3f..1ed6e5f 100644 --- a/model/types/hk_int_choices.anubis +++ b/model/types/hk_int_choices.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_list_view.anubis b/model/types/hk_list_view.anubis index 6806bc0..1baf85b 100644 --- a/model/types/hk_list_view.anubis +++ b/model/types/hk_list_view.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_model.anubis b/model/types/hk_model.anubis index bc08b8c..3256757 100644 --- a/model/types/hk_model.anubis +++ b/model/types/hk_model.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_model_attr.anubis b/model/types/hk_model_attr.anubis index 17307f7..6b7b420 100644 --- a/model/types/hk_model_attr.anubis +++ b/model/types/hk_model_attr.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_model_column.anubis b/model/types/hk_model_column.anubis index c1c4e0f..b198a1f 100644 --- a/model/types/hk_model_column.anubis +++ b/model/types/hk_model_column.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_model_field.anubis b/model/types/hk_model_field.anubis index 6ffa62c..a1a60df 100644 --- a/model/types/hk_model_field.anubis +++ b/model/types/hk_model_field.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-29 - * Time: 23:08:07 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_table.anubis b/model/types/hk_table.anubis index 8c58826..2e498cb 100644 --- a/model/types/hk_table.anubis +++ b/model/types/hk_table.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_text_choice.anubis b/model/types/hk_text_choice.anubis index 48cab1c..b242a2a 100644 --- a/model/types/hk_text_choice.anubis +++ b/model/types/hk_text_choice.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_text_choices.anubis b/model/types/hk_text_choices.anubis index a9b6e10..b7304ae 100644 --- a/model/types/hk_text_choices.anubis +++ b/model/types/hk_text_choices.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/model/types/hk_text_field_attr.anubis b/model/types/hk_text_field_attr.anubis index 80fcd87..44a1c91 100644 --- a/model/types/hk_text_field_attr.anubis +++ b/model/types/hk_text_field_attr.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-18 - * Time: 23:38:31 + * Date: 2017-04-03 + * Time: 23:52:46 * */ diff --git a/view/types/hk_view_editor_cell.anubis b/view/types/hk_view_editor_cell.anubis new file mode 100644 index 0000000..30aeb68 --- /dev/null +++ b/view/types/hk_view_editor_cell.anubis @@ -0,0 +1,66 @@ +/* + * Created by 伝作 (Densaku). + * Types & Messages generator written by フランスのトトロ aka (David RENÉ) + * Date: 2017-04-03 + * Time: 23:52:46 + * + */ + +transmit system/muscle.anubis +transmit system/convert.anubis +transmit tools/basis.anubis + +transmit hayamiki_lib/view/view_table_types.anubis + +public type HK_View_Editor_Cell: + ve_cell( + VT_edit_entry edit_entry + ) +. + + HK_View_Editor_Cell message format + ================================== + + +public define Message + to_Message + ( + HK_View_Editor_Cell _hk_view_editor_cell + )= + with _hk_view_editor_cell_message = message((Word32)0), // + forget(add_string(_hk_view_editor_cell_message, "__TYPE__", "HK_View_Editor_Cell")); + if _hk_view_editor_cell is + { + //Alternative ve_cell + ve_cell(_edit_entry) then + forget(add_string(_hk_view_editor_cell_message, "__TYPE_ALT__", "ve_cell")); + // [type = VT_edit_entry] ve_cell.edit_entry + forget(add_message(_hk_view_editor_cell_message, "edit_entry", to_Message(_edit_entry))), + + }; + _hk_view_editor_cell_message +. + +public define Maybe(HK_View_Editor_Cell) + from_Message + ( + Message _hk_view_editor_cell_message + )= + if find_string(_hk_view_editor_cell_message, "__TYPE__") is {failure then failure, success(__type__) then + if find_string(_hk_view_editor_cell_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then + if __type__ = "HK_View_Editor_Cell" then + //Alternative ve_cell + if __type_alt__ = "ve_cell" then //Alternative ve_cell + // [type = VT_edit_entry] ve_cell.edit_entry + if find_message(_hk_view_editor_cell_message, "edit_entry") is {failure then failure, success(edit_entry_msg) then + if (Maybe(VT_edit_entry))from_Message(edit_entry_msg) is {failure then failure, success(edit_entry) then + + success(ve_cell(edit_entry)) + }} + else + failure //No valid Alternative found ! + else + failure //Type not found in message ! + }} +. + diff --git a/view/types/hk_view_editor_line.anubis b/view/types/hk_view_editor_line.anubis new file mode 100644 index 0000000..c2a81f2 --- /dev/null +++ b/view/types/hk_view_editor_line.anubis @@ -0,0 +1,66 @@ +/* + * Created by 伝作 (Densaku). + * Types & Messages generator written by フランスのトトロ aka (David RENÉ) + * Date: 2017-04-03 + * Time: 23:52:46 + * + */ + +transmit system/muscle.anubis +transmit system/convert.anubis +transmit tools/basis.anubis + +transmit hayamiki_lib/view/types/hk_view_editor_cell.anubis + +public type HK_View_Editor_Line: + ve_line( + List(HK_View_Editor_Cell) ve_cells + ) +. + + HK_View_Editor_Line message format + ================================== + + +public define Message + to_Message + ( + HK_View_Editor_Line _hk_view_editor_line + )= + with _hk_view_editor_line_message = message((Word32)0), // + forget(add_string(_hk_view_editor_line_message, "__TYPE__", "HK_View_Editor_Line")); + if _hk_view_editor_line is + { + //Alternative ve_line + ve_line(__ve_cells) then + forget(add_string(_hk_view_editor_line_message, "__TYPE_ALT__", "ve_line")); + // [type = List(HK_View_Editor_Cell)] ve_line.ve_cells + map_forget((HK_View_Editor_Cell _ve_cells) |-> add_message(_hk_view_editor_line_message, "ve_cells", to_Message(_ve_cells)), __ve_cells), + + }; + _hk_view_editor_line_message +. + +public define Maybe(HK_View_Editor_Line) + from_Message + ( + Message _hk_view_editor_line_message + )= + if find_string(_hk_view_editor_line_message, "__TYPE__") is {failure then failure, success(__type__) then + if find_string(_hk_view_editor_line_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then + if __type__ = "HK_View_Editor_Line" then + //Alternative ve_line + if __type_alt__ = "ve_line" then //Alternative ve_line + // [type = List(HK_View_Editor_Cell)] ve_line.ve_cells + with mb_ve_cells = map_escape(( Message msg ) |-> (Maybe(HK_View_Editor_Cell)) from_Message(msg), find_messages(_hk_view_editor_line_message, "ve_cells")), + if mb_ve_cells is {failure then failure, success(ve_cells) then + + success(ve_line(ve_cells)) + } + else + failure //No valid Alternative found ! + else + failure //Type not found in message ! + }} +. + diff --git a/view/types/hk_view_editor_table.anubis b/view/types/hk_view_editor_table.anubis new file mode 100644 index 0000000..80957db --- /dev/null +++ b/view/types/hk_view_editor_table.anubis @@ -0,0 +1,66 @@ +/* + * Created by 伝作 (Densaku). + * Types & Messages generator written by フランスのトトロ aka (David RENÉ) + * Date: 2017-04-03 + * Time: 23:52:46 + * + */ + +transmit system/muscle.anubis +transmit system/convert.anubis +transmit tools/basis.anubis + +transmit hayamiki_lib/view/types/hk_view_editor_line.anubis + +public type HK_View_Editor_Table: + ve_table( + List(HK_View_Editor_Line) ve_lines + ) +. + + HK_View_Editor_Table message format + =================================== + + +public define Message + to_Message + ( + HK_View_Editor_Table _hk_view_editor_table + )= + with _hk_view_editor_table_message = message((Word32)0), // + forget(add_string(_hk_view_editor_table_message, "__TYPE__", "HK_View_Editor_Table")); + if _hk_view_editor_table is + { + //Alternative ve_table + ve_table(__ve_lines) then + forget(add_string(_hk_view_editor_table_message, "__TYPE_ALT__", "ve_table")); + // [type = List(HK_View_Editor_Line)] ve_table.ve_lines + map_forget((HK_View_Editor_Line _ve_lines) |-> add_message(_hk_view_editor_table_message, "ve_lines", to_Message(_ve_lines)), __ve_lines), + + }; + _hk_view_editor_table_message +. + +public define Maybe(HK_View_Editor_Table) + from_Message + ( + Message _hk_view_editor_table_message + )= + if find_string(_hk_view_editor_table_message, "__TYPE__") is {failure then failure, success(__type__) then + if find_string(_hk_view_editor_table_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then + if __type__ = "HK_View_Editor_Table" then + //Alternative ve_table + if __type_alt__ = "ve_table" then //Alternative ve_table + // [type = List(HK_View_Editor_Line)] ve_table.ve_lines + with mb_ve_lines = map_escape(( Message msg ) |-> (Maybe(HK_View_Editor_Line)) from_Message(msg), find_messages(_hk_view_editor_table_message, "ve_lines")), + if mb_ve_lines is {failure then failure, success(ve_lines) then + + success(ve_table(ve_lines)) + } + else + failure //No valid Alternative found ! + else + failure //Type not found in message ! + }} +. + diff --git a/view/view_table_types.anubis b/view/view_table_types.anubis index 4a84841..1935a1c 100644 --- a/view/view_table_types.anubis +++ b/view/view_table_types.anubis @@ -15,6 +15,7 @@ public type VT_edit_selector: public type VT_edit_entry: hidden (String name, String value), + label (String s_name), primary_key (String idx), information (String s_name, String c_name, String v_name, Int width, HK_Help_Text help), //s_name = show_name for translation, v_name = string to show text (String s_name, String c_name, String value, HK_Help_Text help), //s_name = show_name for translation, c_name = table column name @@ -46,7 +47,8 @@ public type HK_V_Edit_Tab: . public type VT_edit: - vt_edit(String table_name, String view_name, List(VT_edit_entry) list, List(HK_V_Edit_Tab) tabs). + vt_edit_list_form(String table_name, String view_name, List(VT_edit_entry) list, List(HK_V_Edit_Tab) tabs), + vt_edit_table_form(String table_name, String view_name, public type VT_view_model_entry: -- libgit2 0.21.4