Search JTree for a node

Hi everyone,
Lets say I have a JTree such as:
Root
-Child1
--Child1_1
-Child2
Now is there a method which given the name of a node, eg. Child1_1 can go and get that node? By get i mean i have the above tree then i say:
currentNode = Child1_1;
tree.getNode(currentNode);
I know there are methods that can do this if the node has been selected but in my case it has to be done without the node being selected.
Hope i've made it clear!
Thanks.

Hello.
There is no such built-in method because it all depends on what kind of node you use. The String (name) representing a node is really a rendering thing.
Assuming you're using a DefaultTreeModel with DefaultMutableTreeNodes :public static TreeNode findNode(JTree aTree, Object aUserObject) {
     if (aTree == null) throw new IllegalArgumentException("Passed tree is null");
     if (aUserObject == null) throw new IllegalArgumentException("Passed user object is null");
     DefaultMutableTreeNode node = (DefaultMutableTreeNode)aTree.getModel().getRoot();
     return findNodeImpl(node, aUserObject);
private static DefaultMutableTreeNode findNodeImpl(DefaultMutableTreeNode aNode, Object aUserObject) {
     if (aNode.getUserObject().equals(aUserObject)) return aNode;
     int childCount = aNode.getChildCount();
     for (int i = 0; i < childCount; i++) {
          DefaultMutableTreeNode child = (DefaultMutableTreeNode)aNode.getChildAt(i);
          DefaultMutableTreeNode result = findNodeImpl(child, aUserObject);
          if (result != null) return result;
     return null;
}

Similar Messages

  • Search Help for Hierarchy Node in SAP BW 7.3

    Hi Experts,
    We were previously using SAP BW 7.1 system and we had a table which used to be maintained through SM30 which has a customed search help on one of the fields for a hierarchy object. And it was working perfectly.
    However, one of our systems have just been migrated into 7.3 version and the above functionality is no longer working.
    This is what is happening now:
    - User selects a hierarchy and after selection nothing is being displayed on field on the table.
    We have tried to debug this customed search help in both environments to distinguish what is wrong. We have noted that a standard function module (RRSV_IOBJ_VALUE_OUTPUT) is not behaving similarly. In 7.1 system, the C_T_DATA table is being filled whereby in the 7.3 system, it is empty.
    Do you think this is the issue?
    Please do advise and propose what can be done to make it work. Or any idea on how to create a new search help for a hierarchy node in 7.3?
    Thanks in advance.

    hi,
    one more thing i will like to add here is in BW 7.3 you get a new security admin feature that allows you to make mass changes to authorizations instead of one-by-one. This can be done by cut-and-paste in a worklist, hierarchy nodes, and you can also add users to multiple analysis authorizations.
    The u2018newu2019 authorizations has both the data value and hierarchy restrictions. You can still build using the u201CRSECADMINu201D transaction
    Also make sure that all objects are in the TLIBG library and they will be 'shielded' during the upgrade.
    regards
    laksh

  • New search criteria for old (standard) node?

    Is it possible to create script, which adds new search criteria for old (standard) node?
    CustomSearchExtensionHandler.jsx gives example of custom search criteria for custom node. But it is not clear for me, how to add new search criteria over standard XMP fields.

    Hi,
    First you create your own table (with fields like Vendor No and Name), in which you wants to store your Value range for that Vendor and fill this table with all the values for that vendor(your own set of values).
    Using this table create an Elementary search Help from SE11 and you can use that search help for the Vendor field where ever you use.
    This works fine.
    Regards,
    Anji

  • Set for specific nodes in JTree specific rowheight

    Hi,
    I got a JTree with different components for the nodes userobject.
    some nodes got JTextAreas as userobject. Those nodes got the same height as all other nodes. This is the problem ... the nodes who contains JTextAreas should have a larger rowheight - to paint their content well. But there is only a method to specify the of the height of all rows in a JTree, anyone knows a good solution?
    thx
    null
    Message was edited by:
    Olek

    From the JTree.setRowHeight documentation:
    "Sets the height of each cell, in pixels. If the specified value is less than or equal to zero the current cell renderer is queried for each row's height."
    So try tree.setRowHeight(0);

  • Setting custom color for selected node in JTree?

    Hi,
    i want to set my own color for selected node in JTree. i don't want to set for all the nodes...how to set Color for Selected node using TreeCellRender class?
    Thanks
    Mani

    I assume you are not setting a custom tree cell renderer...
    javax.swing.JTree theTree = ...;
    java.awt.Color newBGColor = ...;
    ((javax.swing.tree.DefaultTreeCellRenderer)theTree.getCellRenderer())
        .setBackgroundSelectionColor(newColor);

  • JTree how to use different font's color for different node

    Hi all
    This is the first time I am using JTree in my application and I have got some problems with it that I can't work out after reading the Java tutorial. Please help!
    1. For some nodes, the font color need to be different.
    2. One node need to use more than one font type for example "This is a sample " some words need to be bolded.
    Kind regards
    Edmond

    Did you read the section on [url http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html#display]Customizing a Tree's Display?
    And did you follow the link on renderers?

  • Partial Selection in Jtree using checkbox for every node

    I have a application which uses a JTree. For each node in the tree, there is a checkbox attached to the node using a customized TreeCellRenderer. When some items of a node are selected i.e not all children of a node are selected using the chechboxes, how do i indicate using the checkbox of the parent node that only a partial list of nodes is selected. For this, i need to draw a little square in the checkbox indicating that it is partially selected. Any advice on this matter would be very helpful.

    It's a bit complicated. The default cell renderer doesn't actually put the tree nodes on your screen, it just paints the looks of them. That is, you see them on screen, but they are just painted, all mouse clicks etc. are sent directly to the JTree.
    In order to have a button in a tree node, and have that button respond to clicks, I believe you'd have to put the button in a TreeCellEditor. This means users will have to triple click the node to get the Editor in the renderer's place (db click only expands/implodes nodes).
    I have sucessfully used http://propertytree.dev.java.net/ to customize the behaviour of tree nodes, but I never have put a button in there... Have a look, you'll see what methods you need to overwrite.

  • How to display different icon, for different node of jtree

    Hi All,
    How to display different icon, for different node of jtree

    you haven't responded to my last post here: [http://forums.sun.com/thread.jspa?threadID=5323190&messageID=10382676#10382676|http://forums.sun.com/thread.jspa?threadID=5323190&messageID=10382676#10382676]

  • JTree- seperate tooltip for each node

    hi,
    i would like to have different tooltips for different nodes. in all tutorials they have given the method of assinging tooltip in a general class i.e. setting a tooltip for all leaf nodes etc.. But i would like to have seperate tooltip for each node.
    thanx

    hi,
    Doing both of the above tasks will lead to have a tooltip same for all nodes. But i need all the toltips to be different for different leafs.
    However i solved that problem using mouseListeners and getPath() method..
    Now i have another problem. when i move my mouse over any leaf node(not necessarily selecting just on moving over the text) i would like to change the color of the text of that particular node to another color. If i use renderer to do this then it may change the color of all the nodes.
    how it could be done for only a particular node and not for all. Aren't there any renderers for nodes.
    thanx

  • Good way to search JTree

    Hi,
    I have a JTree..and I need to search for a node in the tree by its name. For example if my tree is setup like this:
    root
    -----> FRUITS
    ----> apple
    ----> orange
    and i want to search for orange and retrieve the orange node, what is the best way to do this? I was thinking about starting from the root node, and recursively searching the tree comparing the names of the nodes to the nodeNameToSearchFor, if i find a match i return the node.....is there a better way of doing this??
    thanks.

    import javax.swing.JTree;
    import javax.swing.tree.DefaultMutableTreeNode;
    import java.util.Enumeration;
    public class Test3 {
      public static void main(String[] arghs) {
        DefaultMutableTreeNode root = (DefaultMutableTreeNode)new JTree().getModel().getRoot();
        Enumeration enum = root.breadthFirstEnumeration();
        while (enum.hasMoreElements()) System.out.println(enum.nextElement());
    }

  • Search Jtree Problem (Easy Duke dollars)

    Hi all,
    I know that in order to find a node is a tree I can use getNextMatch method given by JTree. However, the problem here is that I want to serach for a child node and I don't know how to... for example...
    Root
    - Child 1
    - Child 2
    - Child 3
    If I search for the root node I would simply do
    getNextMatch("R",0,Position.Bias.Forward);But what if I want to search for Child 1 or Child 3? What would be in my search string?

    Hi,
    To search for a node in a JTree, you may use the breadthFirstEnumeration() method of the DefaultMutableTreeNode and then iterate through that enumeration until the desired node is found or the node is not found.
    You need to have a reference to the Root of the tree as a DefaultMutableTreeNode where the seacrh will begin.
    Let's say that the desired node's data = desiredElement
    DefaultMutableTreeNode root = new DefaultMutableTreeNode(.....);
    java.util.Enumeration enum = root.breadthFirstEnumeration();
    while(enum.hasMoreElements())
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) enum.nextElement();
    if(node.getUserObject().equals(desiredElement))
    //you have found the node in the tree
    //you can get the parent using the getParent on this node as well
    //if you want the search path as well
    //if you reach here, the desired node is not in the tree
    mail me in case of problem : [email protected]

  • One search help for multiple select-options in webdynpro abap

    Hi,
    I need a way to use one search help for multiple select-options fields. My scenario is :
    I have a table for keeping different organizational units' values of different systems. I have pasted some sample data from this table at the end of this mail. On the screen I want to have 1 select-options filed for werks, and 1 select-options filed for vkorg. (In fact I will have more org. unit fields...) In the beginning of my application the user will select sid.
    If the user selects ADS as SID, when he opens search-help for the first org. unit (werks), he will see the records with SID: ADS, VARBL = $WERKS, LANGU = SY-LANGU.
    If the user selects AGT as SID, when he opens search-help for the second org. unit (vkorg), he will see the records with SID: AGT, VARBL = $VKORG, LANGU = SY-LANGU.
    I have created a search-help taking SIDD, VARBL and LANGU as import parameters; used field mapping and bound this search help to my table. I have created 2 context nodes : org1 and org2 having attributes SID, VARBL, VALUE, LANGU .
    I have assigned related SID, VARBL and Langu values to these attributes at runtime as I needed. That way, if I use input field and reference to the related context attributes org1-value and org2-value2 accordingly, search help works well as I want.
    However, when I use select-options field , I can not bind the field to the context data. I can give reference only to ddic structure. Is there any way to reference to a context attribute? I searched for this in SDN, but could find nothing.
    I think I won't be able to use this way. What do you say?
    As I read from forums maybe using OVS help will be suitable for me. But I have to use one search-help for all select-options fields. Do you know how I can determine the active select-options field and pass its name (for instance "werks" ) as parameter to this OVS search help. (Also I'll pass SID and LANGU.)
    MY TABLE (ZBYYT080) CONTENTS:
    SID     VARBL     VALUE     LANGU     VTEXT
    ADS     $WERKS     1     T     Werk 0001
    ADS     $WERKS     11     T     OZYAS  GIDA URETIM YERI
    ADS     $WERKS     5501     T     BOYA GEBZE FABRİKASI
    ADS     $WERKS     5502     T     BOYA CIGLI FABRİKASI
    AGT     $WERKS     2301     T     KAMLI DAMIZLIK
    AGT     $WERKS     9601     T     PANAR DENIZ URETIM YERI
    ADS     $VKORG     22     T     AA KİMYASALLAR
    ADS     $VKORG     8001     T     İINSAAT BOYALARI
    AGT     $VKORG     6500     T     DAMk St.Org
    AGT     $VKORG     5400     T     PANAR St.Org.
    I wish I'm clear enough..
    I will be gald if someone answers me as soon as possible...
    Thanks İn advance..
    MERAL

    Hi,
    Your ques is how to refer to a DDIC search help to refer to selection screen parameter ?
    Am I right ?
    If Yes, then in the interface IF_WD_SELECT_OPTIONS
    method ADD_SELECTION_FIELD, ADD_PARAMETER_FIELD etc
    have importing param like I_VALUE_HELP_TYPE and  I_VALUE_HELP_ID, I_VALUE_HELP_MODE, I_VALUE_HELP_STRUCTURE
    etc which may help you to link your create DDIC Search help to selection screen params.
    this is just a clue from my side. I haven't tried it myself.
    You can go to the where used list of this method and find some sample implementations which use these params.
    Hope this helps.
    Regards
    Manas Dua

  • How to Change the default Search value for Field Role?

    HI,
    I went through numerous threads on how to default the search value , but does not help for my issue. Hence im posting this new thread. Please provide your suggestions on how to achieve this.
    For the Ship-to party field (in item detail )  on webui when i do a F4 help i get the pop up with various search criteria and  for the field Role the default value is "Ship-to party".  which is visible. we need to change this default value to Prospect which is available in drop down.
    The attribute is STRUCT.ROLE  and view BP_HEAD_SEARCH/SearchHelp . The method GET_DQUERY_VALUEHELPS  from the context node class is called to fill the value help for this attribute, but i dont understand how the ship-to party is filled as default. There is no code in this method to default the value.
    The generic GET_V_S_STRUCT method also does not default the Ship-to party on this field.
    I want to understand how this Ship-to party is filled by default and how can i change this to prospect..
    Many Thanks,
    Shaik

    We had a same requirement of defaulting Sales org and division in search criteria for a specific value.
    this can be doen by redefining "DO_PREPARE_OUTPUT" method in IMPL class for the respective view.
    See the code:
    METHOD do_prepare_output.
    *CALL METHOD SUPER->DO_PREPARE_OUTPUT
    **  EXPORTING
    **    iv_first_time = ABAP_FALSE
      DATA:
        lr_qs TYPE REF TO cl_crm_bol_dquery_service.
    * Get current query object
      lr_qs ?= me->typed_context->search->collection_wrapper->get_current( ).
      IF iv_first_time = abap_true.
        lr_qs->clear_selection_param_values( ).
        lr_qs->delete_empty_selection_params( ).
    *   if l_sales_orgs is initial.
        CALL METHOD lr_qs->insert_selection_param
          EXPORTING
            iv_index     = '1'
            iv_attr_name = 'SALES_ORG'
            iv_sign      = ' '
            iv_option    = 'EQ'
            iv_low       = 'O 50000514'.
    *   endif.
    *   if l_dist_chan is initial.
        CALL METHOD lr_qs->insert_selection_param
          EXPORTING
            iv_index     = '2'
            iv_attr_name = 'DISTR_CHAN'
            iv_sign      = ' '
            iv_option    = 'EQ'
            iv_low       = '01'.
    * endif.
    Hope this will help..
    THanks & Regards,
    Amit

  • Freely Programmed search help - Accessing Alternative node

    Hi Experts,
    I am trying to use Freely Programmed search help for calling a custom WD component on pressing of F4 of an input field.
    I have done everything required and the component is being called properly as well.
    The issue here is that i need to pass two values to the the custom WD component on F4. As suggested in one of the threads I used F4_CONTEXT_ELEMENT to get the reference of the source context node and attributes. But the problem is that this gives reference to only that node which has the input field with F4 help (which is being used to call the custom component). The values which i need to pass are present in some other node.
    Can you please suggest a way of accessing the other node to retrieve and use the values in the custom component called?
    Regards,
    Ritvik
    Edited by: Ritvik Prasad on Mar 31, 2010 5:16 AM

    Hi Manas,
    Thanks for the suggestion. I had thought about it too. But the problem that i faced was that no event is triggered/Method called on pressing of F4 on that input field (its internally handled in the framework). In that case what should be the method/event where i should copy the values from the other node to the new attributes created so that it reflects in the Custom component?.
    If you could just elaborate on that it would be really helpful.
    Hi Chris,
    Thanks a lot for this. That actually sounds like fun. I tried looking for options to do that. Although i can get to the node from the element using "GET_NODE" but there I could not find the method "GET_PARENT_ELEMENT" to get the parent element (context as you said). Is there any other method which could possibly return the parent element which i could eventually use to get to the other node.
    It would be great if you could help out with this.
    Thanks ,
    Ritvik

  • Change search help for each line of a web dynpro table

    Hi all i have got the following code to dynamically change the search help of a single field on a web dynpro app and was just wondering if anyone could show me the code for implementing it onto a table so that the same field on each row has a different search help assigned to it!
    CALL METHOD node_info->set_attribute_value_help
    EXPORTING
    name = 'DEPT'
    value_help_mode = '121'
    value_help = 'PREMN'.
    Regards
    Mart

    Hi,
    it is possible to have different search help for same table column for different context elements i.e. table lines. the way to acheive this is by using cell variants in table column.
    Steps to follow:
    1. In your table column insert cell variant. Depending upon number of variations for search help, insert that number of cell variants in table column
    2. Enter the value of variant key property of each cell variant for ex. 01 for first cell variant and 02 for second cell variant
    3. Insert cell editor for each of cell variant. for ex. if you have 2 different search helps for single column then insert two cell variant in table column and for each cell variant insert cell editor, let say input field in this case
    4. Bind the value property of each input field to different context attribute of the node. for ex: you have table with two columns i.e. Dynamic and fldate
    .  First column is Dynamic. It will have two cell variants and each cell variant have cell editor of type input field  i.e. depending upon the value of second column i.e. fldate, the search help of first column will be decided.
    5.  Create context node from structure "SFLIGHT" and select 3 components from structure i.e. Carrid, connid, fldate. Add another context attribute to same context node i.e. selected_cell_variant of type string
    6. Bind each of context attribute carrid and coonid to value property of cell editor i.e. input field of cell vairaints from column Dynamic
    7. Bind value property of cell editor i.e. input field of fldate column to context attribute fldate
    8.. Bind selectedCellVariant property of table column Dynamic to context attribute selected_cell_variant
    9. Now, Write method at the wddoinit of view to fill up the context node from table sflight table
    10.  Write event handler for event OnEnter of cell editor from table column FLDATE. in this event handler depnding upon the date set the value of context attribute "selected_cell_variant" to 01 or 02
    DATA lv_date TYPE S_DATE.
      ASSERT CONDITION context_element IS NOT INITIAL. " context_element is default paramter for event handler
      context_element->get_attribute(
        EXPORTING
          name  = 'FLDATE'    " NAME
        IMPORTING
          value = lv_date    " DATA
      IF lv_date > '20101016'.
        context_element->set_attribute(
          EXPORTING
            value =  '01'   " Attribute Value
            name  = 'SELECTED_CELL_VARIANT'     " Web Dynpro: Name of Context Element
      ELSE.
        context_element->set_attribute(
          EXPORTING
            value =  '02'   " Attribute Value
            name  = 'SELECTED_CELL_VARIANT'     " Web Dynpro: Name of Context Element
      ENDIF.
    11. Depending upon the value of selectedCellVariant the corresponding search help will show up in table column. So change the value of column fldate for each table row and see how search help gets changed.
    Thanks,
    Rahul
    Edited by: Rahul Yadav on Oct 17, 2010 12:09 AM

Maybe you are looking for

  • Ipod shuffle not working at all

    I bought an ipod shuffle earlier this year and it has been working extremely well up until yesterday. There is a problem with my ipod shuffle. When I try to play the shuffle, the error light appears, and when I hook it up to my computer, it registers

  • HT1391 how can i find a movie i rented to watch

    ??

  • Default tax code in MIRO

    Hi Gurus, I have maintained Tax Code in Infor record This got copied to PO as expected when i go to MIRO, system by-default bringing diff tax code [at header], i had to manually change to the tax entered in PO I could see in line item [in MIRO] tax c

  • How do i edit aol e-mails while in firefox?

    nothing comes up when i'm in aol e-mail that will allow me to edit e-mails received before forwarding same. Suggestions? Thanks ljmsj

  • InDesign 5.5 on second Mac

    I want to install InDesign 5.5 from .dmg file on a second Mac (MacBook Pro, Mavericks). When I click on the install file it says, that it cannot open this file, it is from a not verified devoloper. What can I do? I think the license key is for 2 Macs