From e4b29954a4a387cb6c3ac5acc2b296ccf5aa992d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Sun, 14 Nov 2021 07:45:44 +0100 Subject: [PATCH] Show implicit form hotkeys (#5132) Co-authored-by: Lars Hvam --- src/ui/zcl_abapgit_gui_page_commit.clas.abap | 7 ++-- src/ui/zcl_abapgit_gui_page_data.clas.abap | 4 +- .../zcl_abapgit_gui_page_sett_bckg.clas.abap | 5 +-- .../zcl_abapgit_gui_page_sett_glob.clas.abap | 5 +-- .../zcl_abapgit_gui_page_sett_info.clas.abap | 7 ++-- .../zcl_abapgit_gui_page_sett_locl.clas.abap | 7 ++-- .../zcl_abapgit_gui_page_sett_pers.clas.abap | 7 ++-- .../zcl_abapgit_gui_page_sett_remo.clas.abap | 5 +-- .../zcl_abapgit_gui_page_sett_repo.clas.abap | 7 ++-- src/ui/zcl_abapgit_html_form.clas.abap | 37 ++++++++++++++++++- 10 files changed, 60 insertions(+), 31 deletions(-) diff --git a/src/ui/zcl_abapgit_gui_page_commit.clas.abap b/src/ui/zcl_abapgit_gui_page_commit.clas.abap index ecc5595a2..0bc2a6f70 100644 --- a/src/ui/zcl_abapgit_gui_page_commit.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_commit.clas.abap @@ -45,8 +45,7 @@ CLASS zcl_abapgit_gui_page_commit DEFINITION CONSTANTS: BEGIN OF c_event, - go_back TYPE string VALUE 'go_back', - commit TYPE string VALUE 'commit', + commit TYPE string VALUE 'commit', END OF c_event. DATA mo_form TYPE REF TO zcl_abapgit_html_form. @@ -342,7 +341,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION. iv_action = c_event-commit )->command( iv_label = 'Back' - iv_action = c_event-go_back ). + iv_action = zif_abapgit_definitions=>c_action-go_back ). ENDMETHOD. @@ -486,7 +485,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION. mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ). CASE ii_event->mv_action. - WHEN c_event-go_back. + WHEN zif_abapgit_definitions=>c_action-go_back. rs_handled-state = zcl_abapgit_gui=>c_event_state-go_back. WHEN c_event-commit. diff --git a/src/ui/zcl_abapgit_gui_page_data.clas.abap b/src/ui/zcl_abapgit_gui_page_data.clas.abap index 3ed15958f..807b00f64 100644 --- a/src/ui/zcl_abapgit_gui_page_data.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_data.clas.abap @@ -44,7 +44,9 @@ CLASS zcl_abapgit_gui_page_data DEFINITION VALUE(rt_where) TYPE string_table . METHODS render_add RETURNING - VALUE(ri_html) TYPE REF TO zif_abapgit_html . + VALUE(ri_html) TYPE REF TO zif_abapgit_html + RAISING + zcx_abapgit_exception . METHODS render_existing RETURNING VALUE(ri_html) TYPE REF TO zif_abapgit_html diff --git a/src/ui/zcl_abapgit_gui_page_sett_bckg.clas.abap b/src/ui/zcl_abapgit_gui_page_sett_bckg.clas.abap index ccdbd8aee..5cb2e982c 100644 --- a/src/ui/zcl_abapgit_gui_page_sett_bckg.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_sett_bckg.clas.abap @@ -36,7 +36,6 @@ CLASS zcl_abapgit_gui_page_sett_bckg DEFINITION END OF c_id . CONSTANTS: BEGIN OF c_event, - go_back TYPE string VALUE 'go_back', run_now TYPE string VALUE 'run_now', save TYPE string VALUE 'save', END OF c_event . @@ -168,7 +167,7 @@ CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION. iv_action = zif_abapgit_definitions=>c_action-go_background_run )->command( iv_label = 'Back' - iv_action = c_event-go_back ). + iv_action = zif_abapgit_definitions=>c_action-go_back ). ENDMETHOD. @@ -314,7 +313,7 @@ CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION. mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ). CASE ii_event->mv_action. - WHEN c_event-go_back. + WHEN zif_abapgit_definitions=>c_action-go_back. rs_handled-state = mo_form_util->exit( mo_form_data ). WHEN c_event-save. diff --git a/src/ui/zcl_abapgit_gui_page_sett_glob.clas.abap b/src/ui/zcl_abapgit_gui_page_sett_glob.clas.abap index 784c25483..c087c4d72 100644 --- a/src/ui/zcl_abapgit_gui_page_sett_glob.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_sett_glob.clas.abap @@ -39,7 +39,6 @@ CLASS zcl_abapgit_gui_page_sett_glob DEFINITION END OF c_id. CONSTANTS: BEGIN OF c_event, - go_back TYPE string VALUE 'go_back', proxy_bypass TYPE string VALUE 'proxy_bypass', save TYPE string VALUE 'save', END OF c_event. @@ -174,7 +173,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_GLOB IMPLEMENTATION. iv_action = c_event-save )->command( iv_label = 'Back' - iv_action = c_event-go_back ). + iv_action = zif_abapgit_definitions=>c_action-go_back ). ENDMETHOD. @@ -332,7 +331,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_GLOB IMPLEMENTATION. mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ). CASE ii_event->mv_action. - WHEN c_event-go_back. + WHEN zif_abapgit_definitions=>c_action-go_back. rs_handled-state = mo_form_util->exit( mo_form_data ). WHEN c_event-save. diff --git a/src/ui/zcl_abapgit_gui_page_sett_info.clas.abap b/src/ui/zcl_abapgit_gui_page_sett_info.clas.abap index 658a5418a..15a8363c6 100644 --- a/src/ui/zcl_abapgit_gui_page_sett_info.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_sett_info.clas.abap @@ -50,8 +50,7 @@ CLASS zcl_abapgit_gui_page_sett_info DEFINITION END OF c_id . CONSTANTS: BEGIN OF c_event, - go_back TYPE string VALUE 'go-back', - save TYPE string VALUE 'save', + save TYPE string VALUE 'save', END OF c_event . DATA mo_form TYPE REF TO zcl_abapgit_html_form . DATA mo_form_data TYPE REF TO zcl_abapgit_string_map . @@ -269,7 +268,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION. iv_readonly = abap_true )->command( iv_label = 'Back' - iv_action = c_event-go_back ). + iv_action = zif_abapgit_definitions=>c_action-go_back ). ENDMETHOD. @@ -576,7 +575,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION. METHOD zif_abapgit_gui_event_handler~on_event. - IF ii_event->mv_action = c_event-go_back. + IF ii_event->mv_action = zif_abapgit_definitions=>c_action-go_back. rs_handled-state = zcl_abapgit_gui=>c_event_state-go_back_to_bookmark. ENDIF. diff --git a/src/ui/zcl_abapgit_gui_page_sett_locl.clas.abap b/src/ui/zcl_abapgit_gui_page_sett_locl.clas.abap index 5fd7a80f6..194793583 100644 --- a/src/ui/zcl_abapgit_gui_page_sett_locl.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_sett_locl.clas.abap @@ -39,8 +39,7 @@ CLASS zcl_abapgit_gui_page_sett_locl DEFINITION END OF c_id . CONSTANTS: BEGIN OF c_event, - go_back TYPE string VALUE 'go_back', - save TYPE string VALUE 'save', + save TYPE string VALUE 'save', END OF c_event . DATA mo_form TYPE REF TO zcl_abapgit_html_form . @@ -156,7 +155,7 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION. iv_action = c_event-save )->command( iv_label = 'Back' - iv_action = c_event-go_back ). + iv_action = zif_abapgit_definitions=>c_action-go_back ). ENDMETHOD. @@ -249,7 +248,7 @@ CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION. mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ). CASE ii_event->mv_action. - WHEN c_event-go_back. + WHEN zif_abapgit_definitions=>c_action-go_back. rs_handled-state = mo_form_util->exit( mo_form_data ). WHEN c_event-save. diff --git a/src/ui/zcl_abapgit_gui_page_sett_pers.clas.abap b/src/ui/zcl_abapgit_gui_page_sett_pers.clas.abap index 6e5deaa13..ca0284db8 100644 --- a/src/ui/zcl_abapgit_gui_page_sett_pers.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_sett_pers.clas.abap @@ -41,8 +41,7 @@ CLASS zcl_abapgit_gui_page_sett_pers DEFINITION END OF c_id. CONSTANTS: BEGIN OF c_event, - go_back TYPE string VALUE 'go_back', - save TYPE string VALUE 'save', + save TYPE string VALUE 'save', END OF c_event. DATA mo_form TYPE REF TO zcl_abapgit_html_form. @@ -188,7 +187,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_PERS IMPLEMENTATION. iv_action = c_event-save )->command( iv_label = 'Back' - iv_action = c_event-go_back ). + iv_action = zif_abapgit_definitions=>c_action-go_back ). " Not available via this form: " - User-specific hotkey settings have been discontinued @@ -292,7 +291,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_PERS IMPLEMENTATION. mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ). CASE ii_event->mv_action. - WHEN c_event-go_back. + WHEN zif_abapgit_definitions=>c_action-go_back. rs_handled-state = mo_form_util->exit( mo_form_data ). WHEN c_event-save. diff --git a/src/ui/zcl_abapgit_gui_page_sett_remo.clas.abap b/src/ui/zcl_abapgit_gui_page_sett_remo.clas.abap index cf50bb565..b3a01e773 100644 --- a/src/ui/zcl_abapgit_gui_page_sett_remo.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_sett_remo.clas.abap @@ -55,7 +55,6 @@ CLASS zcl_abapgit_gui_page_sett_remo DEFINITION END OF c_id . CONSTANTS: BEGIN OF c_event, - go_back TYPE string VALUE 'go-back', save TYPE string VALUE 'save', switch TYPE string VALUE 'switch', choose_url TYPE string VALUE 'choose_url', @@ -523,7 +522,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION. iv_action = c_event-switch )->command( iv_label = 'Back' - iv_action = c_event-go_back ). + iv_action = zif_abapgit_definitions=>c_action-go_back ). ENDMETHOD. @@ -832,7 +831,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION. mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ). CASE ii_event->mv_action. - WHEN c_event-go_back. + WHEN zif_abapgit_definitions=>c_action-go_back. IF ms_repo_new <> ms_repo_current. mo_repo->refresh( ). ENDIF. diff --git a/src/ui/zcl_abapgit_gui_page_sett_repo.clas.abap b/src/ui/zcl_abapgit_gui_page_sett_repo.clas.abap index 0f050f8c5..ffd3eb704 100644 --- a/src/ui/zcl_abapgit_gui_page_sett_repo.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_sett_repo.clas.abap @@ -37,8 +37,7 @@ CLASS zcl_abapgit_gui_page_sett_repo DEFINITION END OF c_id . CONSTANTS: BEGIN OF c_event, - go_back TYPE string VALUE 'go_back', - save TYPE string VALUE 'save', + save TYPE string VALUE 'save', END OF c_event . CONSTANTS c_empty_rows TYPE i VALUE 2 ##NO_TEXT. @@ -164,7 +163,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION. iv_action = c_event-save )->command( iv_label = 'Back' - iv_action = c_event-go_back ). + iv_action = zif_abapgit_definitions=>c_action-go_back ). ENDMETHOD. @@ -368,7 +367,7 @@ CLASS zcl_abapgit_gui_page_sett_repo IMPLEMENTATION. mo_form_data = mo_form_util->normalize( ii_event->form_data( ) ). CASE ii_event->mv_action. - WHEN c_event-go_back. + WHEN zif_abapgit_definitions=>c_action-go_back. rs_handled-state = mo_form_util->exit( mo_form_data ). WHEN c_event-save. diff --git a/src/ui/zcl_abapgit_html_form.clas.abap b/src/ui/zcl_abapgit_html_form.clas.abap index 7450428ff..99a9b5083 100644 --- a/src/ui/zcl_abapgit_html_form.clas.abap +++ b/src/ui/zcl_abapgit_html_form.clas.abap @@ -6,6 +6,7 @@ CLASS zcl_abapgit_html_form DEFINITION PUBLIC SECTION. INTERFACES zif_abapgit_html_form . + INTERFACES zif_abapgit_gui_hotkeys . CLASS-METHODS create IMPORTING @@ -19,7 +20,9 @@ CLASS zcl_abapgit_html_form DEFINITION !io_values TYPE REF TO zcl_abapgit_string_map !io_validation_log TYPE REF TO zcl_abapgit_string_map OPTIONAL RETURNING - VALUE(ri_html) TYPE REF TO zif_abapgit_html . + VALUE(ri_html) TYPE REF TO zif_abapgit_html + RAISING + zcx_abapgit_exception . METHODS command IMPORTING !iv_label TYPE csequence @@ -433,6 +436,10 @@ CLASS zcl_abapgit_html_form IMPLEMENTATION. ri_html->add( || ). ri_html->add( || ). + zcl_abapgit_ui_factory=>get_gui_services( + )->get_hotkeys_ctl( + )->register_hotkeys( zif_abapgit_gui_hotkeys~get_hotkey_actions( ) ). + ENDMETHOD. @@ -874,4 +881,32 @@ CLASS zcl_abapgit_html_form IMPLEMENTATION. ro_self = me. ENDMETHOD. + + + METHOD zif_abapgit_gui_hotkeys~get_hotkey_actions. + + DATA: ls_hotkey_action LIKE LINE OF rt_hotkey_actions. + FIELD-SYMBOLS: TYPE zif_abapgit_html_form=>ty_command. + + ls_hotkey_action-ui_component = 'Form'. + + READ TABLE mt_commands WITH KEY cmd_type = zif_abapgit_html_form=>c_cmd_type-input_main + ASSIGNING . + IF sy-subrc = 0. + ls_hotkey_action-description = -label. + ls_hotkey_action-action = -action. + ls_hotkey_action-hotkey = |Enter|. + INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + ENDIF. + + READ TABLE mt_commands WITH KEY action = zif_abapgit_definitions=>c_action-go_back + ASSIGNING . + IF sy-subrc = 0. + ls_hotkey_action-description = -label. + ls_hotkey_action-action = -action. + ls_hotkey_action-hotkey = |F3|. + INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. + ENDIF. + + ENDMETHOD. ENDCLASS.