ALVtree user interaction processingDefine class to handle user interaction other than via toolbar buttons. Insert at end of DATA declaration section but before any ABAP processing.
*--------------------------------------------------------------*
* INCLUDE BCALV_TREE_EVENT_RECEIVER *
*--------------------------------------------------------------*
CLASS lcl_tree_event_receiver DEFINITION.
PUBLIC SECTION.
METHODS handle_node_ctmenu_request
FOR EVENT node_context_menu_request OF cl_gui_alv_tree
IMPORTING node_key
menu.
METHODS handle_node_ctmenu_selected
FOR EVENT node_context_menu_selected OF cl_gui_alv_tree
IMPORTING node_key
fcode.
METHODS handle_item_ctmenu_request
FOR EVENT item_context_menu_request OF cl_gui_alv_tree
IMPORTING node_key
fieldname
menu.
METHODS handle_item_ctmenu_selected
FOR EVENT item_context_menu_selected OF cl_gui_alv_tree
IMPORTING node_key
fieldname
fcode.
METHODS handle_item_double_click
FOR EVENT item_double_click OF cl_gui_alv_tree
IMPORTING node_key
fieldname.
METHODS handle_button_click
FOR EVENT button_click OF cl_gui_alv_tree
IMPORTING node_key
fieldname.
METHODS handle_link_click
FOR EVENT link_click OF cl_gui_alv_tree
IMPORTING node_key
fieldname.
METHODS handle_header_click
FOR EVENT header_click OF cl_gui_alv_tree
IMPORTING fieldname.
ENDCLASS.
*---------------------------------------------------------------------*
* CLASS lcl_tree_event_receiver IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS lcl_tree_event_receiver IMPLEMENTATION.
METHOD handle_node_ctmenu_request.
* append own functions
CALL METHOD menu->add_function
EXPORTING fcode = 'USER1'
text = 'Usercmd 1'. "#EC NOTEXT
CALL METHOD menu->add_function
EXPORTING fcode = 'USER2'
text = 'Usercmd 2'. "#EC NOTEXT
CALL METHOD menu->add_function
EXPORTING fcode = 'USER3'
text = 'Usercmd 3'. "#EC NOTEXT
ENDMETHOD.
METHOD handle_node_ctmenu_selected.
CASE fcode.
WHEN 'USER1' OR 'USER2' OR 'USER3'.
MESSAGE i000(0h) WITH 'Node-Context-Menu on Node ' node_key
'fcode : ' fcode. "#EC NOTEXT
ENDCASE.
ENDMETHOD.
METHOD handle_item_ctmenu_request .
* append own functions
CALL METHOD menu->add_function
EXPORTING fcode = 'USER1'
text = 'Usercmd 1'.
CALL METHOD menu->add_function
EXPORTING fcode = 'USER2'
text = 'Usercmd 2'.
CALL METHOD menu->add_function
EXPORTING fcode = 'USER3'
text = 'Usercmd 3'.
ENDMETHOD.
METHOD handle_item_ctmenu_selected.
CASE fcode.
WHEN 'USER1' OR 'USER2' OR 'USER3'.
MESSAGE i000(0h) WITH 'Item-Context-Menu on Node ' node_key
'Fieldname : ' fieldname. "#EC NOTEXT
ENDCASE.
ENDMETHOD.
METHOD handle_item_double_click.
* Processing for when user double clicks on ALVtree
ENDMETHOD.
METHOD handle_button_click.
* Processing when user clicks button
ENDMETHOD.
METHOD handle_link_click.
* ??
ENDMETHOD.
METHOD handle_header_click.
* Processing for when user clicks on ALVtree column headers
ENDMETHOD.
ENDCLASS.
|
||||||||