CLASS zcl_abapgit_gui_page_main DEFINITION PUBLIC FINAL CREATE PUBLIC INHERITING FROM zcl_abapgit_gui_page. PUBLIC SECTION. METHODS: constructor RAISING zcx_abapgit_exception, zif_abapgit_gui_page~on_event REDEFINITION. PROTECTED SECTION. METHODS render_content REDEFINITION. PRIVATE SECTION. CONSTANTS: BEGIN OF c_actions, show TYPE string VALUE 'show' ##NO_TEXT, changed_by TYPE string VALUE 'changed_by', END OF c_actions. DATA: mv_show TYPE zif_abapgit_persistence=>ty_value, mo_repo_content TYPE REF TO zcl_abapgit_gui_view_repo. METHODS: test_changed_by RAISING zcx_abapgit_exception, retrieve_active_repo RAISING zcx_abapgit_exception, render_toc IMPORTING it_repo_list TYPE zif_abapgit_definitions=>ty_repo_ref_tt RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html RAISING zcx_abapgit_exception, build_main_menu RETURNING VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar, render_repo IMPORTING io_repo TYPE REF TO zcl_abapgit_repo RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html RAISING zcx_abapgit_exception. ENDCLASS. CLASS ZCL_ABAPGIT_GUI_PAGE_MAIN IMPLEMENTATION. METHOD build_main_menu. DATA: lo_advsub TYPE REF TO zcl_abapgit_html_toolbar, lo_helpsub TYPE REF TO zcl_abapgit_html_toolbar. CREATE OBJECT ro_menu. CREATE OBJECT lo_advsub. CREATE OBJECT lo_helpsub. lo_advsub->add( iv_txt = 'Database util' iv_act = zif_abapgit_definitions=>gc_action-go_db ) ##NO_TEXT. lo_advsub->add( iv_txt = 'Package to zip' iv_act = zif_abapgit_definitions=>gc_action-zip_package ) ##NO_TEXT. lo_advsub->add( iv_txt = 'Transport to zip' iv_act = zif_abapgit_definitions=>gc_action-zip_transport ) ##NO_TEXT. lo_advsub->add( iv_txt = 'Object to files' iv_act = zif_abapgit_definitions=>gc_action-zip_object ) ##NO_TEXT. lo_advsub->add( iv_txt = 'Test changed by' iv_act = c_actions-changed_by ) ##NO_TEXT. lo_advsub->add( iv_txt = 'Page playground' iv_act = zif_abapgit_definitions=>gc_action-go_playground ) ##NO_TEXT. lo_advsub->add( iv_txt = 'Debug info' iv_act = zif_abapgit_definitions=>gc_action-go_debuginfo ) ##NO_TEXT. lo_advsub->add( iv_txt = 'Settings' iv_act = zif_abapgit_definitions=>gc_action-go_settings ) ##NO_TEXT. lo_helpsub->add( iv_txt = 'Tutorial' iv_act = zif_abapgit_definitions=>gc_action-go_tutorial ) ##NO_TEXT. lo_helpsub->add( iv_txt = 'abapGit wiki' iv_act = zif_abapgit_definitions=>gc_action-abapgit_wiki ) ##NO_TEXT. ro_menu->add( iv_txt = '+ Online' iv_act = zif_abapgit_definitions=>gc_action-repo_newonline ) ##NO_TEXT. ro_menu->add( iv_txt = '+ Offline' iv_act = zif_abapgit_definitions=>gc_action-repo_newoffline ) ##NO_TEXT. ro_menu->add( iv_txt = 'Explore' iv_act = zif_abapgit_definitions=>gc_action-go_explore ) ##NO_TEXT. ro_menu->add( iv_txt = 'Advanced' io_sub = lo_advsub ) ##NO_TEXT. ro_menu->add( iv_txt = 'Help' io_sub = lo_helpsub ) ##NO_TEXT. ENDMETHOD. "build main_menu METHOD constructor. super->constructor( ). ms_control-page_title = 'HOME'. ms_control-page_menu = build_main_menu( ). ENDMETHOD. " constructor METHOD render_content. DATA: lt_repos TYPE zif_abapgit_definitions=>ty_repo_ref_tt, lx_error TYPE REF TO zcx_abapgit_exception, lo_tutorial TYPE REF TO zcl_abapgit_gui_view_tutorial, lo_repo LIKE LINE OF lt_repos. retrieve_active_repo( ). " Get and validate key of user default repo CREATE OBJECT ro_html. TRY. lt_repos = zcl_abapgit_repo_srv=>get_instance( )->list( ). CATCH zcx_abapgit_exception INTO lx_error. ro_html->add( zcl_abapgit_gui_chunk_lib=>render_error( ix_error = lx_error ) ). RETURN. ENDTRY. ro_html->add( render_toc( lt_repos ) ). IF mv_show IS INITIAL OR lines( lt_repos ) = 0. CREATE OBJECT lo_tutorial. ro_html->add( lo_tutorial->render( ) ). ELSE. lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( mv_show ). ro_html->add( render_repo( lo_repo ) ). ENDIF. ENDMETHOD. "render_content METHOD render_repo. DATA lo_news TYPE REF TO zcl_abapgit_news. CREATE OBJECT ro_html. lo_news = zcl_abapgit_news=>create( io_repo ). ro_html->add( |
{ zcl_abapgit_html=>icon( iv_name = 'star/blue' iv_hint = 'Favorites' ) } | | ). ro_html->add( '' ). " Maximize width IF lo_favbar->count( ) > 0. ro_html->add( lo_favbar->render( iv_sort = abap_true ) ). ELSE. ro_html->add( |No favorites so far. For more info please check { zcl_abapgit_html=>a( iv_txt = 'tutorial' iv_act = zif_abapgit_definitions=>gc_action-go_tutorial ) }| ). ENDIF. ro_html->add( ' | ' ). ro_html->add( '' ). ro_html->add( lo_allbar->render_as_droplist( iv_label = zcl_abapgit_html=>icon( iv_name = 'three-bars/blue' ) iv_right = abap_true iv_sort = abap_true ) ). ro_html->add( ' | ' ). ro_html->add( '