mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Refactor Diff and Patch Pages (#6585)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
e7371c8f09
commit
f99d0a7e14
File diff suppressed because it is too large
Load Diff
1421
src/ui/pages/zcl_abapgit_gui_page_diff_base.clas.abap
Normal file
1421
src/ui/pages/zcl_abapgit_gui_page_diff_base.clas.abap
Normal file
File diff suppressed because it is too large
Load Diff
16
src/ui/pages/zcl_abapgit_gui_page_diff_base.clas.xml
Normal file
16
src/ui/pages/zcl_abapgit_gui_page_diff_base.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_GUI_PAGE_DIFF_BASE</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abapGit - GUI Diff</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -1,43 +1,55 @@
|
||||||
CLASS zcl_abapgit_gui_page_patch DEFINITION
|
CLASS zcl_abapgit_gui_page_patch DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
INHERITING FROM zcl_abapgit_gui_page_diff
|
INHERITING FROM zcl_abapgit_gui_page_diff_base
|
||||||
CREATE PUBLIC .
|
CREATE PUBLIC.
|
||||||
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
METHODS:
|
|
||||||
constructor
|
|
||||||
IMPORTING
|
|
||||||
iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
|
||||||
is_file TYPE zif_abapgit_git_definitions=>ty_file OPTIONAL
|
|
||||||
is_object TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
|
||||||
it_files TYPE zif_abapgit_definitions=>ty_stage_tt OPTIONAL
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception,
|
|
||||||
|
|
||||||
|
CLASS-METHODS create
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
!is_file TYPE zif_abapgit_git_definitions=>ty_file OPTIONAL
|
||||||
|
!is_object TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
||||||
|
!it_files TYPE zif_abapgit_definitions=>ty_stage_tt OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS constructor
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
|
||||||
|
!is_file TYPE zif_abapgit_git_definitions=>ty_file OPTIONAL
|
||||||
|
!is_object TYPE zif_abapgit_definitions=>ty_item OPTIONAL
|
||||||
|
!it_files TYPE zif_abapgit_definitions=>ty_stage_tt OPTIONAL
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS get_patch_data
|
||||||
|
IMPORTING
|
||||||
|
!iv_patch TYPE string
|
||||||
|
EXPORTING
|
||||||
|
!ev_filename TYPE string
|
||||||
|
!ev_line_index TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS:
|
||||||
zif_abapgit_gui_event_handler~on_event REDEFINITION,
|
zif_abapgit_gui_event_handler~on_event REDEFINITION,
|
||||||
zif_abapgit_gui_hotkeys~get_hotkey_actions REDEFINITION.
|
zif_abapgit_gui_hotkeys~get_hotkey_actions REDEFINITION,
|
||||||
|
zif_abapgit_gui_renderable~render REDEFINITION.
|
||||||
|
|
||||||
CLASS-METHODS:
|
|
||||||
get_patch_data
|
|
||||||
IMPORTING
|
|
||||||
iv_patch TYPE string
|
|
||||||
EXPORTING
|
|
||||||
ev_filename TYPE string
|
|
||||||
ev_line_index TYPE string
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
render_content REDEFINITION,
|
|
||||||
add_menu_begin REDEFINITION,
|
add_menu_begin REDEFINITION,
|
||||||
add_menu_end REDEFINITION,
|
add_menu_end REDEFINITION,
|
||||||
render_table_head_non_unified REDEFINITION,
|
insert_nav REDEFINITION,
|
||||||
|
refresh REDEFINITION,
|
||||||
render_beacon_begin_of_row REDEFINITION,
|
render_beacon_begin_of_row REDEFINITION,
|
||||||
render_diff_head_after_state REDEFINITION,
|
render_diff_head_after_state REDEFINITION,
|
||||||
insert_nav REDEFINITION,
|
|
||||||
render_line_split_row REDEFINITION,
|
render_line_split_row REDEFINITION,
|
||||||
refresh REDEFINITION.
|
render_table_head_non_unified REDEFINITION.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -134,7 +146,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_page_patch IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add_menu_begin.
|
METHOD add_menu_begin.
|
||||||
|
@ -343,11 +355,27 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION.
|
||||||
|
|
||||||
" While patching we always want to be in split mode
|
" While patching we always want to be in split mode
|
||||||
CLEAR: mv_unified.
|
CLEAR: mv_unified.
|
||||||
set_layout( ).
|
|
||||||
CREATE OBJECT mo_stage.
|
CREATE OBJECT mo_stage.
|
||||||
|
|
||||||
ms_control-page_title = 'Patch'.
|
ENDMETHOD.
|
||||||
ms_control-page_menu = build_menu( ).
|
|
||||||
|
|
||||||
|
METHOD create.
|
||||||
|
|
||||||
|
DATA lo_component TYPE REF TO zcl_abapgit_gui_page_patch.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_component
|
||||||
|
EXPORTING
|
||||||
|
iv_key = iv_key
|
||||||
|
is_file = is_file
|
||||||
|
is_object = is_object
|
||||||
|
it_files = it_files.
|
||||||
|
|
||||||
|
ri_page = zcl_abapgit_gui_page_hoc=>create(
|
||||||
|
iv_page_title = 'Patch'
|
||||||
|
iv_page_layout = zcl_abapgit_gui_page=>c_page_layout-full_width
|
||||||
|
ii_page_menu_provider = lo_component
|
||||||
|
ii_child_component = lo_component ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -447,25 +475,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD render_content.
|
|
||||||
|
|
||||||
CLEAR: mv_section_count.
|
|
||||||
|
|
||||||
IF mv_pushed = abap_true.
|
|
||||||
refresh_full( ).
|
|
||||||
calculate_diff( ).
|
|
||||||
CLEAR: mv_pushed.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
register_handlers( ).
|
|
||||||
|
|
||||||
ri_html = super->render_content( ).
|
|
||||||
|
|
||||||
register_deferred_script( render_scripts( ) ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD render_diff_head_after_state.
|
METHOD render_diff_head_after_state.
|
||||||
|
|
||||||
DATA: lv_act_id TYPE string.
|
DATA: lv_act_id TYPE string.
|
||||||
|
@ -657,7 +666,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_gui_hotkeys~get_hotkey_actions.
|
METHOD zif_abapgit_gui_hotkeys~get_hotkey_actions.
|
||||||
|
|
||||||
DATA: ls_hotkey_action LIKE LINE OF rt_hotkey_actions.
|
DATA ls_hotkey_action LIKE LINE OF rt_hotkey_actions.
|
||||||
|
|
||||||
ls_hotkey_action-ui_component = 'Patch'.
|
ls_hotkey_action-ui_component = 'Patch'.
|
||||||
|
|
||||||
|
@ -677,4 +686,23 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_PATCH IMPLEMENTATION.
|
||||||
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_renderable~render.
|
||||||
|
|
||||||
|
CLEAR mv_section_count.
|
||||||
|
|
||||||
|
IF mv_pushed = abap_true.
|
||||||
|
refresh_full( ).
|
||||||
|
calculate_diff( ).
|
||||||
|
CLEAR mv_pushed.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
register_handlers( ).
|
||||||
|
|
||||||
|
ri_html = super->zif_abapgit_gui_renderable~render( ).
|
||||||
|
|
||||||
|
register_deferred_script( render_scripts( ) ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -921,13 +921,6 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
||||||
save_settings( ).
|
save_settings( ).
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||||
|
|
||||||
WHEN zif_abapgit_definitions=>c_action-go_patch.
|
|
||||||
|
|
||||||
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_patch
|
|
||||||
EXPORTING
|
|
||||||
iv_key = lv_key.
|
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page.
|
|
||||||
|
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -1109,12 +1109,6 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION.
|
||||||
open_in_main_language( ).
|
open_in_main_language( ).
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||||
|
|
||||||
WHEN zif_abapgit_definitions=>c_action-go_patch.
|
|
||||||
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_patch
|
|
||||||
EXPORTING
|
|
||||||
iv_key = lv_key.
|
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_w_bookmark.
|
|
||||||
|
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -343,8 +343,7 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_page_patch.
|
METHOD get_page_patch.
|
||||||
|
|
||||||
DATA: lo_page TYPE REF TO zcl_abapgit_gui_page_patch,
|
DATA: lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
|
||||||
lv_key TYPE zif_abapgit_persistence=>ty_repo-key,
|
|
||||||
lt_files TYPE zif_abapgit_definitions=>ty_stage_tt.
|
lt_files TYPE zif_abapgit_definitions=>ty_stage_tt.
|
||||||
|
|
||||||
lv_key = mo_repo->get_key( ).
|
lv_key = mo_repo->get_key( ).
|
||||||
|
@ -353,12 +352,9 @@ CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
|
||||||
DELETE lt_files WHERE method <> zif_abapgit_definitions=>c_method-add
|
DELETE lt_files WHERE method <> zif_abapgit_definitions=>c_method-add
|
||||||
AND method <> zif_abapgit_definitions=>c_method-rm.
|
AND method <> zif_abapgit_definitions=>c_method-rm.
|
||||||
|
|
||||||
CREATE OBJECT lo_page
|
ri_page = zcl_abapgit_gui_page_patch=>create(
|
||||||
EXPORTING
|
iv_key = lv_key
|
||||||
iv_key = lv_key
|
it_files = lt_files ).
|
||||||
it_files = lt_files.
|
|
||||||
|
|
||||||
ri_page = lo_page.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,13 @@ CLASS zcl_abapgit_gui_router DEFINITION
|
||||||
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
|
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
METHODS get_page_patch
|
||||||
|
IMPORTING
|
||||||
|
!ii_event TYPE REF TO zif_abapgit_gui_event
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
METHODS get_page_stage
|
METHODS get_page_stage
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_event TYPE REF TO zif_abapgit_gui_event
|
!ii_event TYPE REF TO zif_abapgit_gui_event
|
||||||
|
@ -234,10 +241,13 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
||||||
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
|
||||||
rs_handled-page = zcl_abapgit_gui_page_run_bckg=>create( ).
|
rs_handled-page = zcl_abapgit_gui_page_run_bckg=>create( ).
|
||||||
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_repo_diff " Go Diff page
|
WHEN zif_abapgit_definitions=>c_action-go_repo_diff " Go Diff page
|
||||||
OR zif_abapgit_definitions=>c_action-go_file_diff.
|
OR zif_abapgit_definitions=>c_action-go_file_diff.
|
||||||
rs_handled-page = get_page_diff( ii_event ).
|
rs_handled-page = get_page_diff( ii_event ).
|
||||||
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_patch. " Go Patch page
|
||||||
|
rs_handled-page = get_page_patch( ii_event ).
|
||||||
|
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 ).
|
||||||
rs_handled-state = get_state_diff( ii_event ).
|
rs_handled-state = get_state_diff( ii_event ).
|
||||||
|
@ -286,7 +296,6 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: ls_file TYPE zif_abapgit_git_definitions=>ty_file,
|
DATA: ls_file TYPE zif_abapgit_git_definitions=>ty_file,
|
||||||
ls_object TYPE zif_abapgit_definitions=>ty_item,
|
ls_object TYPE zif_abapgit_definitions=>ty_item,
|
||||||
lo_page TYPE REF TO zcl_abapgit_gui_page_diff,
|
|
||||||
lv_key TYPE zif_abapgit_persistence=>ty_repo-key.
|
lv_key TYPE zif_abapgit_persistence=>ty_repo-key.
|
||||||
|
|
||||||
lv_key = ii_event->query( )->get( 'KEY' ).
|
lv_key = ii_event->query( )->get( 'KEY' ).
|
||||||
|
@ -295,13 +304,30 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
|
||||||
ls_object-obj_type = ii_event->query( )->get( 'OBJ_TYPE' ).
|
ls_object-obj_type = ii_event->query( )->get( 'OBJ_TYPE' ).
|
||||||
ls_object-obj_name = ii_event->query( )->get( 'OBJ_NAME' ). " unescape ?
|
ls_object-obj_name = ii_event->query( )->get( 'OBJ_NAME' ). " unescape ?
|
||||||
|
|
||||||
CREATE OBJECT lo_page
|
ri_page = zcl_abapgit_gui_page_diff=>create(
|
||||||
EXPORTING
|
iv_key = lv_key
|
||||||
iv_key = lv_key
|
is_file = ls_file
|
||||||
is_file = ls_file
|
is_object = ls_object ).
|
||||||
is_object = ls_object.
|
|
||||||
|
|
||||||
ri_page = lo_page.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_page_patch.
|
||||||
|
|
||||||
|
DATA: ls_file TYPE zif_abapgit_git_definitions=>ty_file,
|
||||||
|
ls_object TYPE zif_abapgit_definitions=>ty_item,
|
||||||
|
lv_key TYPE zif_abapgit_persistence=>ty_repo-key.
|
||||||
|
|
||||||
|
lv_key = ii_event->query( )->get( 'KEY' ).
|
||||||
|
ls_file-path = ii_event->query( )->get( 'PATH' ).
|
||||||
|
ls_file-filename = ii_event->query( )->get( 'FILENAME' ). " unescape ?
|
||||||
|
ls_object-obj_type = ii_event->query( )->get( 'OBJ_TYPE' ).
|
||||||
|
ls_object-obj_name = ii_event->query( )->get( 'OBJ_NAME' ). " unescape ?
|
||||||
|
|
||||||
|
ri_page = zcl_abapgit_gui_page_patch=>create(
|
||||||
|
iv_key = lv_key
|
||||||
|
is_file = ls_file
|
||||||
|
is_object = ls_object ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user