*&---------------------------------------------------------------------* *& Include ZABAPGIT_PAGE *&---------------------------------------------------------------------* *----------------------------------------------------------------------* * INTERFACE lif_gui_page DEFINITION *----------------------------------------------------------------------* INTERFACE lif_gui_page. METHODS on_event IMPORTING iv_action TYPE clike iv_prev_page TYPE clike iv_getdata TYPE clike OPTIONAL it_postdata TYPE cnht_post_data_tab OPTIONAL EXPORTING ei_page TYPE REF TO lif_gui_page ev_state TYPE i RAISING lcx_exception lcx_cancel. METHODS render RETURNING VALUE(ro_html) TYPE REF TO lcl_html RAISING lcx_exception. ENDINTERFACE. CLASS lcl_gui_page DEFINITION ABSTRACT. PUBLIC SECTION. INTERFACES lif_gui_page. PROTECTED SECTION. TYPES: BEGIN OF ty_control, redirect_url TYPE string, page_title TYPE string, page_menu TYPE REF TO lcl_html_toolbar, END OF ty_control. DATA: ms_control TYPE ty_control. METHODS render_content ABSTRACT RETURNING VALUE(ro_html) TYPE REF TO lcl_html RAISING lcx_exception. METHODS scripts RETURNING VALUE(ro_html) TYPE REF TO lcl_html RAISING lcx_exception. PRIVATE SECTION. METHODS html_head RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS title RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS footer RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS redirect RETURNING VALUE(ro_html) TYPE REF TO lcl_html. ENDCLASS. "lcl_gui_page CLASS lcl_gui_page IMPLEMENTATION. METHOD html_head. CREATE OBJECT ro_html. ro_html->add( '' ). "#EC NOTEXT ro_html->add( '' ). "#EC NOTEXT ro_html->add( '' ). "#EC NOTEXT ro_html->add( 'abapGit' ). "#EC NOTEXT ro_html->add( '' ). ro_html->add( '' ). "#EC NOTEXT ro_html->add( lcl_gui_asset_manager=>get_webfont_link( ) ). " Web fonts ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. "html_head METHOD title. CREATE OBJECT ro_html. ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. "render page title METHOD footer. CREATE OBJECT ro_html. ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. "footer METHOD redirect. CREATE OBJECT ro_html. ro_html->add( '' ). "#EC NOTEXT ro_html->add( '' ). "#EC NOTEXT ro_html->add( '' ). "#EC NOTEXT ro_html->add( || ). "#EC NOTEXT ro_html->add( '' ). "#EC NOTEXT ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. METHOD scripts. ASSERT 1 = 1. " Dummy ENDMETHOD. "scripts METHOD lif_gui_page~on_event. ev_state = lif_defs=>gc_event_state-not_handled. ENDMETHOD. "lif_gui_page~on_event METHOD lif_gui_page~render. DATA lo_script TYPE REF TO lcl_html. " Redirect IF ms_control-redirect_url IS NOT INITIAL. ro_html = redirect( ). RETURN. ENDIF. " Real page CREATE OBJECT ro_html. ro_html->add( '' ). "#EC NOTEXT ro_html->add( '' ). "#EC NOTEXT ro_html->add( html_head( ) ). ro_html->add( '' ). "#EC NOTEXT ro_html->add( title( ) ). ro_html->add( render_content( ) ). ro_html->add( footer( ) ). ro_html->add( '' ). "#EC NOTEXT lo_script = scripts( ). IF lo_script IS BOUND AND lo_script->is_empty( ) = abap_false. ro_html->add( '' ). ENDIF. ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. " lif_gui_page~render. ENDCLASS. "lcl_gui_page