mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +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
|
!iv_url TYPE csequence
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
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.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD abapgit_services_actions.
|
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
|
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_db_edit
|
||||||
EXPORTING
|
EXPORTING
|
||||||
is_key = ls_db_key.
|
is_key = ls_db_key.
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
rs_handled-state = get_state_db_edit( ii_event ).
|
||||||
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.
|
|
||||||
WHEN zif_abapgit_definitions=>c_action-db_display.
|
WHEN zif_abapgit_definitions=>c_action-db_display.
|
||||||
lo_query->to_abap( CHANGING cs_container = ls_db_key ).
|
lo_query->to_abap( CHANGING cs_container = ls_db_key ).
|
||||||
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_db_dis
|
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.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||||
WHEN zif_abapgit_definitions=>c_action-go_settings. " Go global settings
|
WHEN zif_abapgit_definitions=>c_action-go_settings. " Go global settings
|
||||||
rs_handled-page = zcl_abapgit_gui_page_sett_glob=>create( ).
|
rs_handled-page = zcl_abapgit_gui_page_sett_glob=>create( ).
|
||||||
IF ii_event->mv_current_page_name CP 'ZCL_ABAPGIT_GUI_PAGE_SETT_*'.
|
rs_handled-state = get_state_settings( ii_event ).
|
||||||
" 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.
|
|
||||||
WHEN zif_abapgit_definitions=>c_action-go_settings_personal. " Go personal settings
|
WHEN zif_abapgit_definitions=>c_action-go_settings_personal. " Go personal settings
|
||||||
rs_handled-page = zcl_abapgit_gui_page_sett_pers=>create( ).
|
rs_handled-page = zcl_abapgit_gui_page_sett_pers=>create( ).
|
||||||
IF ii_event->mv_current_page_name CP 'ZCL_ABAPGIT_GUI_PAGE_SETT_*'.
|
rs_handled-state = get_state_settings( ii_event ).
|
||||||
" 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.
|
|
||||||
WHEN zif_abapgit_definitions=>c_action-go_background_run. " Go background run page
|
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.
|
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_bkg_run.
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
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.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_w_bookmark.
|
||||||
WHEN zif_abapgit_definitions=>c_action-go_stage. " Go Staging page
|
WHEN zif_abapgit_definitions=>c_action-go_stage. " Go Staging page
|
||||||
rs_handled-page = get_page_stage( ii_event ).
|
rs_handled-page = get_page_stage( ii_event ).
|
||||||
IF ii_event->mv_current_page_name = 'ZCL_ABAPGIT_GUI_PAGE_DIFF'.
|
rs_handled-state = get_state_diff( ii_event ).
|
||||||
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.
|
|
||||||
WHEN zif_abapgit_definitions=>c_action-go_branch_overview. " Go repo branch overview
|
WHEN zif_abapgit_definitions=>c_action-go_branch_overview. " Go repo branch overview
|
||||||
rs_handled-page = get_page_branch_overview( lv_key ).
|
rs_handled-page = get_page_branch_overview( lv_key ).
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||||
|
@ -394,6 +391,42 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
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.
|
METHOD git_services.
|
||||||
|
|
||||||
DATA lv_key TYPE zif_abapgit_persistence=>ty_repo-key.
|
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
|
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_repo_sett
|
||||||
EXPORTING
|
EXPORTING
|
||||||
io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
||||||
|
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
||||||
WHEN zif_abapgit_definitions=>c_action-repo_log. " Repo log
|
WHEN zif_abapgit_definitions=>c_action-repo_log. " Repo log
|
||||||
li_log = lo_repo->get_log( ).
|
li_log = lo_repo->get_log( ).
|
||||||
|
@ -677,7 +711,6 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION.
|
||||||
lv_path TYPE string,
|
lv_path TYPE string,
|
||||||
lv_xstr TYPE xstring.
|
lv_xstr TYPE xstring.
|
||||||
|
|
||||||
" TODO refactor
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
BEGIN OF lc_page,
|
BEGIN OF lc_page,
|
||||||
main_view TYPE string VALUE 'ZCL_ABAPGIT_GUI_PAGE_MAIN',
|
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 ) ).
|
lo_repo->set_files_remote( zcl_abapgit_zip=>load( lv_xstr ) ).
|
||||||
zcl_abapgit_services_repo=>refresh( lv_key ).
|
zcl_abapgit_services_repo=>refresh( lv_key ).
|
||||||
|
|
||||||
" TODO refactor how current page name is determined
|
|
||||||
CASE ii_event->mv_current_page_name.
|
CASE ii_event->mv_current_page_name.
|
||||||
WHEN lc_page-repo_view.
|
WHEN lc_page-repo_view.
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user