TYPES: ty_it_events TYPE STANDARD TABLE OF cntl_simple_event WITH DEFAULT KEY.
PARAMETERS: p_url TYPE string LOWER CASE DEFAULT 'http://www.google.de'.
CLASS lcl_events DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
on_navigate_complete FOR EVENT navigate_complete OF cl_gui_html_viewer
IMPORTING
url
sender.
CLASS-METHODS:
on_sapevent FOR EVENT sapevent OF cl_gui_html_viewer
IMPORTING
action
frame
getdata
postdata
query_table
sender.
ENDCLASS.
CLASS lcl_events IMPLEMENTATION.
* nach Aufbau des Dokuments
METHOD on_navigate_complete.
MESSAGE |Loaded: { url }| TYPE 'S'.
ENDMETHOD.
* Link- oder Button-Klick
METHOD on_sapevent.
MESSAGE |Action: { action }, get: { getdata }| TYPE 'S'.
ENDMETHOD.
ENDCLASS.
INITIALIZATION.
DATA(o_dock) = NEW cl_gui_docking_container( ratio = 80
side = cl_gui_docking_container=>dock_at_bottom
no_autodef_progid_dynnr = 'X' ).
* HTML-Viewer
DATA(o_html) = NEW cl_gui_html_viewer( parent = o_dock ).
* Eventtypten müssen gesondert registriert werden
DATA(it_events) = VALUE ty_it_events( ( eventid = cl_gui_html_viewer=>m_id_navigate_complete
appl_event = abap_true )
( eventid = cl_gui_html_viewer=>m_id_sapevent
appl_event = abap_true ) ).
o_html->set_registered_events( events = it_events ).
* Eventhandler registrieren
SET HANDLER lcl_events=>on_navigate_complete FOR o_html.
SET HANDLER lcl_events=>on_sapevent FOR o_html.
* HTML anzeigen
o_html->show_url( url = |{ p_url }| ).