<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ABAP Object Event in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505297#M233588</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Go thru this basic simple program with documentation which demonstrates how to handle events, for nodes in a tree using abap objects&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  YLIST_TREE MESSAGE-ID ZER_INFO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVT_HDLR DEFINITION DEFERRED. " definition is given later&lt;/P&gt;&lt;P&gt;CLASS CL_GUI_CFW DEFINITION LOAD. " global class to be loaded&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:G_EVENT(50),    " to hold the event&lt;/P&gt;&lt;P&gt;     G_NODE_KEY TYPE TV_NODEKEY,  "holds the node key&lt;/P&gt;&lt;P&gt;     G_ITEM_NAME TYPE TV_ITMNAME,&lt;/P&gt;&lt;P&gt;     G_KEY TYPE TV_ITMNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:G_EVT_HDLR TYPE REF TO LCL_EVT_HDLR,&lt;/P&gt;&lt;P&gt;     G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,&lt;/P&gt;&lt;P&gt;     G_TREE TYPE REF TO CL_GUI_LIST_TREE,&lt;/P&gt;&lt;P&gt;     G_OK_CODE TYPE SY-UCOMM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:ITEM_TABLE_TYPE LIKE STANDARD TABLE OF MTREEITM&lt;/P&gt;&lt;P&gt;      WITH DEFAULT KEY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_evt_hdlr DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVT_HDLR DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;*---- methods for action handling for nodes&lt;/P&gt;&lt;P&gt;    NODE_DBL_CLK&lt;/P&gt;&lt;P&gt;     FOR EVENT NODE_DOUBLE_CLICK&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY,&lt;/P&gt;&lt;P&gt;    HANDLE_NODE_KEY_PRESS&lt;/P&gt;&lt;P&gt;     FOR EVENT NODE_KEYPRESS&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY KEY,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- methods for action handling for Items&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ITEM_DBL_CLK&lt;/P&gt;&lt;P&gt;     FOR EVENT ITEM_DOUBLE_CLICK&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY ITEM_NAME,&lt;/P&gt;&lt;P&gt;    HANDLE_ITEM_KEY_PRESS&lt;/P&gt;&lt;P&gt;     FOR EVENT ITEM_KEYPRESS&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY ITEM_NAME KEY,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- Common methods for action handling&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; HANDLE_RIGHT_CLICK&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FOR EVENT RIGHT_CLICK&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OF CL_GUI_LIST_TREE,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    HANDLE_EXPAND_NO_CHILDREN&lt;/P&gt;&lt;P&gt;     FOR EVENT EXPAND_NO_CHILDREN&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_evt_hdlr DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_evt_hdlr IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVT_HDLR IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD NODE_DBL_CLK.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  this method handles the node double click event of the tree control&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  and shows the key of the double clicked node in a dynpro field&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    G_EVENT = 'NODE_DOUBLE_CLICK'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;    G_ITEM_NAME = ' '.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "node_dbl_clk&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD ITEM_DBL_CLK.&lt;/P&gt;&lt;P&gt;    G_EVENT = 'ITEM_DOUBLE_CLICK'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;    G_ITEM_NAME = ITEM_NAME.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "ITEM_DBL_CLK&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_NODE_KEY_PRESS.&lt;/P&gt;&lt;P&gt;    G_EVENT = 'NODE_KEYPRESS'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;    G_ITEM_NAME = ' '.&lt;/P&gt;&lt;P&gt;    G_KEY = KEY.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "HANDLE_NODE_KEY_PRESS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_ITEM_KEY_PRESS.&lt;/P&gt;&lt;P&gt;    G_EVENT = 'ITEM_KEYPRESS'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;    G_ITEM_NAME = ITEM_NAME.&lt;/P&gt;&lt;P&gt;    G_KEY = KEY.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "HANDLE_ITEM_KEY_PRESS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; METHOD HANDLE_RIGHT_CLICK.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   G_EVENT = 'RIGHT_CLICK'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDMETHOD.                    "handle_right_click&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_EXPAND_NO_CHILDREN.&lt;/P&gt;&lt;P&gt;    G_EVENT = 'EXPAND_NO_CHILDREN'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_EXPAND_NO_CHILDREN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_evt_hdlr IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------   start-of-selection.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*data:  G_EVT_HDLR TYPE REF TO LCL_EVT_HDLR.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_EVT_HDLR. "create an object for the class lcl_evt_hdlr&lt;/P&gt;&lt;P&gt;  SET SCREEN 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MODULE pbo_100 OUTPUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE PBO_100 OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'BUT'.&lt;/P&gt;&lt;P&gt;  IF G_TREE IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  the tree control has not yet been created&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; create a tree control and insert nodes into it.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM CREATE_AND_INIT_TREE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "pbo_100 OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MODULE pai_100 INPUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE PAI_100 INPUT.&lt;/P&gt;&lt;P&gt;  DATA:RETURN_CODE TYPE I.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CL_GUI_CFW=&amp;gt;DISPATCH must be called if events are registered&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;that trigger PAI&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this method calls the event handler method of an event&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD CL_GUI_CFW=&amp;gt;DISPATCH&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      RETURN_CODE = RETURN_CODE.&lt;/P&gt;&lt;P&gt;  IF RETURN_CODE &amp;lt;&amp;gt; CL_GUI_CFW=&amp;gt;RC_NOEVENT.&lt;/P&gt;&lt;P&gt;    " a control event occured =&amp;gt; exit PAI&lt;/P&gt;&lt;P&gt;    CLEAR G_OK_CODE.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*at user-command.&lt;/P&gt;&lt;P&gt;g_ok_code = sy-ucomm.&lt;/P&gt;&lt;P&gt;  CASE G_OK_CODE.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'. " Finish program&lt;/P&gt;&lt;P&gt;      IF NOT G_CUSTOM_CONTAINER IS INITIAL.&lt;/P&gt;&lt;P&gt;        " destroy tree container (detroys contained tree control, too)&lt;/P&gt;&lt;P&gt;        CALL METHOD G_CUSTOM_CONTAINER-&amp;gt;FREE&lt;/P&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;P&gt;            CNTL_SYSTEM_ERROR = 1&lt;/P&gt;&lt;P&gt;            CNTL_ERROR        = 2.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE A000.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CLEAR G_CUSTOM_CONTAINER.&lt;/P&gt;&lt;P&gt;        CLEAR G_TREE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CAUTION: clear ok code!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR G_OK_CODE.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "pai_100 INPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  create_and_init_tree&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CREATE_AND_INIT_TREE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:NODE_TABLE TYPE TREEV_NTAB,&lt;/P&gt;&lt;P&gt;       ITEM_TABLE TYPE ITEM_TABLE_TYPE,&lt;/P&gt;&lt;P&gt;       EVENTS TYPE CNTL_SIMPLE_EVENTS,&lt;/P&gt;&lt;P&gt;       EVENT TYPE CNTL_SIMPLE_EVENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  create a container for the tree control.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE OBJECT G_CUSTOM_CONTAINER&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    the container is linked to the custom control with the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    name 'TREE_CONTAINER' on the dynpro&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     CONTAINER_NAME = 'TREE_CONTAINER'&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;      CNTL_ERROR = 1&lt;/P&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR = 2&lt;/P&gt;&lt;P&gt;      CREATE_ERROR = 3&lt;/P&gt;&lt;P&gt;      LIFETIME_ERROR = 4&lt;/P&gt;&lt;P&gt;      LIFETIME_DYNPRO_DYNPRO_LINK = 5.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A000.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  create a list tree control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE OBJECT G_TREE&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;    PARENT = G_CUSTOM_CONTAINER&lt;/P&gt;&lt;P&gt;    NODE_SELECTION_MODE = CL_GUI_LIST_TREE=&amp;gt;NODE_SEL_MODE_SINGLE&lt;/P&gt;&lt;P&gt;    ITEM_SELECTION = 'X'&lt;/P&gt;&lt;P&gt;    WITH_HEADERS = ' '&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;    CNTL_SYSTEM_ERROR           = 1&lt;/P&gt;&lt;P&gt;     CREATE_ERROR                = 2&lt;/P&gt;&lt;P&gt;     FAILED                      = 3&lt;/P&gt;&lt;P&gt;     ILLEGAL_NODE_SELECTION_MODE = 4&lt;/P&gt;&lt;P&gt;     LIFETIME_ERROR              = 5.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A000.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- KEY = enter&lt;/P&gt;&lt;P&gt;  CALL METHOD G_TREE-&amp;gt;ADD_KEY_STROKE&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      KEY               = CL_TREE_CONTROL_BASE=&amp;gt;KEY_ENTER&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FAILED            = 1&lt;/P&gt;&lt;P&gt;      ILLEGAL_KEY       = 2&lt;/P&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE W006 WITH 'ADD_KEY_STROKE'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   define the events which will be passed to the backend&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node double click&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_NODE_DOUBLE_CLICK.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_ITEM_DOUBLE_CLICK.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_NODE_KEYPRESS.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_ITEM_KEYPRESS.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EVENT-EVENTID = LCL_EVT_HDLR=&amp;gt;EVENT_RIGHT_CLICK.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_EXPAND_NO_CHILDREN.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------ register the events&lt;/P&gt;&lt;P&gt;  CALL METHOD G_TREE-&amp;gt;SET_REGISTERED_EVENTS&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      EVENTS                    = EVENTS&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      CNTL_ERROR                = 1&lt;/P&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR         = 2&lt;/P&gt;&lt;P&gt;      ILLEGAL_EVENT_COMBINATION = 3.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A000.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;assign event handlers in the application class to each desired events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;NODE_DBL_CLK FOR G_TREE.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;ITEM_DBL_CLK FOR G_TREE.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;HANDLE_NODE_KEY_PRESS FOR G_TREE.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;HANDLE_ITEM_KEY_PRESS FOR G_TREE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SET HANDLER G_EVT_HDLR-&amp;gt;HANDLE_RIGHT_CLICK FOR G_TREE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;HANDLE_EXPAND_NO_CHILDREN FOR G_TREE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add some nodes to the tree control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_NODE_AND_ITEM_TABLE USING NODE_TABLE ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD G_TREE-&amp;gt;ADD_NODES_AND_ITEMS&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      NODE_TABLE                     = NODE_TABLE&lt;/P&gt;&lt;P&gt;      ITEM_TABLE                     = ITEM_TABLE&lt;/P&gt;&lt;P&gt;      ITEM_TABLE_STRUCTURE_NAME      = 'mtreeitm'&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FAILED                         = 1&lt;/P&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR              = 3&lt;/P&gt;&lt;P&gt;      ERROR_IN_TABLES                = 4&lt;/P&gt;&lt;P&gt;      DP_ERROR                       = 5&lt;/P&gt;&lt;P&gt;      TABLE_STRUCTURE_NAME_NOT_FOUND = 6.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A000.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_and_init_tree&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_node_and_item_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_NODE_TABLE  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_ITEM_TABLE  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BUILD_NODE_AND_ITEM_TABLE  USING&lt;/P&gt;&lt;P&gt;          NODE_TABLE TYPE TREEV_NTAB&lt;/P&gt;&lt;P&gt;          ITEM_TABLE TYPE ITEM_TABLE_TYPE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:NODE TYPE TREEV_NODE,&lt;/P&gt;&lt;P&gt;       ITEM TYPE MTREEITM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;build the node table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'root'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'Root'.  " key of the node&lt;/P&gt;&lt;P&gt;  CLEAR NODE-RELATKEY.    " root node has no parent node&lt;/P&gt;&lt;P&gt;  CLEAR NODE-RELATSHIP.&lt;/P&gt;&lt;P&gt;  NODE-HIDDEN = ' '.      " the node is visible&lt;/P&gt;&lt;P&gt;  NODE-DISABLED = ' '.     " selectable&lt;/P&gt;&lt;P&gt;  NODE-ISFOLDER = 'X'.    " a folder&lt;/P&gt;&lt;P&gt;  CLEAR NODE-N_IMAGE.     " folder-/ leaf symbol in state "closed"&lt;/P&gt;&lt;P&gt;  "use default.&lt;/P&gt;&lt;P&gt;  CLEAR NODE-EXP_IMAGE.   " folder-/ leaf symbol in state "open"&lt;/P&gt;&lt;P&gt;  "use default.&lt;/P&gt;&lt;P&gt;  CLEAR NODE-EXPANDER.    " the width of the item is adjusted to its "&lt;/P&gt;&lt;P&gt;  " content (text)&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'child1'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'Child1'. "key of the node&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Root'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  NODE-ISFOLDER = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'Subchild1' for child1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'SubChild1'.&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Child1'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  NODE-ISFOLDER = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'subchild2' for child1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Child1'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'subchild3' for child1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'SubChild3'.&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Child1'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'child2'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'Child2'. "key of the node&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Root'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  NODE-ISFOLDER = 'X'.&lt;/P&gt;&lt;P&gt;  NODE-EXPANDER = 'X'.    " The node is marked with a '+', although&lt;/P&gt;&lt;P&gt;  " it has no children. When the user clicks on the&lt;/P&gt;&lt;P&gt;  " + to open the node, the event expand_nc is&lt;/P&gt;&lt;P&gt;  " fired. The programmerr can&lt;/P&gt;&lt;P&gt;  " add the children of the&lt;/P&gt;&lt;P&gt;  " node within the event handler of the expand_nc&lt;/P&gt;&lt;P&gt;  " event  (see callback handle_expand_nc).&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;items of the nodes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;item with key 'root'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'Root'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '1'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT. " text item&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO. "the width of the item&lt;/P&gt;&lt;P&gt;  "is adjusted to its content&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP. "use proportional font&lt;/P&gt;&lt;P&gt;  " for the item&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = 'object'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;item with key 'child1'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'Child1'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '11'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO.&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = 'dynpros'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;item with key 'child2'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'Child2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '12'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO.&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = 'programme'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;items of node  with key 'Subchild1'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild1'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '111'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 11.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = 'include'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;items of node with key 'SubChild2'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '112'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 4.  " the width of the item is 4 chars&lt;/P&gt;&lt;P&gt;  ITEM-IGNOREIMAG = 'X'.  " see documentation of structure treev_item&lt;/P&gt;&lt;P&gt;  ITEM-USEBGCOLOR = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-T_IMAGE = '@01@'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '113'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 4.  " the width of the item is 4 chars&lt;/P&gt;&lt;P&gt;  ITEM-USEBGCOLOR = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = '0100'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '114'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 11.&lt;/P&gt;&lt;P&gt;  ITEM-USEBGCOLOR = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = ' mueller'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '115'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO.&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = ' comment to dynpro 100'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;items of node with key 'SubChild3'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild3'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '121'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 20.&lt;/P&gt;&lt;P&gt;  ITEM-IGNOREIMAG = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-USEBGCOLOR = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-T_IMAGE = '@02@'.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = '  0200 harryhirsch'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild3'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '122'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO.&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = ' comment to dynpro 200'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_node_and_item_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;also i have sent a material to ur id&lt;/P&gt;&lt;P&gt;I hope you will get a clear idea on events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sowjanya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 18 Aug 2006 15:48:39 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-08-18T15:48:39Z</dc:date>
    <item>
      <title>ABAP Object Event</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505293#M233584</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;      Could anybody send me a document for ABAP Object events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And simple programs for Events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My id - ponraj_rec@yahoo.com&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Ponraj.s.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Aug 2006 14:04:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505293#M233584</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-18T14:04:36Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Object Event</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505294#M233585</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw2004s/helpdata/en/71/a8a77955bc11d194aa0000e8353423/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw2004s/helpdata/en/71/a8a77955bc11d194aa0000e8353423/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also, please see example program BCALV_TEST_GRID_EVENTS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Rich Heilman&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Aug 2006 14:09:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505294#M233585</guid>
      <dc:creator>RichHeilman</dc:creator>
      <dc:date>2006-08-18T14:09:33Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Object Event</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505295#M233586</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Ponraj&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a look at the reuse library (SE83) of SAP. Under controls you will find many (simple) sample programs dealing with various aspects of control programming, which is based on ABAP-OO. This includes also event handling. The programs are usually quite well documented inbetween the coding lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The principle behind event handling is simple:&lt;/P&gt;&lt;P&gt;- you have a sender that can raise events (e.g. an instance of CL_GUI_ALV_GRID)&lt;/P&gt;&lt;P&gt;- you have a receiver that has registered itself for these events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example: &lt;/P&gt;&lt;P&gt;If you have define hotspots on your ALV list and the user click on such a field the ALV grid instance will raise event HOTSPOT_CLICK.&lt;/P&gt;&lt;P&gt;If a receiver has registered itself for this event (statement: SET HANDLER &amp;lt;event handler method&amp;gt; FOR ALL INSTANCES) then the system will call this event handler method.&lt;/P&gt;&lt;P&gt;After calling all event handler methods (of different receivers) the systems returns to where it was before raising the event meaning that we do NOT pass PAI of the dynpro.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally, if we have multiple event handler methods registered (of different object instances) we cannot know in which order they are process - just random.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;    Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Aug 2006 14:20:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505295#M233586</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2006-08-18T14:20:27Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Object Event</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505296#M233587</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ponraj,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can refer this document for more details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt" target="test_blank"&gt;http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are certain points to be noted while working on events in a class:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1)First the event has to be defined.&lt;/P&gt;&lt;P&gt;For eg:&lt;/P&gt;&lt;P&gt;EVENTS  critical_value EXPORTING&lt;/P&gt;&lt;P&gt;             value(excess) TYPE i.&lt;/P&gt;&lt;P&gt;2)The method to be executed when the event occurs , has to be defined. It can be in the same or different class in which the event is declared.&lt;/P&gt;&lt;P&gt;For eg:if it is in different class, the way in which the method is declared is like this.&lt;/P&gt;&lt;P&gt;METHODS handle_excess FOR EVENT critical_value 	OF &amp;lt;b&amp;gt;counter&amp;lt;/b&amp;gt; IMPORTING excess.&lt;/P&gt;&lt;P&gt;Here counter is the name of the class in which the event is declared.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3)The event can be raised using the statement RAISE EVENT..&lt;/P&gt;&lt;P&gt;For eg: &lt;/P&gt;&lt;P&gt;RAISE EVENT critical_value&lt;/P&gt;&lt;P&gt;         EXPORTING excess = diff.&lt;/P&gt;&lt;P&gt;4)Now the method implementation has to be given in the class implementation using METHOD ... ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5) The link between the event and the method is established using the statement SET HANDLER , which registers the event.&lt;/P&gt;&lt;P&gt;For eg:&lt;/P&gt;&lt;P&gt;CREATE OBJECT: r1, h1.&lt;/P&gt;&lt;P&gt;  SET HANDLER h1-&amp;gt;handle_excess FOR ALL INSTANCES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the case of user-defined events. In the case of Predefined events, you can skip the step 1 &amp;amp; 3, as the events are defined already and they are triggered automatically. For eg: double click event is triggered automatically on button double click.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Award points to all helpful answers.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;SP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Aug 2006 15:15:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505296#M233587</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-18T15:15:21Z</dc:date>
    </item>
    <item>
      <title>Re: ABAP Object Event</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505297#M233588</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Go thru this basic simple program with documentation which demonstrates how to handle events, for nodes in a tree using abap objects&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  YLIST_TREE MESSAGE-ID ZER_INFO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVT_HDLR DEFINITION DEFERRED. " definition is given later&lt;/P&gt;&lt;P&gt;CLASS CL_GUI_CFW DEFINITION LOAD. " global class to be loaded&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:G_EVENT(50),    " to hold the event&lt;/P&gt;&lt;P&gt;     G_NODE_KEY TYPE TV_NODEKEY,  "holds the node key&lt;/P&gt;&lt;P&gt;     G_ITEM_NAME TYPE TV_ITMNAME,&lt;/P&gt;&lt;P&gt;     G_KEY TYPE TV_ITMNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:G_EVT_HDLR TYPE REF TO LCL_EVT_HDLR,&lt;/P&gt;&lt;P&gt;     G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,&lt;/P&gt;&lt;P&gt;     G_TREE TYPE REF TO CL_GUI_LIST_TREE,&lt;/P&gt;&lt;P&gt;     G_OK_CODE TYPE SY-UCOMM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:ITEM_TABLE_TYPE LIKE STANDARD TABLE OF MTREEITM&lt;/P&gt;&lt;P&gt;      WITH DEFAULT KEY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_evt_hdlr DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVT_HDLR DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;*---- methods for action handling for nodes&lt;/P&gt;&lt;P&gt;    NODE_DBL_CLK&lt;/P&gt;&lt;P&gt;     FOR EVENT NODE_DOUBLE_CLICK&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY,&lt;/P&gt;&lt;P&gt;    HANDLE_NODE_KEY_PRESS&lt;/P&gt;&lt;P&gt;     FOR EVENT NODE_KEYPRESS&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY KEY,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- methods for action handling for Items&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ITEM_DBL_CLK&lt;/P&gt;&lt;P&gt;     FOR EVENT ITEM_DOUBLE_CLICK&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY ITEM_NAME,&lt;/P&gt;&lt;P&gt;    HANDLE_ITEM_KEY_PRESS&lt;/P&gt;&lt;P&gt;     FOR EVENT ITEM_KEYPRESS&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY ITEM_NAME KEY,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- Common methods for action handling&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; HANDLE_RIGHT_CLICK&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FOR EVENT RIGHT_CLICK&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OF CL_GUI_LIST_TREE,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    HANDLE_EXPAND_NO_CHILDREN&lt;/P&gt;&lt;P&gt;     FOR EVENT EXPAND_NO_CHILDREN&lt;/P&gt;&lt;P&gt;     OF CL_GUI_LIST_TREE&lt;/P&gt;&lt;P&gt;     IMPORTING NODE_KEY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_evt_hdlr DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_evt_hdlr IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS LCL_EVT_HDLR IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD NODE_DBL_CLK.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  this method handles the node double click event of the tree control&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  and shows the key of the double clicked node in a dynpro field&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    G_EVENT = 'NODE_DOUBLE_CLICK'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;    G_ITEM_NAME = ' '.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "node_dbl_clk&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD ITEM_DBL_CLK.&lt;/P&gt;&lt;P&gt;    G_EVENT = 'ITEM_DOUBLE_CLICK'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;    G_ITEM_NAME = ITEM_NAME.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "ITEM_DBL_CLK&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_NODE_KEY_PRESS.&lt;/P&gt;&lt;P&gt;    G_EVENT = 'NODE_KEYPRESS'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;    G_ITEM_NAME = ' '.&lt;/P&gt;&lt;P&gt;    G_KEY = KEY.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "HANDLE_NODE_KEY_PRESS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_ITEM_KEY_PRESS.&lt;/P&gt;&lt;P&gt;    G_EVENT = 'ITEM_KEYPRESS'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;    G_ITEM_NAME = ITEM_NAME.&lt;/P&gt;&lt;P&gt;    G_KEY = KEY.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "HANDLE_ITEM_KEY_PRESS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; METHOD HANDLE_RIGHT_CLICK.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   G_EVENT = 'RIGHT_CLICK'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDMETHOD.                    "handle_right_click&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD HANDLE_EXPAND_NO_CHILDREN.&lt;/P&gt;&lt;P&gt;    G_EVENT = 'EXPAND_NO_CHILDREN'.&lt;/P&gt;&lt;P&gt;    G_NODE_KEY = NODE_KEY.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "handle_EXPAND_NO_CHILDREN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_evt_hdlr IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------   start-of-selection.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*data:  G_EVT_HDLR TYPE REF TO LCL_EVT_HDLR.&lt;/P&gt;&lt;P&gt;  CREATE OBJECT G_EVT_HDLR. "create an object for the class lcl_evt_hdlr&lt;/P&gt;&lt;P&gt;  SET SCREEN 100.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MODULE pbo_100 OUTPUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE PBO_100 OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'BUT'.&lt;/P&gt;&lt;P&gt;  IF G_TREE IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  the tree control has not yet been created&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; create a tree control and insert nodes into it.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM CREATE_AND_INIT_TREE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "pbo_100 OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MODULE pai_100 INPUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE PAI_100 INPUT.&lt;/P&gt;&lt;P&gt;  DATA:RETURN_CODE TYPE I.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CL_GUI_CFW=&amp;gt;DISPATCH must be called if events are registered&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;that trigger PAI&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this method calls the event handler method of an event&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD CL_GUI_CFW=&amp;gt;DISPATCH&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      RETURN_CODE = RETURN_CODE.&lt;/P&gt;&lt;P&gt;  IF RETURN_CODE &amp;lt;&amp;gt; CL_GUI_CFW=&amp;gt;RC_NOEVENT.&lt;/P&gt;&lt;P&gt;    " a control event occured =&amp;gt; exit PAI&lt;/P&gt;&lt;P&gt;    CLEAR G_OK_CODE.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*at user-command.&lt;/P&gt;&lt;P&gt;g_ok_code = sy-ucomm.&lt;/P&gt;&lt;P&gt;  CASE G_OK_CODE.&lt;/P&gt;&lt;P&gt;    WHEN 'BACK'. " Finish program&lt;/P&gt;&lt;P&gt;      IF NOT G_CUSTOM_CONTAINER IS INITIAL.&lt;/P&gt;&lt;P&gt;        " destroy tree container (detroys contained tree control, too)&lt;/P&gt;&lt;P&gt;        CALL METHOD G_CUSTOM_CONTAINER-&amp;gt;FREE&lt;/P&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;P&gt;            CNTL_SYSTEM_ERROR = 1&lt;/P&gt;&lt;P&gt;            CNTL_ERROR        = 2.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE A000.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        CLEAR G_CUSTOM_CONTAINER.&lt;/P&gt;&lt;P&gt;        CLEAR G_TREE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CAUTION: clear ok code!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR G_OK_CODE.&lt;/P&gt;&lt;P&gt;ENDMODULE.                    "pai_100 INPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  create_and_init_tree&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CREATE_AND_INIT_TREE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:NODE_TABLE TYPE TREEV_NTAB,&lt;/P&gt;&lt;P&gt;       ITEM_TABLE TYPE ITEM_TABLE_TYPE,&lt;/P&gt;&lt;P&gt;       EVENTS TYPE CNTL_SIMPLE_EVENTS,&lt;/P&gt;&lt;P&gt;       EVENT TYPE CNTL_SIMPLE_EVENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  create a container for the tree control.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE OBJECT G_CUSTOM_CONTAINER&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    the container is linked to the custom control with the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    name 'TREE_CONTAINER' on the dynpro&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     CONTAINER_NAME = 'TREE_CONTAINER'&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;      CNTL_ERROR = 1&lt;/P&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR = 2&lt;/P&gt;&lt;P&gt;      CREATE_ERROR = 3&lt;/P&gt;&lt;P&gt;      LIFETIME_ERROR = 4&lt;/P&gt;&lt;P&gt;      LIFETIME_DYNPRO_DYNPRO_LINK = 5.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A000.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  create a list tree control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CREATE OBJECT G_TREE&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;    PARENT = G_CUSTOM_CONTAINER&lt;/P&gt;&lt;P&gt;    NODE_SELECTION_MODE = CL_GUI_LIST_TREE=&amp;gt;NODE_SEL_MODE_SINGLE&lt;/P&gt;&lt;P&gt;    ITEM_SELECTION = 'X'&lt;/P&gt;&lt;P&gt;    WITH_HEADERS = ' '&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;    CNTL_SYSTEM_ERROR           = 1&lt;/P&gt;&lt;P&gt;     CREATE_ERROR                = 2&lt;/P&gt;&lt;P&gt;     FAILED                      = 3&lt;/P&gt;&lt;P&gt;     ILLEGAL_NODE_SELECTION_MODE = 4&lt;/P&gt;&lt;P&gt;     LIFETIME_ERROR              = 5.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A000.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------- KEY = enter&lt;/P&gt;&lt;P&gt;  CALL METHOD G_TREE-&amp;gt;ADD_KEY_STROKE&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      KEY               = CL_TREE_CONTROL_BASE=&amp;gt;KEY_ENTER&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FAILED            = 1&lt;/P&gt;&lt;P&gt;      ILLEGAL_KEY       = 2&lt;/P&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE W006 WITH 'ADD_KEY_STROKE'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   define the events which will be passed to the backend&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node double click&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_NODE_DOUBLE_CLICK.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_ITEM_DOUBLE_CLICK.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_NODE_KEYPRESS.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_ITEM_KEYPRESS.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EVENT-EVENTID = LCL_EVT_HDLR=&amp;gt;EVENT_RIGHT_CLICK.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  EVENT-EVENTID = CL_GUI_LIST_TREE=&amp;gt;EVENTID_EXPAND_NO_CHILDREN.&lt;/P&gt;&lt;P&gt;  EVENT-APPL_EVENT = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND EVENT TO EVENTS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------ register the events&lt;/P&gt;&lt;P&gt;  CALL METHOD G_TREE-&amp;gt;SET_REGISTERED_EVENTS&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      EVENTS                    = EVENTS&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      CNTL_ERROR                = 1&lt;/P&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR         = 2&lt;/P&gt;&lt;P&gt;      ILLEGAL_EVENT_COMBINATION = 3.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A000.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;assign event handlers in the application class to each desired events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;NODE_DBL_CLK FOR G_TREE.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;ITEM_DBL_CLK FOR G_TREE.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;HANDLE_NODE_KEY_PRESS FOR G_TREE.&lt;/P&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;HANDLE_ITEM_KEY_PRESS FOR G_TREE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SET HANDLER G_EVT_HDLR-&amp;gt;HANDLE_RIGHT_CLICK FOR G_TREE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SET HANDLER G_EVT_HDLR-&amp;gt;HANDLE_EXPAND_NO_CHILDREN FOR G_TREE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add some nodes to the tree control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_NODE_AND_ITEM_TABLE USING NODE_TABLE ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD G_TREE-&amp;gt;ADD_NODES_AND_ITEMS&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      NODE_TABLE                     = NODE_TABLE&lt;/P&gt;&lt;P&gt;      ITEM_TABLE                     = ITEM_TABLE&lt;/P&gt;&lt;P&gt;      ITEM_TABLE_STRUCTURE_NAME      = 'mtreeitm'&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FAILED                         = 1&lt;/P&gt;&lt;P&gt;      CNTL_SYSTEM_ERROR              = 3&lt;/P&gt;&lt;P&gt;      ERROR_IN_TABLES                = 4&lt;/P&gt;&lt;P&gt;      DP_ERROR                       = 5&lt;/P&gt;&lt;P&gt;      TABLE_STRUCTURE_NAME_NOT_FOUND = 6.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE A000.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_and_init_tree&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_node_and_item_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_NODE_TABLE  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_ITEM_TABLE  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BUILD_NODE_AND_ITEM_TABLE  USING&lt;/P&gt;&lt;P&gt;          NODE_TABLE TYPE TREEV_NTAB&lt;/P&gt;&lt;P&gt;          ITEM_TABLE TYPE ITEM_TABLE_TYPE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:NODE TYPE TREEV_NODE,&lt;/P&gt;&lt;P&gt;       ITEM TYPE MTREEITM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;build the node table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'root'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'Root'.  " key of the node&lt;/P&gt;&lt;P&gt;  CLEAR NODE-RELATKEY.    " root node has no parent node&lt;/P&gt;&lt;P&gt;  CLEAR NODE-RELATSHIP.&lt;/P&gt;&lt;P&gt;  NODE-HIDDEN = ' '.      " the node is visible&lt;/P&gt;&lt;P&gt;  NODE-DISABLED = ' '.     " selectable&lt;/P&gt;&lt;P&gt;  NODE-ISFOLDER = 'X'.    " a folder&lt;/P&gt;&lt;P&gt;  CLEAR NODE-N_IMAGE.     " folder-/ leaf symbol in state "closed"&lt;/P&gt;&lt;P&gt;  "use default.&lt;/P&gt;&lt;P&gt;  CLEAR NODE-EXP_IMAGE.   " folder-/ leaf symbol in state "open"&lt;/P&gt;&lt;P&gt;  "use default.&lt;/P&gt;&lt;P&gt;  CLEAR NODE-EXPANDER.    " the width of the item is adjusted to its "&lt;/P&gt;&lt;P&gt;  " content (text)&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'child1'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'Child1'. "key of the node&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Root'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  NODE-ISFOLDER = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'Subchild1' for child1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'SubChild1'.&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Child1'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  NODE-ISFOLDER = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'subchild2' for child1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Child1'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'subchild3' for child1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'SubChild3'.&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Child1'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;node with key 'child2'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR NODE.&lt;/P&gt;&lt;P&gt;  NODE-NODE_KEY = 'Child2'. "key of the node&lt;/P&gt;&lt;P&gt;  NODE-RELATKEY = 'Root'.&lt;/P&gt;&lt;P&gt;  NODE-RELATSHIP = CL_GUI_LIST_TREE=&amp;gt;RELAT_LAST_CHILD.&lt;/P&gt;&lt;P&gt;  NODE-ISFOLDER = 'X'.&lt;/P&gt;&lt;P&gt;  NODE-EXPANDER = 'X'.    " The node is marked with a '+', although&lt;/P&gt;&lt;P&gt;  " it has no children. When the user clicks on the&lt;/P&gt;&lt;P&gt;  " + to open the node, the event expand_nc is&lt;/P&gt;&lt;P&gt;  " fired. The programmerr can&lt;/P&gt;&lt;P&gt;  " add the children of the&lt;/P&gt;&lt;P&gt;  " node within the event handler of the expand_nc&lt;/P&gt;&lt;P&gt;  " event  (see callback handle_expand_nc).&lt;/P&gt;&lt;P&gt;  APPEND NODE TO NODE_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;items of the nodes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;item with key 'root'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'Root'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '1'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT. " text item&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO. "the width of the item&lt;/P&gt;&lt;P&gt;  "is adjusted to its content&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP. "use proportional font&lt;/P&gt;&lt;P&gt;  " for the item&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = 'object'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;item with key 'child1'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'Child1'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '11'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO.&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = 'dynpros'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;item with key 'child2'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'Child2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '12'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO.&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = 'programme'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;items of node  with key 'Subchild1'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild1'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '111'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 11.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = 'include'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;items of node with key 'SubChild2'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '112'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 4.  " the width of the item is 4 chars&lt;/P&gt;&lt;P&gt;  ITEM-IGNOREIMAG = 'X'.  " see documentation of structure treev_item&lt;/P&gt;&lt;P&gt;  ITEM-USEBGCOLOR = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-T_IMAGE = '@01@'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '113'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 4.  " the width of the item is 4 chars&lt;/P&gt;&lt;P&gt;  ITEM-USEBGCOLOR = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = '0100'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '114'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 11.&lt;/P&gt;&lt;P&gt;  ITEM-USEBGCOLOR = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = ' mueller'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild2'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '115'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO.&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = ' comment to dynpro 100'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;items of node with key 'SubChild3'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild3'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '121'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-LENGTH = 20.&lt;/P&gt;&lt;P&gt;  ITEM-IGNOREIMAG = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-USEBGCOLOR = 'X'.&lt;/P&gt;&lt;P&gt;  ITEM-T_IMAGE = '@02@'.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = '  0200 harryhirsch'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ITEM.&lt;/P&gt;&lt;P&gt;  ITEM-NODE_KEY = 'SubChild3'.&lt;/P&gt;&lt;P&gt;  ITEM-ITEM_NAME = '122'.&lt;/P&gt;&lt;P&gt;  ITEM-CLASS = CL_GUI_LIST_TREE=&amp;gt;ITEM_CLASS_TEXT.&lt;/P&gt;&lt;P&gt;  ITEM-ALIGNMENT = CL_GUI_LIST_TREE=&amp;gt;ALIGN_AUTO.&lt;/P&gt;&lt;P&gt;  ITEM-FONT = CL_GUI_LIST_TREE=&amp;gt;ITEM_FONT_PROP.&lt;/P&gt;&lt;P&gt;  ITEM-TEXT = ' comment to dynpro 200'.&lt;/P&gt;&lt;P&gt;  APPEND ITEM TO ITEM_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_node_and_item_table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;also i have sent a material to ur id&lt;/P&gt;&lt;P&gt;I hope you will get a clear idea on events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sowjanya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 18 Aug 2006 15:48:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-object-event/m-p/1505297#M233588</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-18T15:48:39Z</dc:date>
    </item>
  </channel>
</rss>

