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.

Similar Messages

  • 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                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • 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

  • 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 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?

  • 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

  • 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 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...

  • 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);
        }

  • 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.

  • How to make buttons as disable based on radio button selection in .htm

    Hi
    I have two radio buttons. So i want that when i select one radio button other buttons should become disable in
    .htm in crm webui.
    Thanx,
    Nawal kishore.

    I am not sure why u need this .. but if you disable the radio button, user won't be able to change the radio buttons any more!!!
    You can do it in this way.
    1. go to the radio button attribute of the context node ..
    if get_p_xxxx method is present then modify that to include the below code. If not present create the method. see any standard method
    CASE iv_property.
       WHEN if_bsp_wd_model_setter_getter=>fp_server_event.
          rv_value = 'selected'. "remember case
    endcase.
    2. create a event with the name 'selected'. "" case is important
    3. check in do_handle_event if the event is created or not..." if there is not event added in that method, you need to add your method name there...
    4. set some flag in the event method which you have to access from the get_i_XXX method(XXX is the radio button attribute).
    depending on the flag you make it disable.

  • 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

  • Tree node selection

    Hi all,
    I have created a JTree with checkbox at the node.
    When I want to select the check box I have to click it 2 times.
    I want to select it in one click.
    So can anybody please help me.
    Thanks and Regards
    Ananda

    Ananda121 wrote:
    Hi all,
    I have created a JTree with checkbox at the node.
    When I want to select the check box I have to click it 2 times.
    I want to select it in one click.
    So can anybody please help me.Change the '.' at column 47 of line 56 to a ','. That should fix it.
    In case it does not, you might want to post an SSCCE *(<- link)* of the code that fails to work as you expect.

Maybe you are looking for

  • Using ADF trying to display an af:outputLabel below a radioButton

    This problem seemed to me to be a lot easier than it winded up being. I hope someone can help shed some light on it. Here it goes... I need to dynamically display a list of radio buttons(it gets the data from a database). Here is the catch. Underneat

  • How to clear Noted Items appearing in FBL5N

    HI All, I have an issue as below. One of our customer posted one noted item, later he created a down payment transaction. While doing this down payment, he cleared the noted item. Now the noted item appears as cleared item  and down payment made is a

  • How to Filter Report by selecting displayable columns using checkboxes

    Hello, I have a page where the first region 'filter' is to check which columns you want to have displayed in a report. the second region 'report' is the report itself where i want to display only the columns checked from regions 1 'filter'. We can ma

  • How to import/export in Pl/SQL ?

    Hello I want to write a procedure in PL/SQL which will be copying one user's schema to another. I have Oracle 9i on Windows 2000. My first idea was to use IMP EXP commands, but i need to execute this commands from PL/SQL procedure. How can I do this,

  • Inserting Videos Without MS Word In Acrobat Pro 9 Extended

    I've been experimenting with inserting videos as native content using Acrobat Pro 9 Extended. For my ebook publishing this is such an ideal situation, but I don't use MS Word, and there doesn't seem to be any real facility in Acrobat 9 to do simple f