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

View File

@ -427,6 +427,7 @@ ENDCLASS.
CLASS z2ui5_lcl_utility_tree_json DEFINITION.
PUBLIC SECTION.
DATA mo_root TYPE REF TO z2ui5_lcl_utility_tree_json.
DATA mo_parent TYPE REF TO z2ui5_lcl_utility_tree_json.
DATA mv_name TYPE string.
@ -492,7 +493,9 @@ ENDCLASS.
CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
METHOD add_attribute.
DATA(lo_attri) = new( io_root = mo_root iv_name = n ).
IF apos_active = abap_false.
@ -505,16 +508,20 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
INSERT lo_attri INTO TABLE mt_values.
result = me.
ENDMETHOD.
METHOD add_attribute_instance.
val->mo_root = mo_root.
val->mo_parent = me.
INSERT val INTO TABLE mt_values.
result = val.
ENDMETHOD.
METHOD add_attribute_struc.
FIELD-SYMBOLS <value> TYPE any.
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.
result = me.
ENDMETHOD.
METHOD add_attribute_object.
DATA(lo_attri) = new( io_root = mo_root iv_name = name ).
mt_values = VALUE #( BASE mt_values ( lo_attri ) ).
lo_attri->mo_parent = me.
result = lo_attri.
ENDMETHOD.
METHOD constructor.
@ -540,6 +550,7 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
ENDMETHOD.
METHOD factory.
result = NEW #( ).
result->mo_root = result.
@ -549,20 +560,20 @@ CLASS z2ui5_lcl_utility_tree_json IMPLEMENTATION.
ENDMETHOD.
METHOD new.
result = NEW #( ).
result->mo_root = io_root.
result->mv_name = CONV string( iv_name ).
ENDMETHOD.
METHOD get_attribute.
CONSTANTS c_prefix TYPE string VALUE `MR_ACTUAL->`.
z2ui5_lcl_utility=>raise( when = xsdbool( mr_actual IS INITIAL ) ).
DATA(lo_attri) = new( io_root = mo_root iv_name = name ).
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>.
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.
INSERT lo_attri INTO TABLE mt_values.
result = lo_attri.
ENDMETHOD.
METHOD get_val.
FIELD-SYMBOLS <attribute> TYPE any.
FIELD-SYMBOLS <attribute> TYPE any.
ASSIGN mr_actual->* TO <attribute>.
z2ui5_lcl_utility=>raise( when = xsdbool( sy-subrc <> 0 ) v = `Value of Attribute in JSON not found` ).
result = <attribute>.
ENDMETHOD.
METHOD get_root.
@ -1705,7 +1717,12 @@ CLASS z2ui5_lcl_fw_client IMPLEMENTATION.
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.

View File

@ -377,11 +377,11 @@ CLASS ltcl_unit_02_app_start IMPLEMENTATION.
IF sv_state = 'TEST_SCROLL_CURSOR'.
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'
( name = 'id_page' )
( name = 'id_text3' ) ) ).
client->scroll_position_set( VALUE #( v = '99999'
( n = 'id_page' )
( n = 'id_text3' ) ) ).
ENDIF.

View File

@ -4,46 +4,32 @@ CLASS z2ui5_cl_xml_view DEFINITION
CREATE PROTECTED.
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
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
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
CLASS-METHODS factory_popup
IMPORTING
t_ns TYPE ty_t_name_value OPTIONAL
client TYPE REF TO z2ui5_if_client
RETURNING VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
t_ns TYPE z2ui5_if_client=>ty_t_name_value OPTIONAL
client TYPE REF TO z2ui5_if_client
RETURNING
VALUE(result) TYPE REF TO z2ui5_cl_xml_view.
METHODS constructor.
METHODS hlp_get_source_code_url
RETURNING
VALUE(result) TYPE string.
METHODS hlp_replace_controller_name
IMPORTING xml TYPE string
RETURNING VALUE(result) TYPE string.
METHODS constructor.
IMPORTING
xml TYPE string
RETURNING
VALUE(result) TYPE string.
METHODS horizontal_layout
IMPORTING class TYPE clike OPTIONAL
@ -826,7 +812,7 @@ CLASS z2ui5_cl_xml_view DEFINITION
IMPORTING
name TYPE clike
ns TYPE clike OPTIONAL
t_prop TYPE ty_t_name_value OPTIONAL
t_prop TYPE z2ui5_if_client=>ty_t_name_value OPTIONAL
RETURNING
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 .
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.
ENDCLASS.
@ -1383,16 +1383,16 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
result->mt_prop = t_ns.
ENDIF.
result->ss_config = client->get( )-s_config.
result->mi_client = client.
result->mt_prop = VALUE #( BASE result->mt_prop
( n = 'displayBlock' v = 'true' )
( 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->m_ns = `mvc`.
result->m_root = result.
result->m_parent = result.
result->mv_name = `View`.
result->mv_ns = `mvc`.
result->mo_root = result.
result->mo_parent = result.
ENDMETHOD.
@ -1405,11 +1405,12 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
result->mt_prop = t_ns.
ENDIF.
result->ss_config = client->get( )-s_config.
result->m_name = `FragmentDefinition`.
result->m_ns = `core`.
result->m_root = result.
result->m_parent = result.
result->mi_client = client.
result->mv_name = `FragmentDefinition`.
result->mv_ns = `core`.
result->mo_root = result.
result->mo_parent = result.
ENDMETHOD.
@ -1515,22 +1516,22 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD get.
result = m_root->m_last.
result = mo_root->mo_previous.
ENDMETHOD.
METHOD get_child.
result = t_child[ index ].
result = mt_child[ index ].
ENDMETHOD.
METHOD get_parent.
result = m_parent.
result = mo_parent.
ENDMETHOD.
METHOD get_root.
result = m_root.
result = mo_root.
ENDMETHOD.
@ -1589,8 +1590,10 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD hlp_get_source_code_url.
result = m_root->ss_config-origin &&
`/sap/bc/adt/oo/classes/` && lcl_utility=>get_classname_by_ref( m_root->ss_config-app ) &&
DATA(ls_config) = mo_root->mi_client->get( )-s_config.
result = ls_config-origin &&
`/sap/bc/adt/oo/classes/` && lcl_utility=>get_classname_by_ref( ls_config-app ) &&
`/source/main`.
ENDMETHOD.
@ -1598,11 +1601,13 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD hlp_replace_controller_name.
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="` && ss_config-controller_name && `"` ).
iv_replace = `controllerName="` && ls_config-controller_name && `"` ).
ENDMETHOD.
@ -2470,13 +2475,13 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD xml_get.
CASE m_name.
CASE mv_name.
WHEN `ZZPLAIN`.
result = mt_prop[ n = `VALUE` ]-v.
RETURN.
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 <> `` )
NEXT val = |{ val } { row-n }="{ escape(
val = COND string( WHEN row-v = abap_true
@ -2484,21 +2489,21 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
ELSE row-v )
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 }/>|.
RETURN.
ENDIF.
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( ).
ENDLOOP.
DATA(lv_ns) = COND #( WHEN m_ns <> || THEN |{ m_ns }:| ).
result = |{ result }</{ lv_ns }{ m_name }>|.
DATA(lv_ns) = COND #( WHEN mv_ns <> || THEN |{ mv_ns }:| ).
result = |{ result }</{ lv_ns }{ mv_name }>|.
ENDMETHOD.
@ -2513,14 +2518,14 @@ CLASS z2ui5_cl_xml_view IMPLEMENTATION.
METHOD _generic.
DATA(result2) = NEW z2ui5_cl_xml_view( ).
result2->m_name = name.
result2->m_ns = ns.
result2->mv_name = name.
result2->mv_ns = ns.
result2->mt_prop = t_prop.
result2->m_parent = me.
result2->m_root = m_root.
INSERT result2 INTO TABLE t_child.
result2->mo_parent = me.
result2->mo_root = mo_root.
INSERT result2 INTO TABLE mt_child.
m_root->m_last = result2.
mo_root->mo_previous = result2.
result = result2.
ENDMETHOD.

View File

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

View File

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