add sap.m.Tree & sap.m.StandardTreeItem (#378)

* add sap.m.Tree & sap.m.StandardTreeItem

* add recursive table handling

* add recursive table handling 2

* abaplint fix

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

* abaplint fix

Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>

---------

Co-authored-by: Daniel Wegner <daniel.wegner@objective-partner.com>
Co-authored-by: oblomov <102328295+oblomov-dev@users.noreply.github.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
This commit is contained in:
Daniel Wegner 2023-07-13 18:38:12 +02:00 committed by GitHub
parent 29b7ea5367
commit 2ab226100c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 126 additions and 71 deletions

View File

@ -12,7 +12,7 @@ CLASS z2ui5_lcl_utility DEFINITION INHERITING FROM cx_no_check.
data_rtti TYPE string,
check_ref_data TYPE abap_bool,
END OF ty_attri.
TYPES ty_T_attri TYPE STANDARD TABLE OF ty_attri WITH EMPTY KEY.
TYPES ty_t_attri TYPE STANDARD TABLE OF ty_attri WITH EMPTY KEY.
DATA:
BEGIN OF ms_error,
@ -201,7 +201,7 @@ CLASS z2ui5_lcl_fw_handler DEFINITION.
END OF cs_bind_type.
TYPES:
BEGIN OF ty_S_next2,
BEGIN OF ty_s_next2,
t_scroll TYPE z2ui5_if_client=>ty_t_name_value,
title TYPE string,
search TYPE string,
@ -269,7 +269,7 @@ CLASS z2ui5_lcl_fw_handler DEFINITION.
BEGIN OF ty_s_next,
o_app_call TYPE REF TO z2ui5_if_app,
o_app_leave TYPE REF TO z2ui5_if_app,
s_set TYPE ty_S_next2,
s_set TYPE ty_s_next2,
END OF ty_s_next.
DATA ms_actual TYPE z2ui5_if_client=>ty_s_get.
@ -622,7 +622,13 @@ CLASS z2ui5_lcl_utility IMPLEMENTATION.
ASSIGN <comp_ui5>->* TO FIELD-SYMBOL(<ls_data_ui5>).
IF sy-subrc = 0.
<comp> = <ls_data_ui5>.
CASE ls_comp-type->kind.
WHEN cl_abap_typedescr=>kind_table.
trans_ref_tab_2_tab( EXPORTING ir_tab_from = <comp_ui5>
IMPORTING t_result = <comp> ).
WHEN OTHERS.
<comp> = <ls_data_ui5>.
ENDCASE.
ENDIF.
ENDLOOP.
@ -1290,7 +1296,7 @@ CLASS z2ui5_lcl_fw_db IMPLEMENTATION.
METHOD cleanup.
data(lv_timestampl) = z2ui5_lcl_utility=>get_timestampl( ).
DATA(lv_timestampl) = z2ui5_lcl_utility=>get_timestampl( ).
DATA(lv_ts_four_hours_ago) = cl_abap_tstmp=>subtractsecs( tstmp = lv_timestampl
secs = 60 * 60 * 4 ).
@ -1371,9 +1377,9 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
CATCH cx_root.
ENDTRY.
IF ss_config-search CS `scenario=LAUNCHPAD`.
result->ms_actual-check_launchpad_active = abap_true.
ENDIF.
IF ss_config-search CS `scenario=LAUNCHPAD`.
result->ms_actual-check_launchpad_active = abap_true.
ENDIF.
ENDMETHOD.
@ -1393,10 +1399,10 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
* DATA(lv_q) = z2ui5_lcl_utility=>get_param( `q` ).
* DATA(lv_app) = to_lower( z2ui5_lcl_utility=>get_classname_by_ref( ms_db-o_app ) ).
IF ms_next-S_set-search IS INITIAL.
IF ms_next-s_set-search IS INITIAL.
lo_resp->add_attribute( n = `SEARCH` v = ms_actual-s_config-search ).
ELSE.
lo_resp->add_attribute( n = `SEARCH` v = ms_next-S_set-search ).
lo_resp->add_attribute( n = `SEARCH` v = ms_next-s_set-search ).
ENDIF.
result = lo_resp->get_root( )->stringify( ).
@ -1690,7 +1696,7 @@ CLASS z2ui5_lcl_fw_handler IMPLEMENTATION.
r_result->ms_actual-check_launchpad_active = ms_actual-check_launchpad_active.
r_result->ms_actual-check_on_navigated = abap_true.
r_result->ms_next-s_Set = ms_next-s_set.
r_result->ms_next-s_set = ms_next-s_set.
ENDMETHOD.
@ -1724,7 +1730,7 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
check_launchpad_active = mo_handler->ms_actual-check_launchpad_active
t_event_arg = mo_handler->ms_actual-t_event_arg
t_scroll_pos = mo_handler->ms_actual-t_scroll_pos
s_DRAFT = CORRESPONDING #( mo_handler->ms_db )
s_draft = CORRESPONDING #( mo_handler->ms_db )
check_on_navigated = mo_handler->ms_actual-check_on_navigated
s_config = z2ui5_lcl_fw_handler=>ss_config ).
result-s_draft-app = mo_handler->ms_db-o_app.

View File

@ -1243,6 +1243,28 @@ CLASS z2ui5_cl_xml_view DEFINITION
!press TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
METHODS tree
IMPORTING
!items TYPE clike OPTIONAL
!headerText TYPE clike OPTIONAL
!footerText TYPE clike OPTIONAL
!mode TYPE clike OPTIONAL
!includeItemInSelection TYPE abap_bool OPTIONAL
!inset TYPE abap_bool OPTIONAL
!width TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
METHODS standard_tree_item
IMPORTING
!title TYPE clike OPTIONAL
!icon TYPE clike OPTIONAL
!press TYPE clike OPTIONAL
!detailPress TYPE clike OPTIONAL
!type TYPE clike OPTIONAL
!selected TYPE clike OPTIONAL
!counter TYPE clike OPTIONAL
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
PROTECTED SECTION.
DATA mv_name TYPE string.
@ -1276,7 +1298,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD appointments.
result = _generic( name = `appointments` ).
result = _generic( name = `appointments` ).
ENDMETHOD.
@ -1752,33 +1774,33 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD filter_bar.
result = _generic( name = `FilterBar`
ns = 'fb'
t_prop = VALUE #( ( n = 'useToolbar' v = usetoolbar )
( n = 'search' v = search )
( n = 'filterChange' v = filterchange ) ) ).
result = _generic( name = `FilterBar`
ns = 'fb'
t_prop = VALUE #( ( n = 'useToolbar' v = usetoolbar )
( n = 'search' v = search )
( n = 'filterChange' v = filterchange ) ) ).
ENDMETHOD.
METHOD filter_control.
result = _generic( name = `control`
ns = 'fb' ).
ns = 'fb' ).
ENDMETHOD.
METHOD filter_group_item.
result = _generic( name = `FilterGroupItem`
ns = 'fb'
t_prop = VALUE #( ( n = 'name' v = name )
( n = 'label' v = label )
( n = 'groupName' v = groupname )
( n = 'visibleInFilterBar' v = visibleinfilterbar ) ) ).
result = _generic( name = `FilterGroupItem`
ns = 'fb'
t_prop = VALUE #( ( n = 'name' v = name )
( n = 'label' v = label )
( n = 'groupName' v = groupname )
( n = 'visibleInFilterBar' v = visibleinfilterbar ) ) ).
ENDMETHOD.
METHOD filter_group_items.
result = _generic( name = `filterGroupItems`
ns = 'fb' ).
ns = 'fb' ).
ENDMETHOD.
@ -1828,7 +1850,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD formatted_text.
result = me.
_generic( name = `FormattedText`
t_prop = VALUE #( ( n = `htmlText` v = htmltext ) ) ).
t_prop = VALUE #( ( n = `htmlText` v = htmltext ) ) ).
ENDMETHOD.
@ -1836,14 +1858,14 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
result = me.
_generic(
name = `GenericTile`
ns = ``
t_prop = VALUE #(
( n = `class` v = class )
( n = `header` v = header )
( n = `press` v = press )
( n = `frameType` v = frametype )
( n = `subheader` v = subheader ) ) ).
name = `GenericTile`
ns = ``
t_prop = VALUE #(
( n = `class` v = class )
( n = `header` v = header )
( n = `press` v = press )
( n = `frameType` v = frametype )
( n = `subheader` v = subheader ) ) ).
ENDMETHOD.
@ -1890,7 +1912,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
result = me.
_generic( name = `GridData`
ns = `layout`
t_prop = VALUE #( ( n = `span` v = span ) ) ).
t_prop = VALUE #( ( n = `span` v = span ) ) ).
ENDMETHOD.
@ -1971,10 +1993,10 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
DATA(ls_config) = mo_root->mi_client->get( )-s_config.
result = lcl_utility=>get_replace(
iv_val = xml
iv_begin = 'controllerName="'
iv_end = '"'
iv_replace = `controllerName="` && ls_config-controller_name && `"` ).
iv_val = xml
iv_begin = 'controllerName="'
iv_end = '"'
iv_replace = `controllerName="` && ls_config-controller_name && `"` ).
ENDMETHOD.
@ -2029,12 +2051,12 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
result = _generic( name = `IllustratedMessage`
t_prop = VALUE #( ( n = `enableVerticalResponsiveness` v = enableVerticalResponsiveness )
( n = `illustrationType` v = illustrationType )
( n = `enableFormattedText` v = lcl_utility=>get_json_boolean( enableFormattedText ) )
( n = `illustrationSize` v = illustrationSize )
( n = `description` v = description )
( n = `title` v = title )
) ).
( n = `illustrationType` v = illustrationType )
( n = `enableFormattedText` v = lcl_utility=>get_json_boolean( enableFormattedText ) )
( n = `illustrationSize` v = illustrationSize )
( n = `description` v = description )
( n = `title` v = title )
) ).
ENDMETHOD.
@ -2076,7 +2098,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD input_list_item.
result = _generic( name = `InputListItem`
t_prop = VALUE #( ( n = `label` v = label ) ) ).
t_prop = VALUE #( ( n = `label` v = label ) ) ).
ENDMETHOD.
@ -2149,7 +2171,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD intervalheaders.
result = _generic( name = `intervalHeaders` ).
result = _generic( name = `intervalHeaders` ).
ENDMETHOD.
@ -2272,9 +2294,9 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD mid_column_pages.
result = _generic( name = `midColumnPages`
ns = `f`
t_prop = VALUE #( ( n = `id` v = id ) ) ).
result = _generic( name = `midColumnPages`
ns = `f`
t_prop = VALUE #( ( n = `id` v = id ) ) ).
ENDMETHOD.
@ -2526,15 +2548,15 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD radio_button_group.
result = _generic( name = `RadioButtonGroup`
t_prop = VALUE #( ( n = `id` v = id )
( n = `columns` v = columns )
( n = `editable` v = lcl_utility=>get_json_boolean( editable ) )
( n = `enabled` v = lcl_utility=>get_json_boolean( enabled ) )
( n = `selectedIndex` v = selectedIndex )
( n = `textDirection` v = textDirection )
( n = `valueState` v = valueState )
( n = `width` v = width )
) ).
t_prop = VALUE #( ( n = `id` v = id )
( n = `columns` v = columns )
( n = `editable` v = lcl_utility=>get_json_boolean( editable ) )
( n = `enabled` v = lcl_utility=>get_json_boolean( enabled ) )
( n = `selectedIndex` v = selectedIndex )
( n = `textDirection` v = textDirection )
( n = `valueState` v = valueState )
( n = `width` v = width )
) ).
ENDMETHOD.
@ -2556,7 +2578,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD rows.
result = _generic( name = `rows` ).
result = _generic( name = `rows` ).
ENDMETHOD.
@ -2774,6 +2796,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD tilecontent.
result = _generic( name = `TileContent`
ns = ``
t_prop = VALUE #(
@ -2865,7 +2888,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD tree_columns.
result = _generic( name = `columns`
ns = `table` ).
ns = `table` ).
ENDMETHOD.
@ -2889,7 +2912,7 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD tree_template.
result = _generic( name = `template`
ns = `table` ).
ns = `table` ).
ENDMETHOD.
@ -2907,21 +2930,21 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD ui_columns.
result = _generic( name = `columns`
ns = 'table' ).
result = _generic( name = `columns`
ns = 'table' ).
ENDMETHOD.
METHOD ui_extension.
result = _generic( name = `extension`
ns = 'table' ).
result = _generic( name = `extension`
ns = 'table' ).
ENDMETHOD.
METHOD ui_row_action.
result = _generic( name = `RowAction`
ns = `table` ).
result = _generic( name = `RowAction`
ns = `table` ).
ENDMETHOD.
@ -2981,8 +3004,8 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD ui_template.
result = _generic( name = `template`
ns = 'table' ).
result = _generic( name = `template`
ns = 'table' ).
ENDMETHOD.
@ -3063,6 +3086,32 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ENDMETHOD.
METHOD tree.
result = _generic( name = `Tree`
t_prop = VALUE #(
( n = `items` v = items )
( n = `headerText` v = headertext )
( n = `footerText` v = footerText )
( n = `mode` v = mode )
( n = `width` v = width )
( n = `includeItemInSelection` v = lcl_utility=>get_json_boolean( includeItemInSelection ) )
( n = `inset` v = lcl_utility=>get_json_boolean( inset ) )
) ).
ENDMETHOD.
METHOD standard_tree_item.
result = me.
_generic( name = `StandardTreeItem`
t_prop = VALUE #( ( n = `title` v = title )
( n = `icon` v = icon )
( n = `press` v = press )
( n = `detailPress` v = detailPress )
( n = `type` v = type )
( n = `counter` v = counter )
( n = `selected` v = selected ) ) ).
endmethod.
METHOD numericcontent.
result = _generic( name = `NumericContent`