CLASS zcl_abapgit_gui_page DEFINITION PUBLIC ABSTRACT CREATE PUBLIC. PUBLIC SECTION. INTERFACES zif_abapgit_gui_page. PROTECTED SECTION. TYPES: BEGIN OF ty_control, redirect_url TYPE string, page_title TYPE string, page_menu TYPE REF TO zcl_abapgit_html_toolbar, END OF ty_control. DATA: ms_control TYPE ty_control. METHODS render_content ABSTRACT RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html RAISING zcx_abapgit_exception. METHODS scripts RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html RAISING zcx_abapgit_exception. PRIVATE SECTION. METHODS html_head RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. METHODS title RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. METHODS footer RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. METHODS redirect RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. ENDCLASS. CLASS ZCL_ABAPGIT_GUI_PAGE IMPLEMENTATION. METHOD footer. CREATE OBJECT ro_html. ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. "footer 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( zcl_abapgit_gui_asset_manager=>get_webfont_link( ) ). " Web fonts ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. "html_head 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 title. CREATE OBJECT ro_html. ro_html->add( '' ). "#EC NOTEXT ENDMETHOD. "render page title METHOD zif_abapgit_gui_page~on_event. ev_state = zif_abapgit_definitions=>gc_event_state-not_handled. ENDMETHOD. "lif_gui_page~on_event METHOD zif_abapgit_gui_page~render. DATA lo_script TYPE REF TO zcl_abapgit_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.