diff --git a/src/ui/zcl_abapgit_gui_page_diff.clas.abap b/src/ui/zcl_abapgit_gui_page_diff.clas.abap index abb238b05..60d7d1ac9 100644 --- a/src/ui/zcl_abapgit_gui_page_diff.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_diff.clas.abap @@ -195,11 +195,12 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION VALUE(ri_html) TYPE REF TO zif_abapgit_html RAISING zcx_abapgit_exception . - METHODS filter_diff_by_files + METHODS is_file_requested IMPORTING - !it_files TYPE zif_abapgit_definitions=>ty_stage_tt - CHANGING - !ct_diff_files TYPE ty_file_diffs . + it_files TYPE zif_abapgit_definitions=>ty_stage_tt + is_status TYPE zif_abapgit_definitions=>ty_result + RETURNING + VALUE(rv_is_file_requested) TYPE abap_bool. ENDCLASS. @@ -459,19 +460,20 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION. path ASCENDING filename ASCENDING. LOOP AT lt_status ASSIGNING WHERE match IS INITIAL. - append_diff( it_remote = lt_remote - it_local = lt_local - is_status = ). + + IF is_file_requested( it_files = it_files + is_status = ) = abap_true. + + append_diff( it_remote = lt_remote + it_local = lt_local + is_status = ). + + ENDIF. + ENDLOOP. ENDIF. - filter_diff_by_files( - EXPORTING - it_files = it_files - CHANGING - ct_diff_files = mt_diff_files ). - ENDMETHOD. @@ -504,28 +506,6 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION. ENDMETHOD. - METHOD filter_diff_by_files. - - FIELD-SYMBOLS: TYPE ty_file_diff. - - IF lines( it_files ) = 0. - RETURN. - ENDIF. - - " Diff only for specified files - LOOP AT ct_diff_files ASSIGNING . - - READ TABLE it_files TRANSPORTING NO FIELDS - WITH KEY file-filename = -filename. - IF sy-subrc <> 0. - DELETE TABLE ct_diff_files FROM . - ENDIF. - - ENDLOOP. - - ENDMETHOD. - - METHOD get_normalized_fname_with_path. rv_filename = normalize_path( is_diff-path ) @@ -1030,4 +1010,20 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION. ENDCASE. ENDMETHOD. + + + METHOD is_file_requested. + + IF lines( it_files ) = 0. + rv_is_file_requested = abap_true. + RETURN. + ENDIF. + + READ TABLE it_files WITH KEY file-path = is_status-path + file-filename = is_status-filename + TRANSPORTING NO FIELDS. + rv_is_file_requested = boolc( sy-subrc = 0 ). + + ENDMETHOD. + ENDCLASS.