Tree item when-tree-node-selected fires differently from 6i to 10g.

In forms 6i, when you keyboard navigate between tree nodes, the wtns trigger will fire. In 10g it does not. In 10g, it will fire if you press the tab key or mouse click on a node.
Anyone know if this was done on purpose?
I ran into this after finally trying my props.fmb in 10g. It works fine in 6i, but not in 10g
copy of my form is here:
http://www.tailboom.com/oracle.php
Forms [32 Bit] Version 6.0.8.18.3 (Production) cleint server
Forms [32 Bit] Version 10.1.2.0.2 (Production)
I wrote most of the tree handling code for oracle apps APPTREE. This is the code that most if not all tree's in apps uses to build standard tree. So I have a pretty good understanding of the forms tree item. And know the wtns fired for web forms 6i on every node like 6i client server. This is very strange IMO.
Thanks.
--pat                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Oleg,
thanks for the reference. Although the bug you identify deals with when-tree-node-activated, it is possible they fixed the when-tree-node-selected issue at the same time. With my test tree, i can currently duplicate both issues. I tried to download the patch, but it is only available for linux and unix. No windows patch. I don't have my linux env up and running to where I can test yet. So I can not confirm.
--pat                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • OPEN FORM WHEN-TREE-NODE-SELECTED

    hello all...
    i have a tree and i wanna when i click on the node another forms open due to form name
    i have table includes form_if,form_name " as in H.D.D"
    when i present all nodes and i click on the node the form opened and when i click on other node from the tree
    " the last previous selected node also opened and when i close it the new form is opened and so on"
    the code in when-tree-node-selected is
    DECLARE
    node_value varchar2 (100);
    frm_name varchar2 (100);
    path varchar2 (100);
    BEGIN
    node_value := ftree.get_tree_node_property('block33.sub_TREE',:SYSTEM.TRIGGER_NODE, FTREE.NODE_VALUE);
    select FRM_NAME into frm_name
    from forms_list
    where FO_ID = node_value
    path :=(frm_name||'.fmx');
    call_form(path);
    path:=null;
    frm_name:=null;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN NULL;
    END;

    Hi,
    >
    when-tree-node-selected
    >
    Fires when a node is selected or deselected.
    So your code is getting executed for selection and deselection
    use SYSTEM.TRIGGER_NODE_SELECTED to check
    IF SYSTEM.TRIGGER_NODE_SELECTED THENRegards
    Yoonas

  • When-tree-node-selected not fire while navigating through keyboard(Urgent)

    i am using treeview for displaying chart of account and fires the above said trigger in the form, but the trigger has no effect whilt navigating tree view with keybpard arrow keys until user explicitly select the node through mouse help me out plzz
    i want that trigger also fires when user navigate and select node through keyboard or through mouse thanks
    its urgent

    Stop duplicating your threads!!!
    when-tree-node-selected (Urgent)
    You posted the same question 2 days ago and I've answered you, you didn't even provide an exact version of your forms.
    Posting again will not change your problem.
    Do not waste space on the forum.

  • WHEN-TREE-NODE-SELECTED

    Hello alllll
    i have a master-detail block besides a tree block
    All i wanna do Simply and logically is to select a tree node then a Master-Detail records related to this tree node is to be retrieved...
    _i have the following code in the WHEN-TREE-NODE-SELECTED Trigger as follow:_
    DECLARE
      htree ITEM;
       node_value VARCHAR2(100);
    BEGIN
    IF :SYSTEM.TRIGGER_NODE_SELECTED = 'TRUE' THEN
    -- Find the tree itself.
    htree := FIND_ITEM ('BL_TREE.IT_TREE');
    -- Find the value of the node clicked on.
    NODE_VALUE := FTREE.GET_TREE_NODE_PROPERTY( htree, :SYSTEM.TRIGGER_NODE ,  Ftree.NODE_LABEL );
       GO_BLOCK ('STP_COMPANIES');  
    EXECUTE_QUERY;
        END IF;
    END;The above code retrieved data as a whole
    but i want 2 filter the data selected from the tree node as i said 2 be displayed as filtered by the tree selection.
    so i used the following code as follow:
    GO_BLOCK ('GL_COST_CENTERS');  
       set_block_property('GL_COST_CENTERS', DEFAULT_WHERE, 'COMPANY_ID ='||
       ftree.get_tree_node_property('BL_TREE.IT_TREE', :SYSTEM.TRIGGER_NODE, FTREE.NODE_VALUE));
    EXECUTE_QUERY;Any help will be appreciated...
    Thanks in Advance..
    Regards,
    Abdetu...

    Hello thanks for reply,
    STP_COMPANIES your detail block? no it's the master
    gets the "Label" of the tree node not the value of the selected nodei tried both but nothing retrieved...!
    i thought that the value is the serial of the node and the lable is the text displayed on the tree node no ?
    Is this code in the same When-Tree-Node-Selected trigger or a different trigger?yes WHEN-TREE-NODE-SELECTED as my post titled...
    is GL_COST_CENTERS the master block? no it's the detail ; every company --- has many <- cost centers
    are the tables related? yes
    just query the master table and the detail table will automatically be filter through the relationship?i did and it works filtering through the company_id, But what i wanna do is 2 filter the data displayed in the two block Master-Detail according 2 the selection of the tree
    Say i selected the ....
                               + Assets node
                               |
                               |------ - Furnitures    's node is selected so alll the related details of the furniture is displayed in the Master-BLock
                               |         |
                               |         +----chairs
                               |         |
                               |         +----tables
                               |        
                               +----- LAnds
                               |So the Tree is used 2 Query or retrieved the selected node's data accordingly...
    hope i well explained my issue ..!
    is it possible 2 do that ?!
    Thanks Again..
    Regards,
    Abdetu...

  • WHEN-TREE-NODE-SELECTED Action required..!

    Hello all,
    i am using a tree for the first time, i want to reflect the value of the node's id and desc in it's database item where they r inserted.
    The problem is the desc is not displayed NOT.
    But the node id is working just fine..Why ?
    Can anyone help me pls..?
    i am using the following code:
    WHEN-TREE-NODE-SELECTED Trigger:
    :EQUIPMENT_TYPE_D := :SYSTEM.TRIGGER_NODE;
    --The above returns the item_id of the node.
    BEGIN
           SELECT EQUIPMENT_TYPE
           INTO :EQUIPMENT_TYPE
           FROM INSP_EQUIPMENT_TYPE
           WHERE EQUIPMENT_TYPE_D = :EQUIPMENT_TYPE_D ;
    Exception
    When No_Data_Found THEN NULL;
    When Others THEN
                                     Message ('OTHERS' || SQLCODE || ' And ' || SQLERRM);
                                     Message ('OTHERS' || SQLCODE || ' And ' || SQLERRM);                          
    END;Regards,
    Abdetu..

    The WHEN-TREE-NODE-SELECTED trigger fires twice, it fires when selecting the node and when deselcting the node.
    First make sure that you SQL works in SQL*Plus, Handle your EXCEPTION correctly, remove the NULL from your exception and put a message, maybe your SQL is not returning any rows.
    add the below if condition in your trigger. This will make your code to be executed only when you select the node and not when you deselect it.
    IF :SYSTEM.TRIGGER_NODE_SELECTED = 'TRUE' THEN
      ...    --Your execution code
    END IF; If your item name is the node's label itself you can easily do this:
    IF :SYSTEM.TRIGGER_NODE_SELECTED = 'TRUE' THEN
      :your_block.your_item  := FTREE.GET_TREE_NODE_PROPERTY(HTREE$, :SYSTEM.TRIGGER_NODE, FTREE.NODE_LABEL);
    END IF; Tony
    Edited by: Tony Garabedian on Sep 11, 2008 12:29 PM

  • WHEN-TREE-NODE-SELECTED need 2 Execute-Query on Master-Detail data block

    I optimize tree using this link
    http://andreas.weiden.orcl.over-blog.de/article-29307730.html_+
    For huge amount of data (Accountings)
    All i need for now is
    WHEN-TREE-NODE-SELECTED need 2 Execute-Query on the data block
    DECLARE
    htree ITEM;
    node_value VARCHAR2(100);
    BEGIN
    IF :SYSTEM.TRIGGER_NODE_SELECTED = 'TRUE' THEN
    -- Find the tree itself.
    htree := FIND_ITEM ('BL_TREE.IT_TREE');
    node_value := FTREE.GET_TREE_NODE_PROPERTY( htree, :SYSTEM.TRIGGER_NODE ,  ftree.node_value  );
       GO_BLOCK ('GL_ACCOUNTS');
       set_block_property('GL_ACCOUNTS', DEFAULT_WHERE , 'ACCOUNT_ID ='|| node_value  );
    EXECUTE_QUERY;
    END IF;
    END;The above code is working fine 4 the detail block which is *'GL_ACCOUNTS'*
    when i substitute is Master block which is 'GL_ACCOUNTS_TYPES' it doesn't display all data
    Help is Appriciated pls.
    Regards,
    Abdetu...

    Hello
    In WHEN-TREE-NODE-SELECTED i modified the following code :_
    DECLARE
            htree ITEM;
           node_value VARCHAR2(100);
           parent_node FTREE.NODE;
    BEGIN
      IF :SYSTEM.TRIGGER_NODE_SELECTED = 'TRUE' THEN
      -- Find the tree itself.
      htree := FIND_ITEM ('BL_TREE.IT_TREE');
      -- Get the parent of the node clicked on. 
                  parent_node := FTREE.GET_TREE_NODE_PARENT ( htree, :SYSTEM.TRIGGER_NODE );
           GO_BLOCK('GL_TYPES');
                set_block_property('GL_TYPES', DEFAULT_WHERE , 'TYPE_ID ='|| parent_node  );
                  EXECUTE_QUERY;
      -- Get the detail of the parent node
          node_value := FTREE.GET_TREE_NODE_PROPERTY( htree, :SYSTEM.TRIGGER_NODE ,  ftree.node_value  );
               GO_BLOCK('GL_ACCOUNTS');
               set_block_property('GL_ACCOUNTS', DEFAULT_WHERE , 'ACCOUNT_ID ='|| node_value  );     
                   EXECUTE_QUERY;
          END IF;
    END;
    FRM-40350 : Query caused no records to be retrieved but i have records in the data base ...!
    Well, Do u think that's because in ur package i retrieve only the detail block ?
    Regards,
    Abdetu...

  • WHEN-TREE-NODE-SELECTED want to return parent_id ?

    Hello all,
    In WHEN-TREE-NODE-SELECTED Trigger
    i want to return the parent_id from the database
    i have already returned the pk as follows:
    DECLARE  
           pk               INSP_EQUIPMENT.EQUIPMENT_ID%TYPE;
          PARENT_PK   INSP_EQUIPMENT.PARENT_ID%TYPE;
    BEGIN 
       IF  :SYSTEM.TRIGGER_NODE_SELECTED  = 'TRUE' THEN   --node selected
        pk := ftree.get_tree_node_property(
            'TREE_BLOCK_TEST.TREE13',
            :system.trigger_node,
            ftree.node_value);
           message('pk: '||pk);  -- works fine
            message('pk: '||pk);
    {code}<br /><br /><br /><br />The Questiuoin is how could i returned the parent_id <br /><br />i used the same code as follows:<br /><br /><br /><br /><br /><br />{code:java}
    BEGIN 
       IF  :SYSTEM.TRIGGER_NODE_SELECTED  = 'TRUE' THEN   --node selected
        PARENT_PK := ftree.get_tree_node_property(
            'TREE_BLOCK_TEST.TREE13',
            :system.trigger_node,
            ftree.node_value);
           message('PARENT_PK : '||PARENT_PK );  -- works Wrond it returns the same pk
            message('PARENT_PK : '||PARENT_PK );
    {code}<br /><br /><br /><br /><br /><br />i tried also tried <br /><br /><br /><br />{code:java}
      PARENT_PK := ftree.Get_Tree_Node_Parent(
            'TREE_BLOCK_TEST.TREE13'
            ftree.node_value);
            message('PARENT_PK: '||PARENT_PK); -- returns rubbish number
            message('PARENT_PK: '||PARENT_PK); 
    {code}<br /><br /><br /><br />Quick Help will be appreciated..<br /><br /><br /><br />Regards,<br /><br /><br /><br />Abdetu..                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    Thanks Tony for reply,
    Getting the folowing error:
    FRM-47307: Cannot get the properties of the tree root node.Cause:  GET_TREE_NODE_PARENT or GET_TREE_NODE_PROPERTY attempted to obtain information from the root node.
    Action:  Only invoke the built-ins against valid nodes.
    Level:  99
    Type:  ErrorRegards,
    Abdetu..

  • Tree Node selected not firing all the time

    I have a tree menu that calls other forms when the user selects a tree branch (see
    When-tree-node-selected trigger below).
    This works fine, but if the user closes the form and want to re-open it, the trigger doesn't fire unless the user clicks off the branch item and back on it. How can I make it work whenever the user clocks the branch item?
    if :SYSTEM.TRIGGER_NODE_SELECTED = 'TRUE' then null;
    node_value := Ftree.Get_Tree_Node_Property(htree, :SYSTEM.TRIGGER_NODE, Ftree.NODE_VALUE);
    open_a_form(l_form,l_module,l_form_code);
    end if;

    Have you tried setting the node the node to deselected programmatically?

  • How to run a form using tree node selection??

    hi...
    i have populated a tree with all the form name.There is a particular id for every form.i want to show a form using tree node selection.What i did...i write a trigger in button's click event when the tree node is selected then i get a id.if id=1 then open_form('test.fmx').when i want to execute this code then it is showing the same form 2 times.Can anyone help me to solve my problem?If so plz tell me what code i have to write to show a form using node selection?.

    I've done the same thing, and i think it works fine.
    Check this code (Sorry for the long post, but i cannot find how to attach files.
    PACKAGE menu_pk IS
    --Initialization of the menu.
    procedure Init;
    --Called from WHEN-TREE-NODE-EXPANDED
    procedure Expanded;
    --Called from WHEN-TREE-NODE-ACTIVATED
    procedure ExecuteCommand;
    END;
    PACKAGE BODY menu_pk IS
    MENU_NAME constant varchar2(30) := 'menu.menu';
    cursor c_menu(pRoot in varchar2) is
    select apm_code, apm_parcode, apm_descr, decode(apm_type, 0, Ftree.EXPANDED_NODE, Ftree.LEAF_NODE) apm_type,
    decode(apm_type, 0, 'menu', 1, 'form', 2, 'report') || '.ico' apm_icon
    from app_menu
    where apm_parcode = pRoot
    order by apm_code asc;
    procedure Init is
         new_node ftree.node;
    begin
         for i in c_menu('root')
         loop
    new_node := Ftree.add_tree_node(MENU_NAME, FTree.ROOT_NODE,
    Ftree.PARENT_OFFSET, Ftree.LAST_CHILD,
    i.apm_type, i.apm_descr, i.apm_icon, i.apm_code);
         end loop;
    end;
    procedure FillNode(pNode in FTree.Node) is
         new_node ftree.node;
    begin
         for i in c_menu(FTree.get_tree_node_property(MENU_NAME, pNode, FTree.NODE_VALUE))
         loop
    new_node := Ftree.add_tree_node(MENU_NAME, pNode,
    Ftree.PARENT_OFFSET, Ftree.LAST_CHILD,
    i.apm_type, i.apm_descr, i.apm_icon, i.apm_code);
         end loop;
    end;
    procedure DeleteNodeChilds is
    node FTree.NODE;
    begin
         loop
    node := FTree.Find_Tree_Node(MENU_NAME, '',
         FTree.FIND_NEXT_CHILD, FTree.NODE_VALUE,
         name_in('system.trigger_node'), name_in('system.trigger_node'));
              exit when Ftree.ID_NULL(node);
              FTree.delete_tree_node(MENU_NAME, node);
         end loop;
    end;
    procedure Expanded is
    begin
         if (FTree.GET_TREE_NODE_PROPERTY(MENU_NAME, :system.trigger_node, FTree.Node_State) = FTree.EXPANDED_NODE) then
         menu_pk.FillNode(name_in('system.trigger_node'));
         else
              menu_pk.DeleteNodeChilds;
         end if;
    end;
    procedure ExecuteCommand is
    cursor c_command(pCode in varchar2) is
    select apm_form, apm_type
    from app_menu
    where apm_code = pCode;
    fCommand c_command%rowtype;
    fMenuCode varchar2(20);
    begin
         -- if it is as menu node then exit.
    if (not FTree.Get_Tree_Node_Property(MENU_NAME, :system.trigger_node, FTree.NODE_STATE) = FTree.LEAF_NODE) then
         return;
    end if;
    fMenuCode := FTree.Get_Tree_Node_Property(MENU_NAME, :system.trigger_node, FTree.NODE_VALUE);
         open c_command(fMenuCode);
         fetch c_command into fCommand;
         close c_command;
         if (fCommand.apm_type = 1) and (fCommand.apm_form is not null) then
              globals.Set_MenuChoice(fMenuCode);
              OPEN_FORM(fCommand.apm_form);--, ACTIVATE, SESSION);
         end if;
    end;
    END;
    The menu table definition follows.
    create table APP_MENU
    APM_CODE VARCHAR2(10) not null,
    APM_PARCODE VARCHAR2(10) not null,
    APM_DESCR VARCHAR2(40) not null,
    APM_TYPE NUMBER(1) not null,
    APM_FORM VARCHAR2(50)
    alter table APP_MENU
    add constraint APP_MENU_PRI primary key (APM_CODE);
    Hope this helps

  • Tree node selection lost after returning from called page

    Hi
    in a default unbound task flow i have a Page1 calling Page2.
    Page1 displays a master-detail data using treetable component, while Page2 displays detail data (selected from Page1) as a read-only form.
    When coming back from Page2, Page1 tree node selection is lost and tree table is rendered as if was called for a first time (detail data are disclosed).
    How can I restore an original selection?
    (Jdev 11.1.2.2)
    Many thanx

    1. before goind to the Page 2, remember somewhere the selected row keys, as follows:
        RowKeySet rks = yourTreeTable.getSelectedRowKeys();2. after returning to the page 1, do as follows:
        Iterator rksIterator = rks.iterator();
        if (rksIterator.hasNext()) {
                 List key = (List)rksIterator.next();
                 JUCtrlHierBinding treeTableBinding = null;
                 treeTableBinding =
                         (JUCtrlHierBinding)((CollectionModel)table.getValue()).getWrappedData();
                 JUCtrlHierNodeBinding node =
                     treeTableBinding.findNodeByKeyPath(key);
                 RowKeySet newRks = new RowKeySetImpl();
                 if (node != null)
                     newRks.add(node.getKeyPath());
                 callSelectionListener(yourTreeTable, newRks);
                // refresh your tree table  - ommited here
         // where is:
         protected void callSelectionListener(RichTreeTable table, RowKeySet discRows) {
             SelectionEvent selEv =
                 new SelectionEvent(table, new RowKeySetImpl(), discRows);
             JSFUtils.resloveMethodExpression("bindings.YourVO.treeModel.makeCurrent", // <--  of course, adjust this value to the your selectionListener expression
                                              null,
                                              new Class[] { SelectionEvent.class },
                                              new Object[] { selEv });
         } // of makeCurrent()
        public  Object resloveMethodExpression(String expression, Class returnType, Class[] argTypes, Object[] argValues) {
            FacesContext facesContext = FacesContext.getCurrentInstance();
            Application app = facesContext.getApplication();
            ExpressionFactory elFactory = app.getExpressionFactory();
            ELContext elContext = facesContext.getELContext();
            MethodExpression methodExpression = elFactory.createMethodExpression(elContext, expression, returnType, argTypes);
            return methodExpression.invoke(elContext, argValues);
        }

  • Commandtoolbarbutton enabling/disabling based on tree node selection

    i am using the tree tag to generate a set of nodes and every node is a command link.... i have a set of commandtoolbarbuttons on top of the tree... the functionality i am trying to obtain is on press of the tree node( i.e, command link ) the commantoolbarbuttons are enabled or disabled.. on press of link i am able to get the tree node selected in the backing bean, and also i am setting some variables for the "disabled" attribute of commandtoolbarbutton. The problem i am facing here is i have a partialtrigger attribute in the commandtoolbarbutton pointing to the commandlink id. But the partial trigger is unable to identify the command link id outside the tree. And i cannot put the commandtoolbar buttons inside the tree...
    Can anyone please let me know how can i resolve this?? or is there anyother approach??
    The source code is as mentioned below...
    <af:panelGroupLayout layout="horizontal" halign="right">
    <f:facet name="separator">
    <af:spacer width="5px"/>
    </f:facet>
    <af:toolbox id="mainTab_box" >
    <af:toolbar id="mainTab_bar">
    <af:spacer width="80"/>
    <af:commandToolbarButton icon="/resources/images/new_ena.png" partialSubmit="true"
    shortDesc="New" id="ctb1_mainTab" disabled="#{nodeSelectionHandler.createToolbar}" partialTriggers="cl1"/>
    <af:commandToolbarButton icon="/resources/images/update_ena.png" partialSubmit="true"
    shortDesc="Update" id="ctb2_mainTab" disabled="#{nodeSelectionHandler.editToolbar}" partialTriggers="cl1"/>
    <af:commandToolbarButton icon="/resources/images/delete_ena.png" partialSubmit="true"
    shortDesc="Delete" id="ctb3_mainTab" disabled="#{nodeSelectionHandler.cancelToolbar}" partialTriggers="cl1"/>
    <af:commandToolbarButton icon="/resources/images/importIcon.png" partialSubmit="true"
    shortDesc="Import" id="ctb4_mainTab" disabled="#{nodeSelectionHandler.exportToolbar}" partialTriggers="cl1"/>
    <af:commandToolbarButton icon="/resources/images/exportIcon.png" partialSubmit="true"
    shortDesc="Export" id="ctb5_mainTab" disabled="#{nodeSelectionHandler.importToolbar}" partialTriggers="cl1"/>
    </af:toolbar>
    </af:toolbox>
    </af:panelGroupLayout>
    <af:panelGroupLayout layout="scroll">
    <af:tree var="node"
    value="#{browserTreeModel}"
    id="browsertree" inlineStyle="min-width:200px;min-height:400px;width:100%;height:100%"
    rowSelection="single" clientComponent="true" contentDelivery="immediate"
    >
    <f:facet name="nodeStamp">
    <af:panelGroupLayout id="pgl10">
    <af:image id="nodeIcon"
    inlineStyle="margin-right:3px; vertical-align:middle; height:16px; width:16px;"
    shortDesc="directory icon" rendered="#{node.destination != null}"
    source="#{node.destination}"/>
    <af:commandLink text="#{node.text}"
    id="cl1"
    disabled="false" partialSubmit="true"
    actionListener="#{nodeSelectionHandler.selectionPerformed}" >
    <f:attribute name="nodeId" value="#{node.id}"/>
    <f:attribute name="operation" value="#{node.associatedOperation}"/>
    </af:commandLink>
    </af:panelGroupLayout>
    </f:facet>
    </af:tree>
    </af:panelGroupLayout>

    With apologies, you're not aware of ELUtils class devised by Steve Muench:
    package view;
    import javax.faces.context.FacesContext;
    import javax.faces.el.MethodBinding;
    import javax.faces.el.ValueBinding;
    public class ELUtils {
      public static boolean test(String booleanExpr) {
        return Boolean.TRUE.equals(get(booleanExpr));
      public static String getAsStringWithDefault(String expr, String defaultExpr) {
        return (String)getWithDefault(expr, defaultExpr);
      public static String getAsString(String expr) {
        return (String)get(expr);
      public static Integer getAsInteger(String expr) {
        return (Integer)get(expr);
      public static Object get(String expr) {
        FacesContext fc = FacesContext.getCurrentInstance();
        ValueBinding vb = fc.getApplication().createValueBinding(expr);
        return vb.getValue(fc);
      public static Object getWithDefault(String expr, String defaultExpr) {
        Object exprVal = get(expr);
        return exprVal != null ? exprVal : get(defaultExpr);
      public static void set(String expr, String value) {
        Object valToSet = value;
        if (isELExpr(value)) {
          valToSet = get(value);
        set(expr, valToSet);
      public static void set(String expr, Object value) {
        FacesContext fc = FacesContext.getCurrentInstance();
        ValueBinding vb = fc.getApplication().createValueBinding(expr);
        vb.setValue(fc, value);
      private static boolean isELExpr(Object o) {
        if (o instanceof String) {
          String str = (String)o;
          str.trim();
          return str.startsWith("#{") && str.endsWith("}");
        return false;
      public static Object invokeMethod(String expr, Class[] paramTypes, Object[] params) {
        FacesContext fc = FacesContext.getCurrentInstance();
        MethodBinding mb = fc.getApplication().createMethodBinding(expr, paramTypes);
        return mb.invoke(fc, params);
      public static Object invokeMethod(String expr, Class paramType, Object param) {
        return invokeMethod(expr, new Class[] { paramType }, new Object[] { param });
    }Try that.
    CM.

  • Tree node selection handler...

    Hi i am having a tree of nodes..
    I am looking for a functionality where on the click of the tree node ( i.e, on just clicking or selecting the disabled command link ), the af:commandToolbarButton icons on the toolbar are enabled or disabled. Can anyone please let me know how can i do this??
    please find the tree code as mentioned below...
    <af:tree var="node"
    value="#{tree}"
    id="brtree" inlineStyle="min-width:200px;min-height:400px;width:100%;height:100%"
    rowSelection="single" clientComponent="true" contentDelivery="immediate">
    <f:facet name="nodeStamp">
    <af:panelGroupLayout id="pgl10">
    <af:image id="nodeIcon"
    inlineStyle="margin-right:3px; vertical-align:middle; height:16px; width:16px;"
    shortDesc="directory icon" rendered="#{node.destination != null}"
    source="#{node.destination}"/>
    <af:commandLink text="#{node.text}"
    id="cl1"
    disabled="#{not node.renderAsLink}" partialSubmit="true"
    actionListener="#{nodeSelectionHandler.selectionPerformed}">
    <f:attribute name="nodeId" value="#{node.id}"/>
    <f:attribute name="operation" value="#{node.associatedOperation}"/>
    </af:commandLink>
    </af:panelGroupLayout>
    </f:facet>
    </af:tree>

    Try this.
    Change your tree as follows:
    <af:tree id="myTree" value="#{bindings.NodesViewTree.treeModel}" selectionListener="#{treeBean.onTreeSelection}"...
    (Assuming your tree's binding is called "NodesViewTree")
    ...note the use of the selectionListener calling our bean's onTreeSelection method.
    In your bean:
      boolean toolbarItem1Enabled = true; // also create the appropriate getter/setter
      boolean toolbarItem2Enabled = true; // also create the appropriate getter/setter
      public void onTreeSelection(SelectionEvent selectionEvent) {
        ELUtils.invokeMethod("#{bindings.NodesViewTree.treeModel.makeCurrent}", SelectionEvent.class, selectionEvent);
        FacesCtrlHierBinding hierBinding = (FacesCtrlHierBinding)AdfUtils.findCtrlBinding("NodesViewTree");   
        RichTree richTree = (RichTree)selectionEvent.getSource();
        RowKeySet rowKeySet = richTree.getSelectedRowKeys(); 
        Object key = rowKeySet.iterator().next();
        richTree.setRowKey(key);
        JUCtrlHierNodeBinding node = (JUCtrlHierNodeBinding)richTree.getRowData();
        String someValue = (String)node.getAttribute("someValue"); // assuming String attribute
        if (/* make some decision about enabling/disabling fields based on selected node's someValue */) {
          toolbarItem1Enabled = false;
          toolbarItem2Enabled = false;
        } else {
          toolbarItem1Enabled = false;
          toolbarItem2Enabled = false;
    }Then in your command items modify them as follows:
    <af:commandMenuItem disabled="#{treeBean.toolbarItem1Enabled}" partialTriggers="myTree"}>
    <af:commandMenuItem disabled="#{treeBean.toolbarItem2Enabled}" partialTriggers="myTree"}>
    Please note I haven't tested the exact solution above, I've just cut and copied a bunch of code in from different sources. However it should give you the thread on a possible approach.
    Cheers,
    CM.

  • Display the icon when current node selected in af:tree

    Hi !! Gud Mrg !!
    I am using jdeveloper 11.1.1.5
    I had created an af:tree., I need to display the icon when my user clicks the current node!!
    Could any one pls provide me solution to fix this !!

    Sorry jhon and Frank !!
    I will explain what i had did and my scenario!!
    What i had did
    I had dragged and dropped my ApplBusFun as a af:tree
    Such that it doesnot have parent and child My tree would look like this
    Request for quotation
    Supplier Documents
    Suppliers
    Purcahse Order
    My Scenario
    My scenario is when my user clicks the current row ., Consider if my user clicks Request for quotaiton an arrow symbol must be appeared before Request for Quotation such that my output must looks like this
    ==>Request for quotation
    Supplier Documents
    Suppliers
    Purcahse Order==> This is the icon which appeared before Request For Quotation and this icon must appear whenever user clicks any node Suppose if my user going to click Supplier Document means
    My output must look like this
    Request for quotation
    ==>Supplier Documents
    Suppliers
    Purcahse OrderHope i had explained my scenario clearly!! Appologise if i didnt explained properly!!

  • When-tree-node-selected (Urgent)

    i am using treeview for displaying char of account and fires the above said trigger but the trigger has no effect until user explicitly select the node through mouse help me out plzz
    i want that trigger can fires when user select through keyboard or through mouse thanks its urgent

    What is your forms version? It seems like you have hit Bug 4509399.
    Regards,
    Tony

  • NVision tree node select

    Hello,
    I'm in the process of designing a nvision report whiich will display only those accounts that are common in 5 nodes from 2 different trees ( 2 nodes from one tree, 3 from the other...none of them share the same parent node). I tried coding the 3 nodes from tree 1 into the row criterias, and was thinking of applying the other 2 nodes ( from tree 2) in the scope. I'm not sure if this will work, as it may create separate instances for each of the 2 nodes in the scope ( since they dont have the same parent nodee).
    Any suggestions will be greatly appreciated.
    Thanks

    really? noone?

Maybe you are looking for