From 503bb2ec50ec628303e01888ff1b40542071bec4 Mon Sep 17 00:00:00 2001 From: Alexander Tsybulsky Date: Mon, 7 Nov 2022 18:31:41 +0200 Subject: [PATCH] Page menu provider for GUI page (and HOC) (#5860) Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com> --- src/ui/zcl_abapgit_gui_page.clas.abap | 18 ++++++++++++++---- src/ui/zcl_abapgit_gui_page_hoc.clas.abap | 4 +++- src/ui/zif_abapgit_gui_menu_provider.intf.abap | 10 ++++++++++ src/ui/zif_abapgit_gui_menu_provider.intf.xml | 15 +++++++++++++++ 4 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 src/ui/zif_abapgit_gui_menu_provider.intf.abap create mode 100644 src/ui/zif_abapgit_gui_menu_provider.intf.xml diff --git a/src/ui/zcl_abapgit_gui_page.clas.abap b/src/ui/zcl_abapgit_gui_page.clas.abap index 5384327ed..0698e1bea 100644 --- a/src/ui/zcl_abapgit_gui_page.clas.abap +++ b/src/ui/zcl_abapgit_gui_page.clas.abap @@ -24,6 +24,7 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT page_layout TYPE string, page_title TYPE string, page_menu TYPE REF TO zcl_abapgit_html_toolbar, + page_menu_provider TYPE REF TO zif_abapgit_gui_menu_provider, END OF ty_control . DATA ms_control TYPE ty_control . @@ -53,7 +54,9 @@ CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT VALUE(ri_html) TYPE REF TO zif_abapgit_html . METHODS title RETURNING - VALUE(ri_html) TYPE REF TO zif_abapgit_html . + VALUE(ri_html) TYPE REF TO zif_abapgit_html + RAISING + zcx_abapgit_exception . METHODS footer IMPORTING !iv_time TYPE ty_time @@ -88,7 +91,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_page IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION. METHOD constructor. @@ -264,6 +267,13 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION. METHOD title. + DATA lo_page_menu LIKE ms_control-page_menu. + + lo_page_menu = ms_control-page_menu. + IF lo_page_menu IS NOT BOUND AND ms_control-page_menu_provider IS BOUND. + lo_page_menu = ms_control-page_menu_provider->get_menu( ). + ENDIF. + CREATE OBJECT ri_html TYPE zcl_abapgit_html. ri_html->add( '