Added generic ADT jump functionality

This commit is contained in:
Christian Guenter 2017-04-23 18:48:22 +00:00
parent 38da837ea3
commit 3a7976398b
5 changed files with 108 additions and 25 deletions

View File

@ -52,7 +52,8 @@ CLASS lcl_object_dcls IMPLEMENTATION.
TRY. TRY.
jump_adt( ). jump_adt( i_obj_name = ms_item-obj_name
i_obj_type = ms_item-obj_type ).
CATCH lcx_exception. CATCH lcx_exception.
lcx_exception=>raise( 'DCLS Jump Error' ). lcx_exception=>raise( 'DCLS Jump Error' ).

View File

@ -557,6 +557,12 @@ CLASS lcl_objects_super DEFINITION ABSTRACT.
is_item TYPE ty_item is_item TYPE ty_item
iv_language TYPE spras. 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'. CONSTANTS: c_user_unknown TYPE xubname VALUE 'UNKNOWN'.
PROTECTED SECTION. PROTECTED SECTION.
@ -576,10 +582,6 @@ CLASS lcl_objects_super DEFINITION ABSTRACT.
jump_se11 jump_se11
IMPORTING iv_radio TYPE string IMPORTING iv_radio TYPE string
iv_field 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. RAISING lcx_exception.
ENDCLASS. "lcl_objects_super DEFINITION ENDCLASS. "lcl_objects_super DEFINITION
@ -1629,20 +1631,21 @@ CLASS lcl_objects_super IMPLEMENTATION.
FIELD-SYMBOLS: <uri> TYPE string. FIELD-SYMBOLS: <uri> TYPE string.
IF i_obj_name IS SUPPLIED. * IF i_obj_name IS SUPPLIED.
obj_name = i_obj_name. obj_name = i_obj_name.
ELSE. * ELSE.
obj_name = ms_item-obj_name. * obj_name = ms_item-obj_name.
ENDIF. * ENDIF.
IF i_obj_type IS SUPPLIED. * IF i_obj_type IS SUPPLIED.
obj_type = i_obj_type. obj_type = i_obj_type.
ELSE. * ELSE.
obj_type = ms_item-obj_type. * obj_type = ms_item-obj_type.
ENDIF. * ENDIF.
TRY. 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') CALL METHOD ('CL_ADT_TOOLS_CORE_FACTORY')=>('GET_INSTANCE')
RECEIVING RECEIVING

View File

@ -231,13 +231,31 @@ CLASS lcl_objects IMPLEMENTATION.
METHOD jump. 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 li_obj = create_object( is_item = is_item
iv_language = gc_english ). 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 ENDMETHOD. "jump

View File

@ -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. RETURNING VALUE(ro_html) TYPE REF TO lcl_html.
METHODS render_max_lines METHODS render_max_lines
RETURNING VALUE(ro_html) TYPE REF TO lcl_html. 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 METHODS build_settings
IMPORTING IMPORTING
it_post_fields TYPE tihttpnvp. it_post_fields TYPE tihttpnvp.
@ -67,6 +69,8 @@ CLASS lcl_gui_page_settings IMPLEMENTATION.
ro_html->add( render_development_internals( ) ). ro_html->add( render_development_internals( ) ).
ro_html->add( |<hr>| ). ro_html->add( |<hr>| ).
ro_html->add( render_max_lines( ) ). ro_html->add( render_max_lines( ) ).
ro_html->add( |<hr>| ).
ro_html->add( render_adt_jump_enabled( ) ).
ro_html->add( render_form_end( ) ). ro_html->add( render_form_end( ) ).
ENDMETHOD. "render_content ENDMETHOD. "render_content
@ -163,6 +167,13 @@ CLASS lcl_gui_page_settings IMPLEMENTATION.
mo_settings->set_max_lines( 0 ). mo_settings->set_max_lines( 0 ).
ENDIF. 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. ENDMETHOD.
@ -251,4 +262,21 @@ CLASS lcl_gui_page_settings IMPLEMENTATION.
ro_html->add( |<br>| ). ro_html->add( |<br>| ).
ENDMETHOD. 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( |<h2>ABAP Development Tools (ADT)</h2>| ).
ro_html->add( `<input type="checkbox" name="adt_jump_enabled" value="X" `
&& lv_checked && ` > Enable jump to ADT first` ).
ro_html->add( |<br>| ).
ro_html->add( |<br>| ).
ENDMETHOD.
ENDCLASS. ENDCLASS.

View File

@ -113,7 +113,7 @@ CLASS lcl_persistence_repo DEFINITION FINAL.
TYPES: BEGIN OF ty_repo, TYPES: BEGIN OF ty_repo,
key TYPE lcl_persistence_db=>ty_value. key TYPE lcl_persistence_db=>ty_value.
INCLUDE TYPE ty_repo_xml. INCLUDE TYPE ty_repo_xml.
TYPES: END OF ty_repo. TYPES: END OF ty_repo.
TYPES: tt_repo TYPE STANDARD TABLE OF ty_repo WITH DEFAULT KEY. 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. 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, TYPES: BEGIN OF ty_background,
key TYPE lcl_persistence_db=>ty_value. key TYPE lcl_persistence_db=>ty_value.
INCLUDE TYPE ty_xml. INCLUDE TYPE ty_xml.
TYPES: END OF ty_background. TYPES: END OF ty_background.
TYPES: tt_background TYPE STANDARD TABLE OF ty_background WITH DEFAULT KEY. 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 METHODS get_max_lines
RETURNING RETURNING
VALUE(rv_lines) TYPE i. 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. PRIVATE SECTION.
DATA: mv_proxy_url TYPE string, DATA: mv_proxy_url TYPE string,
mv_proxy_port TYPE string, mv_proxy_port TYPE string,
mv_proxy_auth TYPE string, mv_proxy_auth TYPE string,
mv_run_critical_tests TYPE abap_bool, mv_run_critical_tests TYPE abap_bool,
mv_lines TYPE i. mv_lines TYPE i,
mv_adt_jump_enabled TYPE abap_bool.
ENDCLASS. ENDCLASS.
@ -1615,6 +1621,14 @@ CLASS lcl_settings IMPLEMENTATION.
mv_lines = iv_lines. mv_lines = iv_lines.
ENDMETHOD. 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. ENDCLASS.
CLASS lcl_persistence_settings DEFINITION FINAL. CLASS lcl_persistence_settings DEFINITION FINAL.
@ -1661,15 +1675,22 @@ CLASS lcl_persistence_settings IMPLEMENTATION.
iv_value = 'MAX_LINES' iv_value = 'MAX_LINES'
iv_data = |{ io_settings->get_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. ENDMETHOD.
METHOD read. METHOD read.
DATA: lv_critical_tests_as_string TYPE string, DATA: lv_critical_tests_as_string TYPE string,
lv_critical_tests_as_boolean TYPE abap_bool, lv_critical_tests_as_boolean TYPE abap_bool,
lv_max_lines_as_string TYPE string, lv_max_lines_as_string TYPE string,
lv_flag TYPE abap_bool, lv_flag TYPE abap_bool,
lv_max_lines_as_integer TYPE i. 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. CREATE OBJECT ro_settings.
@ -1710,6 +1731,7 @@ CLASS lcl_persistence_settings IMPLEMENTATION.
CATCH lcx_not_found. CATCH lcx_not_found.
ro_settings->set_run_critical_tests( abap_false ). ro_settings->set_run_critical_tests( abap_false ).
ENDTRY. ENDTRY.
TRY. TRY.
lv_max_lines_as_string = lcl_app=>db( )->read( lv_max_lines_as_string = lcl_app=>db( )->read(
iv_type = 'SETTINGS' iv_type = 'SETTINGS'
@ -1719,6 +1741,17 @@ CLASS lcl_persistence_settings IMPLEMENTATION.
CATCH lcx_not_found. CATCH lcx_not_found.
ro_settings->set_max_lines( 500 ). " default ro_settings->set_max_lines( 500 ). " default
ENDTRY. 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. ENDMETHOD.
ENDCLASS. ENDCLASS.