2009 Feb 20 7:54 AM
I need to implement RIGHT CLICK event in tree node display, which is already contain drag&drop functionality.
I tried to register this RIGHT CLICK event in the same perform of drag and drop resgistration but it gives short dump with description ILLEGAL EVENT COMBINATION....
Please guide...
Siva.
I need to implement RIGHT CLICK event in tree node display, which is already contain drag&drop functionality.
I tried to register this RIGHT CLICK event in the same perform of drag and drop resgistration but it gives short dump with description ILLEGAL EVENT COMBINATION....
Please guide...
Siva.
2009 Mar 06 6:19 AM
Hi,
You need to register event "eventid_item_context_menu_req".
set the handler for method "handle_item_ctmenu_request" and "handle_item_ctmenu_selected".
Implement method handle_item_ctmenu_request
method handle_item_ctmenu_request .
call method menu->add_function
exporting fcode = 'USER1'
text = 'Usercmd 1'.
endmethod.
Above method will add the given input on right clock button popup.
Implement handle_item_ctmenu_selected
method handle_item_ctmenu_selected.
case fcode.
when 'USER1'.
when other.
endcase.
endmethod.
above method will be action of added input on right click popup.
Hope it will be helpful for you.
Regards,
Atul
2010 Mar 01 7:34 AM
2010 Mar 01 7:37 AM
2009 Mar 26 3:02 AM
Dear Siva,
You can follow the following steps:-
- Create local class (eg:- lcl_screen_handler) as handler class.
- Define and implement methods handle_node_context_menu_req and handle_node_context_menu_sel for handling right click.
- In Method handle_node_context_menu_req use CALL METHOD menu->add_function for adding entries to context menu.
- In Method handle_node_context_menu_sel based on node_key and fcode handle logic for right click.
- Define event handler (eg:- grc_event_handler TYPE REF TO lcl_screen_handler) to handle events for right click on tree.
- After creating Tree, specify events that are to be handled and assign them to tree instance
eg:- lwa_event-eventid = cl_simple_tree_model=>eventid_node_double_click.
lwa_event-appl_event = ' '. "system event, does not trigger PAI
APPEND lwa_event TO lit_event. (where, lit_event TYPE cntl_simple_events)
- Also, register PAI for context menu as follows:-
Process PAI if context menu select event occurs
CALL METHOD grc_tree->set_ctx_menu_select_event_appl (where grc_tree is Tree instance)
EXPORTING
appl_event = 'X'.
- Register Tree events as follows:-
CALL METHOD grc_tree->set_registered_events
EXPORTING
events = lit_event ....
- Create event handler instance for tree
CREATE OBJECT grc_event_handler. (where, grc_event_handler is already declared on top)
- Set event handler method to handle various events on tree node
eg:- SET HANDLER grc_event_handler->handle_node_double_click FOR grc_tree.
SET HANDLER grc_event_handler->handle_node_context_menu_req FOR grc_tree.
SET HANDLER grc_event_handler->handle_node_context_menu_sel FOR grc_tree.
The events should be handled now. I have followed this approach and it worked for me.
Regards,
Ashish
2009 Mar 26 8:47 AM
Hello Siva
Quite frequently this problem (ILLEGAL EVENT COMBINATION) is due to the fact that multiple selection of nodes / items is allowed yet a few of the registered events require a uniquely selected node or item. Calling context menus on multiple selected odes usually does not make sense. So check your CONSTRUCTOR method call.
Regards
Uwe
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |