
CLASS lcl_docker DEFINITION
INHERITING FROM cl_gui_docking_container.
PUBLIC SECTION.
METHODS constructor IMPORTING iv_no_autodef TYPE abap_bool.
PRIVATE SECTION.
DATA mo_tree TYPE REF TO cl_gui_alv_tree.
DATA mt_menu TYPE TABLE OF scmgreadmenuitem.
DATA ms_current_menu LIKE LINE OF mt_menu.
METHODS handle_node_double_click FOR EVENT node_double_click OF cl_gui_alv_tree
IMPORTING node_key.
ENDCLASS.
CLASS lcl_docker IMPLEMENTATION.
METHOD constructor.
super->constructor( side = dock_at_left
ratio = 30 ).
mo_tree = NEW #( parent = me
no_html_header = abap_true
no_toolbar = abap_true
item_selection = abap_false ).
mo_tree->set_table_for_first_display( EXPORTING i_structure_name = 'SCMGREADMENUITEM'
is_hierarchy_header = VALUE #( heading = 'Menu' width = 50 )
CHANGING it_outtab = mt_menu ).
mo_tree->add_node( EXPORTING i_relat_node_key = space
i_relationship = cl_gui_column_tree=>relat_last_child
is_node_layout = VALUE #( isfolder = abap_true )
i_node_text = 'Root'
IMPORTING e_new_node_key = DATA(root_node) ).
mo_tree->add_node( EXPORTING i_relat_node_key = root_node
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = VALUE scmgreadmenuitem( event_name = 'Screen 100' menu_item = '0100' )
is_node_layout = VALUE #( isfolder = abap_false )
i_node_text = 'Go to 100' ).
mo_tree->add_node( EXPORTING i_relat_node_key = root_node
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = VALUE scmgreadmenuitem( event_name = 'Screen 200' menu_item = '0200' )
is_node_layout = VALUE #( isfolder = abap_false )
i_node_text = 'Go to 200' ).
mo_tree->frontend_update( ).
mo_tree->expand_node( i_node_key = root_node
i_expand_subtree = abap_true ).
ms_current_menu-menu_item = '0100'.
mo_tree->set_registered_events( VALUE #( ( eventid = cl_gui_column_tree=>eventid_node_double_click ) ) ).
SET HANDLER handle_node_double_click FOR mo_tree.
ENDMETHOD.
METHOD handle_node_double_click.
DATA ls_outtab TYPE scmgreadmenuitem.
mo_tree->get_outtab_line( EXPORTING i_node_key = node_key
IMPORTING e_outtab_line = ls_outtab ).
CHECK ms_current_menu-menu_item <> ls_outtab-menu_item.
ms_current_menu = ls_outtab.
cl_gui_cfw=>set_new_ok_code( CONV #( ls_outtab-menu_item ) ).
ENDMETHOD.
MODULE pai INPUT.
CASE sy-ucomm.
WHEN '0100'. LEAVE TO SCREEN 100.
WHEN '0200'. LEAVE TO SCREEN 200.
WHEN OTHERS. LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE.
super->constructor( side = dock_at_left
ratio = 30
no_autodef_progid_dynnr = abap_true ).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
3 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |