Double click on node
Dear Colleagues !
I have a tree :
class lcl_tree definition inheriting from CL_COLUMN_TREE_MODEL.
data: G_TREE TYPE REF TO lcl_TREE.
CREATE OBJECT G_TREE
EXPORTING
NODE_SELECTION_MODE = CL_COLUMN_TREE_MODEL=>NODE_SEL_MODE_MULTIPLE
It works fine. I want to react to double click of a node:
event-eventid = CL_GUI_COLUMN_TREE=>EVENTID_NODE_DOUBLE_CLICK.
event-appl_event = 'X'.
APPEND event to events.
CALL METHOD G_TREE->SET_REGISTERED_EVENTS
EXPORTING
EVENTS = EVENTS
EXCEPTIONS
unknown_event = 1
ILLEGAL_EVENT_COMBINATION = 2.
But it doesn't happen anything.
I enhanced it:
CLASS gcl_events_hndl DEFINITION.
PUBLIC SECTION .
METHODS handle_node_double_click
FOR EVENT node_double_click
OF lcl_tree
IMPORTING node_key sender.
ENDCLASS.
DATA: l_event_receiver TYPE REF TO gcl_events_hndl.
CREATE OBJECT l_event_receiver.
SET HANDLER l_event_receiver->handle_node_double_click FOR g_tree.
And I have the same, nothing ...
Can You propose me anything ?
Thanks a lot and kind regards
Peter
Hello Peter
Depending on "object" on which you double-click you either trigger event NODE_DOUBLE_CLICK or ITEM_DOUBLE_CLICK. The NODE_DOUBLE_CLICK event is only triggered if you click on the leftmost part of the node.
Have a look at my sample report ZUS_SDN_ALV_TREE_DEMO_1 in thread
drop down list in alv tree
Depending on where you double-click the raised event is displayed as I-message.
Regards
Uwe
Similar Messages
-
Double click a node in a jtree
hi i have a Jtree with usernames has nodes. how do i generate a code that when a user double clicks a username node, the corresponding code will execute along with what node was clicked on.
for example, a user clicks on username "jonney" and than a new chat window will appear to establish a chat session with jonney.
at the moment when a user selects a node, you are able to create a new chat session, but i want to change it so that the user has to double click their username not just selecting it. similar to msn mesenger.
here is the code i have at the moment.
public void valueChanged(TreeSelectionEvent event)
DefaultMutableTreeNode node = (DefaultMutableTreeNode)
userTree.getLastSelectedPathComponent();
//get username.
Object nodeInfo = node.getUserObject();
String info =nodeInfo.toString();
if(node.isLeaf())
ChatDialog_c chatting = new ChatDialog_c(crnt_user, info);
Thread t = new Thread(chatting);
chatting.setTitle("I-comm");
chatting.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
chatting.setSize(430, 200);
chatting.getSize();
chatting.setLocation(420,200);
chatting.setVisible(true);
t.start();
}when you call a method you call it on an object.
e.g.
Class instance = new Class();
instance.method();where Class is a hypathetical class name and instance is a hypathetical variable name of type Class.
new is a keyword for creating an instance of a Class.
method is the name of a method in Class which is accessable through instance.
when you do not put an instance in front of a metho call:
method();it is the same as:
this.method();this being the keyword to say "us the current object we are in".
In the API for MouseEvent it says there is a method getClickCount(). looking back at your code we have a refrence to a MouseEvent being passed as a parameter to the method you are in.
private void userTreeMouseClicked(java.awt.event.MouseEvent evt) {
^from this you should be able to see what you are doing wrong, I could have just told you the line to write in much less time but i think you will gain more this way. -
Double Click Property Node not functioning with Queued State Machine
I am writing an application which relies on input from the operator to start different steps in a process of steps. I am using a queued state machine, however I cannot get the Double-Click property of my listbox to function with in this Queued state machine. I have tried Creating a refrence to the Listbox and creating a property node from that refrence. I have tried a property node of the control. The double click functon works only if the queueing is not occuring. It has something to do with the queue but I am at a loss as to what is causing it. Any help would be GREATLY appreciated. I have attached a simplified version of the state machine with the double click function. Thanks for any help on this. It is written in LV7.1
Attachments:
Test Q.llb 55 KBHi
Its Simple....
Your Properrty node is not getting read..... dont understand how..
see the attachment...
now laugh at your small mistake... (even i have the habbit of making such small mistakes ;-) )
Message Edited by Tushar Jambhekar on 01-11-2006 11:38 AM
Tushar Jambhekar
[email protected]
Jambhekar Automation Solutions
LabVIEW Consultancy, LabVIEW Training
Rent a LabVIEW Developer, My Blog
Attachments:
Test Q.llb 55 KB
Picture.JPG 44 KB -
Double click in ALV tree output????
Hi all,
I am able to display output in tree format. But I want to add the double click functionality to some of the fields in output. Means if I double click on some value in output tree, it should call some transaction. Please help me with this issue of double clicking.
Please tell how to handle events in this report tree display.
For the following code its displaying output in tree format and in right way. But i need to add double click functionality to this.
So provide me some sample program for this one....
* create hierarchy
CALL METHOD tree1->set_table_for_first_display
EXPORTING
it_list_commentary = lt_list_commentary
i_background_id = 'ALV_BACKGROUND'
i_save = 'A'
is_variant = ls_variant
CHANGING
it_sort = gt_sort[]
it_outtab = itab_outtab
it_fieldcatalog = t_fieldcat. "gt_fieldcatalog.
* expand first level
CALL METHOD tree1->expand_tree
EXPORTING
i_level = 1.
* optimize column-width
CALL METHOD tree1->column_optimize
EXPORTING
i_start_column = tree1->c_hierarchy_column_name
i_end_column = tree1->c_hierarchy_column_name.
In grid ALV we can have double cilck functionality using code:
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
i_callback_pf_status_set = 'PF_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = ls_layout
it_fieldcat = gt_fc[]
Here we can write subroutine for USER_COMMAND and handle the double click evenet. But tell me how to provide this in tree ALV.
<REMOVED BY MODERATOR>
Regards,
Sachin
Edited by: Alvaro Tejada Galindo on Feb 14, 2008 1:47 PMHello Sachin
The following sample report ZUS_SDN_ALV_TREE_DEMO demonstrates the crucial parts for double-click event handling (nodes & items) in ALV trees.
*& Report ZUS_SDN_ALV_TREE_DEMO
*& Thread: double click in ALV tree output????
*& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="742412"></a>
REPORT zus_sdn_alv_tree_demo.
CLASS cl_gui_column_tree DEFINITION LOAD.
CLASS cl_gui_cfw DEFINITION LOAD.
TYPE-POOLS: abap.
TYPES: BEGIN OF ty_s_outtab.
INCLUDE TYPE knvv AS data.
TYPES: nkey TYPE lvc_nkey.
TYPES: parent_key TYPE lvc_nkey.
TYPES: END OF ty_s_outtab.
TYPES: ty_t_outtab TYPE STANDARD TABLE OF ty_s_outtab
WITH DEFAULT KEY.
DATA: gt_outtab TYPE ty_t_outtab.
DATA:
gd_okcode TYPE ui_func,
gd_repid TYPE syst-repid,
gt_fcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo,
gs_variant TYPE disvariant,
go_docking TYPE REF TO cl_gui_docking_container,
go_tree TYPE REF TO cl_gui_alv_tree.
* CLASS lcl_eventhandler DEFINITION
CLASS lcl_eventhandler DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
handle_node_double_click
FOR EVENT node_double_click OF cl_gui_alv_tree
IMPORTING node_key,
handle_item_double_click
FOR EVENT item_double_click OF cl_gui_alv_tree
IMPORTING node_key
fieldname.
ENDCLASS. "lcl_eventhandler DEFINITION
* CLASS lcl_eventhandler IMPLEMENTATION
CLASS lcl_eventhandler IMPLEMENTATION.
METHOD handle_node_double_click.
message 'Event=Double-Click on Node' type 'I'.
call transaction 'XD03'.
ENDMETHOD. "handle_node_double_click
METHOD handle_item_double_click.
message 'Event=Double-Click on Item' type 'I'.
call transaction 'VA03'.
ENDMETHOD. "handle_item_double_click
ENDCLASS. "lcl_eventhandler IMPLEMENTATION
START-OF-SELECTION.
PERFORM init_controls.
gd_repid = syst-repid.
CALL METHOD go_docking->link
EXPORTING
repid = gd_repid
dynnr = '0100'
* container =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
lifetime_dynpro_dynpro_link = 3
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL SCREEN '0100'.
** NOTE: no elements on screen
** PROCESS BEFORE OUTPUT.
** MODULE STATUS_0100.
** PROCESS AFTER INPUT.
** MODULE USER_COMMAND_0100.
END-OF-SELECTION.
*& Module STATUS_0100 OUTPUT
* text
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS_0100'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
* text
MODULE user_command_0100 INPUT.
TRANSLATE gd_okcode TO UPPER CASE.
CASE gd_okcode.
WHEN 'BACK' OR
'EXIT' OR
'CANC'.
SET SCREEN 0. LEAVE SCREEN.
WHEN 'REFRESH'.
WHEN OTHERS.
ENDCASE.
CLEAR: gd_okcode.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form init_controls
* text
* --> p1 text
* <-- p2 text
FORM init_controls .
* Create docking container
CREATE OBJECT go_docking
EXPORTING
parent = cl_gui_container=>screen0
ratio = 90
EXCEPTIONS
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* create tree control
CREATE OBJECT go_tree
EXPORTING
parent = go_docking
node_selection_mode = cl_gui_column_tree=>node_sel_mode_multiple
item_selection = 'X' " required for double-click event on item
no_html_header = ''
no_toolbar = ''
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7.
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'ERROR'. "#EC NOTEXT
ENDIF.
* create Hierarchy-header
DATA ls_hierarchy_header TYPE treev_hhdr.
PERFORM build_hierarchy_header CHANGING ls_hierarchy_header.
PERFORM build_fieldcatalog.
PERFORM set_layout_and_variant.
* create emty tree-control
CALL METHOD go_tree->set_table_for_first_display
EXPORTING
** i_structure_name = 'KNVV'
is_variant = gs_variant
i_save = 'A'
* i_default = 'X'
is_hierarchy_header = ls_hierarchy_header
* is_exception_field =
* it_special_groups =
* it_list_commentary =
* i_logo =
* i_background_id =
* it_toolbar_excluding =
* it_except_qinfo =
CHANGING
it_outtab = gt_outtab
* it_filter =
it_fieldcatalog = gt_fcat.
* create hierarchy
PERFORM create_hierarchy.
* register events
PERFORM register_events.
* adjust column_width
CALL METHOD go_tree->column_optimize.
ENDFORM. " init_controls
*& Form build_hierarchy_header
* build hierarchy-header-information
* -->P_L_HIERARCHY_HEADER strucxture for hierarchy-header
FORM build_hierarchy_header CHANGING
p_hierarchy_header TYPE treev_hhdr.
p_hierarchy_header-heading = 'Hierarchy Header'. "#EC NOTEXT
p_hierarchy_header-tooltip =
'This is the Hierarchy Header !'. "#EC NOTEXT
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
ENDFORM. " build_hierarchy_header
*& Form BUILD_FIELDCATALOG
* text
* --> p1 text
* <-- p2 text
FORM build_fieldcatalog .
REFRESH: gt_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
i_structure_name = 'KNVV'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = gt_fcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
DELETE gt_fcat FROM 8.
ENDFORM. " BUILD_FIELDCATALOG
*& Form SET_LAYOUT_AND_VARIANT
* text
* --> p1 text
* <-- p2 text
FORM set_layout_and_variant .
CLEAR: gs_layout,
gs_variant.
gs_variant-report = syst-repid.
gs_variant-handle = 'TREE'.
ENDFORM. " SET_LAYOUT_AND_VARIANT
*& Form create_hierarchy
* text
* --> p1 text
* <-- p2 text
FORM create_hierarchy .
DATA: ls_knvv TYPE sflight,
ls_outtab TYPE ty_s_outtab,
lt_outtab TYPE ty_t_outtab.
* get data
SELECT * FROM knvv INTO CORRESPONDING FIELDS OF TABLE lt_outtab
UP TO 200 ROWS . "#EC CI_NOWHERE
SORT lt_outtab BY kunnr vkorg.
* add data to tree
DATA: ld_kunnr_key TYPE lvc_nkey,
ld_vkorg_key TYPE lvc_nkey,
ld_last_key TYPE lvc_nkey.
LOOP AT lt_outtab INTO ls_outtab.
ON CHANGE OF ls_outtab-kunnr.
PERFORM add_customer_line USING ls_outtab-data
CHANGING ld_kunnr_key.
ENDON.
ON CHANGE OF ls_outtab-vkorg.
PERFORM add_salesorg_line USING ls_outtab-data
ld_kunnr_key
CHANGING ld_vkorg_key.
ENDON.
PERFORM add_complete_line USING ls_outtab-data
ld_vkorg_key
CHANGING ld_last_key.
ENDLOOP.
* calculate totals
CALL METHOD go_tree->update_calculations.
* this method must be called to send the data to the frontend
CALL METHOD go_tree->frontend_update.
ENDFORM. " create_hierarchy
*& Form add_customer_line
* add hierarchy-level 1 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
FORM add_customer_line USING us_data TYPE ty_s_outtab-data
ud_relat_key TYPE lvc_nkey
CHANGING cd_node_key TYPE lvc_nkey.
DATA: l_node_text TYPE lvc_value,
ls_data TYPE ty_s_outtab-data.
* set item-layout
DATA: lt_item_layout TYPE lvc_t_layi,
ls_item_layout TYPE lvc_s_layi.
ls_item_layout-t_image = '@A0@'. " icon_customer.
ls_item_layout-fieldname = go_tree->c_hierarchy_column_name.
ls_item_layout-style =
cl_gui_column_tree=>style_intensifd_critical.
APPEND ls_item_layout TO lt_item_layout.
* add node
l_node_text = us_data-kunnr.
DATA: ls_node TYPE lvc_s_layn.
ls_node-n_image = space.
ls_node-exp_image = space.
CALL METHOD go_tree->add_node
EXPORTING
i_relat_node_key = ud_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_data
is_node_layout = ls_node
it_item_layout = lt_item_layout
IMPORTING
e_new_node_key = cd_node_key.
ENDFORM. " add_customer_line
*& Form add_salesorg_line
* add hierarchy-level 1 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
FORM add_salesorg_line USING us_data TYPE ty_s_outtab-data
ud_relat_key TYPE lvc_nkey
CHANGING cd_node_key TYPE lvc_nkey.
DATA: l_node_text TYPE lvc_value,
ls_data TYPE ty_s_outtab-data.
* set item-layout
DATA: lt_item_layout TYPE lvc_t_layi,
ls_item_layout TYPE lvc_s_layi.
ls_item_layout-t_image = '@DS@'. " ICON_PARTNER_SALES_ACTIVITY
ls_item_layout-fieldname = go_tree->c_hierarchy_column_name.
ls_item_layout-style =
cl_gui_column_tree=>style_intensifd_critical.
APPEND ls_item_layout TO lt_item_layout.
* add node
l_node_text = us_data-vkorg.
DATA: ls_node TYPE lvc_s_layn.
ls_node-n_image = space.
ls_node-exp_image = space.
CALL METHOD go_tree->add_node
EXPORTING
i_relat_node_key = ud_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_data
is_node_layout = ls_node
it_item_layout = lt_item_layout
IMPORTING
e_new_node_key = cd_node_key.
ENDFORM. " add_salesorg_line
*& Form add_cmplete_line
* add hierarchy-level 3 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
FORM add_complete_line USING us_data TYPE ty_s_outtab-data
ud_relat_key TYPE lvc_nkey
CHANGING cd_node_key TYPE lvc_nkey.
DATA: l_node_text TYPE lvc_value.
* set item-layout
DATA: lt_item_layout TYPE lvc_t_layi,
ls_item_layout TYPE lvc_s_layi.
ls_item_layout-fieldname = go_tree->c_hierarchy_column_name.
ls_item_layout-class = cl_gui_column_tree=>item_class_checkbox.
** ls_item_layout-editable = 'X'.
APPEND ls_item_layout TO lt_item_layout.
** CLEAR ls_item_layout.
** ls_item_layout-fieldname = 'PLANETYPE'.
** ls_item_layout-alignment = cl_gui_column_tree=>align_right.
** APPEND ls_item_layout TO lt_item_layout.
l_node_text = us_data-vtweg.
DATA: ls_node TYPE lvc_s_layn.
ls_node-n_image = space.
ls_node-exp_image = space.
CALL METHOD go_tree->add_node
EXPORTING
i_relat_node_key = ud_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = us_data
i_node_text = l_node_text
is_node_layout = ls_node
it_item_layout = lt_item_layout
IMPORTING
e_new_node_key = cd_node_key.
ENDFORM. " add_complete_line
*& Form register_events
* text
* --> p1 text
* <-- p2 text
FORM register_events.
* define the events which will be passed to the backend
DATA: lt_events TYPE cntl_simple_events,
l_event TYPE cntl_simple_event.
* define the events which will be passed to the backend
l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
APPEND l_event TO lt_events.
** l_event-eventid = cl_gui_column_tree=>eventid_checkbox_change.
** APPEND l_event TO lt_events.
** l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
** APPEND l_event TO lt_events.
** l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
** APPEND l_event TO lt_events.
** l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
** APPEND l_event TO lt_events.
** l_event-eventid = cl_gui_column_tree=>eventid_header_click.
** APPEND l_event TO lt_events.
** l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
** APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_node_double_click.
APPEND l_event TO lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_double_click.
APPEND l_event TO lt_events.
CALL METHOD go_tree->set_registered_events
EXPORTING
events = lt_events
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
IF sy-subrc <> 0.
MESSAGE x208(00) WITH 'ERROR'. "#EC NOTEXT
ENDIF.
* set Handler
set handler:
lcl_eventhandler=>handle_node_double_click for go_tree,
lcl_eventhandler=>handle_item_double_click for go_tree.
** DATA: l_event_receiver TYPE REF TO lcl_tree_event_receiver.
** CREATE OBJECT l_event_receiver.
** SET HANDLER l_event_receiver->handle_node_ctmenu_request
** FOR tree1.
** SET HANDLER l_event_receiver->handle_node_ctmenu_selected
** FOR tree1.
** SET HANDLER l_event_receiver->handle_item_ctmenu_request
** FOR tree1.
** SET HANDLER l_event_receiver->handle_item_ctmenu_selected
** FOR tree1.
** SET HANDLER l_event_receiver->handle_checkbox_change FOR tree1.
ENDFORM. " register_events
Regards
Uwe -
Tree Control Double Click Functionality
Hi All,
I'm trying to get a tree control to operate a case structure, and I cannot seem to get the Double Click invoke node to output my tags from the tree. Anyone know what I may be doing wrong?!
Thanks,
Derek
Solved!
Go to Solution.
Attachments:
TreeControl.vi 9 KBIdentical functionality as an event loop shown for an additional example
Jeff
Attachments:
TreeControl[1] rev 1.vi 9 KB -
Disable expand/collapse JTree through double click
Hi guys,
In my Tree when you double click a node, a input dialog will pop up. And the node will be expanded or collapsed accordingly. How can I disable expand or collapse the node through double click. So that every time only the input dialog will popup and the tree stays.
Thanks a lot!The JTree class have a method setToggleClickCount(int clickCount) which sets the number of mouse clicks before a node will expand or close. The default is two. You can try to set 0 or for examle 10 and double click will only dialog popup.
P.S.For the future RTFM and view jdk source code -
Double Click event not firing in Fire Fox
Hi,
I am using the JDev version :11.1.1.5.0..
I have an af:tree component. On double clicking the nodes , I have to perform some action in my managed bean.
I have provided a client listener and server listener.
But the Javascript is getting fired for all the nodes in IE and crome but in FireFox it is getting fired for only few nodes.
Please find my source
*<af:resource type="javascript">*
*function treeDblClick(event) {*
var source = event.getSource();
AdfCustomEvent.queue( source, "doubleClickOnTree", {}, false);
*</af:resource>*
*<af:tree value="#{bindings.GpiServiceVO4.treeModel}"*
var="node"
*selectionListener="#{backingBeanScope.JobDetails.gpiCodeTreeSelection}"*
*rowSelection="multiple" id="t3" autoHeightRows="0"*
*binding="#{backingBeanScope.JobDetails.gpiServicesTreeBndg}"*
*partialTriggers="::s10:cb12" fetchSize="-1">*
*<f:facet name="nodeStamp">*
*<af:outputText value="#{node}" id="ot14">*
*<af:clientListener method="treeDblClick" type="dblClick"/>*
*<af:serverListener type="doubleClickOnTree"*
*method="#{pageFlowScope.welljobs_bean.selectCurrentRowAdSearchTableOnDblClk}"/>*
*</af:outputText>*
*</f:facet>*
*</af:tree>*
Regards,
Srinidhi
Edited by: 919343 on Feb 26, 2013 3:45 AMtry moving the below code just above node stamp...
<af:clientListener method="treeDblClick" type="dblClick"/>
<af:serverListener type="doubleClickOnTree"
method="#{pageFlowScope.welljobs_bean.selectCurrentRowAdSearchTableOnDblClk}"/> -
In ADF Tree how to Navigate to Pages When Clicking Tree Node (TP4) ?
hi
I know how to use af:tree as master-detail tree
by draging detail views from Data Controls and dropping in JSF
Page but I would like to know how to call other pages when double-clicking child nodes in the tree. in JDeveloper 11 TP4 & Windows XP
Anybody can help?
best regards
Forakora;Hi,
if it has to be a double click then this can be done with a clientListener that calls a JavaScript function and that you set to the doubleClickEvent type e.g.
handleTreeSelection(event){
// do here what you need to do
queue event to a serverListener that references a managed bean. Use managed bean to
navigate to another page
Out of curiousity, what is the usecase ?
Frank -
How to go to different screen by Double Clicking a Tree Node
Hi guys,
I have a tool where i have a top panel and a bottompanel. On the top panel, i add Tab buttons so that if anyone is clicked, it will repaint the bottom panel with corresponding Tab screen(New screen will come with the top panel remaining same). There are Actions, Conditions,Trees tabs on the main panel. There is also a Home Tab on the main panel which when clicked brings up a tree structure on the left hand side of the bottom panel which has some parent and child nodes depending on whether they are files or directories. There are folders(parent nodes) with names Trees & Conditions also related to the Tabs on the main panel under which i have some file names. I am including the method which creates the nodes. The problem is that when i double click any file(not a directory), it should take me to the screen which is actually populated when i select the Trees/Conditions tab and select the corresponding file name from the drop down provided in that screen and click a view button. So, it is something like adding an actionListener or SelectionListener. But, i am unable to do it. Can anyone suggest me how to do it?
The class involving the following looks something like this.
public class MainHomePanel extends AbstractDtPanel {And the AbstractDtPanel looks something like this.
public abstract class AbstractDtPanel extends JPanelFinally, the method to create the Nodes is given below
private void createNodes(DefaultMutableTreeNode top) {
DefaultMutableTreeNode parentFolder = null;
DefaultMutableTreeNode innerFolder = null;
DefaultMutableTreeNode fileNames = null;
ArrayList folderName = new ArrayList();
ArrayList innerFolderNames = new ArrayList();
ArrayList fileNameArray = new ArrayList();
CommonUtil cu = new CommonUtil();
folderName =cu.getFolderNames(sessionData.getSysPath());
if(folderName != null && folderName.size() > 0) {
for(int i =0; i<folderName.size(); i++) {
parentFolder = new DefaultMutableTreeNode((String)folderName.get(i));
top.add(parentFolder);
innerFolderNames = new ArrayList();
innerFolderNames = cu.getInnerFolderNames(sessionData.getSysPath(), (String)folderName.get(i));
for(int k=0; k<innerFolderNames.size();k++) {
innerFolder = new DefaultMutableTreeNode((String)innerFolderNames.get(k));
parentFolder.add(innerFolder);
fileNameArray = new ArrayList();
fileNameArray = cu.getFileNames(sessionData.getSysPath(), (String)folderName.get(i),(String)innerFolderNames.get(k));
for(int j=0; j<fileNameArray.size(); j++) {
fileNames = new DefaultMutableTreeNode(fileNameArray.get(j));
innerFolder.add(fileNames);
}Sorry, a small mistake. The "createNodes" method is in the "MainHomePanel" class.
-
Double click on break and the end container appears to be the parent div, but if you select just break with mouse the end container is a text node. If you continue to drag your mouse past the end of break you also get the parent div. Sample html:<br />
<br />
<pre><nowiki><!doctype html>
<html>
<body>
<div id="surroundingDiv1">
Break<br/>
</div>
<p>
<a href="#" onclick="showSelectionInfo()">Show Selection Info</a>
</p>
<label for="output"></label><textarea id="output" rows="20" cols="50"></textarea>
<script>
function showSelectionInfo() {
var range = null;
var sel = window.getSelection();
if (sel.rangeCount > 0 && sel.getRangeAt(0).toString() != "") {
range = sel.getRangeAt(0);
if (range != null) {
document.getElementById("output").innerHTML =
"Text: " + range.toString() +
"\n\nendContainer - " +
"\n\tid: " + range.endContainer.id +
"\n\tnodeName: " + range.endContainer.nodeName +
"\n\tnodeValue: " + range.endContainer.nodeValue +
"\n\tnodeType: " + range.endContainer.nodeType +
"\n\nstartContainer - " +
"\n\tid: " + range.startContainer.id +
"\n\tnodeName: " + range.startContainer.nodeName +
"\n\tnodeValue: " + range.startContainer.nodeValue +
"\n\tnodeType: " + range.startContainer.nodeType;
</script>
</body>
</html></nowiki></pre>In general theory, one now has the Edit button for their posts, until someone/anyone Replies to it. I've had Edit available for weeks, as opposed to the old forum's ~ 30 mins.
That, however, is in theory. I've posted, and immediately seen something that needed editing, only to find NO Replies, yet the Edit button is no longer available, only seconds later. Still, in that same thread, I'd have the Edit button from older posts, to which there had also been no Replies even after several days/weeks. Found one that had to be over a month old, and Edit was still there.
Do not know the why/how of this behavior. At first, I thought that maybe there WAS a Reply, that "ate" my Edit button, but had not Refreshed on my screen. Refresh still showed no Replies, just no Edit either. In those cases, I just Reply and mention the [Edit].
Also, it seems that the buttons get very scrambled at times, and Refresh does not always clear that up. I end up clicking where I "think" the right button should be and hope for the best. Seems that when the buttons do bunch up they can appear at random around the page, often three atop one another, and maybe one way the heck out in left-field.
While I'm on a role, it would be nice to be able to switch between Flattened and Threaded Views on the fly. Each has a use, and having to go to Options and then come back down to the thread is a very slow process. Jive is probably incapable of this, but I can dream.
Hunt -
Node double click ------Any one help....~~~~
Hi all,
I need to process such a scenario:
1,when I double click open project, which is a link in CL_GUI_SIMPLE_TREE.
then this will trigger the node double click operation, which will call the node double click handling method.
2,And when I do a another operation such as create project, after the creation, how can I trigger the node double click event in order to call the node double click handling method?
the double click handling method can not be called directly.(I just try to call the method, but found that the result is not what I want)
could I just add an event by code?
Thank you all very much!
Best Regards,
ZhengyongHi Clemens,
thank you!
I just do call the method.
but this can not work, maybe there are some other problems,
in the double click handling method, I do this:
"first some code to update the LT_WS.
call method LIST_VIEWER->SET_TABLE_FOR_FIRST_DISPLAY
exporting I_STRUCTURE_NAME = 'bct_s_ws'
IS_LAYOUT = LIST_LAYOUT
changing IT_OUTTAB = LT_WS
it_fieldcatalog = me->lt_fcat.
the LT_WS is a content table, even the content is new, but the list viewer didn't reflect this change.
the LIST_VIEWER refer to CL_GUI_ALV_GRID.
maybe this is the problem of CL_GUI_ALV_GRID.
and I even use the refresh method, but it does not work. LIST_VIEWER->refresh_table_display( ).
Thanks you for you kind help
best Regards,
Zhengyong
Edited by: Zhengyong Zhang on Oct 30, 2009 9:40 AM -
Is there a way to disable the double-click-to-expand-
node feature? This seems to be a default behaviour,
wish to remove it. Thanks in advance.I use forms6i patch 12. And that is what I have:
Block 'TREE'
Triggers
WHEN-MOUSE-DOUBLECLICK
begin
:global.MDC := 1;
Message ('1', Acknowledge);
Pause;
end;
Tree_Item
WHEN-TREE-NODE-EXPANDED
begin
Message ('2', Acknowledge);
Pause;
if :global.MDC = 1 then
:global.MDC := 0;
Return;
else
FillLevel; --(e.g. fill the lower nodes and
-- expand the parent node)
end if;
end;
And that is what I get at runtime after double clicking on a collapsed node:
1 (acknowledge)
2 (acknowledge)
So WHEN-MOUSE-DOUBLECLICK fires prior to WHEN-TREE-NODE-EXPANDED in my environment.
Sergey. -
How to trigger event when double click on a tree node
I have this code which creates new tab in a remote Java Class.
treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem<String>>()
@Override
public void changed(ObservableValue<? extends TreeItem<String>> observable, TreeItem<String> oldValue, TreeItem<String> newValue)
System.out.println("Selected Text : " + newValue.getValue());
// Create New Tab
Tab tabdata = new Tab();
Label tabALabel = new Label("Test");
tabdata.setGraphic(tabALabel);
DataStage.addNewTab(tabdata);
Can you tell me how I can modify the code to open new tab when I double click on a tree node. In my code the tab is opened when I click once. What event handler do I need?import java.util.Arrays;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.control.TreeCell;
import javafx.scene.control.TreeView;
import javafx.scene.control.TreeItem;
import javafx.scene.control.SelectionMode;
import javafx.util.Callback;
public class TreeTest extends Application {
public static void main(String[] args) {
launch(args);
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("TreeView Test");
primaryStage.setScene(createScene());
primaryStage.show();
private Scene createScene() {
final StackPane stackPane = new StackPane();
final TreeView<String> treeView = new TreeView<String>();
treeView.setRoot(createModel());
treeView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
treeView.setCellFactory(new Callback<TreeView<String>, TreeCell<String>>() {
@Override
public TreeCell<String> call(TreeView<String> treeView) {
return new ClickableTreeCell();
stackPane.getChildren().add(treeView);
return new Scene(stackPane);
private TreeItem<String> createModel() {
TreeItem<String> root = new TreeItem<String>("RootNode");
TreeItem<String> packageA = new TreeItem<String>("package A");
packageA.getChildren().addAll(
Arrays.asList(new TreeItem<String>("A1"), new TreeItem<String>("A2"), new TreeItem<String>("A3"))
TreeItem<String> packageB = new TreeItem<String>("package B");
packageB.getChildren().addAll(
Arrays.asList(new TreeItem<String>("B1"), new TreeItem<String>("B2"), new TreeItem<String>("B3"))
root.getChildren().addAll(Arrays.asList(packageA, packageB));
return root;
private class ClickableTreeCell extends TreeCell<String> {
ClickableTreeCell() {
setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
// Handle double-clicks on non-empty cells:
if (event.getClickCount()==2 && ! isEmpty()) {
System.out.println("Mouse double-clicked on: " + getItem());
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setText(null);
} else {
setText(item); -
Double click on the node,ALV tree, subscreen
Hi,
I have a small requirement in ALV Tree
left side i get a tree and when i double click on one of it , i'm trying to display the subscreen. even though i am setting the paramaters to the screen but i'm unable to get those values in the subscreen.
example
Name Description subscreen 0101
xyz xyz desc (double click on this) name = XYZ
ABC abs desc descrip = xyz desc
This is what the requirement is:
Please help me out with the solution.
BhavanaHi Bhavana,
Register your double click event in the ALV Tree program. Then call the respective subscreen using sy-ucomm value.
IF NOT r_ucomm IS INITIAL.
CASE r_ucomm.
WHEN '&F03'.
SET SCREEN 100.
LEAVE SCREEN.
endif.
Refer the below code for setting the registering the event.
CALL METHOD tree->get_registered_events
IMPORTING
events = l_events_s.
l_event-eventid = cl_gui_column_tree=>eventid_item_double_click.
APPEND l_event TO l_events_s.
CALL METHOD tree->set_registered_events
EXPORTING
events = l_events_s
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
CREATE OBJECT l_events_receiver.
SET HANDLER l_events_receiver->handle_item_click FOR tree.
CLASS lcl_events_receiver DEFINITION. "#EC *
PUBLIC SECTION.
METHODS:
handle_item_click FOR EVENT item_double_click OF cl_gui_alv_tree
IMPORTING node_key fieldname.
ENDCLASS. "lcl_handle_events DEFINITION
CLASS lcl_events_receiver IMPLEMENTATION.
METHOD handle_item_click.
PERFORM employee_data USING node_key fieldname.
CALL SCREEN 300.
ENDMETHOD. "HANDLE_ITEM_DOUBLE_CLICK
ENDCLASS. "lcl_events_receiver IMPLEMENTATION
Thanks.
Ganesh R K
Edited by: Ganesh.rk83 on Jun 23, 2011 11:21 AM -
Event double -click doens't work
Dear All,
Pls help event double -click doens't work.
What can the reason be for it ?
Regards
Ilhan
data tree1 type ref to cl_gui_alv_tree.
data mr_toolbar type ref to cl_gui_toolbar.
include <icon>.
data: gt_sflight type ZQMCOMP occurs 0, "Output-Table
gt_fieldcatalog type lvc_t_fcat, "Fieldcatalog
ok_code like sy-ucomm. "OK-Code
* TREE_EVENT_RECEIVER *
class tree_event_receiver definition.
public section.
methods on_doubleclick
for event link_click of cl_gui_alv_tree
importing node_key fieldname.
ENDCLASS. "lcl_handler DEFINITION
* CLASS tree_event_receiver IMPLEMENTATION
class tree_event_receiver implementation.
METHOD on_doubleclick.
MESSAGE I000(38) WITH fieldname.
ENDMETHOD. "on_doubleclick
endclass.
start-of-selection.
end-of-selection.
call screen 100.
*& Module PBO OUTPUT
* process before output
module pbo output.
set pf-status 'MAIN100'.
if tree1 is initial.
perform init_tree.
endif.
call method cl_gui_cfw=>flush.
endmodule. " PBO OUTPUT
*& Module PAI INPUT
* process after input
module pai input.
case ok_code.
when 'EXIT' or 'BACK' or 'CANC'.
perform exit_program.
when others.
call method cl_gui_cfw=>dispatch.
endcase.
clear ok_code.
call method cl_gui_cfw=>flush.
endmodule. " PAI INPUT
*& Form build_fieldcatalog
* build fieldcatalog for structure sflight
form build_fieldcatalog.
data: ls_fieldcatalog type lvc_s_fcat.
ls_fieldcatalog-fieldname = 'DUNS'.
ls_fieldcatalog-col_pos = 7.
ls_fieldcatalog-coltext = 'Duns'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'MONAT'.
ls_fieldcatalog-col_pos = 8.
ls_fieldcatalog-coltext = 'Monat'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'ZE'.
ls_fieldcatalog-col_pos = 13.
ls_fieldcatalog-coltext = 'Ze'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'MATKOSTEN'.
ls_fieldcatalog-col_pos = 14.
ls_fieldcatalog-coltext = 'Mat.Kosten'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'ANTEIL'.
ls_fieldcatalog-col_pos = 15.
ls_fieldcatalog-coltext = 'Anteil'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'GESMAT'.
ls_fieldcatalog-col_pos = 16.
ls_fieldcatalog-coltext = 'Ges.Mat'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'GESLOH'.
ls_fieldcatalog-col_pos = 17.
ls_fieldcatalog-coltext = 'Ges.Lohn'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
clear ls_fieldcatalog.
ls_fieldcatalog-fieldname = 'GESAMT'.
ls_fieldcatalog-col_pos = 19.
ls_fieldcatalog-coltext = 'Gesamt'.
APPEND ls_fieldcatalog TO gt_fieldcatalog.
call function 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZQMCOMP'
CHANGING
ct_fieldcat = gt_fieldcatalog.
endform. " build_fieldcatalog
*& Form build_hierarchy_header
* build hierarchy-header-information
* -->P_L_HIERARCHY_HEADER strucxture for hierarchy-header
form build_hierarchy_header changing
p_hierarchy_header type treev_hhdr.
p_hierarchy_header-heading = 'Hierarchy-Kopf'. "#EC NOTEXT
p_hierarchy_header-tooltip =
'Hierarchy-Kopf !'.
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
endform. " build_hierarchy_header
*& Form exit_program
* free object and leave program
form exit_program.
call method tree1->free.
leave program.
endform. " exit_program
*& Form build_header
* build table for html_header
* --> p1 text
* <-- p2 text
form build_comment using
pt_list_commentary type slis_t_listheader
p_logo type sdydo_value.
data: ls_line type slis_listheader.
clear ls_line.
ls_line-typ = 'H'.
ls_line-info = 'LIBOLO '.
append ls_line to pt_list_commentary.
clear ls_line.
clear ls_line.
ls_line-typ = 'A'.
ls_line-info = 'Liste'.
append ls_line to pt_list_commentary.
* p_logo = 'ENJOYSAP_LOGO'.
endform.
* FORM create_hierarchy *
FORM create_hierarchy.
data: ls_sflight type ZQMCOMP,
lt_sflight type ZQMCOMP occurs 0.
* get data
select * from ZQMCOMP into table lt_sflight.
* sort lt_sflight by carrid connid fldate.
* add data to tree
data: l_carrid_key type lvc_nkey,
l_connid_key type lvc_nkey,
l_last_key type lvc_nkey.
loop at lt_sflight into ls_sflight.
on change of ls_sflight-KUNDE.
perform add_carrid_line using ls_sflight
changing l_carrid_key.
endon.
on change of ls_sflight-MONAT.
perform add_connid_line using ls_sflight
l_carrid_key
changing l_connid_key.
endon.
perform add_complete_line using ls_sflight
l_connid_key
changing l_last_key.
endloop.
* calculate totals
call method tree1->update_calculations.
* this method must be called to send the data to the frontend
call method tree1->frontend_update.
endform. " create_hierarchy
*& Form add_carrid_line
* add hierarchy-level 1 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
form add_carrid_line using ps_sflight type ZQMCOMP
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value,
ls_sflight type ZQMCOMP.
* set item-layout
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-t_image = '@3P@'.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
ls_item_layout-style =
cl_gui_column_tree=>style_intensifd_critical.
append ls_item_layout to lt_item_layout.
* add node
l_node_text = ps_sflight-KUNDE.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
endform. " add_carrid_line
*& Form add_connid_line
* add hierarchy-level 2 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
form add_connid_line using ps_sflight type ZQMCOMP
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value,
ls_sflight type sflight.
* set item-layout
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-t_image = '@3Y@'.
ls_item_layout-style =
cl_gui_column_tree=>style_intensified.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
append ls_item_layout to lt_item_layout.
* add node
l_node_text = ps_sflight-MONAT.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_sflight
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
endform. " add_connid_line
*& Form add_cmplete_line
* add hierarchy-level 3 to tree
* -->P_LS_SFLIGHT sflight
* -->P_RELEATKEY relatkey
* <-->p_node_key new node-key
form add_complete_line using ps_sflight type ZQMCOMP
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value.
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
append ls_item_layout to lt_item_layout.
l_node_text = ps_sflight-QMART.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
is_outtab_line = ps_sflight
i_node_text = l_node_text
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key.
endform. " add_complete_line
*& Form register_events
* text
* --> p1 text
* <-- p2 text
form register_events.
data: lt_events type cntl_simple_events,
l_event type cntl_simple_event.
l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_click.
append L_EVENT to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
append L_EVENT to lt_events.
* set Handler
data: l_event_receiver type ref to tree_event_receiver.
create object l_event_receiver.
set handler l_event_receiver->on_doubleclick for tree1.
call method tree1->set_registered_events
exporting
events = lt_events
exceptions
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
endform. " register_events
*& Form change_toolbar
* text
* --> p1 text
* <-- p2 text
form change_toolbar.
* get toolbar control
call method tree1->get_toolbar_object
importing
er_toolbar = mr_toolbar.
check not mr_toolbar is initial.
* add seperator to toolbar
call method mr_toolbar->add_button
exporting
fcode = ''
icon = ''
butn_type = cntb_btype_sep
text = ''
quickinfo = 'This is a Seperator'. "#EC NOTEXT
* add Standard Button to toolbar (for Delete Subtree)
call method mr_toolbar->add_button
exporting
fcode = 'DELETE'
icon = '@18@'
butn_type = cntb_btype_button
text = ''
quickinfo = 'Delete subtree'. "#EC NOTEXT
* add Dropdown Button to toolbar (for Insert Line)
call method mr_toolbar->add_button
exporting
fcode = 'INSERT_LC'
icon = '@17@'
butn_type = cntb_btype_dropdown
text = ''
quickinfo = 'Insert Line'. "#EC NOTEXT
endform. " change_toolbar
*& Form init_tree
* text
* --> p1 text
* <-- p2 text
FORM init_tree.
* create fieldcatalog for structure sflight
perform build_fieldcatalog.
* create container for alv-tree
data: l_tree_container_name(30) type c,
l_custom_container type ref to cl_gui_custom_container.
l_tree_container_name = 'TREE1'.
if sy-batch is initial.
create object l_custom_container
exporting
container_name = l_tree_container_name
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
endif.
* create tree control
create object tree1
exporting
parent = l_custom_container
node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
item_selection = 'X'
no_html_header = ''
no_toolbar = ''
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
* create Hierarchy-header
data l_hierarchy_header type treev_hhdr.
perform build_hierarchy_header changing l_hierarchy_header.
* create info-table for html-header
data: lt_list_commentary type slis_t_listheader,
l_logo type sdydo_value.
perform build_comment using
lt_list_commentary
l_logo.
* repid for saving variants
data: ls_variant type disvariant.
ls_variant-report = sy-repid.
* create emty tree-control
call method tree1->set_table_for_first_display
exporting
I_STRUCTURE_NAME = 'ZQMCOMP'
is_hierarchy_header = l_hierarchy_header
it_list_commentary = lt_list_commentary
* i_logo = l_logo
i_background_id = 'ALV_BACKGROUND'
i_save = 'A'
is_variant = ls_variant
changing
it_outtab = gt_sflight "table must be emty !!
it_fieldcatalog = gt_fieldcatalog.
* create hierarchy
perform create_hierarchy.
* add own functioncodes to the toolbar
perform change_toolbar.
* register events
perform register_events.
* adjust column_width
call method tree1->COLUMN_OPTIMIZE.
ENDFORM. " init_treeHi,
to do so, you need to declare those fields in the form CREATE_HIERARCHY.
For example, to add FLDATE node, you should do:
ON CHANGE OF LS_SFLIGHT-CARRID.
PERFORM ADD_CARRID_LINE USING LS_SFLIGHT
CHANGING L_CARRID_KEY.
ENDON.
ON CHANGE OF LS_SFLIGHT-CONNID.
PERFORM ADD_CONNID_LINE USING LS_SFLIGHT
L_CARRID_KEY
CHANGING L_CONNID_KEY.
ENDON.
ON CHANGE OF LS_SFLIGHT-FLDATE.
PERFORM ADD_FLDATE_LINE USING LS_SFLIGHT
L_CONNID_KEY
CHANGING L_FLDATE_KEY.
ENDON.
ON CHANGE OF LS_SFLIGHT-PRICE.
PERFORM ADD_PRICE_LINE USING LS_SFLIGHT
L_FLDATE_KEY
CHANGING L_PRICE_KEY.
ENDON.
and then create the new FORMS PERFORM ADD_PRICE_LINE and
PERFORM ADD_FLDATE_LINE by copy of the existent
PERFORM ADD_CONNID_LINE and change the L_NODE_TEXT in the form.
I suposed you are new to ALV's, so i have a sugestion for you.
Instead of CL_GUI_ALV_TREE try to use some examples of CL_GUI_ALV_TREE_SIMPLE. It's much more simple to understand and to work with. For example Report BCALV_TREE_SIMPLE_DEMO.
In this case, to add more nodes to the the you just need to add 3 lines of code in
perform build_sort_table.
Regards,
Maybe you are looking for
-
F110 payment run completed but not generated all check for the payments
Do any one have an idea or the potential answer on my query I've run F110 and generated one Payment all 45 open items for one vendor Now after the print done only the first 20 items got into the check register, and left over the remaining 25 items So
-
Hi, I am building a Contact Center, where users will report their complaints using mail and social media (Facebook, Twitter etc.). If many users are reporting similar problems (like a particular ATM not working/not having cash), I want those problems
-
Macbook Pro Anti Glare Film 17"
Afternoon Everyone, Im looking for a Anti Glare Film like the 15" iVisor but for the 17" MBP, Does anyone know if they exist? Carl
-
Can't download latest version of HP assistant in chrome
HP Pavillion g6-2009AX Product No. B6U15PA#ABG I have uninstalled HP assistant because it wasn't working (saying "an error has occurred") Now when I try to download the latest version, a new tab opens in Google Chrome with the correct address but
-
MacBookPro Freezes after Installing Latest Security Update 2006-003
After downloading and installing the latest security update 2006-003, MacBook Pro freezes when trying to do anything. Seems to do ok in safe mode but did freeze when trying to verify disk with Disk Utility. (did not try to repair as I am out of town