mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
Page menu provider for GUI page (and HOC) (#5860)
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
This commit is contained in:
parent
1c236e042d
commit
503bb2ec50
|
@ -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( '<div id="header">' ).
|
||||
|
@ -275,9 +285,9 @@ CLASS zcl_abapgit_gui_page IMPLEMENTATION.
|
|||
|
||||
ri_html->add( |<div class="page-title"><span class="spacer">►</span>{ ms_control-page_title }</div>| ).
|
||||
|
||||
IF ms_control-page_menu IS BOUND.
|
||||
IF lo_page_menu IS BOUND.
|
||||
ri_html->add( '<div class="float-right">' ).
|
||||
ri_html->add( ms_control-page_menu->render( iv_right = abap_true ) ).
|
||||
ri_html->add( lo_page_menu->render( iv_right = abap_true ) ).
|
||||
ri_html->add( '</div>' ).
|
||||
ENDIF.
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ CLASS zcl_abapgit_gui_page_hoc DEFINITION
|
|||
!ii_child_component TYPE REF TO zif_abapgit_gui_renderable
|
||||
!iv_page_title TYPE string
|
||||
!io_page_menu TYPE REF TO zcl_abapgit_html_toolbar OPTIONAL
|
||||
!ii_page_menu_provider TYPE REF TO zif_abapgit_gui_menu_provider OPTIONAL
|
||||
RETURNING
|
||||
VALUE(ri_page_wrap) TYPE REF TO zif_abapgit_gui_renderable
|
||||
RAISING
|
||||
|
@ -27,7 +28,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_gui_page_hoc IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_GUI_PAGE_HOC IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD create.
|
||||
|
@ -37,6 +38,7 @@ CLASS zcl_abapgit_gui_page_hoc IMPLEMENTATION.
|
|||
CREATE OBJECT lo_page.
|
||||
lo_page->ms_control-page_title = iv_page_title.
|
||||
lo_page->ms_control-page_menu = io_page_menu.
|
||||
lo_page->ms_control-page_menu_provider = ii_page_menu_provider.
|
||||
lo_page->mi_child = ii_child_component.
|
||||
|
||||
ri_page_wrap = lo_page.
|
||||
|
|
10
src/ui/zif_abapgit_gui_menu_provider.intf.abap
Normal file
10
src/ui/zif_abapgit_gui_menu_provider.intf.abap
Normal file
|
@ -0,0 +1,10 @@
|
|||
INTERFACE zif_abapgit_gui_menu_provider
|
||||
PUBLIC .
|
||||
|
||||
METHODS get_menu
|
||||
RETURNING
|
||||
VALUE(ro_toolbar) TYPE REF TO zcl_abapgit_html_toolbar
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
ENDINTERFACE.
|
15
src/ui/zif_abapgit_gui_menu_provider.intf.xml
Normal file
15
src/ui/zif_abapgit_gui_menu_provider.intf.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOINTERF>
|
||||
<CLSNAME>ZIF_ABAPGIT_GUI_MENU_PROVIDER</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>abapGit menu provider</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOINTERF>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
Loading…
Reference in New Issue
Block a user