update view interface (#332)

* pragmas cleanup

* view update

* update xml view

* update interface

* update
This commit is contained in:
oblomov 2023-07-01 20:42:53 +02:00 committed by GitHub
parent 2a7c2af4ee
commit 2aa9d4bdd2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 118 additions and 92 deletions

View File

@ -8,9 +8,9 @@ CLASS z2ui5_cl_http_handler DEFINITION
IMPORTING IMPORTING
t_config TYPE z2ui5_if_client=>ty_t_name_value OPTIONAL t_config TYPE z2ui5_if_client=>ty_t_name_value OPTIONAL
content_security_policy TYPE clike OPTIONAL content_security_policy TYPE clike OPTIONAL
check_logging TYPE abap_bool DEFAULT abap_false check_logging TYPE abap_bool OPTIONAL
RETURNING RETURNING
VALUE(r_result) TYPE string ##NEEDED. VALUE(r_result) TYPE string.
CLASS-METHODS http_post CLASS-METHODS http_post
IMPORTING IMPORTING
@ -35,12 +35,12 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
IF lt_config IS INITIAL. IF lt_config IS INITIAL.
lt_config = VALUE #( lt_config = VALUE #(
( name = `data-sap-ui-theme` value = `sap_horizon` ) ( n = `data-sap-ui-theme` v = `sap_horizon` )
( name = `src` value = `https://sdk.openui5.org/resources/sap-ui-cachebuster/sap-ui-core.js` ) ( n = `src` v = `https://sdk.openui5.org/resources/sap-ui-cachebuster/sap-ui-core.js` )
( name = `data-sap-ui-libs` value = `sap.m` ) ( n = `data-sap-ui-libs` v = `sap.m` )
( name = `data-sap-ui-bindingSyntax` value = `complex` ) ( n = `data-sap-ui-bindingSyntax` v = `complex` )
( name = `data-sap-ui-frameOptions` value = `trusted` ) ( n = `data-sap-ui-frameOptions` v = `trusted` )
( name = `data-sap-ui-compatVersion` value = `edge` ) ). ( n = `data-sap-ui-compatVersion` v = `edge` ) ).
ENDIF. ENDIF.
IF content_security_policy IS NOT SUPPLIED. IF content_security_policy IS NOT SUPPLIED.
@ -66,7 +66,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
` <script id="sap-ui-bootstrap"`. ` <script id="sap-ui-bootstrap"`.
LOOP AT lt_config REFERENCE INTO DATA(lr_config). LOOP AT lt_config REFERENCE INTO DATA(lr_config).
r_result = r_result && | { lr_config->name }="{ lr_config->value }"|. r_result = r_result && | { lr_config->n }="{ lr_config->v }"|.
ENDLOOP. ENDLOOP.
r_result = r_result && r_result = r_result &&
@ -377,7 +377,7 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION.
CONTINUE. CONTINUE.
ENDIF. ENDIF.
IF lo_handler->ms_next-o_app_call IS NOT INITIAL. IF lo_handler->ms_next-o_app_call IS NOT INITIAL.
lo_handler = lo_handler->set_app_call( ). lo_handler = lo_handler->set_app_call( ).
CONTINUE. CONTINUE.
ENDIF. ENDIF.

View File

@ -427,6 +427,7 @@ ENDCLASS.
CLASS z2ui5_lcl_utility_tree_json DEFINITION. CLASS z2ui5_lcl_utility_tree_json DEFINITION.
PUBLIC SECTION. PUBLIC SECTION.
DATA mo_root TYPE REF TO z2ui5_lcl_utility_tree_json. DATA mo_root TYPE REF TO z2ui5_lcl_utility_tree_json.
DATA mo_parent TYPE REF TO z2ui5_lcl_utility_tree_json. DATA mo_parent TYPE REF TO z2ui5_lcl_utility_tree_json.
DATA mv_name TYPE string. DATA mv_name TYPE string.
@ -492,7 +493,9 @@ ENDCLASS.
CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION. CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
METHOD add_attribute. METHOD add_attribute.
DATA(lo_attri) = new( io_root = mo_root iv_name = n ). DATA(lo_attri) = new( io_root = mo_root iv_name = n ).
IF apos_active = abap_false. IF apos_active = abap_false.
@ -505,16 +508,20 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
INSERT lo_attri INTO TABLE mt_values. INSERT lo_attri INTO TABLE mt_values.
result = me. result = me.
ENDMETHOD. ENDMETHOD.
METHOD add_attribute_instance. METHOD add_attribute_instance.
val->mo_root = mo_root. val->mo_root = mo_root.
val->mo_parent = me. val->mo_parent = me.
INSERT val INTO TABLE mt_values. INSERT val INTO TABLE mt_values.
result = val. result = val.
ENDMETHOD. ENDMETHOD.
METHOD add_attribute_struc. METHOD add_attribute_struc.
FIELD-SYMBOLS <value> TYPE any. FIELD-SYMBOLS <value> TYPE any.
DATA(lo_struc) = CAST cl_abap_structdescr( cl_abap_datadescr=>describe_by_data( val ) ). DATA(lo_struc) = CAST cl_abap_structdescr( cl_abap_datadescr=>describe_by_data( val ) ).
@ -526,13 +533,16 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
ENDLOOP. ENDLOOP.
result = me. result = me.
ENDMETHOD. ENDMETHOD.
METHOD add_attribute_object. METHOD add_attribute_object.
DATA(lo_attri) = new( io_root = mo_root iv_name = name ). DATA(lo_attri) = new( io_root = mo_root iv_name = name ).
mt_values = VALUE #( BASE mt_values ( lo_attri ) ). mt_values = VALUE #( BASE mt_values ( lo_attri ) ).
lo_attri->mo_parent = me. lo_attri->mo_parent = me.
result = lo_attri. result = lo_attri.
ENDMETHOD. ENDMETHOD.
METHOD constructor. METHOD constructor.
@ -540,6 +550,7 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD factory. METHOD factory.
result = NEW #( ). result = NEW #( ).
result->mo_root = result. result->mo_root = result.
@ -549,20 +560,20 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD new. METHOD new.
result = NEW #( ). result = NEW #( ).
result->mo_root = io_root. result->mo_root = io_root.
result->mv_name = CONV string( iv_name ). result->mv_name = CONV string( iv_name ).
ENDMETHOD. ENDMETHOD.
METHOD get_attribute. METHOD get_attribute.
CONSTANTS c_prefix TYPE string VALUE `MR_ACTUAL->`.
z2ui5_lcl_utility=>raise( when = xsdbool( mr_actual IS INITIAL ) ). z2ui5_lcl_utility=>raise( when = xsdbool( mr_actual IS INITIAL ) ).
DATA(lo_attri) = new( io_root = mo_root iv_name = name ). DATA(lo_attri) = new( io_root = mo_root iv_name = name ).
FIELD-SYMBOLS <attribute> TYPE any. FIELD-SYMBOLS <attribute> TYPE any.
DATA(lv_name) = c_prefix && replace( val = name sub = `-` with = `_` occ = 0 ). DATA(lv_name) = 'MR_ACTUAL->' && replace( val = name sub = `-` with = `_` occ = 0 ).
ASSIGN (lv_name) TO <attribute>. ASSIGN (lv_name) TO <attribute>.
z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) ). z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) ).
@ -570,17 +581,18 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
lo_attri->mo_parent = me. lo_attri->mo_parent = me.
INSERT lo_attri INTO TABLE mt_values. INSERT lo_attri INTO TABLE mt_values.
result = lo_attri. result = lo_attri.
ENDMETHOD. ENDMETHOD.
METHOD get_val. METHOD get_val.
FIELD-SYMBOLS <attribute> TYPE any.
FIELD-SYMBOLS <attribute> TYPE any.
ASSIGN mr_actual->* TO <attribute>. ASSIGN mr_actual->* TO <attribute>.
z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) v = `Value of Attribute in JSON not found` ). z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) v = `Value of Attribute in JSON not found` ).
result = <attribute>. result = <attribute>.
ENDMETHOD. ENDMETHOD.
METHOD get_root. METHOD get_root.
@ -1705,7 +1717,12 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
METHOD z2ui5_if_client~cursor_set. METHOD z2ui5_if_client~cursor_set.
mo_handler->ms_next-s_set-s_cursor = val. mo_handler->ms_next-s_set-s_cursor = VALUE #(
id = id
cursorpos = cursorpos
selectionend = selectionend
selectionstart = selectionstart
).
ENDMETHOD. ENDMETHOD.

View File

@ -377,11 +377,11 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION.
IF sv_state = 'TEST_SCROLL_CURSOR'. IF sv_state = 'TEST_SCROLL_CURSOR'.
client->view_display( `test` ). client->view_display( `test` ).
client->cursor_set( VALUE #( id = 'id_text2' cursorpos = '5' selectionstart = '5' selectionend = '10' ) ). client->cursor_set( id = 'id_text2' cursorpos = '5' selectionstart = '5' selectionend = '10' ).
client->scroll_position_set( VALUE #( value = '99999' client->scroll_position_set( VALUE #( v = '99999'
( name = 'id_page' ) ( n = 'id_page' )
( name = 'id_text3' ) ) ). ( n = 'id_text3' ) ) ).
ENDIF. ENDIF.

View File

@ -4,46 +4,32 @@ CLASS z2ui5_cl_xml_view DEFINITION
CREATE PROTECTED. CREATE PROTECTED.
PUBLIC SECTION. PUBLIC SECTION.
TYPES:
BEGIN OF ty_s_name_value,
n TYPE string,
v TYPE string,
END OF ty_s_name_value.
TYPES ty_t_name_value TYPE STANDARD TABLE OF ty_s_name_value WITH EMPTY KEY.
DATA m_name TYPE string.
DATA m_ns TYPE string.
DATA mt_prop TYPE ty_t_name_value.
DATA m_root TYPE REF TO z2ui5_cl_xml_view.
DATA m_last TYPE REF TO z2ui5_cl_xml_view.
DATA m_parent TYPE REF TO z2ui5_cl_xml_view.
DATA t_child TYPE STANDARD TABLE OF REF TO z2ui5_cl_xml_view WITH EMPTY KEY.
DATA ss_config TYPE z2ui5_if_client=>ty_s_config.
CLASS-METHODS factory CLASS-METHODS factory
IMPORTING IMPORTING
t_ns TYPE ty_t_name_value OPTIONAL t_ns TYPE z2ui5_if_client=>ty_t_name_value OPTIONAL
client TYPE REF TO z2ui5_if_client client TYPE REF TO z2ui5_if_client
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
CLASS-METHODS factory_popup CLASS-METHODS factory_popup
IMPORTING IMPORTING
t_ns TYPE ty_t_name_value OPTIONAL t_ns TYPE z2ui5_if_client=>ty_t_name_value OPTIONAL
client TYPE REF TO z2ui5_if_client client TYPE REF TO z2ui5_if_client
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view. RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS constructor.
METHODS hlp_get_source_code_url METHODS hlp_get_source_code_url
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.
METHODS hlp_replace_controller_name METHODS hlp_replace_controller_name
IMPORTING xml TYPE string IMPORTING
RETURNING VALUE(result) TYPE string. xml TYPE string
RETURNING
METHODS constructor. VALUE(result) TYPE string.
METHODS horizontal_layout METHODS horizontal_layout
IMPORTING class TYPE clike OPTIONAL IMPORTING class TYPE clike OPTIONAL
@ -826,7 +812,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
IMPORTING IMPORTING
name TYPE clike name TYPE clike
ns TYPE clike OPTIONAL ns TYPE clike OPTIONAL
t_prop TYPE ty_t_name_value OPTIONAL t_prop TYPE z2ui5_if_client=>ty_t_name_value OPTIONAL
RETURNING RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view. VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
@ -967,6 +953,20 @@ CLASS z2ui5_cl_xml_view DEFINITION
VALUE(result) TYPE REF TO z2ui5_cl_xml_view . VALUE(result) TYPE REF TO z2ui5_cl_xml_view .
PROTECTED SECTION. PROTECTED SECTION.
DATA mv_name TYPE string.
DATA mv_ns TYPE string.
DATA mt_prop TYPE z2ui5_if_client=>ty_t_name_value.
DATA mo_root TYPE REF TO z2ui5_cl_xml_view.
DATA mo_previous TYPE REF TO z2ui5_cl_xml_view.
DATA mo_parent TYPE REF TO z2ui5_cl_xml_view.
DATA mt_child TYPE STANDARD TABLE OF REF TO z2ui5_cl_xml_view WITH EMPTY KEY.
DATA mi_client TYPE REF TO z2ui5_if_client.
* DATA ss_config TYPE z2ui5_if_client=>ty_s_config.
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
@ -1383,16 +1383,16 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
result->mt_prop = t_ns. result->mt_prop = t_ns.
ENDIF. ENDIF.
result->ss_config = client->get( )-s_config. result->mi_client = client.
result->mt_prop = VALUE #( BASE result->mt_prop result->mt_prop = VALUE #( BASE result->mt_prop
( n = 'displayBlock' v = 'true' ) ( n = 'displayBlock' v = 'true' )
( n = 'height' v = '100%' ) ( n = 'height' v = '100%' )
( n = 'controllerName' v = result->ss_config-controller_name ) ). ( n = 'controllerName' v = client->get( )-s_config-controller_name ) ).
result->m_name = `View`. result->mv_name = `View`.
result->m_ns = `mvc`. result->mv_ns = `mvc`.
result->m_root = result. result->mo_root = result.
result->m_parent = result. result->mo_parent = result.
ENDMETHOD. ENDMETHOD.
@ -1405,11 +1405,12 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
result->mt_prop = t_ns. result->mt_prop = t_ns.
ENDIF. ENDIF.
result->ss_config = client->get( )-s_config. result->mi_client = client.
result->m_name = `FragmentDefinition`. result->mv_name = `FragmentDefinition`.
result->m_ns = `core`. result->mv_ns = `core`.
result->m_root = result. result->mo_root = result.
result->m_parent = result. result->mo_parent = result.
ENDMETHOD. ENDMETHOD.
@ -1515,22 +1516,22 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD get. METHOD get.
result = m_root->m_last. result = mo_root->mo_previous.
ENDMETHOD. ENDMETHOD.
METHOD get_child. METHOD get_child.
result = t_child[ index ]. result = mt_child[ index ].
ENDMETHOD. ENDMETHOD.
METHOD get_parent. METHOD get_parent.
result = m_parent. result = mo_parent.
ENDMETHOD. ENDMETHOD.
METHOD get_root. METHOD get_root.
result = m_root. result = mo_root.
ENDMETHOD. ENDMETHOD.
@ -1589,8 +1590,10 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD hlp_get_source_code_url. METHOD hlp_get_source_code_url.
result = m_root->ss_config-origin && DATA(ls_config) = mo_root->mi_client->get( )-s_config.
`/sap/bc/adt/oo/classes/` && lcl_utility=>get_classname_by_ref( m_root->ss_config-app ) &&
result = ls_config-origin &&
`/sap/bc/adt/oo/classes/` && lcl_utility=>get_classname_by_ref( ls_config-app ) &&
`/source/main`. `/source/main`.
ENDMETHOD. ENDMETHOD.
@ -1598,11 +1601,13 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD hlp_replace_controller_name. METHOD hlp_replace_controller_name.
DATA(ls_config) = mo_root->mi_client->get( )-s_config.
result = lcl_utility=>get_replace( result = lcl_utility=>get_replace(
iv_val = xml iv_val = xml
iv_begin = 'controllerName="' iv_begin = 'controllerName="'
iv_end = '"' iv_end = '"'
iv_replace = `controllerName="` && ss_config-controller_name && `"` ). iv_replace = `controllerName="` && ls_config-controller_name && `"` ).
ENDMETHOD. ENDMETHOD.
@ -2470,13 +2475,13 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD xml_get. METHOD xml_get.
CASE m_name. CASE mv_name.
WHEN `ZZPLAIN`. WHEN `ZZPLAIN`.
result = mt_prop[ n = `VALUE` ]-v. result = mt_prop[ n = `VALUE` ]-v.
RETURN. RETURN.
ENDCASE. ENDCASE.
DATA(lv_tmp2) = COND #( WHEN m_ns <> `` THEN |{ m_ns }:| ). DATA(lv_tmp2) = COND #( WHEN mv_ns <> `` THEN |{ mv_ns }:| ).
DATA(lv_tmp3) = REDUCE #( INIT val = `` FOR row IN mt_prop WHERE ( v <> `` ) DATA(lv_tmp3) = REDUCE #( INIT val = `` FOR row IN mt_prop WHERE ( v <> `` )
NEXT val = |{ val } { row-n }="{ escape( NEXT val = |{ val } { row-n }="{ escape(
val = COND string( WHEN row-v = abap_true val = COND string( WHEN row-v = abap_true
@ -2484,21 +2489,21 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ELSE row-v ) ELSE row-v )
format = cl_abap_format=>e_xml_attr ) }" \n | ). format = cl_abap_format=>e_xml_attr ) }" \n | ).
result = |{ result } <{ lv_tmp2 }{ m_name } \n { lv_tmp3 }|. result = |{ result } <{ lv_tmp2 }{ mv_name } \n { lv_tmp3 }|.
IF t_child IS INITIAL. IF mt_child IS INITIAL.
result = |{ result }/>|. result = |{ result }/>|.
RETURN. RETURN.
ENDIF. ENDIF.
result = |{ result }>|. result = |{ result }>|.
LOOP AT t_child INTO DATA(lr_child). LOOP AT mt_child INTO DATA(lr_child).
result = result && CAST z2ui5_cl_xml_view( lr_child )->xml_get( ). result = result && CAST z2ui5_cl_xml_view( lr_child )->xml_get( ).
ENDLOOP. ENDLOOP.
DATA(lv_ns) = COND #( WHEN m_ns <> || THEN |{ m_ns }:| ). DATA(lv_ns) = COND #( WHEN mv_ns <> || THEN |{ mv_ns }:| ).
result = |{ result }</{ lv_ns }{ m_name }>|. result = |{ result }</{ lv_ns }{ mv_name }>|.
ENDMETHOD. ENDMETHOD.
@ -2513,14 +2518,14 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD _generic. METHOD _generic.
DATA(result2) = NEW z2ui5_cl_xml_view( ). DATA(result2) = NEW z2ui5_cl_xml_view( ).
result2->m_name = name. result2->mv_name = name.
result2->m_ns = ns. result2->mv_ns = ns.
result2->mt_prop = t_prop. result2->mt_prop = t_prop.
result2->m_parent = me. result2->mo_parent = me.
result2->m_root = m_root. result2->mo_root = mo_root.
INSERT result2 INTO TABLE t_child. INSERT result2 INTO TABLE mt_child.
m_root->m_last = result2. mo_root->mo_previous = result2.
result = result2. result = result2.
ENDMETHOD. ENDMETHOD.

View File

@ -4,6 +4,7 @@ INTERFACE z2ui5_if_app PUBLIC.
DATA id TYPE string. DATA id TYPE string.
METHODS main METHODS main
IMPORTING client TYPE REF TO z2ui5_if_client. IMPORTING
client TYPE REF TO z2ui5_if_client.
ENDINTERFACE. ENDINTERFACE.

View File

@ -10,7 +10,7 @@ INTERFACE z2ui5_if_client
END OF cs_event. END OF cs_event.
TYPES: TYPES:
BEGIN OF ty_S_config, BEGIN OF ty_s_config,
controller_name TYPE string, controller_name TYPE string,
version TYPE string, version TYPE string,
pathname TYPE string, pathname TYPE string,
@ -23,8 +23,8 @@ INTERFACE z2ui5_if_client
TYPES: TYPES:
BEGIN OF ty_s_name_value, BEGIN OF ty_s_name_value,
name TYPE string, n TYPE string,
value TYPE string, v TYPE string,
END OF ty_s_name_value. END OF ty_s_name_value.
TYPES ty_t_name_value TYPE STANDARD TABLE OF ty_s_name_value WITH EMPTY KEY. TYPES ty_t_name_value TYPE STANDARD TABLE OF ty_s_name_value WITH EMPTY KEY.
@ -52,26 +52,29 @@ INTERFACE z2ui5_if_client
METHODS view_display METHODS view_display
IMPORTING IMPORTING
val TYPE string. val TYPE clike.
METHODS cursor_set METHODS cursor_set
IMPORTING IMPORTING
val TYPE ty_s_get-s_cursor. id TYPE clike
cursorpos TYPE clike
selectionstart TYPE clike
selectionend TYPE clike.
METHODS scroll_position_set METHODS scroll_position_set
IMPORTING IMPORTING
val TYPE ty_s_get-t_scroll_pos. val TYPE ty_t_name_value.
METHODS popup_display METHODS popup_display
IMPORTING IMPORTING
val TYPE string. val TYPE clike.
METHODS popup_close. METHODS popup_close.
METHODS popover_display METHODS popover_display
IMPORTING IMPORTING
xml TYPE string xml TYPE clike
by_id TYPE string. by_id TYPE clike.
METHODS popover_close. METHODS popover_close.
@ -95,13 +98,13 @@ INTERFACE z2ui5_if_client
METHODS message_box_display METHODS message_box_display
IMPORTING IMPORTING
text TYPE string text TYPE clike
type TYPE string DEFAULT 'information'. type TYPE clike DEFAULT 'information'.
METHODS timer_set METHODS timer_set
IMPORTING IMPORTING
interval_ms TYPE string interval_ms TYPE clike
event_finished TYPE string. event_finished TYPE clike.
METHODS message_toast_display METHODS message_toast_display
IMPORTING IMPORTING
@ -131,7 +134,7 @@ INTERFACE z2ui5_if_client
METHODS _event_client METHODS _event_client
IMPORTING IMPORTING
val TYPE string val TYPE clike
RETURNING RETURNING
VALUE(result) TYPE string. VALUE(result) TYPE string.