mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
refactor progress indicator #1149
This commit is contained in:
parent
2c6e27da2a
commit
a736957f58
|
@ -305,20 +305,23 @@ CLASS ZCL_ABAPGIT_GIT_PACK IMPLEMENTATION.
|
||||||
METHOD decode_deltas.
|
METHOD decode_deltas.
|
||||||
|
|
||||||
DATA: ls_object LIKE LINE OF ct_objects,
|
DATA: ls_object LIKE LINE OF ct_objects,
|
||||||
|
lo_progress TYPE REF TO zcl_abapgit_progress,
|
||||||
lt_deltas LIKE ct_objects.
|
lt_deltas LIKE ct_objects.
|
||||||
|
|
||||||
|
|
||||||
zcl_abapgit_progress=>show( iv_key = 'Decode'
|
|
||||||
iv_current = 1
|
|
||||||
iv_total = 1
|
|
||||||
iv_text = 'Deltas' ) ##NO_TEXT.
|
|
||||||
|
|
||||||
LOOP AT ct_objects INTO ls_object WHERE type = zif_abapgit_definitions=>gc_type-ref_d.
|
LOOP AT ct_objects INTO ls_object WHERE type = zif_abapgit_definitions=>gc_type-ref_d.
|
||||||
DELETE ct_objects INDEX sy-tabix.
|
DELETE ct_objects INDEX sy-tabix.
|
||||||
APPEND ls_object TO lt_deltas.
|
APPEND ls_object TO lt_deltas.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = lines( lt_deltas ).
|
||||||
|
|
||||||
LOOP AT lt_deltas INTO ls_object.
|
LOOP AT lt_deltas INTO ls_object.
|
||||||
|
lo_progress->show( iv_current = sy-tabix
|
||||||
|
iv_text = 'Decode deltas' ) ##NO_TEXT.
|
||||||
|
|
||||||
delta( EXPORTING is_object = ls_object
|
delta( EXPORTING is_object = ls_object
|
||||||
CHANGING ct_objects = ct_objects ).
|
CHANGING ct_objects = ct_objects ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
@ -518,8 +521,8 @@ CLASS ZCL_ABAPGIT_GIT_PACK IMPLEMENTATION.
|
||||||
lv_adler32 TYPE zcl_abapgit_hash=>ty_adler32,
|
lv_adler32 TYPE zcl_abapgit_hash=>ty_adler32,
|
||||||
lv_compressed TYPE xstring,
|
lv_compressed TYPE xstring,
|
||||||
lv_xstring TYPE xstring,
|
lv_xstring TYPE xstring,
|
||||||
lv_objects_total TYPE i,
|
lo_progress TYPE REF TO zcl_abapgit_progress,
|
||||||
lv_objects_processed TYPE i.
|
lv_objects_total TYPE i.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_object> LIKE LINE OF it_objects.
|
FIELD-SYMBOLS: <ls_object> LIKE LINE OF it_objects.
|
||||||
|
|
||||||
|
@ -532,13 +535,15 @@ CLASS ZCL_ABAPGIT_GIT_PACK IMPLEMENTATION.
|
||||||
|
|
||||||
lv_objects_total = lines( it_objects ).
|
lv_objects_total = lines( it_objects ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = lv_objects_total.
|
||||||
|
|
||||||
LOOP AT it_objects ASSIGNING <ls_object>.
|
LOOP AT it_objects ASSIGNING <ls_object>.
|
||||||
|
|
||||||
lv_objects_processed = sy-tabix.
|
lo_progress->show(
|
||||||
|
iv_current = sy-tabix
|
||||||
cl_progress_indicator=>progress_indicate( i_text = |encoding objects &1% ( &2 of &3 )|
|
iv_text = |Encoding objects ( { sy-tabix } of { lv_objects_total } )| ).
|
||||||
i_processed = lv_objects_processed
|
|
||||||
i_total = lv_objects_total ).
|
|
||||||
|
|
||||||
lv_xstring = type_and_length(
|
lv_xstring = type_and_length(
|
||||||
iv_type = <ls_object>-type
|
iv_type = <ls_object>-type
|
||||||
|
|
|
@ -5,34 +5,35 @@ CLASS zcl_abapgit_progress DEFINITION
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
CLASS-METHODS:
|
METHODS show
|
||||||
show
|
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_key TYPE string
|
|
||||||
VALUE(iv_current) TYPE i
|
VALUE(iv_current) TYPE i
|
||||||
!iv_total TYPE i
|
|
||||||
!iv_text TYPE csequence .
|
!iv_text TYPE csequence .
|
||||||
|
METHODS constructor
|
||||||
|
IMPORTING
|
||||||
|
!iv_total TYPE i .
|
||||||
|
PROTECTED SECTION.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
DATA mv_total TYPE i .
|
||||||
CLASS-METHODS:
|
|
||||||
calc_pct
|
METHODS calc_pct
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_current TYPE i
|
!iv_current TYPE i
|
||||||
!iv_total TYPE i
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_pct) TYPE i .
|
VALUE(rv_pct) TYPE i .
|
||||||
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_progress IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_PROGRESS IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD calc_pct.
|
METHOD calc_pct.
|
||||||
|
|
||||||
DATA: lv_f TYPE f.
|
DATA: lv_f TYPE f.
|
||||||
|
|
||||||
lv_f = ( iv_current / iv_total ) * 100.
|
lv_f = ( iv_current / mv_total ) * 100.
|
||||||
rv_pct = lv_f.
|
rv_pct = lv_f.
|
||||||
|
|
||||||
IF rv_pct = 100.
|
IF rv_pct = 100.
|
||||||
|
@ -42,20 +43,23 @@ CLASS zcl_abapgit_progress IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
|
||||||
|
mv_total = iv_total.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD show.
|
METHOD show.
|
||||||
|
|
||||||
DATA: lv_pct TYPE i,
|
DATA: lv_pct TYPE i.
|
||||||
lv_text TYPE string.
|
|
||||||
|
|
||||||
lv_pct = calc_pct( iv_current = iv_current
|
lv_pct = calc_pct( iv_current ).
|
||||||
iv_total = iv_total ).
|
|
||||||
CONCATENATE iv_key '-' iv_text INTO lv_text SEPARATED BY space.
|
|
||||||
|
|
||||||
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
|
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
percentage = lv_pct
|
percentage = lv_pct
|
||||||
text = lv_text.
|
text = iv_text.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -189,25 +189,27 @@ CLASS lcl_objects_activation IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD activate_new.
|
METHOD activate_new.
|
||||||
|
|
||||||
|
DATA: lo_progress TYPE REF TO zcl_abapgit_progress.
|
||||||
|
|
||||||
IF gt_objects IS INITIAL.
|
IF gt_objects IS INITIAL.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = 100.
|
||||||
|
|
||||||
IF iv_ddic = abap_true.
|
IF iv_ddic = abap_true.
|
||||||
|
|
||||||
zcl_abapgit_progress=>show( iv_key = 'Activating DDIC'
|
lo_progress->show( iv_current = 98
|
||||||
iv_current = '98'
|
iv_text = 'Activating DDIC' ).
|
||||||
iv_total = '100'
|
|
||||||
iv_text = '...' ).
|
|
||||||
|
|
||||||
activate_ddic( ).
|
activate_ddic( ).
|
||||||
|
|
||||||
ELSE.
|
ELSE.
|
||||||
|
|
||||||
zcl_abapgit_progress=>show( iv_key = 'Activating non DDIC'
|
lo_progress->show( iv_current = 98
|
||||||
iv_current = '98'
|
iv_text = 'Activating non DDIC' ).
|
||||||
iv_total = '100'
|
|
||||||
iv_text = '...' ).
|
|
||||||
|
|
||||||
activate_old( ).
|
activate_old( ).
|
||||||
|
|
||||||
|
|
|
@ -293,7 +293,7 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
METHOD delete.
|
METHOD delete.
|
||||||
|
|
||||||
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
|
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||||
* lv_tabclass TYPE dd02l-tabclass,
|
lo_progress TYPE REF TO zcl_abapgit_progress,
|
||||||
lt_tadir LIKE it_tadir.
|
lt_tadir LIKE it_tadir.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF it_tadir.
|
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF it_tadir.
|
||||||
|
@ -302,11 +302,13 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
zcl_abapgit_dependencies=>resolve( CHANGING ct_tadir = lt_tadir ).
|
zcl_abapgit_dependencies=>resolve( CHANGING ct_tadir = lt_tadir ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = lines( lt_tadir ).
|
||||||
|
|
||||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||||
zcl_abapgit_progress=>show( iv_key = 'Delete'
|
lo_progress->show( iv_current = sy-tabix
|
||||||
iv_current = sy-tabix
|
iv_text = |Delete { <ls_tadir>-obj_name }| ) ##NO_TEXT.
|
||||||
iv_total = lines( lt_tadir )
|
|
||||||
iv_text = <ls_tadir>-obj_name ) ##NO_TEXT.
|
|
||||||
|
|
||||||
CLEAR ls_item.
|
CLEAR ls_item.
|
||||||
ls_item-obj_type = <ls_tadir>-object.
|
ls_item-obj_type = <ls_tadir>-object.
|
||||||
|
@ -435,6 +437,7 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
lt_ddic TYPE TABLE OF ty_deserialization,
|
lt_ddic TYPE TABLE OF ty_deserialization,
|
||||||
lt_rest TYPE TABLE OF ty_deserialization,
|
lt_rest TYPE TABLE OF ty_deserialization,
|
||||||
lt_late TYPE TABLE OF ty_deserialization,
|
lt_late TYPE TABLE OF ty_deserialization,
|
||||||
|
lo_progress TYPE REF TO zcl_abapgit_progress,
|
||||||
lv_path TYPE string.
|
lv_path TYPE string.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_result> TYPE zif_abapgit_definitions=>ty_result,
|
FIELD-SYMBOLS: <ls_result> TYPE zif_abapgit_definitions=>ty_result,
|
||||||
|
@ -457,12 +460,14 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
warning_overwrite( CHANGING ct_results = lt_results ).
|
warning_overwrite( CHANGING ct_results = lt_results ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = lines( lt_results ).
|
||||||
|
|
||||||
LOOP AT lt_results ASSIGNING <ls_result> WHERE obj_type IS NOT INITIAL
|
LOOP AT lt_results ASSIGNING <ls_result> WHERE obj_type IS NOT INITIAL
|
||||||
AND NOT ( lstate = zif_abapgit_definitions=>gc_state-added AND rstate IS INITIAL ).
|
AND NOT ( lstate = zif_abapgit_definitions=>gc_state-added AND rstate IS INITIAL ).
|
||||||
zcl_abapgit_progress=>show( iv_key = 'Deserialize'
|
lo_progress->show( iv_current = sy-tabix
|
||||||
iv_current = sy-tabix
|
iv_text = |Deserialize { <ls_result>-obj_name }| ) ##NO_TEXT.
|
||||||
iv_total = lines( lt_results )
|
|
||||||
iv_text = <ls_result>-obj_name ) ##NO_TEXT.
|
|
||||||
|
|
||||||
CLEAR ls_item.
|
CLEAR ls_item.
|
||||||
ls_item-obj_type = <ls_result>-obj_type.
|
ls_item-obj_type = <ls_result>-obj_type.
|
||||||
|
@ -546,16 +551,21 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD deserialize_objects.
|
METHOD deserialize_objects.
|
||||||
|
|
||||||
|
DATA: lo_progress TYPE REF TO zcl_abapgit_progress.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_obj> LIKE LINE OF it_objects.
|
FIELD-SYMBOLS: <ls_obj> LIKE LINE OF it_objects.
|
||||||
|
|
||||||
|
|
||||||
lcl_objects_activation=>clear( ).
|
lcl_objects_activation=>clear( ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = lines( it_objects ).
|
||||||
|
|
||||||
LOOP AT it_objects ASSIGNING <ls_obj>.
|
LOOP AT it_objects ASSIGNING <ls_obj>.
|
||||||
zcl_abapgit_progress=>show( iv_key = |Deserialize { iv_descr }|
|
lo_progress->show(
|
||||||
iv_current = sy-tabix
|
iv_current = sy-tabix
|
||||||
iv_total = lines( it_objects )
|
iv_text = |Deserialize { iv_descr } - { <ls_obj>-item-obj_name }| ) ##NO_TEXT.
|
||||||
iv_text = <ls_obj>-item-obj_name ) ##NO_TEXT.
|
|
||||||
|
|
||||||
<ls_obj>-obj->deserialize( iv_package = <ls_obj>-package
|
<ls_obj>-obj->deserialize( iv_package = <ls_obj>-package
|
||||||
io_xml = <ls_obj>-xml ).
|
io_xml = <ls_obj>-xml ).
|
||||||
|
|
|
@ -158,12 +158,17 @@ CLASS lcl_branch_overview IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_git_objects.
|
METHOD get_git_objects.
|
||||||
|
|
||||||
DATA: lo_branch_list TYPE REF TO zcl_abapgit_git_branch_list.
|
DATA: lo_branch_list TYPE REF TO zcl_abapgit_git_branch_list,
|
||||||
|
lo_progress TYPE REF TO zcl_abapgit_progress.
|
||||||
|
|
||||||
zcl_abapgit_progress=>show( iv_key = 'Get git objects'
|
|
||||||
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = 1.
|
||||||
|
|
||||||
|
lo_progress->show(
|
||||||
iv_current = 1
|
iv_current = 1
|
||||||
iv_total = 1
|
iv_text = |Get git objects { io_repo->get_name( ) }| ) ##NO_TEXT.
|
||||||
iv_text = io_repo->get_name( ) ) ##NO_TEXT.
|
|
||||||
|
|
||||||
* get objects directly from git, mo_repo only contains a shallow clone of only
|
* get objects directly from git, mo_repo only contains a shallow clone of only
|
||||||
* the selected branch
|
* the selected branch
|
||||||
|
|
|
@ -346,16 +346,21 @@ CLASS lcl_gui_page_diff IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD render_content.
|
METHOD render_content.
|
||||||
|
|
||||||
DATA ls_diff_file LIKE LINE OF mt_diff_files.
|
DATA: ls_diff_file LIKE LINE OF mt_diff_files,
|
||||||
|
lo_progress TYPE REF TO zcl_abapgit_progress.
|
||||||
|
|
||||||
|
|
||||||
CREATE OBJECT ro_html.
|
CREATE OBJECT ro_html.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = lines( mt_diff_files ).
|
||||||
|
|
||||||
ro_html->add( |<div id="diff-list" data-repo-key="{ mv_repo_key }">| ).
|
ro_html->add( |<div id="diff-list" data-repo-key="{ mv_repo_key }">| ).
|
||||||
ro_html->add( lcl_gui_chunk_lib=>render_js_error_banner( ) ).
|
ro_html->add( lcl_gui_chunk_lib=>render_js_error_banner( ) ).
|
||||||
LOOP AT mt_diff_files INTO ls_diff_file.
|
LOOP AT mt_diff_files INTO ls_diff_file.
|
||||||
zcl_abapgit_progress=>show( iv_key = 'Diff'
|
lo_progress->show(
|
||||||
iv_current = sy-tabix
|
iv_current = sy-tabix
|
||||||
iv_total = lines( mt_diff_files )
|
|
||||||
iv_text = |Render Diff - { ls_diff_file-filename }| ).
|
iv_text = |Render Diff - { ls_diff_file-filename }| ).
|
||||||
|
|
||||||
ro_html->add( render_diff( ls_diff_file ) ).
|
ro_html->add( render_diff( ls_diff_file ) ).
|
||||||
|
|
|
@ -70,15 +70,18 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD refresh.
|
METHOD refresh.
|
||||||
|
|
||||||
DATA: lx_exception TYPE REF TO zcx_abapgit_exception.
|
DATA: lo_progress TYPE REF TO zcl_abapgit_progress,
|
||||||
|
lx_exception TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
super->refresh( iv_drop_cache ).
|
super->refresh( iv_drop_cache ).
|
||||||
reset_status( ).
|
reset_status( ).
|
||||||
|
|
||||||
zcl_abapgit_progress=>show( iv_key = 'Fetch'
|
CREATE OBJECT lo_progress
|
||||||
iv_current = 1
|
EXPORTING
|
||||||
iv_total = 1
|
iv_total = 1.
|
||||||
iv_text = 'Remote files' ) ##NO_TEXT.
|
|
||||||
|
lo_progress->show( iv_current = 1
|
||||||
|
iv_text = 'Fetch remote files' ) ##NO_TEXT.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
|
|
||||||
|
@ -602,6 +605,7 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
DATA: lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt,
|
DATA: lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt,
|
||||||
ls_item TYPE zif_abapgit_definitions=>ty_item,
|
ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||||
lt_files TYPE zif_abapgit_definitions=>ty_files_tt,
|
lt_files TYPE zif_abapgit_definitions=>ty_files_tt,
|
||||||
|
lo_progress TYPE REF TO zcl_abapgit_progress,
|
||||||
lt_cache TYPE SORTED TABLE OF zif_abapgit_definitions=>ty_file_item
|
lt_cache TYPE SORTED TABLE OF zif_abapgit_definitions=>ty_file_item
|
||||||
WITH NON-UNIQUE KEY item.
|
WITH NON-UNIQUE KEY item.
|
||||||
|
|
||||||
|
@ -638,6 +642,10 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
lt_filter = it_filter.
|
lt_filter = it_filter.
|
||||||
lv_filter_exist = boolc( lines( lt_filter ) > 0 ).
|
lv_filter_exist = boolc( lines( lt_filter ) > 0 ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_progress
|
||||||
|
EXPORTING
|
||||||
|
iv_total = lines( lt_tadir ).
|
||||||
|
|
||||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||||
IF lv_filter_exist = abap_true.
|
IF lv_filter_exist = abap_true.
|
||||||
READ TABLE lt_filter TRANSPORTING NO FIELDS WITH KEY object = <ls_tadir>-object
|
READ TABLE lt_filter TRANSPORTING NO FIELDS WITH KEY object = <ls_tadir>-object
|
||||||
|
@ -648,10 +656,9 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
zcl_abapgit_progress=>show( iv_key = 'Serialize'
|
lo_progress->show(
|
||||||
iv_current = sy-tabix
|
iv_current = sy-tabix
|
||||||
iv_total = lines( lt_tadir )
|
iv_text = |Serialize { <ls_tadir>-obj_name }| ) ##NO_TEXT.
|
||||||
iv_text = <ls_tadir>-obj_name ) ##NO_TEXT.
|
|
||||||
|
|
||||||
ls_item-obj_type = <ls_tadir>-object.
|
ls_item-obj_type = <ls_tadir>-object.
|
||||||
ls_item-obj_name = <ls_tadir>-obj_name.
|
ls_item-obj_name = <ls_tadir>-obj_name.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user