diff --git a/src/ui/zcl_abapgit_gui_router.clas.abap b/src/ui/zcl_abapgit_gui_router.clas.abap index 6d4a5ebc0..b58a4e003 100644 --- a/src/ui/zcl_abapgit_gui_router.clas.abap +++ b/src/ui/zcl_abapgit_gui_router.clas.abap @@ -577,13 +577,27 @@ CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. METHOD sap_gui_actions. - DATA: ls_item TYPE zif_abapgit_definitions=>ty_item. + DATA: ls_item TYPE zif_abapgit_definitions=>ty_item, + lx_ex TYPE REF TO zcx_abapgit_exception, + li_html_viewer TYPE REF TO zif_abapgit_html_viewer. CASE ii_event->mv_action. WHEN zif_abapgit_definitions=>c_action-jump. " Open object editor ls_item-obj_type = ii_event->query( )->get( 'TYPE' ). ls_item-obj_name = ii_event->query( )->get( 'NAME' ). - zcl_abapgit_objects=>jump( ls_item ). + + li_html_viewer = zcl_abapgit_ui_factory=>get_html_viewer( ). + + TRY. + " Hide HTML Viewer in dummy screen0 for direct CALL SCREEN to work + li_html_viewer->set_visiblity( abap_false ). + zcl_abapgit_objects=>jump( ls_item ). + li_html_viewer->set_visiblity( abap_true ). + CATCH zcx_abapgit_exception INTO lx_ex. + li_html_viewer->set_visiblity( abap_true ). + RAISE EXCEPTION lx_ex. + ENDTRY. + rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act. WHEN zif_abapgit_definitions=>c_action-jump_transport. diff --git a/src/ui/zcl_abapgit_html_viewer_gui.clas.abap b/src/ui/zcl_abapgit_html_viewer_gui.clas.abap index a419d8a51..4f549df7c 100644 --- a/src/ui/zcl_abapgit_html_viewer_gui.clas.abap +++ b/src/ui/zcl_abapgit_html_viewer_gui.clas.abap @@ -13,20 +13,20 @@ CLASS zcl_abapgit_html_viewer_gui DEFINITION DATA mo_html_viewer TYPE REF TO cl_gui_html_viewer . METHODS on_event - FOR EVENT sapevent OF cl_gui_html_viewer + FOR EVENT sapevent OF cl_gui_html_viewer IMPORTING - !action - !frame - !getdata - !postdata - !query_table . + !action + !frame + !getdata + !postdata + !query_table . PRIVATE SECTION. ENDCLASS. -CLASS ZCL_ABAPGIT_HTML_VIEWER_GUI IMPLEMENTATION. +CLASS zcl_abapgit_html_viewer_gui IMPLEMENTATION. METHOD constructor. @@ -119,4 +119,16 @@ CLASS ZCL_ABAPGIT_HTML_VIEWER_GUI IMPLEMENTATION. mo_html_viewer->show_url( iv_url ). ENDMETHOD. + + METHOD zif_abapgit_html_viewer~set_visiblity. + DATA: lv_visible TYPE c LENGTH 1. + + IF iv_visible = abap_true. + lv_visible = cl_gui_container=>visible_true. + ELSE. + lv_visible = cl_gui_container=>visible_false. + ENDIF. + + mo_html_viewer->set_visible( lv_visible ). + ENDMETHOD. ENDCLASS. diff --git a/src/ui/zcl_abapgit_ui_factory.clas.abap b/src/ui/zcl_abapgit_ui_factory.clas.abap index c76bbc515..8d36d354c 100644 --- a/src/ui/zcl_abapgit_ui_factory.clas.abap +++ b/src/ui/zcl_abapgit_ui_factory.clas.abap @@ -180,12 +180,11 @@ CLASS ZCL_ABAPGIT_UI_FACTORY IMPLEMENTATION. METHOD get_html_viewer. - IF gi_html_viewer IS BOUND. - ri_viewer = gi_html_viewer. - RETURN. + IF gi_html_viewer IS NOT BOUND. + CREATE OBJECT gi_html_viewer TYPE zcl_abapgit_html_viewer_gui. ENDIF. - CREATE OBJECT ri_viewer TYPE zcl_abapgit_html_viewer_gui. + ri_viewer = gi_html_viewer. ENDMETHOD. diff --git a/src/ui/zif_abapgit_html_viewer.intf.abap b/src/ui/zif_abapgit_html_viewer.intf.abap index f7c1ecd04..db6760b98 100644 --- a/src/ui/zif_abapgit_html_viewer.intf.abap +++ b/src/ui/zif_abapgit_html_viewer.intf.abap @@ -48,4 +48,5 @@ INTERFACE zif_abapgit_html_viewer RETURNING VALUE(rv_url) TYPE w3url. METHODS back . + METHODS set_visiblity IMPORTING iv_visible TYPE abap_bool. ENDINTERFACE.