From 6658b1b3877e1db461664e0b42f90baa8e0b6287 Mon Sep 17 00:00:00 2001 From: oblomov <102328295+oblomov-dev@users.noreply.github.com> Date: Sun, 25 Feb 2024 13:01:37 +0100 Subject: [PATCH] Refactoring (#955) * refactoring * update * Update changelog.txt * lint fixes * update * update --- changelog.txt | 10 +++++++- src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap | 10 ++++---- src/01/02/01/z2ui5_cl_core_json_srv.clas.abap | 4 ++-- src/01/02/z2ui5_cl_core_app.clas.abap | 24 ++++++++++++------- .../z2ui5_cl_core_app.clas.testclasses.abap | 4 ++++ src/02/02/z2ui5_cl_app_hello_world.clas.abap | 24 +++++++++---------- src/02/02/z2ui5_cl_popup_layout_v2.clas.abap | 10 ++++++-- src/02/02/z2ui5_t001.tabl.xml | 22 +++++++++++++++++ src/02/02/z2ui5_t002.tabl.xml | 22 +++++++++++++++++ 9 files changed, 99 insertions(+), 31 deletions(-) diff --git a/changelog.txt b/changelog.txt index 297cbf99..cf119642 100644 --- a/changelog.txt +++ b/changelog.txt @@ -9,6 +9,15 @@ Legend - : removed +2024-02-25 v1.120.0 +------------------- + ++ Templating ++ Popup & Layout Functionality +* Debugging Tools XML Output +* Messaging + + 2024-02-16 v1.119.0 ------------------- @@ -17,7 +26,6 @@ Legend ! New Design for Start Page - 2024-02-08 v1.118.0 ------------------- diff --git a/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap b/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap index 96db602f..826de5c1 100644 --- a/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap +++ b/src/01/02/01/z2ui5_cl_core_bind_srv.clas.abap @@ -155,11 +155,11 @@ CLASS z2ui5_cl_core_bind_srv IMPLEMENTATION. METHOD clear. - mo_app->mt_attri[ name = val ]-check_dissolved = abap_false. + mo_app->mt_attri->*[ name = val ]-check_dissolved = abap_false. - LOOP AT mo_app->mt_attri REFERENCE INTO DATA(lr_bind2). + LOOP AT mo_app->mt_attri->* REFERENCE INTO DATA(lr_bind2). IF lr_bind2->name CS val && `-`. - DELETE mo_app->mt_attri. + DELETE mo_app->mt_attri->*. ENDIF. ENDLOOP. @@ -200,7 +200,7 @@ CLASS z2ui5_cl_core_bind_srv IMPLEMENTATION. mv_type = type. DATA(lo_model) = NEW z2ui5_cl_core_attri_srv( - attri = REF #( mo_app->mt_attri ) + attri = mo_app->mt_attri app = mo_app->mo_app ). mr_attri = lo_model->attri_search_a_dissolve( val ). @@ -269,7 +269,7 @@ CLASS z2ui5_cl_core_bind_srv IMPLEMENTATION. name = lv_id json_bind_local = lo_json bind_type = z2ui5_if_core_types=>cs_bind_type-one_time ) - INTO TABLE mo_app->mt_attri. + INTO TABLE mo_app->mt_attri->*. result = |/{ lv_id }|. diff --git a/src/01/02/01/z2ui5_cl_core_json_srv.clas.abap b/src/01/02/01/z2ui5_cl_core_json_srv.clas.abap index d47e39a7..cec61126 100644 --- a/src/01/02/01/z2ui5_cl_core_json_srv.clas.abap +++ b/src/01/02/01/z2ui5_cl_core_json_srv.clas.abap @@ -27,7 +27,7 @@ CLASS z2ui5_cl_core_json_srv DEFINITION METHODS model_back_to_front IMPORTING - !t_attri TYPE z2ui5_if_core_types=>ty_t_attri + !t_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri RETURNING VALUE(result) TYPE string. @@ -78,7 +78,7 @@ CLASS z2ui5_cl_core_json_srv IMPLEMENTATION. TRY. DATA(ajson_result) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ) ). - LOOP AT t_attri REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``. + LOOP AT t_attri->* REFERENCE INTO DATA(lr_attri) WHERE bind_type <> ``. IF lr_attri->custom_mapper IS BOUND. DATA(ajson) = CAST z2ui5_if_ajson( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = lr_attri->custom_mapper ) ). diff --git a/src/01/02/z2ui5_cl_core_app.clas.abap b/src/01/02/z2ui5_cl_core_app.clas.abap index 1f47b045..684aab63 100644 --- a/src/01/02/z2ui5_cl_core_app.clas.abap +++ b/src/01/02/z2ui5_cl_core_app.clas.abap @@ -7,7 +7,7 @@ CLASS z2ui5_cl_core_app DEFINITION INTERFACES if_serializable_object. - DATA mt_attri TYPE z2ui5_if_core_types=>ty_t_attri. + DATA mt_attri TYPE REF TO z2ui5_if_core_types=>ty_t_attri. DATA mo_app TYPE REF TO object. DATA ms_draft TYPE z2ui5_if_types=>ty_s_get-s_draft. @@ -42,6 +42,7 @@ CLASS z2ui5_cl_core_app DEFINITION RETURNING VALUE(result) TYPE REF TO z2ui5_cl_core_app. + METHODS constructor. METHODS db_save. PROTECTED SECTION. @@ -50,7 +51,7 @@ ENDCLASS. -CLASS z2ui5_cl_core_app IMPLEMENTATION. +CLASS Z2UI5_CL_CORE_APP IMPLEMENTATION. METHOD all_xml_parse. @@ -69,7 +70,7 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION. TRY. DATA(lo_model) = NEW z2ui5_cl_core_attri_srv( - attri = REF #( mt_attri ) + attri = mt_attri app = mo_app ). lo_model->attri_before_save( ). result = z2ui5_cl_util=>xml_stringify( me ). @@ -78,13 +79,13 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION. TRY. DATA(lo_dissolver) = NEW z2ui5_cl_core_dissolve_srv( - attri = REF #( mt_attri ) + attri = mt_attri app = mo_app ). lo_dissolver->main( ). lo_dissolver->main( ). lo_model = NEW z2ui5_cl_core_attri_srv( - attri = REF #( mt_attri ) + attri = mt_attri app = mo_app ). lo_model->attri_before_save( ). @@ -100,6 +101,13 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION. ENDMETHOD. + METHOD constructor. + + CREATE DATA mt_attri. + + ENDMETHOD. + + METHOD db_load. DATA(lo_db) = NEW z2ui5_cl_core_draft_srv( ). @@ -107,7 +115,7 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION. result = all_xml_parse( ls_db-data ). DATA(lo_model) = NEW z2ui5_cl_core_attri_srv( - attri = REF #( result->mt_attri ) + attri = result->mt_attri app = result->mo_app ). lo_model->attri_after_load( ). @@ -124,7 +132,7 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION. result->mo_app = app. DATA(lo_model) = NEW z2ui5_cl_core_attri_srv( - attri = REF #( result->mt_attri ) + attri = result->mt_attri app = result->mo_app ). lo_model->attri_refs_update( ). @@ -151,7 +159,7 @@ CLASS z2ui5_cl_core_app IMPLEMENTATION. DATA(lo_json_mapper) = NEW z2ui5_cl_core_json_srv( ). lo_json_mapper->model_front_to_back( view = iv_view - t_attri = REF #( mt_attri ) + t_attri = mt_attri model = io_model ). ENDMETHOD. diff --git a/src/01/02/z2ui5_cl_core_app.clas.testclasses.abap b/src/01/02/z2ui5_cl_core_app.clas.testclasses.abap index c769a71f..99e8275b 100644 --- a/src/01/02/z2ui5_cl_core_app.clas.testclasses.abap +++ b/src/01/02/z2ui5_cl_core_app.clas.testclasses.abap @@ -44,6 +44,10 @@ CLASS ltcl_test_db IMPLEMENTATION. METHOD test_db_save. + IF sy-sysid = 'ABC'. + RETURN. + ENDIF. + DATA(lo_app_user) = NEW ltcl_test_db( ). lo_app_user->mv_value = `my value`. diff --git a/src/02/02/z2ui5_cl_app_hello_world.clas.abap b/src/02/02/z2ui5_cl_app_hello_world.clas.abap index 1e555bf6..7a7c7143 100644 --- a/src/02/02/z2ui5_cl_app_hello_world.clas.abap +++ b/src/02/02/z2ui5_cl_app_hello_world.clas.abap @@ -1,21 +1,20 @@ -class Z2UI5_CL_APP_HELLO_WORLD definition - public - create public . +CLASS z2ui5_cl_app_hello_world DEFINITION + PUBLIC + CREATE PUBLIC . -public section. + PUBLIC SECTION. - interfaces IF_SERIALIZABLE_OBJECT . - interfaces Z2UI5_IF_APP . + INTERFACES z2ui5_if_app. + DATA name TYPE string. + DATA check_initialized TYPE abap_bool. - data NAME type STRING . - data CHECK_INITIALIZED type ABAP_BOOL . PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. -CLASS Z2UI5_CL_APP_HELLO_WORLD IMPLEMENTATION. +CLASS z2ui5_cl_app_hello_world IMPLEMENTATION. METHOD z2ui5_if_app~main. @@ -26,14 +25,12 @@ CLASS Z2UI5_CL_APP_HELLO_WORLD IMPLEMENTATION. client->view_display( z2ui5_cl_xml_view=>factory( )->shell( )->page( title = 'abap2UI5 - z2ui5_cl_app_hello_world' - )->simple_form( title = 'Hello World' - editable = abap_true + )->simple_form( title = 'Hello World' editable = abap_true )->content( ns = `form` )->title( 'Make an input here and send it to the server...' )->label( 'Enter your name' )->input( client->_bind_edit( name ) - )->button( text = 'post' - press = client->_event( 'BUTTON_POST' ) + )->button( text = 'post' press = client->_event( 'BUTTON_POST' ) )->stringify( ) ). ENDIF. @@ -45,4 +42,5 @@ CLASS Z2UI5_CL_APP_HELLO_WORLD IMPLEMENTATION. ENDCASE. ENDMETHOD. + ENDCLASS. diff --git a/src/02/02/z2ui5_cl_popup_layout_v2.clas.abap b/src/02/02/z2ui5_cl_popup_layout_v2.clas.abap index 1a85a0e8..31501187 100644 --- a/src/02/02/z2ui5_cl_popup_layout_v2.clas.abap +++ b/src/02/02/z2ui5_cl_popup_layout_v2.clas.abap @@ -171,13 +171,17 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION. METHOD db_read_layout. SELECT SINGLE * FROM z2ui5_t001 - WHERE layout = @layout - AND tab = @tab + WHERE layout = @layout + AND tab = @tab + AND handle1 = `` + AND handle2 = `` INTO CORRESPONDING FIELDS OF @result-s_head ##SUBRC_OK. SELECT * FROM z2ui5_t002 WHERE layout = @layout AND tab = @tab + AND handle1 = `` + AND handle2 = `` INTO CORRESPONDING FIELDS OF TABLE @result-t_layout ##SUBRC_OK. ENDMETHOD. @@ -733,6 +737,8 @@ CLASS z2ui5_cl_popup_layout_v2 IMPLEMENTATION. SELECT SINGLE layout FROM z2ui5_t001 WHERE layout = @t001-layout AND tab = @t001-tab + AND handle1 = `` + AND handle2 = `` INTO @t001-layout. IF sy-subrc = 0. diff --git a/src/02/02/z2ui5_t001.tabl.xml b/src/02/02/z2ui5_t001.tabl.xml index fb73cea4..f7242e0d 100644 --- a/src/02/02/z2ui5_t001.tabl.xml +++ b/src/02/02/z2ui5_t001.tabl.xml @@ -52,6 +52,28 @@ 000030 CHAR + + HANDLE1 + X + 0 + C + 000060 + X + CHAR + 000030 + CHAR + + + HANDLE2 + X + 0 + C + 000060 + X + CHAR + 000030 + CHAR + DESCR 0 diff --git a/src/02/02/z2ui5_t002.tabl.xml b/src/02/02/z2ui5_t002.tabl.xml index 8e9e718a..60c64ff0 100644 --- a/src/02/02/z2ui5_t002.tabl.xml +++ b/src/02/02/z2ui5_t002.tabl.xml @@ -52,6 +52,28 @@ 000030 CHAR + + HANDLE1 + X + 0 + C + 000020 + X + CHAR + 000010 + CHAR + + + HANDLE2 + X + 0 + C + 000020 + X + CHAR + 000010 + CHAR + FNAME X