From bb9462f979188fe5320e09bcf57d77898d9930ef Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Tue, 8 Apr 2025 07:10:40 +0200 Subject: [PATCH] new class `zcl_abapgit_ui_core_factory` (#7194) --- src/ui/core/zcl_abapgit_gui.clas.abap | 2 +- .../zcl_abapgit_ui_core_factory.clas.abap | 38 +++++++++++++++++++ .../core/zcl_abapgit_ui_core_factory.clas.xml | 16 ++++++++ .../zcl_abapgit_ui_core_injector.clas.abap | 25 ++++++++++++ .../zcl_abapgit_ui_core_injector.clas.xml | 17 +++++++++ .../routing/zcl_abapgit_gui_router.clas.abap | 2 +- src/ui/zcl_abapgit_ui_factory.clas.abap | 22 +---------- src/ui/zcl_abapgit_ui_injector.clas.abap | 10 ----- test/src/zcl_abapgit_web.clas.abap | 2 +- 9 files changed, 100 insertions(+), 34 deletions(-) create mode 100644 src/ui/core/zcl_abapgit_ui_core_factory.clas.abap create mode 100644 src/ui/core/zcl_abapgit_ui_core_factory.clas.xml create mode 100644 src/ui/core/zcl_abapgit_ui_core_injector.clas.abap create mode 100644 src/ui/core/zcl_abapgit_ui_core_injector.clas.xml diff --git a/src/ui/core/zcl_abapgit_gui.clas.abap b/src/ui/core/zcl_abapgit_gui.clas.abap index 9c9b5bfe2..69c480c96 100644 --- a/src/ui/core/zcl_abapgit_gui.clas.abap +++ b/src/ui/core/zcl_abapgit_gui.clas.abap @@ -440,7 +440,7 @@ CLASS zcl_abapgit_gui IMPLEMENTATION. FIELD-SYMBOLS LIKE LINE OF lt_assets. - mi_html_viewer = zcl_abapgit_ui_factory=>get_html_viewer( ). + mi_html_viewer = zcl_abapgit_ui_core_factory=>get_html_viewer( ). IF mi_asset_man IS BOUND. lt_assets = mi_asset_man->get_all_assets( ). diff --git a/src/ui/core/zcl_abapgit_ui_core_factory.clas.abap b/src/ui/core/zcl_abapgit_ui_core_factory.clas.abap new file mode 100644 index 000000000..c608caf2d --- /dev/null +++ b/src/ui/core/zcl_abapgit_ui_core_factory.clas.abap @@ -0,0 +1,38 @@ +CLASS zcl_abapgit_ui_core_factory DEFINITION + PUBLIC + CREATE PRIVATE + GLOBAL FRIENDS zcl_abapgit_ui_core_injector . + + PUBLIC SECTION. + + CLASS-METHODS get_html_viewer + IMPORTING + !io_container TYPE REF TO cl_gui_container DEFAULT cl_gui_container=>screen0 + !iv_disable_query_table TYPE abap_bool DEFAULT abap_true + RETURNING + VALUE(ri_viewer) TYPE REF TO zif_abapgit_html_viewer . + PROTECTED SECTION. + PRIVATE SECTION. + + CLASS-DATA gi_html_viewer TYPE REF TO zif_abapgit_html_viewer . +ENDCLASS. + + + +CLASS zcl_abapgit_ui_core_factory IMPLEMENTATION. + + + METHOD get_html_viewer. + + IF gi_html_viewer IS NOT BOUND. + CREATE OBJECT gi_html_viewer TYPE zcl_abapgit_html_viewer_gui + EXPORTING + io_container = io_container + iv_disable_query_table = iv_disable_query_table. + ENDIF. + + ri_viewer = gi_html_viewer. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/ui/core/zcl_abapgit_ui_core_factory.clas.xml b/src/ui/core/zcl_abapgit_ui_core_factory.clas.xml new file mode 100644 index 000000000..3d6104f33 --- /dev/null +++ b/src/ui/core/zcl_abapgit_ui_core_factory.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_ABAPGIT_UI_CORE_FACTORY + E + abapGit - GUI Core Factory + 1 + X + X + X + + + + diff --git a/src/ui/core/zcl_abapgit_ui_core_injector.clas.abap b/src/ui/core/zcl_abapgit_ui_core_injector.clas.abap new file mode 100644 index 000000000..15598a0ae --- /dev/null +++ b/src/ui/core/zcl_abapgit_ui_core_injector.clas.abap @@ -0,0 +1,25 @@ +CLASS zcl_abapgit_ui_core_injector DEFINITION + PUBLIC + FOR TESTING + CREATE PRIVATE . + + PUBLIC SECTION. + + CLASS-METHODS set_html_viewer + IMPORTING + !ii_html_viewer TYPE REF TO zif_abapgit_html_viewer . + PROTECTED SECTION. + PRIVATE SECTION. +ENDCLASS. + + + +CLASS zcl_abapgit_ui_core_injector IMPLEMENTATION. + + METHOD set_html_viewer. + + zcl_abapgit_ui_core_factory=>gi_html_viewer = ii_html_viewer. + + ENDMETHOD. + +ENDCLASS. diff --git a/src/ui/core/zcl_abapgit_ui_core_injector.clas.xml b/src/ui/core/zcl_abapgit_ui_core_injector.clas.xml new file mode 100644 index 000000000..4e3fc8864 --- /dev/null +++ b/src/ui/core/zcl_abapgit_ui_core_injector.clas.xml @@ -0,0 +1,17 @@ + + + + + + ZCL_ABAPGIT_UI_CORE_INJECTOR + E + abapGit - GUI Core Injector + 05 + 1 + X + X + X + + + + diff --git a/src/ui/routing/zcl_abapgit_gui_router.clas.abap b/src/ui/routing/zcl_abapgit_gui_router.clas.abap index b5836d73b..31308f2a0 100644 --- a/src/ui/routing/zcl_abapgit_gui_router.clas.abap +++ b/src/ui/routing/zcl_abapgit_gui_router.clas.abap @@ -573,7 +573,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. lv_new_window = boolc( iv_new_window IS NOT INITIAL ). TRY. - li_html_viewer = zcl_abapgit_ui_factory=>get_html_viewer( ). + li_html_viewer = zcl_abapgit_ui_core_factory=>get_html_viewer( ). " Hide HTML Viewer in dummy screen0 for direct CALL SCREEN to work li_html_viewer->set_visiblity( abap_false ). diff --git a/src/ui/zcl_abapgit_ui_factory.clas.abap b/src/ui/zcl_abapgit_ui_factory.clas.abap index 263978a21..e90060847 100644 --- a/src/ui/zcl_abapgit_ui_factory.clas.abap +++ b/src/ui/zcl_abapgit_ui_factory.clas.abap @@ -28,17 +28,11 @@ CLASS zcl_abapgit_ui_factory DEFINITION !iv_disable_gui TYPE abap_bool DEFAULT abap_false RETURNING VALUE(ri_fe_serv) TYPE REF TO zif_abapgit_frontend_services . - CLASS-METHODS get_html_viewer - IMPORTING - !io_container TYPE REF TO cl_gui_container DEFAULT cl_gui_container=>screen0 - !iv_disable_query_table TYPE abap_bool DEFAULT abap_true - RETURNING - VALUE(ri_viewer) TYPE REF TO zif_abapgit_html_viewer . + PROTECTED SECTION. PRIVATE SECTION. CLASS-DATA gi_popups TYPE REF TO zif_abapgit_popups . - CLASS-DATA gi_html_viewer TYPE REF TO zif_abapgit_html_viewer . CLASS-DATA go_gui TYPE REF TO zcl_abapgit_gui . CLASS-DATA gi_fe_services TYPE REF TO zif_abapgit_frontend_services . CLASS-DATA gi_gui_services TYPE REF TO zif_abapgit_gui_services . @@ -169,20 +163,6 @@ CLASS zcl_abapgit_ui_factory IMPLEMENTATION. ENDMETHOD. - METHOD get_html_viewer. - - IF gi_html_viewer IS NOT BOUND. - CREATE OBJECT gi_html_viewer TYPE zcl_abapgit_html_viewer_gui - EXPORTING - io_container = io_container - iv_disable_query_table = iv_disable_query_table. - ENDIF. - - ri_viewer = gi_html_viewer. - - ENDMETHOD. - - METHOD get_popups. IF gi_popups IS INITIAL. diff --git a/src/ui/zcl_abapgit_ui_injector.clas.abap b/src/ui/zcl_abapgit_ui_injector.clas.abap index ce0a2acb6..5758020c0 100644 --- a/src/ui/zcl_abapgit_ui_injector.clas.abap +++ b/src/ui/zcl_abapgit_ui_injector.clas.abap @@ -17,9 +17,6 @@ CLASS zcl_abapgit_ui_injector DEFINITION CLASS-METHODS get_dummy_gui_services RETURNING VALUE(ri_gui_services) TYPE REF TO zif_abapgit_gui_services . - CLASS-METHODS set_html_viewer - IMPORTING - !ii_html_viewer TYPE REF TO zif_abapgit_html_viewer . PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. @@ -50,13 +47,6 @@ CLASS zcl_abapgit_ui_injector IMPLEMENTATION. ENDMETHOD. - METHOD set_html_viewer. - - zcl_abapgit_ui_factory=>gi_html_viewer = ii_html_viewer. - - ENDMETHOD. - - METHOD set_popups. zcl_abapgit_ui_factory=>gi_popups = ii_popups. diff --git a/test/src/zcl_abapgit_web.clas.abap b/test/src/zcl_abapgit_web.clas.abap index 7ed0c0358..af3906830 100644 --- a/test/src/zcl_abapgit_web.clas.abap +++ b/test/src/zcl_abapgit_web.clas.abap @@ -78,7 +78,7 @@ CLASS zcl_abapgit_web IMPLEMENTATION. ii_request = gi_request ii_response = gi_response. - zcl_abapgit_ui_injector=>set_html_viewer( go_viewer ). + zcl_abapgit_ui_core_injector=>set_html_viewer( go_viewer ). go_gui = zcl_abapgit_ui_factory=>get_gui( ).