mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
new friendly progress indicators
This commit is contained in:
parent
33eaa981f0
commit
0831569297
|
@ -3,7 +3,7 @@ REPORT zabapgit.
|
|||
* See http://www.abapgit.org
|
||||
|
||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v1.7.14'. "#EC NOTEXT
|
||||
gc_abap_version TYPE string VALUE 'v1.8.0'. "#EC NOTEXT
|
||||
|
||||
********************************************************************************
|
||||
* The MIT License (MIT)
|
||||
|
@ -146,6 +146,107 @@ CLASS lcx_not_found IMPLEMENTATION.
|
|||
|
||||
ENDCLASS. "lcx_not_found IMPLEMENTATION
|
||||
|
||||
CLASS lcl_progress DEFINITION.
|
||||
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS:
|
||||
show
|
||||
IMPORTING
|
||||
iv_key TYPE string
|
||||
VALUE(iv_current) TYPE i
|
||||
iv_total TYPE i
|
||||
iv_text TYPE csequence.
|
||||
|
||||
PRIVATE SECTION.
|
||||
TYPES: BEGIN OF ty_stack,
|
||||
key TYPE string,
|
||||
current TYPE i,
|
||||
total TYPE i,
|
||||
text TYPE string,
|
||||
END OF ty_stack.
|
||||
|
||||
CLASS-DATA:
|
||||
gt_stack TYPE STANDARD TABLE OF ty_stack WITH DEFAULT KEY.
|
||||
|
||||
CLASS-METHODS:
|
||||
calc_pct
|
||||
RETURNING VALUE(rv_pct) TYPE i,
|
||||
build_text
|
||||
RETURNING VALUE(rv_text) TYPE string.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_progress IMPLEMENTATION.
|
||||
|
||||
METHOD show.
|
||||
|
||||
FIELD-SYMBOLS: <ls_stack> LIKE LINE OF gt_stack.
|
||||
|
||||
* assumption:
|
||||
* all callers must end with calling this method with iv_current = iv_total
|
||||
* to clear the progress of that sub element
|
||||
ASSERT lines( gt_stack ) < 10.
|
||||
|
||||
READ TABLE gt_stack INDEX lines( gt_stack ) ASSIGNING <ls_stack>.
|
||||
IF sy-subrc <> 0 OR <ls_stack>-key <> iv_key.
|
||||
APPEND INITIAL LINE TO gt_stack ASSIGNING <ls_stack>.
|
||||
ENDIF.
|
||||
<ls_stack>-key = iv_key.
|
||||
<ls_stack>-current = iv_current.
|
||||
<ls_stack>-total = iv_total.
|
||||
<ls_stack>-text = iv_text.
|
||||
|
||||
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
|
||||
EXPORTING
|
||||
percentage = calc_pct( )
|
||||
text = build_text( ).
|
||||
|
||||
IF iv_current = iv_total.
|
||||
DELETE gt_stack INDEX lines( gt_stack ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD build_text.
|
||||
|
||||
FIELD-SYMBOLS: <ls_stack> LIKE LINE OF gt_stack.
|
||||
|
||||
|
||||
LOOP AT gt_stack ASSIGNING <ls_stack>.
|
||||
IF sy-tabix = 1.
|
||||
rv_text = |{ <ls_stack>-key } { <ls_stack>-text }|.
|
||||
ELSE.
|
||||
rv_text = |{ rv_text } - { <ls_stack>-key } { <ls_stack>-text }|.
|
||||
|
||||
IF <ls_stack>-current <> 1 AND <ls_stack>-total <> 1.
|
||||
rv_text = |{ rv_text } ({ <ls_stack>-current }/{ <ls_stack>-total })|.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD calc_pct.
|
||||
|
||||
DATA: lv_f TYPE f.
|
||||
|
||||
FIELD-SYMBOLS: <ls_stack> LIKE LINE OF gt_stack.
|
||||
|
||||
|
||||
READ TABLE gt_stack ASSIGNING <ls_stack> INDEX 1.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
||||
lv_f = ( <ls_stack>-current / <ls_stack>-total ) * 100.
|
||||
rv_pct = lv_f.
|
||||
|
||||
IF rv_pct = 100.
|
||||
rv_pct = 99.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_log DEFINITION.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
@ -12553,9 +12654,8 @@ CLASS lcl_repo DEFINITION ABSTRACT.
|
|||
RETURNING VALUE(rv_name) TYPE string
|
||||
RAISING lcx_exception,
|
||||
get_files_local
|
||||
IMPORTING io_log TYPE REF TO lcl_log OPTIONAL
|
||||
iv_show_progress TYPE abap_bool DEFAULT abap_false
|
||||
RETURNING VALUE(rt_files) TYPE ty_files_tt
|
||||
IMPORTING io_log TYPE REF TO lcl_log OPTIONAL
|
||||
RETURNING VALUE(rt_files) TYPE ty_files_tt
|
||||
RAISING lcx_exception,
|
||||
get_files_remote
|
||||
RETURNING VALUE(rt_files) TYPE ty_files_tt
|
||||
|
@ -12577,11 +12677,6 @@ CLASS lcl_repo DEFINITION ABSTRACT.
|
|||
mt_remote TYPE ty_files_tt,
|
||||
ms_data TYPE lcl_persistence_repo=>ty_repo.
|
||||
|
||||
CLASS-METHODS show_progress
|
||||
IMPORTING iv_current TYPE i
|
||||
iv_total TYPE i
|
||||
iv_obj_name TYPE tadir-obj_name.
|
||||
|
||||
ENDCLASS. "lcl_repo DEFINITION
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
|
@ -12655,11 +12750,6 @@ CLASS lcl_objects DEFINITION FINAL.
|
|||
IMPORTING is_item TYPE ty_item
|
||||
RAISING lcx_exception.
|
||||
|
||||
CLASS-METHODS show_progress
|
||||
IMPORTING iv_current TYPE i
|
||||
iv_total TYPE i
|
||||
iv_obj_name TYPE tadir-obj_name.
|
||||
|
||||
ENDCLASS. "lcl_object DEFINITION
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
|
@ -12836,6 +12926,11 @@ CLASS lcl_file_status IMPLEMENTATION.
|
|||
|
||||
|
||||
LOOP AT it_files ASSIGNING <ls_file>.
|
||||
lcl_progress=>show( iv_key = 'Status'
|
||||
iv_current = sy-tabix
|
||||
iv_total = lines( it_files )
|
||||
iv_text = <ls_file>-filename ) ##NO_TEXT.
|
||||
|
||||
SPLIT <ls_file>-filename AT '.' INTO lv_pre lv_type lv_ext.
|
||||
TRANSLATE lv_pre TO UPPER CASE.
|
||||
TRANSLATE lv_type TO UPPER CASE.
|
||||
|
@ -13157,21 +13252,6 @@ ENDCLASS. "lcl_package IMPLEMENTATION
|
|||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_objects IMPLEMENTATION.
|
||||
|
||||
METHOD show_progress.
|
||||
|
||||
DATA: lv_pct TYPE i,
|
||||
lv_f TYPE f.
|
||||
|
||||
|
||||
lv_f = ( iv_current / iv_total ) * 100.
|
||||
lv_pct = lv_f.
|
||||
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
|
||||
EXPORTING
|
||||
percentage = lv_pct
|
||||
text = iv_obj_name.
|
||||
|
||||
ENDMETHOD. "show_progress
|
||||
|
||||
METHOD check_warning.
|
||||
|
||||
DATA: lv_question TYPE c LENGTH 200,
|
||||
|
@ -13613,9 +13693,10 @@ CLASS lcl_objects IMPLEMENTATION.
|
|||
lt_results = prioritize_deser( lt_results ).
|
||||
|
||||
LOOP AT lt_results ASSIGNING <ls_result>.
|
||||
show_progress( iv_current = sy-tabix
|
||||
iv_total = lines( lt_results )
|
||||
iv_obj_name = <ls_result>-obj_name ).
|
||||
lcl_progress=>show( iv_key = 'Deserialize'
|
||||
iv_current = sy-tabix
|
||||
iv_total = lines( lt_results )
|
||||
iv_text = <ls_result>-obj_name ) ##NO_TEXT.
|
||||
|
||||
CLEAR ls_item.
|
||||
ls_item-obj_type = <ls_result>-obj_type.
|
||||
|
@ -15343,6 +15424,11 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
|||
|
||||
super->refresh( ).
|
||||
|
||||
lcl_progress=>show( iv_key = 'Fetch'
|
||||
iv_current = 1
|
||||
iv_total = 1
|
||||
iv_text = 'Remote files' ) ##NO_TEXT.
|
||||
|
||||
lcl_git_porcelain=>pull( EXPORTING io_repo = me
|
||||
IMPORTING et_files = mt_remote
|
||||
et_objects = mt_objects
|
||||
|
@ -15438,23 +15524,6 @@ CLASS lcl_repo IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD show_progress.
|
||||
|
||||
DATA: lv_pct TYPE i,
|
||||
lv_text TYPE string,
|
||||
lv_f TYPE f.
|
||||
|
||||
|
||||
lv_f = ( iv_current / iv_total ) * 100.
|
||||
lv_pct = lv_f.
|
||||
lv_text = |{ iv_obj_name } ({ iv_current }/{ iv_total })|.
|
||||
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
|
||||
EXPORTING
|
||||
percentage = lv_pct
|
||||
text = lv_text.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_files_local.
|
||||
|
||||
DATA: lt_tadir TYPE lcl_tadir=>ty_tadir_tt,
|
||||
|
@ -15472,11 +15541,10 @@ CLASS lcl_repo IMPLEMENTATION.
|
|||
|
||||
lt_tadir = lcl_tadir=>read( get_package( ) ).
|
||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||
IF iv_show_progress = abap_true.
|
||||
show_progress( iv_current = sy-tabix
|
||||
iv_total = lines( lt_tadir )
|
||||
iv_obj_name = <ls_tadir>-obj_name ).
|
||||
ENDIF.
|
||||
lcl_progress=>show( iv_key = 'Files'
|
||||
iv_current = sy-tabix
|
||||
iv_total = lines( lt_tadir )
|
||||
iv_text = <ls_tadir>-obj_name ) ##NO_TEXT.
|
||||
|
||||
ls_item-obj_type = <ls_tadir>-object.
|
||||
ls_item-obj_name = <ls_tadir>-obj_name.
|
||||
|
@ -16586,8 +16654,7 @@ CLASS lcl_zip IMPLEMENTATION.
|
|||
|
||||
CREATE OBJECT lo_log.
|
||||
|
||||
lt_zip = lo_repo->get_files_local( io_log = lo_log
|
||||
iv_show_progress = abap_true ).
|
||||
lt_zip = lo_repo->get_files_local( lo_log ).
|
||||
|
||||
IF lo_log->count( ) > 0.
|
||||
lo_log->show( ).
|
||||
|
@ -17655,12 +17722,6 @@ CLASS lcl_gui_page_main DEFINITION FINAL.
|
|||
CLASS-METHODS needs_installation
|
||||
RETURNING VALUE(rv_not_completely_installed) TYPE abap_bool.
|
||||
|
||||
CLASS-METHODS show_progress
|
||||
IMPORTING
|
||||
iv_current TYPE i
|
||||
iv_total TYPE i
|
||||
iv_text TYPE string.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl_gui_page_diff DEFINITION FINAL.
|
||||
|
@ -19427,27 +19488,6 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD show_progress.
|
||||
|
||||
DATA: lv_text TYPE c LENGTH 100,
|
||||
lv_pct TYPE i,
|
||||
lv_f TYPE f.
|
||||
|
||||
|
||||
lv_text = iv_text.
|
||||
lv_f = ( iv_current / iv_total ) * 100.
|
||||
lv_pct = lv_f.
|
||||
IF lv_pct = 100.
|
||||
lv_pct = 99.
|
||||
ENDIF.
|
||||
|
||||
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
|
||||
EXPORTING
|
||||
percentage = lv_pct
|
||||
text = lv_text.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD render_error.
|
||||
|
||||
CREATE OBJECT ro_html.
|
||||
|
@ -19499,9 +19539,10 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
|||
ro_html->add( render_explore( ) ).
|
||||
ELSE.
|
||||
LOOP AT lt_repos INTO lo_repo.
|
||||
show_progress( iv_current = sy-tabix
|
||||
iv_total = lines( lt_repos )
|
||||
iv_text = lo_repo->get_name( ) ).
|
||||
lcl_progress=>show( iv_key = 'Render'
|
||||
iv_current = sy-tabix
|
||||
iv_total = lines( lt_repos )
|
||||
iv_text = lo_repo->get_name( ) ) ##NO_TEXT.
|
||||
|
||||
IF lo_repo->is_offline( ) = abap_true.
|
||||
lo_repo_offline ?= lo_repo.
|
||||
|
@ -21509,7 +21550,7 @@ CLASS lcl_gui_page_db_display IMPLEMENTATION.
|
|||
lv_data = lo_db->read(
|
||||
iv_type = ms_key-type
|
||||
iv_value = ms_key-value ).
|
||||
CATCH lcx_not_found.
|
||||
CATCH lcx_not_found ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
lv_data = lcl_xml_pretty=>print( lv_data ).
|
||||
|
@ -21625,7 +21666,7 @@ CLASS lcl_gui_page_db_edit IMPLEMENTATION.
|
|||
lv_data = lo_db->read(
|
||||
iv_type = ms_key-type
|
||||
iv_value = ms_key-value ).
|
||||
CATCH lcx_not_found.
|
||||
CATCH lcx_not_found ##NO_HANDLER.
|
||||
ENDTRY.
|
||||
|
||||
lo_db->lock(
|
||||
|
|
Loading…
Reference in New Issue
Block a user