CLASS zcl_abapgit_html_viewer_gui DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES zif_abapgit_html_viewer . METHODS constructor IMPORTING !io_container TYPE REF TO cl_gui_container DEFAULT cl_gui_container=>screen0 !iv_disable_query_table TYPE abap_bool DEFAULT abap_true . PROTECTED SECTION. DATA mo_html_viewer TYPE REF TO cl_gui_html_viewer . METHODS on_event FOR EVENT sapevent OF cl_gui_html_viewer IMPORTING !action !frame !getdata !postdata !query_table . PRIVATE SECTION. ENDCLASS. CLASS ZCL_ABAPGIT_HTML_VIEWER_GUI IMPLEMENTATION. METHOD constructor. DATA: lt_events TYPE cntl_simple_events, ls_event LIKE LINE OF lt_events. CREATE OBJECT mo_html_viewer EXPORTING query_table_disabled = iv_disable_query_table parent = io_container. ls_event-eventid = zif_abapgit_html_viewer=>m_id_sapevent. ls_event-appl_event = abap_true. APPEND ls_event TO lt_events. mo_html_viewer->set_registered_events( lt_events ). SET HANDLER on_event FOR mo_html_viewer. ENDMETHOD. METHOD on_event. RAISE EVENT zif_abapgit_html_viewer~sapevent EXPORTING action = action frame = frame getdata = getdata postdata = postdata query_table = query_table. ENDMETHOD. METHOD zif_abapgit_html_viewer~back. mo_html_viewer->go_back( ). ENDMETHOD. METHOD zif_abapgit_html_viewer~close_document. mo_html_viewer->close_document( ). ENDMETHOD. METHOD zif_abapgit_html_viewer~free. mo_html_viewer->free( ). ENDMETHOD. METHOD zif_abapgit_html_viewer~get_url. DATA lv_url TYPE c LENGTH 250. mo_html_viewer->get_current_url( IMPORTING url = lv_url ). cl_gui_cfw=>flush( ). rv_url = lv_url. ENDMETHOD. METHOD zif_abapgit_html_viewer~get_viewer. ro_result = mo_html_viewer. ENDMETHOD. METHOD zif_abapgit_html_viewer~load_data. DATA lv_url TYPE c LENGTH 250. DATA lv_assigned TYPE c LENGTH 250. ASSERT strlen( iv_url ) <= 250. lv_url = iv_url. mo_html_viewer->load_data( EXPORTING url = lv_url type = iv_type subtype = iv_subtype size = iv_size IMPORTING assigned_url = lv_assigned CHANGING data_table = ct_data_table EXCEPTIONS dp_invalid_parameter = 1 dp_error_general = 2 cntl_error = 3 html_syntax_notcorrect = 4 ). IF sy-subrc <> 0. zcx_abapgit_exception=>raise( 'Error loading data for HTML viewer' ). ENDIF. ev_assigned_url = lv_assigned. ENDMETHOD. METHOD zif_abapgit_html_viewer~set_registered_events. mo_html_viewer->set_registered_events( EXPORTING events = it_events EXCEPTIONS cntl_error = 1 cntl_system_error = 2 illegal_event_combination = 3 ). IF sy-subrc <> 0. zcx_abapgit_exception=>raise( 'Error registering events for HTML viewer' ). ENDIF. 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. METHOD zif_abapgit_html_viewer~show_url. DATA lv_url TYPE c LENGTH 250. lv_url = iv_url. mo_html_viewer->show_url( EXPORTING url = lv_url EXCEPTIONS cntl_error = 1 cnht_error_not_allowed = 2 cnht_error_parameter = 3 dp_error_general = 4 ). IF sy-subrc <> 0. zcx_abapgit_exception=>raise( 'Error showing URL in HTML viewer' ). ENDIF. ENDMETHOD. ENDCLASS.