From 3a7976398bab2a4455c43a0dc052d410eeb4052f Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Sun, 23 Apr 2017 18:48:22 +0000 Subject: [PATCH 1/5] Added generic ADT jump functionality --- src/zabapgit_object_dcls.prog.abap | 3 +- src/zabapgit_objects.prog.abap | 29 ++++++++-------- src/zabapgit_objects_impl.prog.abap | 24 ++++++++++++-- src/zabapgit_page_settings.prog.abap | 28 ++++++++++++++++ src/zabapgit_persistence.prog.abap | 49 +++++++++++++++++++++++----- 5 files changed, 108 insertions(+), 25 deletions(-) diff --git a/src/zabapgit_object_dcls.prog.abap b/src/zabapgit_object_dcls.prog.abap index c9ea8ad2a..1f2789c76 100644 --- a/src/zabapgit_object_dcls.prog.abap +++ b/src/zabapgit_object_dcls.prog.abap @@ -52,7 +52,8 @@ CLASS lcl_object_dcls IMPLEMENTATION. TRY. - jump_adt( ). + jump_adt( i_obj_name = ms_item-obj_name + i_obj_type = ms_item-obj_type ). CATCH lcx_exception. lcx_exception=>raise( 'DCLS Jump Error' ). diff --git a/src/zabapgit_objects.prog.abap b/src/zabapgit_objects.prog.abap index e3b995d66..a12fe7383 100644 --- a/src/zabapgit_objects.prog.abap +++ b/src/zabapgit_objects.prog.abap @@ -557,6 +557,12 @@ CLASS lcl_objects_super DEFINITION ABSTRACT. is_item TYPE ty_item iv_language TYPE spras. + CLASS-METHODS: + jump_adt + IMPORTING i_obj_name type ty_item-obj_name + i_obj_type type ty_item-obj_type + RAISING lcx_exception. + CONSTANTS: c_user_unknown TYPE xubname VALUE 'UNKNOWN'. PROTECTED SECTION. @@ -576,10 +582,6 @@ CLASS lcl_objects_super DEFINITION ABSTRACT. jump_se11 IMPORTING iv_radio TYPE string iv_field TYPE string - RAISING lcx_exception, - jump_adt - IMPORTING i_obj_name LIKE ms_item-obj_name OPTIONAL - i_obj_type LIKE ms_item-obj_type OPTIONAL RAISING lcx_exception. ENDCLASS. "lcl_objects_super DEFINITION @@ -1629,20 +1631,21 @@ CLASS lcl_objects_super IMPLEMENTATION. FIELD-SYMBOLS: TYPE string. - IF i_obj_name IS SUPPLIED. +* IF i_obj_name IS SUPPLIED. obj_name = i_obj_name. - ELSE. - obj_name = ms_item-obj_name. - ENDIF. +* ELSE. +* obj_name = ms_item-obj_name. +* ENDIF. - IF i_obj_type IS SUPPLIED. +* IF i_obj_type IS SUPPLIED. obj_type = i_obj_type. - ELSE. - obj_type = ms_item-obj_type. - ENDIF. +* ELSE. +* obj_type = ms_item-obj_type. +* ENDIF. TRY. - li_object = cl_wb_object=>create_from_transport_key( p_object = obj_type p_obj_name = obj_name ). + li_object = cl_wb_object=>create_from_transport_key( p_object = obj_type + p_obj_name = obj_name ). CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE') RECEIVING diff --git a/src/zabapgit_objects_impl.prog.abap b/src/zabapgit_objects_impl.prog.abap index 2e3ba26b3..c749590f2 100644 --- a/src/zabapgit_objects_impl.prog.abap +++ b/src/zabapgit_objects_impl.prog.abap @@ -231,13 +231,31 @@ CLASS lcl_objects IMPLEMENTATION. METHOD jump. - DATA: li_obj TYPE REF TO lif_object. - + DATA: li_obj TYPE REF TO lif_object, + adt_jump_enabled TYPE abap_bool. li_obj = create_object( is_item = is_item iv_language = gc_english ). - li_obj->jump( ). + adt_jump_enabled = lcl_app=>settings( )->read( )->get_adt_jump_enabled( ). + + IF adt_jump_enabled = abap_true. + + TRY. + lcl_objects_super=>jump_adt( i_obj_name = is_item-obj_name + i_obj_type = is_item-obj_type ). + + CATCH lcx_exception. + + li_obj->jump( ). + + ENDTRY. + + ELSE. + + li_obj->jump( ). + + ENDIF. ENDMETHOD. "jump diff --git a/src/zabapgit_page_settings.prog.abap b/src/zabapgit_page_settings.prog.abap index 06692df16..1a7f92377 100644 --- a/src/zabapgit_page_settings.prog.abap +++ b/src/zabapgit_page_settings.prog.abap @@ -32,6 +32,8 @@ CLASS lcl_gui_page_settings DEFINITION FINAL INHERITING FROM lcl_gui_page. RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS render_max_lines RETURNING VALUE(ro_html) TYPE REF TO lcl_html. + METHODS render_adt_jump_enabled + RETURNING VALUE(ro_html) TYPE REF TO lcl_html. METHODS build_settings IMPORTING it_post_fields TYPE tihttpnvp. @@ -67,6 +69,8 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. ro_html->add( render_development_internals( ) ). ro_html->add( |
| ). ro_html->add( render_max_lines( ) ). + ro_html->add( |
| ). + ro_html->add( render_adt_jump_enabled( ) ). ro_html->add( render_form_end( ) ). ENDMETHOD. "render_content @@ -163,6 +167,13 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. mo_settings->set_max_lines( 0 ). ENDIF. + READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'adt_jump_enabled'. + IF sy-subrc = 0. + mo_settings->set_adt_jump_enanbled( abap_true ). + ELSE. + mo_settings->set_adt_jump_enanbled( abap_false ). + ENDIF. + ENDMETHOD. @@ -251,4 +262,21 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. ro_html->add( |
| ). ENDMETHOD. + METHOD render_adt_jump_enabled. + + DATA lv_checked TYPE string. + + IF mo_settings->get_adt_jump_enabled( ) = abap_true. + lv_checked = 'checked'. + ENDIF. + + CREATE OBJECT ro_html. + ro_html->add( |

ABAP Development Tools (ADT)

| ). + ro_html->add( ` Enable jump to ADT first` ). + ro_html->add( |
| ). + ro_html->add( |
| ). + + ENDMETHOD. + ENDCLASS. diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap index 7a14d0467..2a2f560b4 100644 --- a/src/zabapgit_persistence.prog.abap +++ b/src/zabapgit_persistence.prog.abap @@ -113,7 +113,7 @@ CLASS lcl_persistence_repo DEFINITION FINAL. TYPES: BEGIN OF ty_repo, key TYPE lcl_persistence_db=>ty_value. - INCLUDE TYPE ty_repo_xml. + INCLUDE TYPE ty_repo_xml. TYPES: END OF ty_repo. TYPES: tt_repo TYPE STANDARD TABLE OF ty_repo WITH DEFAULT KEY. TYPES: tt_repo_keys TYPE STANDARD TABLE OF ty_repo-key WITH DEFAULT KEY. @@ -230,7 +230,7 @@ CLASS lcl_persistence_background DEFINITION FINAL. TYPES: BEGIN OF ty_background, key TYPE lcl_persistence_db=>ty_value. - INCLUDE TYPE ty_xml. + INCLUDE TYPE ty_xml. TYPES: END OF ty_background. TYPES: tt_background TYPE STANDARD TABLE OF ty_background WITH DEFAULT KEY. @@ -1563,13 +1563,19 @@ CLASS lcl_settings DEFINITION FINAL. METHODS get_max_lines RETURNING VALUE(rv_lines) TYPE i. + METHODS set_adt_jump_enanbled + IMPORTING iv_adt_jump_enabled TYPE abap_bool. + METHODS get_adt_jump_enabled + RETURNING + VALUE(rv_adt_jump_enabled) TYPE abap_bool. PRIVATE SECTION. DATA: mv_proxy_url TYPE string, mv_proxy_port TYPE string, mv_proxy_auth TYPE string, mv_run_critical_tests TYPE abap_bool, - mv_lines TYPE i. + mv_lines TYPE i, + mv_adt_jump_enabled TYPE abap_bool. ENDCLASS. @@ -1615,6 +1621,14 @@ CLASS lcl_settings IMPLEMENTATION. mv_lines = iv_lines. ENDMETHOD. + METHOD get_adt_jump_enabled. + rv_adt_jump_enabled = mv_adt_jump_enabled. + ENDMETHOD. + + METHOD set_adt_jump_enanbled. + mv_adt_jump_enabled = iv_adt_jump_enabled. + ENDMETHOD. + ENDCLASS. CLASS lcl_persistence_settings DEFINITION FINAL. @@ -1661,15 +1675,22 @@ CLASS lcl_persistence_settings IMPLEMENTATION. iv_value = 'MAX_LINES' iv_data = |{ io_settings->get_max_lines( ) }| ). + lcl_app=>db( )->modify( + iv_type = 'SETTINGS' + iv_value = 'ADT_JUMP' + iv_data = io_settings->get_adt_jump_enabled( ) ). + ENDMETHOD. METHOD read. - DATA: lv_critical_tests_as_string TYPE string, - lv_critical_tests_as_boolean TYPE abap_bool, - lv_max_lines_as_string TYPE string, - lv_flag TYPE abap_bool, - lv_max_lines_as_integer TYPE i. + DATA: lv_critical_tests_as_string TYPE string, + lv_critical_tests_as_boolean TYPE abap_bool, + lv_max_lines_as_string TYPE string, + lv_flag TYPE abap_bool, + lv_max_lines_as_integer TYPE i, + lv_adt_jump_enabled_as_string TYPE string, + lv_adt_jump_enabled_as_boolean TYPE abap_bool. CREATE OBJECT ro_settings. @@ -1710,6 +1731,7 @@ CLASS lcl_persistence_settings IMPLEMENTATION. CATCH lcx_not_found. ro_settings->set_run_critical_tests( abap_false ). ENDTRY. + TRY. lv_max_lines_as_string = lcl_app=>db( )->read( iv_type = 'SETTINGS' @@ -1719,6 +1741,17 @@ CLASS lcl_persistence_settings IMPLEMENTATION. CATCH lcx_not_found. ro_settings->set_max_lines( 500 ). " default ENDTRY. + + TRY. + lv_adt_jump_enabled_as_string = lcl_app=>db( )->read( + iv_type = 'SETTINGS' + iv_value = 'ADT_JUMP' ). + lv_adt_jump_enabled_as_boolean = lv_adt_jump_enabled_as_string. + ro_settings->set_adt_jump_enanbled( lv_adt_jump_enabled_as_boolean ). + CATCH lcx_not_found. + ro_settings->set_adt_jump_enanbled( abap_false ). + ENDTRY. + ENDMETHOD. ENDCLASS. From 241fa62f4d8647d2ddbeacb636e00be9afe84bd0 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Sun, 23 Apr 2017 18:51:09 +0000 Subject: [PATCH 2/5] ADT jump --- src/zabapgit_objects.prog.abap | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/zabapgit_objects.prog.abap b/src/zabapgit_objects.prog.abap index a12fe7383..daa8381ae 100644 --- a/src/zabapgit_objects.prog.abap +++ b/src/zabapgit_objects.prog.abap @@ -559,8 +559,8 @@ CLASS lcl_objects_super DEFINITION ABSTRACT. CLASS-METHODS: jump_adt - IMPORTING i_obj_name type ty_item-obj_name - i_obj_type type ty_item-obj_type + IMPORTING i_obj_name TYPE ty_item-obj_name + i_obj_type TYPE ty_item-obj_type RAISING lcx_exception. CONSTANTS: c_user_unknown TYPE xubname VALUE 'UNKNOWN'. @@ -1631,17 +1631,8 @@ CLASS lcl_objects_super IMPLEMENTATION. FIELD-SYMBOLS: TYPE string. -* IF i_obj_name IS SUPPLIED. - obj_name = i_obj_name. -* ELSE. -* obj_name = ms_item-obj_name. -* ENDIF. - -* IF i_obj_type IS SUPPLIED. - obj_type = i_obj_type. -* ELSE. -* obj_type = ms_item-obj_type. -* ENDIF. + obj_name = i_obj_name. + obj_type = i_obj_type. TRY. li_object = cl_wb_object=>create_from_transport_key( p_object = obj_type From 43544c3f20b97f2dc01d3215996511001c02ccc8 Mon Sep 17 00:00:00 2001 From: Christian Guenter Date: Tue, 25 Apr 2017 19:50:36 +0000 Subject: [PATCH 3/5] fixed linter errors It seems that I'm too stupid to run the abapOpenCheck SCI checks. I hadn't any findings there... --- src/zabapgit_objects.prog.abap | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/zabapgit_objects.prog.abap b/src/zabapgit_objects.prog.abap index daa8381ae..17751d3df 100644 --- a/src/zabapgit_objects.prog.abap +++ b/src/zabapgit_objects.prog.abap @@ -1635,8 +1635,7 @@ CLASS lcl_objects_super IMPLEMENTATION. obj_type = i_obj_type. TRY. - li_object = cl_wb_object=>create_from_transport_key( p_object = obj_type - p_obj_name = obj_name ). + li_object = cl_wb_object=>create_from_transport_key( p_object = obj_type p_obj_name = obj_name ). CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE') RECEIVING From 75818b1e2e30c8446700bec804bca8c1ff415190 Mon Sep 17 00:00:00 2001 From: larshp Date: Wed, 26 Apr 2017 18:11:13 +0200 Subject: [PATCH 4/5] fix syntax error --- src/zabapgit_page_settings.prog.abap | 2 +- src/zabapgit_persistence.prog.abap | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/zabapgit_page_settings.prog.abap b/src/zabapgit_page_settings.prog.abap index 94adda5d6..bc968f855 100644 --- a/src/zabapgit_page_settings.prog.abap +++ b/src/zabapgit_page_settings.prog.abap @@ -172,7 +172,7 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. mo_settings->set_max_lines( 0 ). ENDIF. - READ TABLE it_post_fields INTO ls_post_field WITH KEY name = 'adt_jump_enabled'. + READ TABLE it_post_fields ASSIGNING WITH KEY name = 'adt_jump_enabled'. IF sy-subrc = 0. mo_settings->set_adt_jump_enanbled( abap_true ). ELSE. diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap index ec1460c6b..da14c3ab8 100644 --- a/src/zabapgit_persistence.prog.abap +++ b/src/zabapgit_persistence.prog.abap @@ -1581,7 +1581,7 @@ CLASS lcl_settings DEFINITION FINAL. METHODS get_commitmsg_body_size RETURNING VALUE(rv_length) TYPE i. - + PRIVATE SECTION. DATA: mv_proxy_url TYPE string, mv_proxy_port TYPE string, @@ -1731,7 +1731,7 @@ CLASS lcl_persistence_settings IMPLEMENTATION. lv_flag TYPE abap_bool, lv_max_lines_as_integer TYPE i, lv_s_param_value TYPE string, - lv_i_param_value TYPE i, + lv_i_param_value TYPE i, lv_adt_jump_enabled_as_string TYPE string, lv_adt_jump_enabled_as_boolean TYPE abap_bool. From 7c868ac7bdef07a8ed634c1660f9690ba217d9dc Mon Sep 17 00:00:00 2001 From: larshp Date: Wed, 26 Apr 2017 18:13:48 +0200 Subject: [PATCH 5/5] fix indentation --- src/zabapgit_persistence.prog.abap | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap index da14c3ab8..e71636def 100644 --- a/src/zabapgit_persistence.prog.abap +++ b/src/zabapgit_persistence.prog.abap @@ -1583,12 +1583,12 @@ CLASS lcl_settings DEFINITION FINAL. VALUE(rv_length) TYPE i. PRIVATE SECTION. - DATA: mv_proxy_url TYPE string, - mv_proxy_port TYPE string, - mv_proxy_auth TYPE string, - mv_run_critical_tests TYPE abap_bool, - mv_lines TYPE i, - mv_adt_jump_enabled TYPE abap_bool, + DATA: mv_proxy_url TYPE string, + mv_proxy_port TYPE string, + mv_proxy_auth TYPE string, + mv_run_critical_tests TYPE abap_bool, + mv_lines TYPE i, + mv_adt_jump_enabled TYPE abap_bool, mv_commitmsg_comment_length TYPE i, mv_commitmsg_body_size TYPE i. @@ -1730,8 +1730,8 @@ CLASS lcl_persistence_settings IMPLEMENTATION. lv_max_lines_as_string TYPE string, lv_flag TYPE abap_bool, lv_max_lines_as_integer TYPE i, - lv_s_param_value TYPE string, - lv_i_param_value TYPE i, + lv_s_param_value TYPE string, + lv_i_param_value TYPE i, lv_adt_jump_enabled_as_string TYPE string, lv_adt_jump_enabled_as_boolean TYPE abap_bool. @@ -1815,6 +1815,6 @@ CLASS lcl_persistence_settings IMPLEMENTATION. ro_settings->set_commitmsg_body_size( lcl_settings=>c_commitmsg_body_size_dft ). " default ENDTRY. -ENDMETHOD. + ENDMETHOD. ENDCLASS.