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