mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
Refactor: GUI router state transfer (#4336)
Moving page-dependent state changes to separate methods for clarity
This commit is contained in:
parent
643db383b0
commit
f1bf013adf
|
@ -122,12 +122,26 @@ CLASS zcl_abapgit_gui_router DEFINITION
|
|||
!iv_url TYPE csequence
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
|
||||
METHODS get_state_settings
|
||||
IMPORTING
|
||||
!ii_event TYPE REF TO zif_abapgit_gui_event
|
||||
RETURNING
|
||||
VALUE(rv_state) TYPE i.
|
||||
METHODS get_state_diff
|
||||
IMPORTING
|
||||
!ii_event TYPE REF TO zif_abapgit_gui_event
|
||||
RETURNING
|
||||
VALUE(rv_state) TYPE i.
|
||||
METHODS get_state_db_edit
|
||||
IMPORTING
|
||||
!ii_event TYPE REF TO zif_abapgit_gui_event
|
||||
RETURNING
|
||||
VALUE(rv_state) TYPE i.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD abapgit_services_actions.
|
||||
|
@ -181,10 +195,7 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
|||
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_db_edit
|
||||
EXPORTING
|
||||
is_key = ls_db_key.
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
IF ii_event->mv_current_page_name = 'ZCL_ABAPGIT_GUI_PAGE_DB_DIS'.
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
|
||||
ENDIF.
|
||||
rs_handled-state = get_state_db_edit( ii_event ).
|
||||
WHEN zif_abapgit_definitions=>c_action-db_display.
|
||||
lo_query->to_abap( CHANGING cs_container = ls_db_key ).
|
||||
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_db_dis
|
||||
|
@ -256,20 +267,10 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
|||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
WHEN zif_abapgit_definitions=>c_action-go_settings. " Go global settings
|
||||
rs_handled-page = zcl_abapgit_gui_page_sett_glob=>create( ).
|
||||
IF ii_event->mv_current_page_name CP 'ZCL_ABAPGIT_GUI_PAGE_SETT_*'.
|
||||
" Keep bookmark while jumping between setting pages
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
ELSE.
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_w_bookmark.
|
||||
ENDIF.
|
||||
rs_handled-state = get_state_settings( ii_event ).
|
||||
WHEN zif_abapgit_definitions=>c_action-go_settings_personal. " Go personal settings
|
||||
rs_handled-page = zcl_abapgit_gui_page_sett_pers=>create( ).
|
||||
IF ii_event->mv_current_page_name CP 'ZCL_ABAPGIT_GUI_PAGE_SETT_*'.
|
||||
" Keep bookmark while jumping between setting pages
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
ELSE.
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_w_bookmark.
|
||||
ENDIF.
|
||||
rs_handled-state = get_state_settings( ii_event ).
|
||||
WHEN zif_abapgit_definitions=>c_action-go_background_run. " Go background run page
|
||||
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_bkg_run.
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
|
@ -281,11 +282,7 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
|||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_w_bookmark.
|
||||
WHEN zif_abapgit_definitions=>c_action-go_stage. " Go Staging page
|
||||
rs_handled-page = get_page_stage( ii_event ).
|
||||
IF ii_event->mv_current_page_name = 'ZCL_ABAPGIT_GUI_PAGE_DIFF'.
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
ELSE.
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_w_bookmark.
|
||||
ENDIF.
|
||||
rs_handled-state = get_state_diff( ii_event ).
|
||||
WHEN zif_abapgit_definitions=>c_action-go_branch_overview. " Go repo branch overview
|
||||
rs_handled-page = get_page_branch_overview( lv_key ).
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
|
@ -394,6 +391,42 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_state_db_edit.
|
||||
|
||||
" In display mode, replace the page
|
||||
IF ii_event->mv_current_page_name = 'ZCL_ABAPGIT_GUI_PAGE_DB_DIS'.
|
||||
rv_state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
|
||||
ELSE.
|
||||
rv_state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_state_diff.
|
||||
|
||||
" Bookmark current page before jumping to diff page
|
||||
IF ii_event->mv_current_page_name CP 'ZCL_ABAPGIT_GUI_PAGE_DIFF'.
|
||||
rv_state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
ELSE.
|
||||
rv_state = zcl_abapgit_gui=>c_event_state-new_page_w_bookmark.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_state_settings.
|
||||
|
||||
" Bookmark current page before jumping to any settings page
|
||||
IF ii_event->mv_current_page_name CP 'ZCL_ABAPGIT_GUI_PAGE_SETT_*'.
|
||||
rv_state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
ELSE.
|
||||
rv_state = zcl_abapgit_gui=>c_event_state-new_page_w_bookmark.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD git_services.
|
||||
|
||||
DATA lv_key TYPE zif_abapgit_persistence=>ty_repo-key.
|
||||
|
@ -581,6 +614,7 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
|||
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_repo_sett
|
||||
EXPORTING
|
||||
io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
||||
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||
WHEN zif_abapgit_definitions=>c_action-repo_log. " Repo log
|
||||
li_log = lo_repo->get_log( ).
|
||||
|
@ -677,7 +711,6 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
|||
lv_path TYPE string,
|
||||
lv_xstr TYPE xstring.
|
||||
|
||||
" TODO refactor
|
||||
CONSTANTS:
|
||||
BEGIN OF lc_page,
|
||||
main_view TYPE string VALUE 'ZCL_ABAPGIT_GUI_PAGE_MAIN',
|
||||
|
@ -697,7 +730,6 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
|||
lo_repo->set_files_remote( zcl_abapgit_zip=>load( lv_xstr ) ).
|
||||
zcl_abapgit_services_repo=>refresh( lv_key ).
|
||||
|
||||
" TODO refactor how current page name is determined
|
||||
CASE ii_event->mv_current_page_name.
|
||||
WHEN lc_page-repo_view.
|
||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||
|
|
Loading…
Reference in New Issue
Block a user