Commit 6a8c2f09f96f7ac5e840c0ef4935a5641e83fc18

Authored by totoro
1 parent 5a230ad0

add colspan and rowspan attributes for editor and form table lines

ds_files/ds_types.anubis
@@ -258,8 +258,18 @@ public define List(DS_Type_File) hayamiki_lib_types_description = @@ -258,8 +258,18 @@ public define List(DS_Type_File) hayamiki_lib_types_description =
258 ]) 258 ])
259 ]), 259 ]),
260 260
  261 + ds_type("HK_Editor_Table_Line_Attribute", [
  262 + alternative("colspan", [
  263 + component(int, "number")
  264 + ]),
  265 + alternative("rowspan", [
  266 + component(int, "number")
  267 + ])
  268 + ]),
  269 +
261 ds_type("HK_Editor_Table_Line", [ 270 ds_type("HK_Editor_Table_Line", [
262 alternative("line", [ 271 alternative("line", [
  272 + component(list, ds_type("HK_Editor_Table_Line_Attribute"), "line_attr"),
263 component(list, ds_type("HK_Editor_Table_Cell"), "cells") 273 component(list, ds_type("HK_Editor_Table_Cell"), "cells")
264 ]) 274 ])
265 ]), 275 ]),
@@ -282,8 +292,18 @@ public define List(DS_Type_File) hayamiki_lib_types_description = @@ -282,8 +292,18 @@ public define List(DS_Type_File) hayamiki_lib_types_description =
282 ]) 292 ])
283 ]), 293 ]),
284 294
  295 + ds_type("HK_Form_Table_Line_Attribute", no_message, [
  296 + alternative("colspan", [
  297 + component(int, "number")
  298 + ]),
  299 + alternative("rowspan", [
  300 + component(int, "number")
  301 + ])
  302 + ]),
  303 +
285 ds_type("HK_Form_Table_Line", no_message, [ 304 ds_type("HK_Form_Table_Line", no_message, [
286 alternative("hk_form_table_line", [ 305 alternative("hk_form_table_line", [
  306 + component(list, ds_type("HK_Form_Table_Line_Attribute"), "line_attr"),
287 component(list, ds_type("HK_Form_Table_Cell"), "form_table_cells") 307 component(list, ds_type("HK_Form_Table_Cell"), "form_table_cells")
288 ]) 308 ])
289 ]), 309 ]),
view/types/hk_editor_table.anubis
1 /* 1 /*
2 * Created by 伝作 (Densaku). 2 * Created by 伝作 (Densaku).
3 * Types & Messages generator written by フランスのトトロ aka (David RENÉ) 3 * Types & Messages generator written by フランスのトトロ aka (David RENÉ)
4 - * Date: 2017-04-12  
5 - * Time: 23:52:21 4 + * Date: 2017-04-19
  5 + * Time: 16:17:58
6 * 6 *
7 */ 7 */
8 8
@@ -41,9 +41,20 @@ public type HK_Editor_Table_Cell: @@ -41,9 +41,20 @@ public type HK_Editor_Table_Cell:
41 . 41 .
42 42
43 43
  44 +public type HK_Editor_Table_Line_Attribute:
  45 + colspan(
  46 + Int number
  47 + ),
  48 + rowspan(
  49 + Int number
  50 + )
  51 +.
  52 +
  53 +
44 public type HK_Editor_Table_Line: 54 public type HK_Editor_Table_Line:
45 line( 55 line(
46 - List(HK_Editor_Table_Cell) cells 56 + List(HK_Editor_Table_Line_Attribute) line_attr,
  57 + List(HK_Editor_Table_Cell) cells
47 ) 58 )
48 . 59 .
49 60
@@ -136,6 +147,69 @@ public define Maybe(HK_Editor_Table_Cell) @@ -136,6 +147,69 @@ public define Maybe(HK_Editor_Table_Cell)
136 147
137 148
138 149
  150 + HK_Editor_Table_Line_Attribute message format
  151 + =============================================
  152 +
  153 +
  154 +public define Message
  155 + to_Message
  156 + (
  157 + HK_Editor_Table_Line_Attribute _hk_editor_table_line_attribute
  158 + )=
  159 + with _hk_editor_table_line_attribute_message = message((Word32)0), //
  160 + forget(add_string(_hk_editor_table_line_attribute_message, "__TYPE__", "HK_Editor_Table_Line_Attribute"));
  161 + if _hk_editor_table_line_attribute is
  162 + {
  163 + //Alternative colspan
  164 + colspan(_number) then
  165 + forget(add_string(_hk_editor_table_line_attribute_message, "__TYPE_ALT__", "colspan"));
  166 + // [type = Int] colspan.number
  167 + forget(add_string(_hk_editor_table_line_attribute_message, "number", to_String(_number))),
  168 +
  169 + //Alternative rowspan
  170 + rowspan(_number) then
  171 + forget(add_string(_hk_editor_table_line_attribute_message, "__TYPE_ALT__", "rowspan"));
  172 + // [type = Int] rowspan.number
  173 + forget(add_string(_hk_editor_table_line_attribute_message, "number", to_String(_number))),
  174 +
  175 + };
  176 + _hk_editor_table_line_attribute_message
  177 +.
  178 +
  179 +public define Maybe(HK_Editor_Table_Line_Attribute)
  180 + from_Message
  181 + (
  182 + Message _hk_editor_table_line_attribute_message
  183 + )=
  184 + if find_string(_hk_editor_table_line_attribute_message, "__TYPE__") is {failure then failure, success(__type__) then
  185 + if find_string(_hk_editor_table_line_attribute_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then
  186 + if __type__ = "HK_Editor_Table_Line_Attribute" then
  187 + //Alternative colspan
  188 + if __type_alt__ = "colspan" then //Alternative colspan
  189 + // [type = Int] colspan.number
  190 + if find_string(_hk_editor_table_line_attribute_message, "number") is {failure then failure, success(__number_) then
  191 + if decimal_scan(__number_) is { failure then failure, success(_number_) then
  192 +
  193 + success(colspan(_number_))
  194 + }}
  195 + else //Alternative rowspan
  196 + if __type_alt__ = "rowspan" then //Alternative rowspan
  197 + // [type = Int] rowspan.number
  198 + if find_string(_hk_editor_table_line_attribute_message, "number") is {failure then failure, success(__number_) then
  199 + if decimal_scan(__number_) is { failure then failure, success(_number_) then
  200 +
  201 + success(rowspan(_number_))
  202 + }}
  203 + else
  204 + failure //No valid Alternative found !
  205 + else
  206 + failure //Type not found in message !
  207 + }}
  208 +.
  209 +
  210 +
  211 +
  212 +
139 HK_Editor_Table_Line message format 213 HK_Editor_Table_Line message format
140 =================================== 214 ===================================
141 215
@@ -150,8 +224,10 @@ public define Message @@ -150,8 +224,10 @@ public define Message
150 if _hk_editor_table_line is 224 if _hk_editor_table_line is
151 { 225 {
152 //Alternative line 226 //Alternative line
153 - line(__cells) then 227 + line(__line_attr, __cells) then
154 forget(add_string(_hk_editor_table_line_message, "__TYPE_ALT__", "line")); 228 forget(add_string(_hk_editor_table_line_message, "__TYPE_ALT__", "line"));
  229 + // [type = List(HK_Editor_Table_Line_Attribute)] line.line_attr
  230 + map_forget((HK_Editor_Table_Line_Attribute _line_attr) |-> add_message(_hk_editor_table_line_message, "line_attr", to_Message(_line_attr)), __line_attr);
155 // [type = List(HK_Editor_Table_Cell)] line.cells 231 // [type = List(HK_Editor_Table_Cell)] line.cells
156 map_forget((HK_Editor_Table_Cell _cells) |-> add_message(_hk_editor_table_line_message, "cells", to_Message(_cells)), __cells), 232 map_forget((HK_Editor_Table_Cell _cells) |-> add_message(_hk_editor_table_line_message, "cells", to_Message(_cells)), __cells),
157 233
@@ -169,12 +245,15 @@ public define Maybe(HK_Editor_Table_Line) @@ -169,12 +245,15 @@ public define Maybe(HK_Editor_Table_Line)
169 if __type__ = "HK_Editor_Table_Line" then 245 if __type__ = "HK_Editor_Table_Line" then
170 //Alternative line 246 //Alternative line
171 if __type_alt__ = "line" then //Alternative line 247 if __type_alt__ = "line" then //Alternative line
  248 + // [type = List(HK_Editor_Table_Line_Attribute)] line.line_attr
  249 + with mb__line_attr_ = map_escape(( Message msg ) |-> (Maybe(HK_Editor_Table_Line_Attribute)) from_Message(msg), find_messages(_hk_editor_table_line_message, "line_attr")),
  250 + if mb__line_attr_ is {failure then failure, success(_line_attr_) then
172 // [type = List(HK_Editor_Table_Cell)] line.cells 251 // [type = List(HK_Editor_Table_Cell)] line.cells
173 with mb__cells_ = map_escape(( Message msg ) |-> (Maybe(HK_Editor_Table_Cell)) from_Message(msg), find_messages(_hk_editor_table_line_message, "cells")), 252 with mb__cells_ = map_escape(( Message msg ) |-> (Maybe(HK_Editor_Table_Cell)) from_Message(msg), find_messages(_hk_editor_table_line_message, "cells")),
174 if mb__cells_ is {failure then failure, success(_cells_) then 253 if mb__cells_ is {failure then failure, success(_cells_) then
175 254
176 - success(line(_cells_))  
177 - } 255 + success(line(_line_attr_, _cells_))
  256 + }}
178 else 257 else
179 failure //No valid Alternative found ! 258 failure //No valid Alternative found !
180 else 259 else
view/types/hk_form_table.anubis
1 /* 1 /*
2 * Created by 伝作 (Densaku). 2 * Created by 伝作 (Densaku).
3 * Types & Messages generator written by フランスのトトロ aka (David RENÉ) 3 * Types & Messages generator written by フランスのトトロ aka (David RENÉ)
4 - * Date: 2017-04-12  
5 - * Time: 23:52:21 4 + * Date: 2017-04-19
  5 + * Time: 15:54:06
6 * 6 *
7 */ 7 */
8 8
@@ -38,9 +38,20 @@ public type HK_Form_Table_Cell: @@ -38,9 +38,20 @@ public type HK_Form_Table_Cell:
38 . 38 .
39 39
40 40
  41 +public type HK_Form_Line_Attribute:
  42 + colspan(
  43 + Int number
  44 + ),
  45 + rowspan(
  46 + Int number
  47 + )
  48 +.
  49 +
  50 +
41 public type HK_Form_Table_Line: 51 public type HK_Form_Table_Line:
42 hk_form_table_line( 52 hk_form_table_line(
43 - List(HK_Form_Table_Cell) form_table_cells 53 + List(HK_Form_Line_Attribute) line_attr,
  54 + List(HK_Form_Table_Cell) form_table_cells
44 ) 55 )
45 . 56 .
46 57
@@ -64,6 +75,8 @@ public type HK_Form_Table: @@ -64,6 +75,8 @@ public type HK_Form_Table:
64 75
65 76
66 77
  78 +
  79 +
67 HK_Form_Table_Attribute message format 80 HK_Form_Table_Attribute message format
68 ====================================== 81 ======================================
69 82