Tree event handling

Hi,
    I had a Tlayout.In that the left view is a Tree. When I clicked a particular element in the Tree on the left View I want the details of it to be displayed in the right View. What is the code for handling the click event of a tree and load a  view corresponding to the clicked element and display it in right view.
Thanks in Advance
  Safeer.I

Error Summary
While processing the current request, an exception occured which could not be handled by the application or the framework.
If the information contained on this page doesn't help you to find and correct the cause of the problem, please contact your system administrator. To facilitate analysis of the problem, keep a copy of this error page. Hint: Most browsers allow to select all content, copy it and then paste it into an empty document (e.g. email or simple text file).
Root Cause
The initial exception that caused the request to fail, was:
   java.lang.NullPointerException
    at hbs.saf.TreeTut1View.wdDoModifyView(TreeTut1View.java:234)
    at hbs.saf.wdp.InternalTreeTut1View.wdDoModifyView(InternalTreeTut1View.java:220)
    at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doModifyView(DelegatingView.java:78)
    at com.sap.tc.webdynpro.progmodel.view.View.modifyView(View.java:308)
    at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.doModifyView(ClientComponent.java:480)
    ... 27 more
See full exception chain for details.
System Environment
Client
Web Dynpro Client Type HTML Client
User agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Version null
DOM version null
Client Type msie6
Client Type Profile ie6
ActiveX enabled
Cookies enabled
Frames enabled
Java Applets enabled
JavaScript enabled
Tables enabled
VB Script enabled
Server
Web Dynpro Runtime Vendor: SAP, build ID: 7.0007.20060331081328.0000 (release=645_VAL_REL, buildtime=2006-03-31:06:24:04[UTC], changelist=396896, host=pwdfm101), build date: Wed Mar 28 16:13:15 GMT+05:30 2007
J2EE Engine No information available
Java VM Java HotSpot(TM) Server VM, version:1.4.2_12-b03, vendor: Sun Microsystems Inc.
Operating system Windows 2003, version: 5.2, architecture: x86
Session & Other
Session Locale en_US
Time of Failure Tue Jul 31 11:10:50 GMT+05:30 2007 (Java Time: 1185860450203)
Web Dynpro Code Generation Infos
local/TreeTut1
SapDictionaryGenerationCore 7.0009.20060802115015.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:24:21[UTC], changelist=413123, host=PWDFM101.wdf.sap.corp)
SapDictionaryGenerationTemplates (unknown)
SapGenerationFrameworkCore 7.0009.20060719095755.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:12:57[UTC], changelist=411255, host=PWDFM101.wdf.sap.corp)
SapIdeWebDynproCheckLayer 7.0009.20060802115035.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:30:00[UTC], changelist=413124, host=PWDFM101.wdf.sap.corp)
SapMetamodelCommon 7.0009.20060210160857.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:13:46[UTC], changelist=388995, host=PWDFM101.wdf.sap.corp)
SapMetamodelCore 7.0009.20060210160857.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:13:38[UTC], changelist=388995, host=PWDFM101.wdf.sap.corp)
SapMetamodelDictionary 7.0009.20060719095619.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:21:59[UTC], changelist=411251, host=PWDFM101.wdf.sap.corp)
SapMetamodelWebDynpro 7.0009.20060428190938.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:26:52[UTC], changelist=400815, host=PWDFM101.wdf.sap.corp)
SapWebDynproGenerationCTemplates 7.0009.20060804145649.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:45:29[UTC], changelist=413534, host=pwdfm101)
SapWebDynproGenerationCore 7.0009.20060802115035.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:30:11[UTC], changelist=413124, host=PWDFM101.wdf.sap.corp)
SapWebDynproGenerationTemplates 7.0009.20060804145649.0000 (release=645_VAL_REL, buildtime=2006-08-26:14:45:29[UTC], changelist=413534, host=pwdfm101)
sap.com/tcwddispwda
No information available null
sap.com/tcwdcorecomp
No information available null
Detailed Error Information
Detailed Exception Chain
java.lang.NullPointerException
     at hbs.saf.TreeTut1View.wdDoModifyView(TreeTut1View.java:234)
     at hbs.saf.wdp.InternalTreeTut1View.wdDoModifyView(InternalTreeTut1View.java:220)
     at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.doModifyView(DelegatingView.java:78)
     at com.sap.tc.webdynpro.progmodel.view.View.modifyView(View.java:308)
     at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.doModifyView(ClientComponent.java:480)
     at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doModifyView(WindowPhaseModel.java:551)
     at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:148)
     at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:330)
     at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
     at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:297)
     at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:706)
     at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:660)
     at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:228)
     at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:152)
     at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:56)
     at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doGet(DispatcherServlet.java:40)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
     at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
     at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
     at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
     at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
     at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
     at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
     at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
     at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
     at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
     at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
     at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
     at java.security.AccessController.doPrivileged(Native Method)
     at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
     at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

Similar Messages

  • ALV Tree - Event Handler

    Hi All,
    I amd currently developing an ALV tree program to capture the hierarchy of functional location. I managed to display the hierarchy in ALV Tree using cl_gui_column_tree.
    Now, i am working on double clicking the functional location and it will bring me to tcode IL03. But, it seems like i cannot capture of the field value clicked. Below are my source code.  Can anyone pls help me on this? Thank you very much
    *&      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.
      CALL METHOD gd_tree->get_registered_events
        IMPORTING
          events = lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_item_double_click.
      l_event-appl_event = 'X'.
      APPEND l_event TO lt_events.
      CALL METHOD gd_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'.
      ENDIF.
    Set Handler
      DATA: l_event_receiver TYPE REF TO lcl_tree_event_receiver.
      CREATE OBJECT l_event_receiver.
      SET HANDLER l_event_receiver->handle_item_double_click FOR gd_tree.
    ENDFORM.                    " register_events
    CLASS lcl_tree_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS handle_item_double_click
          FOR EVENT item_double_click OF cl_gui_alv_tree
          IMPORTING node_key
                    fieldname.
    ENDCLASS.                    "lcl_tree_event_receiver DEFINITION
    CLASS lcl_tree_event_receiver IMPLEMENTATION.
      METHOD handle_item_double_click.
        DATA: lt_selected_nodes TYPE lvc_nkey,
              lt_fieldname      TYPE lvc_fname.
    Determine which line is selected
        CALL METHOD gd_tree->get_selected_item
          IMPORTING
            e_selected_node = lt_selected_nodes
            e_fieldname     = lt_fieldname.
        CALL METHOD cl_gui_cfw=>flush.
        SET PARAMETER ID 'IFL' FIELD lt_fieldname.
        SET PARAMETER ID 'ISR' FIELD 'MOB01'.
        CALL TRANSACTION 'IL03' AND SKIP FIRST SCREEN.
      ENDMETHOD.                    "handle_item_double_click
    ENDCLASS.                    "lcl_tree_event_receiver IMPLEMENTATION

    Hello Goh
    Based on your coding you are using CL_GUI_ALV_TREE instead of CL_GUI_COLUMN_TREE.
    Calling method get_selected_item within your event handler method is unnecessary because these data are already provided by the event interface.
    [code]METHOD handle_item_double_click.
    DATA: lt_selected_nodes TYPE lvc_nkey,
    lt_fieldname TYPE lvc_fname.
    *$Comment: unnecessary because these data are already provided
    by the event interface (IMPORTING nodekey fieldname).
    Determine which line is selected
    **CALL METHOD gd_tree->get_selected_item
    **IMPORTING
    **e_selected_node = lt_selected_nodes
    **e_fieldname = lt_fieldname.
    ENDMETHOD. "handle_item_double_click[/code]
    The following sample is based in report BCALV_TREE_04 but can be simply applied to your application:
    [code]  METHOD handle_item_double_click.
      define local data
        DATA:
          ls_outtab     TYPE sflight.
        FIELD-SYMBOLS:
          <ld_fld>      TYPE ANY.
      Call this method to get the values of the selected tree line
        CALL METHOD g_alv_tree->get_outtab_line
          EXPORTING
            i_node_key     = node_key
          IMPORTING
            e_outtab_line  = ls_outtab
           E_NODE_TEXT    =
           et_item_layout =
           ES_NODE_LAYOUT =
          EXCEPTIONS
            node_not_found = 1
            OTHERS         = 2.
        IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                   WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        ASSIGN COMPONENT fieldname OF STRUCTURE ls_outtab TO <ld_fld>.
        IF ( <ld_fld> IS ASSIGNED ).
      ... Call transaction with selected (item) value.
        ENDIF.
      ENDMETHOD.                    "handle_item_double_click[/code]
    The ASSIGN statement will work if no item of the hierarchy part is selected.
    Regards
      Uwe

  • JDEV 10.1.2 UIX Tree Event Handler

    Hi,
    I have built my tree bound to two ADF entities/views.
    It works fine in a small standalone application, but as soon as I try to integrate it with my main app it fails to call either the "null" or the "expand" event handler (null for page rendering and expand for... well expanding the node (see below))
    I've run it in debug and the event code just isn't getting fired
    There must be something in my main app that is intercepting the event handler before it gets to my uix handlers.
    New to all this so any help greatly appreciated!
    In summary, what would intercept default event handling in a uix page.
    Thanks
    Mark
    <handlers>
    <event name="expand">
    <method class="view.TreeUtils" method="doTreeEvent"/>
    </event>
    <event name="null">
    <method class="view.TreeUtils" method="doTreeEvent"/>
    </event>
    </handlers>

    Hi,
    it appears that if I change the forward to have 'redirect="true"' within the struts config file then this works fine now.
    Mark

  • Event handler for disclosureopenicon in tree in flex 4

    hi all,
              Is it possible to write event handler to disclosureopenicon for tree control in flex?
    if its possible means, h w can i write?

    Hi Ananth,
    You can do this by firing a Navigation event for Opening and closing of these tree nodes.
    Cheers,
    Jeevan

  • Action Event Handler on Tree nodes

    I have an actionListener event handler registered on a tree node as follows:
    <af:tree value="#{bindings.SomeViewObj1.treeModel}" var="node" rowSelection="none" id="t1"
    binding="#{EditFormBean.tree1}" displayRow="selected" summary="Tree"
    partialTriggers=":::cb1 :::cb2">
    <f:facet name="nodeStamp">
    <af:panelGroupLayout id="pgl3">
    <af:outputText value="#{node}" id="ot1"/>
    <af:commandImageLink text="E" id="cil3" partialSubmit="true"
    *actionListener="#{EditFormBean.onEdit}"* binding="#{EditFormBean.cmdImageLink}">
    <af:setPropertyListener from="#{node.hiertType.structureDefName}" type="action"
    to="#{viewScope.formView}"/>
    <f:attribute name="node" value="#{node}"/>
    </af:commandImageLink>
    <af:commandImageLink text="A" id="cil1"/>
    <af:commandImageLink text="D" id="cil2"/>
    </af:panelGroupLayout>
    </f:facet>
    </af:tree>
    I have at each node stamp facet a panelGroup Layout that contains the node value and a command Image link. The tree has two hierarchical levels. When I press the command Image link on the first tree noe level, the actioListener method in teh managed bean (EditFormBean.onEdit) gets called. When I press the same commandImage link on the second tree level, the same action listener does not get called. I need to get past this problem before I code the actionListener which needs to set the current row in the iterator based on the key selected on the tree node. I simply have a print statement in the action listener method which shows something when the first level command image link is clicked but does not print anything when the second level command image link is clicked.
    I am using JDeveloper 11.1.2.1.0
    There is also adf faces code around this snippet that uses an af:switcher facea component to display the appropriate form based on the nodee level in which the comman d image link is clicled but it is irrelevant to the problem I am getting.
    Any help on that would be appreciated

    Hi,
    hard to say . Didn't see this before. Can yoiu remove "binding="#{EditFormBean.cmdImageLink}"" from the command link. The tree stamps its children so that it doesn't make sense to keep a handle to the component instance
    Frank

  • Tree's DragSource changes at DragDrop event handler?

    I try to drag a node A into node B. When the DragDrop event
    handler is called, the dragSource is changed to the drop source?
    I have declared the following:
    <mx:Tree ......... dragDrop="OnDragDrop(event)"....../>
    In the function:
    private function OnDragDrop( event:DragEvent ):void
    var ds:DragSource = event.dragSource;
    items = new XML( ds.dataForFormat("treeItems")[0] );
    I was expecting the "items" has a copy of the dragged item
    (node A). However, it has all the drop node's info (node B). How do
    I get teh drag and drop nodes in this event?
    P.S. I am trying to drag and drop at the same tree control.
    Could that be why? Is it suppose to be like this? Or, its a bug?
    -Alan

    Regarding your button look and feel issue, the easiest thing to do would be to copy the button template you are using for the template-based buttons and modify that to add in your onClick handlers.
    The builtin button template for the theme I am using (Theme 12) looks like this
    <table class="t10Button" cellspacing="0" cellpadding="0" border="0"  summary="">
        <tr>
            <td class="t10L"><img src="#IMAGE_PREFIX#themes/theme_10/button_left.gif" alt="" width="4" height="24" /></td>
            <td class="t10C">#LABEL#</td>
            <td class="t10R"><img src="#IMAGE_PREFIX#themes/theme_10/button_right.gif" width="4" height="24" alt="" /></td>
        </tr>
    </table>In other words, each button is rendered in its own HTML table.
    Copy this button template, call it mybutton and have it look like
    <table class="t10Button" cellspacing="0" cellpadding="0" border="0"  summary="">
        <tr>
            <td class="t10L"><img src="#IMAGE_PREFIX#themes/theme_10/button_left.gif" alt="" width="4" height="24" /></td>
            <td class="t10C">#LABEL#</td>
            <td class="t10R"><img src="#IMAGE_PREFIX#themes/theme_10/button_right.gif" width="4" height="24" alt="" /></td>
        </tr>
    </table>Notice that I put a no-op in the href tag for the button and added a onClick handler that will do the real work. In your case, you would use the URL Redirect on the Button attributes page to call your SavePage() function. Since the onClick is called before the href, it should (hopefully) do what you are looking for.
    I put up these changes at
    http://htmldb.oracle.com/pls/otn/f?p=24317:26
    Do let us know.
    Thanks

  • Event Handling for tree structure using "CL_GUI_ALV_TREE_SIMPLE"

    Hi,
    I have created a tree structure using class CL_GUI_ALV_TREE_SIMPLE.
    Now I wanted to insert a check and give message when the user opens the last node in my structure.
    I checked the events available in the class , but there in none which gets trigered when we try to open a node.
    Please guide me with this scenario.
    Thanks & Regards,
    Omkar M.

    Hello Omkar
    The solution is somewhat odd but apparently works. As sample report please check BCALV_TREE_SIMPLE_DEMO.
    Copy this report and make the following changes:
    class lcl_tree_event_receiver definition.
      public section.
        methods:
        on_expand_no_children " new event handler method
          for event expand_no_children of cl_gui_column_tree
            importing NODE_KEY,  " class = CL_GUI_COLUMN_TREE !!!
        on_add_hierarchy_node
                  for event on_add_hierarchy_node of cl_gui_alv_tree_simple
                        importing grouplevel
                                  index_outtab.
    endclass.
    CLASS lcl_tree_event_receiver IMPLEMENTATION.
      METHOD on_expand_no_children.
        BREAK-POINT.
      ENDMETHOD.                    "on_expand_no_children
    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_node_context_menu_req.
      APPEND l_event TO lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
      APPEND l_event TO lt_events.
      CALL METHOD tree1->set_registered_events
        EXPORTING
          events                    = lt_events
        EXCEPTIONS
          cntl_error                = 1
          cntl_system_error         = 2
          illegal_event_combination = 3.
    * set Handler
      DATA: l_event_receiver TYPE REF TO lcl_tree_event_receiver.
      CREATE OBJECT l_event_receiver.
      SET HANDLER l_event_receiver->on_add_hierarchy_node
                                                            FOR tree1.  " CL_GUI_ALV_TREE_SIMPLE
      SET HANDLER l_event_receiver->on_expand_no_children
                                              FOR ALL INSTANCES. " CL_GUI_COLUMN_TREE !!!
    ENDFORM.                               " register_events
    As soon as you open a node in the ALV tree the report will stop at the break-point.
    Now you need to check if there are still children nodes to be displayed.
    If not then trigger your special coding.
    Regards
      Uwe

  • Event Handling in JTable Custom Cell Renderer

    I have a JLabel as a custom cell Renderer for a column. I want to handle mouse click event for the JLabel rendered in the cell.
    I tried adding the listener for the label in the custom cell renderer but it is not working. Any ideas how to handle this problem??
    Thanks
    S.Anand

    If you want to handle the selection of a tree node
    1) write a class like:
    public class TreePaneListener implements TreeSelectionListener {
    // TREE SELECTION LISTENER
    public void valueChanged(TreeSelectionEvent e) {
    JTree tree = (JTree)e.getSource();
    DefaultMutableTreeNode node = null;
    int count = 0;
    boolean doSomething = false;
    if(tree.getSelectionCount() > 1) {
         TreePath[] selection = tree.getSelectionPaths();
         int[] temp = new int[selection.length];
         for(int i =0; i < selection.length; i++) {
    // Check each node for selection
         node = (DefaultMutableTreeNode)selection.getLastPathComponent();
         if(node.getLevel()==2) {
    // Change this code to take the action desired
         doSomething = true;
    2) After creating the tree register the listener
    TreePaneListener handler = new TreePaneListener();
    tree.addTreeSelectionListener(handler);

  • Global event handler for preinitialize

    Is there anyway to add a global event handler on the
    components preinitialize event?
    What I need to do is to be able to enable / disable, and show
    / hide component dynamically based on a access list. My plan was to
    have a global event handler that listens to the preinitialize
    event, at that time, checks if the user has access to the component
    or not. If not, I'll disable / hide the component.
    What I did so far is:
    in my main app.mxml file, I have:
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    preinitialize="preinit(event)"
    so the preinit() function is invoked on the app's
    preinitialize event.
    Then I have the preinit() function (see attached code below).
    However, it does work as there is no trace message printed.
    I changed to use KeyBoardEvent.KEY_DOWN and that seems
    working when I press any key.
    I also tried to use the app.stage.addEventListener() but the
    stage object is null in the preinitialize event.
    Thanks in advance for your help.

    Thank you for follow up on my question.
    I do know these two properties. But that does not solve the
    problem. Let me explain it with an example.
    That's say, when the user logs in, I loads the access list.
    Then the app displays a panel with some form entries. If I am able
    to register a global event listener for the component
    initialization events, I can check the permission and optionally
    hide some components. Otherwise, I would need to programmatically
    travels my component tree to evaluate each component individually
    to set there visible/includeInLayout properties, which is error
    prone.
    The problem is that the component is visible to one user but
    would be hidden to another, so it can not be set at the design
    time.
    The approach I am using right now is to extend the default
    components to add an event listener. But I'd like to know if it is
    possible to register a global event listener to be notified when
    any component is created. As my first post says, I tried to use the
    systemManager and listen to the PREINITIALIZE event, but that
    didn't get always get invoked.

  • ALV Tree event registration doesn't work

    Hello Experts,
    the following is the registration-form which shall register a item-double-click event to my alv-tree-object. when doing the double-click it doesn't open my own methods in the event-handler class but the standard ones and nothing happens further.
    Any ideas?
    Many thanks in advance!
    Tobias
    FORM register_events.
      DATA: lt_events TYPE cntl_simple_events,
            l_event TYPE cntl_simple_event.
      CALL METHOD g_alv_tree->get_registered_events
        IMPORTING
          events = lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_item_double_click.
      APPEND l_event TO lt_events.
      CALL METHOD g_alv_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.
      CREATE OBJECT event_handler.
      SET HANDLER event_handler->handle_item_double_click FOR g_alv_tree.
    ENDFORM.

    It doesn't matter where I place my double-click. The standard event handling "handle_event" is called.
    Instead of this I would like to have my coding.....
    Changing the cl_gui_alv_tree to cl_gui_column_tree doesn't work since my tree isn't a reference of column_tree but of alv_tree. So I would have to rebuild nearly the entire tree. This cannot be a solution since I guess the double-click item should work anyway.
    What I am wondering furthermore is my button declaration not being displayed. The following is my fieldcatalog declaration:
    FORM create_tree_fc.
      DATA: ls_fc TYPE lvc_s_fcat.
      DATA: lo_descrref   TYPE REF TO cl_abap_typedescr.
      DATA: lo_tableref TYPE REF TO cl_abap_tabledescr.
      DATA: lo_structref TYPE REF TO cl_abap_structdescr.
      FIELD-SYMBOLS: <fs_str> TYPE abap_compdescr.
      lo_tableref ?= cl_abap_tabledescr=>describe_by_data( lt_report_tree ).
      lo_descrref ?= lo_tableref->get_table_line_type( ).
      lo_structref ?= lo_descrref.
      CLEAR gt_fc[].
      LOOP AT lo_structref->components ASSIGNING <fs_str>.
        CLEAR ls_fc.
        ls_fc-fieldname = <fs_str>-name.
        ls_fc-intlen = <fs_str>-length.
        ls_fc-inttype = <fs_str>-type_kind.
        ls_fc-decimals = <fs_str>-decimals.
        CASE <fs_str>-name.
          WHEN 'PROCESS_TYPE'.
            ls_fc-tooltip = 'Process Type'.
            ls_fc-coltext = 'Process Type'.
            ls_fc-emphasize = 'C110'.
            ls_fc-no_sum = 'X'.
            ls_fc-style = cl_gui_column_tree=>item_class_button.
            ls_fc-outputlen = 20.
          WHEN 'SMI_PROJECT'.
            ls_fc-tooltip = 'Project Relation'.
            ls_fc-coltext = 'Project'.
            ls_fc-hotspot = 'X'.
            ls_fc-no_sum = 'X'.
            ls_fc-style = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
            ls_fc-outputlen = <fs_str>-length.
          WHEN 'TRORDER_NUMBER'.
            ls_fc-tooltip = 'ID of Transport Request'.
            ls_fc-coltext = 'Transport Request'.
            ls_fc-no_sum = 'X'.
            ls_fc-style = CL_GUI_ALV_GRID=>MC_STYLE_HOTSPOT.
            ls_fc-outputlen = 30.
        ENDCASE.
        APPEND ls_fc TO gt_fc.
      ENDLOOP.
    ENDFORM.
    Edited by: Tobias Fickinger on Jun 10, 2009 9:59 AM
    Edited by: Tobias Fickinger on Jun 10, 2009 10:00 AM
    Edited by: Tobias Fickinger on Jun 10, 2009 10:03 AM

  • Can't reject drag/drop moves in event handler

    How does one reject a move from within the dragDrop event
    handler? I cannot figure out how to do this.
    I have dragMoveEnabled in the tree and I need to reject
    certain attempts like moving a 'folder' node to a certain node
    type.
    I can easily detect any combination of things that would
    constitute a rejection signal, but I can't seem to force the move
    to be canceled. I'm handling copies myself within the dragDrop
    handler, but I would like to let it do the moves for me since they
    are pretty simple and don't require any extra processing. I just
    need to cancel certain ones.
    anyone try this?

    update: changing the batteries on the wireless Logitech mouse slightly improved the situation--but not by much.
    update 2: when I swap in an old corded one-button Apple mouse, the problem disappears, which places the blame squarely on the wireless mouse. I should have thought of doing this before posting in this forum, sorry.
    Do wireless mice really lose it so abruptly like this? rats, I've gotten accustomed to those programmable buttons and the scroll wheel...

  • Teaching Event Handling

    Hi,
    I need to tech to a small group of students Java Event Handling.
    I do not want to go deep. Their level is not high. Maybe some custom events and event listeners (mainly ActionListeners, ItemListeners and WindowListeners).
    I need to find a good teaching example. A simple application that will let them understand how Event Handling is done, the right way.
    The tutorial consists of 2 parts.
    I do not ask for code (although it is welcome). I ask for some ideas on how to do it and one exercise that can be taught in 2 steps (courses).
    Any ideas would be appreciated!
    Chris

    Hi,
    You can give 2 basic exmples of even handling
    1. Click on button: 'Action Performed', which will give idea of about how controls are handled.
    2. Tree Example: Expansion & Collapse all of children nodes, which will give overview of delegation of events and calling some events programmatically.
    I think this will give students a rough but good idea about events, though they need not dig up in deep.
    Best Regards,
    Yashodhan

  • Event Handling for messages

    I would like to know how to handle events for messages i maintained in zmesg01.
    messages are follow:    when gv_spfli is initial
                                 "No such flight available.
                                when  gv_scarr is initial.
                                  "Flight name not available          with help of raise event ?
    pls suggest.
    *       CLASS lcl_mytestclass DEFINITION
    class lcl_mytestclass definition.
    public section.
       data: gt_spfli type table of spfli initial size 20,
               gt_scarr type table of scarr initial size 20.
       methods: get_data.
       events: data_not_found.
    endclass.                    "lcl_mytestclass DEFINITION
    *       CLASS lcl_mytestclass IMPLEMENTATION
    class lcl_mytestclass implementation.
    method: get_data.
       select * from spfli into table gt_spfli.
       if ( sy-subrc <> 0 ).
         raise event data_not_found.
         endif.
    select * from scarr into gt_scarr
    for all entries in gt_flight where  carrname = gt_spfli-carrname.
    if sy-subrc  <> 0.
    " How to call event for flight_name_not_found ?"
    raise event flight_name_not_found.
      endmethod.                    "get_data
      endclass.                    "lcl_mytestclass IMPLEMENTATION
    *       CLASS handler DEFINITION
    class handler definition.
    public section.
       methods handle_event
               for event data_not_found of lcl_mytestclass.
    endclass.                    "handler DEFINITION
    *       CLASS handler IMPLEMENTATION
    class handler implementation.
    method handle_event.
       write: / 'Data not found'.
    endmethod.                    "handle_excess
    endclass.                    "handler IMPLEMENTATION
    data: oref type ref to lcl_mytestclass,
         h1   type ref to handler.
    start-of-selection.
    create object: oref, h1.
    set handler h1->handle_event for all instances.
    call method oref->get_data.
    Thanks in advance.
    Anee.

    Hello Anee
    Events are not used for this kind of message handling.
    If you want to collect all messages then use a message handler (see sample report ZUS_SDN_ABAP_OO_MSG_HANDLING ).
    Alternatively, you may define an exception class and raise a class-based exception which contains the detailed error message.
    The following sample report is based on the more elaborate Wiki posting
    [Message Handling - Finding the Needle in the Haystack|https://wiki.sdn.sap.com/wiki/display/profile/2007/07/09/MessageHandling-FindingtheNeedleintheHaystack]
    *& Report  ZUS_SDN_ABAP_OO_MSG_HANDLING
    *& Thread: Event Handling for messages
    *& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="1052131"></a>
    REPORT  zus_sdn_abap_oo_msg_handling.
    TYPE-POOLS: abap.
    *       CLASS lcl_mytestclass DEFINITION
    CLASS lcl_mytestclass DEFINITION.
      PUBLIC SECTION.
        DATA: gt_spfli TYPE TABLE OF spfli INITIAL SIZE 20,
                gt_scarr TYPE TABLE OF scarr INITIAL SIZE 20.
        METHODS: constructor.
        METHODS: get_data
                       IMPORTING
                     value(id_carrid) TYPE s_carr_id.
        METHODS: has_messages
                   RETURNING value(rd_result)  TYPE abap_bool.
        METHODS: display_messages.
        EVENTS: data_not_found.
      PROTECTED SECTION.
        DATA: mo_msglist    TYPE REF TO if_reca_message_list.
    ENDCLASS.                    "lcl_mytestclass DEFINITION
    *       CLASS lcl_mytestclass IMPLEMENTATION
    CLASS lcl_mytestclass IMPLEMENTATION.
      METHOD constructor.
        me->mo_msglist = cf_reca_message_list=>create( ).
      ENDMETHOD.                    "constructor
      METHOD has_messages.
        IF ( me->mo_msglist->is_empty( ) = abap_false ).
          rd_result = abap_true.
        ENDIF.
      ENDMETHOD.                    "has_messages
      METHOD display_messages.
    * define local data
        DATA:
          ld_handle           TYPE balloghndl,
          lt_log_handles      TYPE bal_t_logh,
          ls_profile          TYPE bal_s_prof.
        " Get log handle of collected message list
        ld_handle = me->mo_msglist->get_handle( ).
        APPEND ld_handle TO lt_log_handles.
    *   get a display profile which describes how to display messages
        CALL FUNCTION 'BAL_DSP_PROFILE_DETLEVEL_GET'
          IMPORTING
            e_s_display_profile = ls_profile.  " tree & ALV List
    *   set report to allow saving of variants
        ls_profile-disvariant-report = sy-repid.
    *     when you use also other ALV lists in your report,
    *     please specify a handle to distinguish between the display
    *     variants of these different lists, e.g:
        ls_profile-disvariant-handle = 'LOG'.
        CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
          EXPORTING
            i_s_display_profile          = ls_profile
            i_t_log_handle               = lt_log_handles
    *       I_T_MSG_HANDLE               =
    *       I_S_LOG_FILTER               =
    *       I_S_MSG_FILTER               =
    *       I_T_LOG_CONTEXT_FILTER       =
    *       I_T_MSG_CONTEXT_FILTER       =
    *       I_AMODAL                     = ' '
    *     IMPORTING
    *       E_S_EXIT_COMMAND             =
          EXCEPTIONS
            profile_inconsistent         = 1
            internal_error               = 2
            no_data_available            = 3
            no_authority                 = 4
            OTHERS                       = 5.
        IF sy-subrc <> 0.
    *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDMETHOD.                    "display_messages
      METHOD: get_data.
        SELECT * FROM spfli INTO TABLE gt_spfli
          WHERE ( carrid = id_carrid ).
        IF ( sy-subrc NE 0 ).
    **      RAISE EVENT data_not_found.
          IF 1 = 2. MESSAGE e154(bc_datamodel_service). ENDIF.
    *   Flight not found (table SFLIGHT)
          CALL METHOD me->mo_msglist->add
            EXPORTING
    *          is_message   =
              id_msgty     = 'E'
              id_msgid     = 'BC_DATAMODEL_SERVICE'
              id_msgno     = '154'
    *          id_msgv1     =
    *          id_msgv2     =
    *          id_msgv3     =
    *          id_msgv4     =
              id_detlevel  = '1'
    *        IMPORTING
    *          es_message   =
        ENDIF.
        IF ( gt_spfli IS INITIAL ).
        ELSE.
          SELECT * FROM scarr INTO TABLE gt_scarr
          FOR ALL ENTRIES IN gt_spfli
            WHERE  carrid = gt_spfli-carrid.
        ENDIF.
        IF ( gt_scarr is initial ).
          " How to call event for flight_name_not_found ?"
    **        RAISE EVENT flight_name_not_found.
          IF 1 = 2. MESSAGE e159(bc_datamodel_service) WITH '&all'. ENDIF.
    *   Airline & not found
          CALL METHOD me->mo_msglist->add
      EXPORTING
    *          is_message   =
        id_msgty     = 'E'
        id_msgid     = 'BC_DATAMODEL_SERVICE'
        id_msgno     = '159'
        id_msgv1     = '&all'
    *          id_msgv2     =
    *          id_msgv3     =
    *          id_msgv4     =
        id_detlevel  = '2'
    *        IMPORTING
    *          es_message   =
        ENDIF.
      ENDMETHOD.                    "get_data
    ENDCLASS.                    "lcl_mytestclass IMPLEMENTATION
    *       CLASS handler DEFINITION
    CLASS handler DEFINITION.
      PUBLIC SECTION.
        METHODS handle_event
                FOR EVENT data_not_found OF lcl_mytestclass.
    ENDCLASS.                    "handler DEFINITION
    *       CLASS handler IMPLEMENTATION
    CLASS handler IMPLEMENTATION.
      METHOD handle_event.
        WRITE: / 'Data not found'.
      ENDMETHOD.                    "handle_excess
    ENDCLASS.                    "handler IMPLEMENTATION
    DATA: oref TYPE REF TO lcl_mytestclass,
         h1   TYPE REF TO handler.
    PARAMETER:
      p_carrid    TYPE s_carr_id DEFAULT 'AA'.
    START-OF-SELECTION.
    START-OF-SELECTION.
      CREATE OBJECT: oref, h1.
    **  SET HANDLER h1->handle_event FOR ALL INSTANCES.
      CALL METHOD oref->get_data( p_carrid ).
      IF ( oref->has_messages( ) = abap_true ).
        oref->display_messages( ).
      ENDIF.
    END-OF-SELECTION.
    Regards
      Uwe

  • How to pass params to Action Event handler in treeNode?

    Trying to use Tree in portlet I found impossible to determine selected node. (bug # 6354989).
    But I can (despite what is written in manual) use Action Event Handler. It works now (at least, I hope so).
    But I generate tree dynamically and cannot write event handlers for all its nodes. May be there's a way to write one event handler but distinguish node that triggered it? May be by passing additional params to handler?

    The tree component does not work well in portlets. This is a known problem.
    It uses cookies to pass the value of the selected node, but cookies do not work inside of portlets. So, the methods that would normally tell you which node is selected, return nothing. There are also no javascript properties which would allow you to output javascript to store the value somewhere in the page.
    Unfortunately there is no workaround for the bug you mentioned so far so far.
    Rose

  • Issues with Post Process Event Handler in oim11g

    Hi I am trying to trigger a post process event handler to set middle name but couldn't succeed.
    can you please point out the mistakes if there are any?
    This is the Java code.
    package oim.eventhandler;
    import java.io.Serializable;
    import java.util.HashMap;
    import oim.util.FROLogger;
    import oracle.iam.identity.usermgmt.vo.User;
    import oracle.iam.platform.context.ContextAware;
    import oracle.iam.platform.kernel.spi.PostProcessHandler;
    import oracle.iam.platform.kernel.vo.AbstractGenericOrchestration;
    import oracle.iam.platform.kernel.vo.BulkEventResult;
    import oracle.iam.platform.kernel.vo.BulkOrchestration;
    import oracle.iam.platform.kernel.vo.EventResult;
    import oracle.iam.platform.kernel.vo.Orchestration;
    public class setmiddlename implements PostProcessHandler {
         public void initialize(HashMap<String, String> arg0) {
              // TODO Auto-generated method stub
         public boolean cancel(long arg0, long arg1,
                   AbstractGenericOrchestration arg2) {
              // TODO Auto-generated method stub
              return false;
         public void compensate(long arg0, long arg1,
                   AbstractGenericOrchestration arg2) {
              // TODO Auto-generated method stub
         * public EventResult execute(long arg0, long arg1, Orchestration arg2) { //
         * TODO Auto-generated method stub return null; }
         public BulkEventResult execute(long arg0, long arg1, BulkOrchestration arg2) {
              // TODO Auto-generated method stub
              return null;
         public EventResult execute(long processId, long eventId,
                   Orchestration orchestration) {
              HashMap<String, Serializable> parameters = orchestration.getParameters();
              // If the middle name is empty set the first letter of the first name as the middle initial
              String middleName = getParamaterValue(parameters, "Middle Name");
              if (middleName.trim().length()>0) {
              String firstName = getParamaterValue(parameters, "First Name");
              middleName = firstName.substring(0,1);
              orchestration.addParameter("Middle Name", middleName);
              return new EventResult();
         private String getParamaterValue(HashMap<String, Serializable> parameters, String key) {
              String value = (parameters.get(key) instanceof ContextAware)
              ? (String) ((ContextAware) parameters.get(key)).getObjectValue()
              : (String) parameters.get(key);
              return value;
    ################ PostProcessEventHandlers.XML#############
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
    <!-- Custom validation event handlers -->
    <!-- Custom preprocess event handlers -->
    <action-handler
    class="oim.eventhandler.setmiddlename"
    entity-type="User"
    operation="CREATE"
    name="setmiddlename"
    stage="postprocess"
    order="1000"
    sync="TRUE"/>
    </eventhandlers>
    ################ plugin.xml##############
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="oim.eventhandler.setmiddlename" version="1.0" name="setmiddlename"/>
    </plugins>
    </oimplugins>
    ################ weblogic.properties##############
    wls_servername=oim_server1
    application_name=OIMMetadata
    metadata_from_loc=/data1/oim_install/Oracle/Middleware/Oracle_IDM1/server/temp/import/metadata/custom/PostProcess
    metadata_files=/metadata/custom/PostProcess/PostProcessEventHandlers.xml
    application_version=11.1.1.3.0
    And the PostProcessEventHandlers.zip contains lib\PostProcess.jar
    both PostProcessEventHandlers.zip and PostProcessEventHandlers.xml are placed in the "metadata_from_loc"
    The registration was successful and I could see the entries in the PLUGINS table
    ID: oim.eventhandler.setmiddlename
    TYPE:     oracle.iam.platform.kernel.spi.EventHandler
    VERSION:     1.0
    NAME:     setmiddlename
    ZIPID:     23
    and PLUGIN_METADATA does not contain any values
    PLUGIN_ZIP contains ZIPID as 23 and ZIP as (BLOB)
    Did I miss anything?
    what is the mistake that I am doing?
    Edited by: 883725 on Sep 9, 2011 2:30 AM
    Edited by: 883725 on Sep 9, 2011 2:31 AM

    I am getting this error when running weblogicDeleteMetadata.sh.
    I have set the OIM Home and Weblogic home. Though Import and export works absolutely fine.
    Any other way where I can connect directly to DB and delete the contents?
    +Please enter your username [weblogic] :weblogic+
    +Please enter your password [welcome1] :+
    +Please enter your server URL [t3://localhost:7001] :t3://localhost:10070+
    Connecting to t3://localhost:10070 with userid weblogic ...
    Successfully connected to Admin Server 'AdminServer' that belongs to domain 'IDM_domain'.
    Warning: An insecure protocol was used to connect to the
    server. To ensure on-the-wire security, the SSL port or
    Admin port should be used instead.
    Location changed to domainRuntime tree. This is a read-only tree with DomainMBean as the root.
    For more help, use help(domainRuntime)
    Problem invoking WLST - Traceback (innermost last):
    File "/data1/oim_install/Oracle/Middleware/Oracle_IDM1/server/bin/weblogicDeleteMetadata.py", line 21, in ?
    File "/data1/oim_install/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 109, in deleteMetadata
    File "/data1/oim_install/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 574, in executeAppRuntimeMBeanOperation
    File "/data1/oim_install/Oracle/Middleware/oracle_common/common/wlst/mdsWLSTCommands.py", line 713, in saveStackAndRaiseException
    WLSTException: MDS-00001: exception in Metadata Services layerMDS-91009: Operation "deleteMetadata" failure. Use dumpStack() to view the full stacktrace.

Maybe you are looking for

  • How do I clear updated apps listed by date in the Updates section of the App Store app?

    How do I clear updated apps listed by date in the Updates section of the App Store app?

  • Calling ALV grid in class method

    Is it possible to call a ALV grid display in a class~method. I thought, I would call a screen and make a ALV grid display using the control frame work,it is no possible to call screen inside a method. Then i tried to avoid calling the screen.. data:

  • PR overall release strategy with acc. assignment category characteristics

    Hi, Here is my issue : i created an Overall release strategy but the characteristic is on item level. In some precise cases, no release is generated. see below more details : I have created the following PR release strategy with classification. PR ty

  • Rac is down

    Hi alll. I have a huge problem with oracle RAC. I can't startup crs: [oracle@host ~]$ sudo crsctl start crs Attempting to start CRS stack The CRS stack will be started shortly [oracle@host ~]$ sudo crsctl check crs Failure 1 contacting CSS daemon Can

  • Options button in iTunes software

    First iPod. I wish to change the automatic download settings and the features guide says to click on the "options" button after clicking on iPod. However, I do not find any options button - the only button showing is the eject iPod button. Also, soft