Implemented hidden nodes, Expanded state inconsistent?!

Hi Guys, I have a rather complex JTree problem.
I have implemented my own custom tree and nodes, with a custom model that allows hidden nodes. My nodes have an isVisible() method that is used in the model to see whether to return this node (in the getChildCount and getChild methods). This works great, and means that I can apply a filter to the tree, and it will immediately filter out a certain type of node (without having to add/remove nodes).
I have a bit of a problem when some nodes are expanded however. If I expand a node, then change the filters so that node is invisible, the node that takes it's place becomes expanded. This would be fine, but the expansion of the node does not fire an event (and in my program this causes problems!).
I've written the code below to give a very simple example. Just run the code, expand the 'Red' node you can see, then press 'Toggle Red'. The red node then disappears, but the blue node that takes it's place is then expanded (this is what I need to stop, or at least make that expansion of the blue node fire an event).
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.event.TreeExpansionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeNode;
import com.talgentra.tallyman.util.properties.ApplicationProperties;
import com.talgentra.tallyman.util.properties.VersionProperties;
public class TreeTest extends JFrame {
     private boolean showRed = true;
     private boolean showBlue = true;
     private int expansionEvents = 0;
     private JTree tree = new JTree();
     public static void main(String[] args) throws Exception {
          VersionProperties.create(null);
          ApplicationProperties.createConfigurationInstance();
          new TreeTest();
     public TreeTest() throws Exception {
          this.setSize(200,200);
          this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
          this.getContentPane().setLayout(new BorderLayout());
          // set up toggle button
          JButton toggle = new JButton("Toggle Red");
          toggle.addActionListener(new ActionListener() {
               public void actionPerformed(ActionEvent e) {
                    showRed = !showRed;
                    tree.updateUI();
          // set up tree
          ColorNode root = new BlueNode();
          ColorNode r1 = new RedNode();
          ColorNode r11 = new RedNode();
          ColorNode r21 = new RedNode();
          ColorNode b2 = new BlueNode();
          ColorNode b12 = new BlueNode();
          ColorNode b22 = new BlueNode();
          root.add(r1);
          root.add(b2);
          r1.add(r11);
          r1.add(b12);
          b2.add(r21);
          b2.add(b22);
          tree.setModel(new MyTreeModel(root));
          tree.addTreeExpansionListener( new TreeExpansionListener() {
               public void treeExpanded(TreeExpansionEvent event) {
                    System.out.println("TreeExpansionEvents fired: " + expansionEvents);
               public void treeCollapsed(TreeExpansionEvent event) {}
          this.getContentPane().add(toggle, BorderLayout.NORTH);
          this.getContentPane().add(new JScrollPane(tree), BorderLayout.CENTER);
          this.show();
     abstract class ColorNode extends DefaultMutableTreeNode {
          public ColorNode(Object o) {
               super(o);
          public abstract boolean isVisible();
     class RedNode extends ColorNode {
          public RedNode() {
               super("Red");
          public boolean isVisible() {
               return showRed;
     class BlueNode extends ColorNode {
          public BlueNode() {
               super("Blue");
          public boolean isVisible() {
               return showBlue;
     class MyTreeModel extends DefaultTreeModel {
          public MyTreeModel(TreeNode root) {
               super(root);
          public int getChildCount(Object parent) {
               int childCount = 0;
               for ( Enumeration e = ((TreeNode)parent).children(); e.hasMoreElements();) {
                    Object o = (Object) e.nextElement();
                    if (o instanceof ColorNode) {
                         ColorNode node = (ColorNode) o;
                         if ( node.isVisible() ) {
                              childCount++;
                    } else {
                         childCount++;
               return childCount;
          public Object getChild(Object parent, int index) {
               DefaultMutableTreeNode node = (DefaultMutableTreeNode) parent;
               DefaultMutableTreeNode child = null;
               int count = 0;
               for (int i=0; i<node.getChildCount(); i++) {
                    // if this is not a ColorNode, or is a VISIBLE ColorNode then include it
                    if (!(node.getChildAt(i) instanceof ColorNode) || ((ColorNode) node.getChildAt(i)).isVisible()) {
                              if ( count == index ) {
                                   child = (DefaultMutableTreeNode) node.getChildAt(i);
                                   break;
                              } else {
                                   count++;
               return child;
}

As always :) , I agree with Denis.
This is what I've been doing in the mean time. The problem is that I get the opposite behavior. Re-added nodes are collapsed by default.import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.util.*;
public class TreeTest extends JPanel {
     private static class Property {
          public static final Property PROPERTY_RED = new Property("red");
          public static final Property PROPERTY_BLUE = new Property("blue");
          private String theText;
          private boolean theState;
          private Property(String aText) {
               theText = aText;
               theState = true;
          public String toString() {
               return theText;
          public void toggleState() {
               theState = !theState;
          public boolean getState() {
               return theState;
     private class ColorNode implements TreeNode {
          private ColorNode theParent;
          private Property theProperty;
          private Vector theChildren;
          private int[] theIndices;
          public ColorNode(Property aProperty) {
               theParent = null;
               theProperty = aProperty;
               theChildren = new Vector();
               theIndices = new int[]{};
          public void add(ColorNode aChild) {
               theChildren.add(aChild);
               aChild.theParent = this;
               update();
          public String toString() {
               return theProperty.toString();
          private boolean isVisible() {
               return theProperty.getState();
          public int getChildCount() {
               return theIndices.length;
          public boolean getAllowsChildren() {
               return true;
          public boolean isLeaf() {
               return theIndices.length == 0;
          public Enumeration children() {
               Vector vector = new Vector();
               for (int i = 0; i < theIndices.length; i++) {
                    vector.add(theChildren.elementAt(theIndices));
               return vector.elements();
          public TreeNode getParent() {
               return theParent;
          public TreeNode getChildAt(int childIndex) {
               return (TreeNode)theChildren.elementAt(theIndices[childIndex]);
          public int getIndex(TreeNode node) {
               for (int i = 0; i < theIndices.length; i++) {
                    if (theChildren.elementAt(theIndices[i]) == node) return theIndices[i];
               return -1;
          private int getChange(Property aChangedProperty) {
               if (theProperty != aChangedProperty) return 0;
               if (theProperty.getState()) {
                    return 1;
               } else {
                    return -1;
          public void update(Property aChangedProperty) {
               Vector removedIndices = new Vector();
               Vector removedObjects = new Vector();
               for (int i = 0; i < theIndices.length; i++) {
                    ColorNode colorNode = (ColorNode)theChildren.elementAt(theIndices[i]);
                    if (colorNode.getChange(aChangedProperty) == -1) {
                         removedIndices.add(new Integer(theIndices[i]));
                         removedObjects.add(colorNode);
               theTreeModel.nodesWereRemoved(this,
                                                  getIndexArray(removedIndices),
                                                  (Object[])removedObjects.toArray(new Object[removedObjects.size()]));
               Vector vect = new Vector();
               Vector added = new Vector();
               for (int i = 0; i < theChildren.size(); i++) {
                    ColorNode colorNode = (ColorNode)theChildren.elementAt(i);
                    if (colorNode.isVisible()) {
                         vect.add(new Integer(i));
                         if (colorNode.getChange(aChangedProperty) == 1) {
                              added.add(new Integer(i));
                         colorNode.update(aChangedProperty);
               theIndices = getIndexArray(vect);
               theTreeModel.nodesWereInserted(this, getIndexArray(added));
          private int[] getIndexArray(Vector someIndices) {
               int[] indexArray = new int[someIndices.size()];
               for (int i = 0; i < someIndices.size(); i++) {
                    indexArray[i] = ((Integer)someIndices.elementAt(i)).intValue();
               return indexArray;
          public void update() {
               Vector vect = new Vector();
               for (int i = 0; i < theChildren.size(); i++) {
                    ColorNode colorNode = (ColorNode)theChildren.elementAt(i);
                    if (colorNode.isVisible()) {
                         vect.add(new Integer(i));
               theIndices = getIndexArray(vect);
     private class ToggleStateAction extends AbstractAction {
          private Property theProperty;
          public ToggleStateAction(Property aProperty) {
               super("Toggle " + aProperty.toString());
               theProperty = aProperty;
          public void actionPerformed(ActionEvent e) {
               theProperty.toggleState();
               ((ColorNode)theTreeModel.getRoot()).update(theProperty);
     private DefaultTreeModel theTreeModel;
     private JTree theTree;
     public TreeTest() throws Exception {
          super(new BorderLayout());
          ColorNode root = new ColorNode(Property.PROPERTY_BLUE);
          ColorNode r1 = new ColorNode(Property.PROPERTY_RED);
          ColorNode r11 = new ColorNode(Property.PROPERTY_RED);
          ColorNode r21 = new ColorNode(Property.PROPERTY_RED);
          ColorNode b2 = new ColorNode(Property.PROPERTY_BLUE);
          ColorNode b12 = new ColorNode(Property.PROPERTY_BLUE);
          ColorNode b22 = new ColorNode(Property.PROPERTY_BLUE);
          root.add(r1);
          root.add(b2);
          r1.add(r11);
          r1.add(b12);
          b2.add(r21);
          b2.add(b22);
          root.update();
          theTreeModel = new DefaultTreeModel(root);
          theTree = new JTree(theTreeModel);
          add(new JScrollPane(theTree), BorderLayout.CENTER);
          JToolBar toolBar = new JToolBar();
          toolBar.setFloatable(false);
          toolBar.add(new ToggleStateAction(Property.PROPERTY_RED));
          toolBar.add(new ToggleStateAction(Property.PROPERTY_BLUE));
          add(toolBar, BorderLayout.NORTH);
     public static void main(String[] args) throws Exception {
          final JFrame frame = new JFrame("Test Tree");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setContentPane(new TreeTest());
          SwingUtilities.invokeLater(new Runnable() {
               public void run() {
                    frame.setSize(200, 200);
                    frame.show();

Similar Messages

  • [UIX] Tree - expanded state problem

    Hi,
    I'm experiencing problemswith my UIX Tree.
    In my tree I expanded some nodes (so I can view its contents :))
    Normally when I browse to some other pages and come back to the page containing the tree, it remembered the state in which I left it (same nodes still expanded). When I decide to insert new data (through a form page)to the database of which the tree 'feeds' itself, I get errors when browsing back to the page containing the tree, because it remembers its last state (which is nolonger valid, because of new records).
    What I want is that I can go back to the page containing my tree, with the tree refreshed (containing my newly inserted data) and still leave those nodes expanded that expanded earlier.
    Is this possible? (And is my problem clear? ;) )
    Gr.
    Philip

    I'm afraid our proxy does not support mutable trees. The only way to have it work at all is to create a new proxy when you mutate the tree data, which means you will not be able to save the expanded/collapsed state.
    This won't help you now, but ADF UIX is being migrated to ADF Faces which is based on JSF. In that realease mutable trees will be supported. There are early access releases of ADF Faces available here if you're interested:
    http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/index.html

  • Htmlb:tree differentiate between nodeclick and tree node expander click

    Hi,
    how can i differentiate between nodeclick and tree node expander (to get to its children) click in my event processing in htmlb:tree element.
    <u><b>What i am trying to achieve?</b></u>
    Onload just load root node and its immediate children.
    On node expand get the children of the current node and modify htmlb:tree table2 with additional node inofs.
    on node click  call some client function.
    But my issue is that i am not able to differentiate between node expander click and node click in my event handling. Any help on this is appreciated.
    (I am not using MVC)
    Thanks in advance.
    Regards
    Raja
    Message was edited by: Durairaj Athavan Raja

    After reading your weblog I think I understand better. I did some testing with my example.  I am using the toggle = "true", so that the page returns to the server each time an expander is selected.
    <htmlb:tree id          = "myTree1"
                  height      = "75%"
                  toggle      = "true"
                  title       = "<b><otr>EQI Reporting Tree</otr></b>"
                  width       = "90%"
                  onTreeClick = "myTreeClick"
                  table       = "<%= application->selection_model->itview                             %>" >
      </htmlb:tree>
    However I have not added any coding in my event handler to respond to the expander event.  I only respond to myTreeClick (which loads some data for the given selection).  The BSP tree element itself must be doing the hard work for me. 
      if event_id cs 'tr_myTree1'.
        data: tree_event type ref to cl_htmlb_event_tree.
        tree_event ?= htmlb_event.
        if tree_event->server_event = 'myTreeClick'.
          clear appl->message1.
          appl->selection_model->get_chart_data( appl = appl
                                                 node = tree_event->node ).
        endif.
      endif.
    I pass my entire tree defintion to the element.  It appears that it only sends visible nodes to be rendered. When the expander is selected, I don't have to do anything, the tree re-renders with only the newly visible rows. 
    I tested and turned off the toggle (toggle = "false") and my page took forever to load because it was sending all the nodes to the frontend on the first load.

  • WHEN-TREE-NODE-EXPANDED not fire with keyboard in FORMS 10G

    I have a Hierarchical Tree. When i click in any node with mouse, works fine.
    When i use the key rigth and left of the keyboard, the tree expanded, but not fire the WHEN-TREE-NODE-EXPANDED.
    In FORMS 6i works fine.

    It's a bug 4509399. There is a oneoff patch on Metalink:
    https://metalink.oracle.com/metalink/plsql/f?p=130:14:4034066994841324251::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,331369.1,1,1,1,helvetica

  • How to make All Hierarchy Nodes expanded as default in BI 7 Report

    Dear all,
      Does anyone know how to customize the confiugration to make <b>All Hierarchy Nodes expanded as default in BI 7 report</b>? Any sugguestion are appreciated.
    Best regards,
    Gerald

    find the solution

  • Open Tree control in expanded state

    I have built a small framework to display demos -- and use an
    XML-driven tree component to provide access to demo segments and
    published files.
    I would like the TOC in the Tree component to open in
    expanded state, but am having no luck with myTree.setIsOpen.
    The tree connects to the XML OK -- I can expand/collapse,
    etc... and it all looks great. But I cannlt get the tree to open
    expanded.
    The code I'm trying to open the TOC expanded:
    this.demoTOC.setIsOpen(this.demoTOC.getTreeNodeAt(0), true);
    The XML that's connected to the tree:
    <?xml version="1.0" encoding="UTF-8"?>
    <toc>
    <demosection label="MY TITLE" >
    <demo ID="00demo.flv" label="title01" isBranch="true"
    />
    <demo ID="01demo.flv" label="title02" isBranch="true"
    />
    <demo ID="02demo.flv" label="title03" isBranch="true"
    />
    <demo ID="03demo.flv" label="title04" isBranch="true"
    />
    </demosection>
    </toc>
    If anyone can point out what I'm doing wrong, I am ready to
    learn.
    Thx.

    Never mind -- figured it out.
    It was a scoping issue -- calling the setIsOpen form inside
    the XML loader function.

  • Mitigating hidden nodes

    Hi,
    I have a problem with hidden nodes, in "the old days" i would use RST/CTS to try and mitigate the problem.
    I don't see that option i the WLC.
    Is the some other way to make adjustments in the WLC to mitigate problems with hidden nodes?
    /Aksel

    The overall ways to mitigate the " hidden node " are
    Increasing Transmitting Power From the Nodes
    Using Omnidirectional antennas
    Removing obstacles
    Moving the node
    Using Antenna Diversity: MIMO technology , 802.11n

  • 802.11 RTS/CTS and hidden node problem

    Guys,
    A little confused here.
    The hidden node problem is if two nodes within a cell can hear the AP but not each other. OK.
    But, when we talk about 802.11b and 802.11g backwards compatibility causing reduced throughtput in terms of bandwidth, it seems that this is always blamed on 802.11g stations having to use RTS/CTS.
    But,
    Even in an 802.11g only cell, dont stations still have to use RTS/CTS mechanisms for the hidden node problem?
    I'm confused.com!
    Thx
    Ken

    When 802.11b clients are associated to an 802.11g access point, the access point will turn on a protection mechanism called Request to Send/Clear to Send (RTS/CTS). Originally a mechanism for addressing the "hidden node problem" , RTS/CTS adds a degree of determinism to the otherwise multiple access network. When RTS/CTS is invoked, clients must first request access to the medium from the access point with an RTS message. Until the access point replies to the client with a CTS message, the client will refrain from accessing the medium and transmitting its data packets. When received by clients other than the one that sent the original RTS, the CTS command is interpreted as a "do not send" command, causing them to refrain from accessing the medium. One can see that this mechanism will preclude 802.11b clients from transmitting simultaneously with an 802.11g client, thereby avoiding collisions that decrease throughput due to retries. One can see that this additional RTS/CTS process adds a significant amount of protocol overhead that also results in a decrease in network throughput.
    In addition to RTS/CTS, the 802.11g standard adds one other significant requirement to allow for 802.11b compatibility. In the event that a collision occurs due to simultaneous transmissions (the likelihood of which is greatly reduced due to RTS/CTS), client devices "back off" the network for a random period of time before attempting to access the medium again. The client arrives at this random period of time by selecting from a number of slots, each of which has a fixed duration. For 802.11b, there are 31 slots, each of which are 20 microseconds long. For 802.11a, there are 15 slots, each of which are nine microseconds long. 802.11a generally provides shorter backoff times than does 802.11b, which provides for better performance than 802.11a, particularly as the number of clients in a cell increases. When operating in mixed mode (operating with 802.11b clients associated) the 802.11g network will adopt 802.11b backoff times. When operating without 802.11b clients associated, the 802.11g network will adopt the higher-performance 802.11a backoff times.

  • Expanding one structure node expands all nodes

    I am running SAP 70103 in our test environment. I have a problem running an existing query (JAVA) that contains a keyfigure structure with multiple parent/child elements. The parent nodes are collapsed. When I execute the query through JAVA if you expand any of the parent nodes all the parent nodes expand rather than only the parent node you clicked on. Running the same query in BEx Excel (ABAP) the expand works fine. Is anyone aware of a Note for this issue? Thanks.

    Thanks for the response. The note doesn't cover my issue exactly but the related notes will help me investigate further. Thanks again.

  • Open tree component in expanded state

    I have built a small framework to display demos -- and use an
    XML-driven tree component to provide access to demo segments and
    published files.
    I would like the TOC in the Tree component to open in
    expanded state, but am having no luck with myTree.setIsOpen.
    The tree connects to the XML OK -- I can expand/collapse,
    etc... and it all looks great. But I cannlt get the tree to open
    expanded.
    The code I'm trying to open the TOC expanded:
    this.demoTOC.setIsOpen(this.demoTOC.getTreeNodeAt(0), true);
    OR
    this.demoTOC.setIsOpen(this.demoTOC.getTreeNodeAt(0).getTreeNodeAt(0),
    true);
    The XML that's connected to the tree:
    <?xml version="1.0" encoding="UTF-8"?>
    <toc>
    <demosection label="MY TITLE" >
    <demo ID="00demo.flv" label="title01" isBranch="true"
    />
    <demo ID="01demo.flv" label="title02" isBranch="true"
    />
    <demo ID="02demo.flv" label="title03" isBranch="true"
    />
    <demo ID="03demo.flv" label="title04" isBranch="true"
    />
    </demosection>
    </toc>
    If anyone can point out what I'm doing wrong, I am ready to
    learn.
    Thx.

    Never mind -- figured it out.
    It was a scoping issue -- calling the setIsOpen form inside
    the XML loader function.

  • If statement inconsistency?

    Yay! Another post from me!
    I've got an if statement in a bean that seems to be processing fine when I create a test java class, but doesn't work fine when the bean is invoked by a jsp.
    My code, let me shows you it:
    First, the test class:
    package com.serco.inquire;
    import java.util.*;
    import java.text.*;
    public class TestCollection {
         public static void main(String[] args) {
              IrCollection myCollection = new IrCollection();
              myCollection.setSort("none");
              myCollection.setMgrid("none");
              int endpoint = myCollection.getSize();
              for (int i=0;i<endpoint;i++) {
                   InquireRecord curRec = myCollection.getCurRecords(i);
                   Long milis = new Long(curRec.getSubmitDate());
                   Date theDate = new Date(milis);
                   Format formatter = new SimpleDateFormat("dd MMM yyyy");
                   String s = formatter.format(theDate);
                   System.out.println("ID: " + curRec.getID() + " | Subject: " + curRec.getSubject());
    }a snippit from the IrCollection class it calls:
    private void processSort(String datum) {
              int LastChar = datum.length()-1;
              String colName = datum.substring(0, LastChar);
              if (datum=="none") {
                   this.fullSort  = " ORDER BY lastUpdated DESC";
              } else {
                   if (datum.endsWith("2")) {
                        this.fullSort = " ORDER BY " + colName + " ASC";
                   } else {
                        this.fullSort = " ORDER BY " + colName + " DESC";
         }There's more code in another method that calls this particular method using: this.processSort(this.sort);But the problem is that if (datum=="none") portion in the second code sample. Given that line 10 of the first class sets the member variable sort to "none", that processSort() method should set the member variable fullSort to " ORDER BY lastUpdated DESC"
    And if I use the class in the first sample, it does that.
    HOWEVER
    I have this custom tag:
    <%@ tag body-content="scriptless" import="com.serco.inquire.*" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ attribute name="mgr" required="true" %>
    <%@ attribute name="mkind" required="false" %>
    <%@ attribute name="sort" required="false" %>
    <c:if test="${empty mkind}">
      <c:set var="mkind" value="manager" />
    </c:if>
    <c:if test="${empty sort}">
      <c:set var="sort" value="none" />
    </c:if>
    <jsp:useBean id="irc" scope="page" class="com.serco.inquire.IrCollection">
      <jsp:setProperty name="irc" property="mgrtype" value="${mkind}" />
      <jsp:setProperty name="irc" property="sort" value="${sort}" />
      <jsp:setProperty name="irc" property="mgrid" value="${mgr}" />
    </jsp:useBean>
    ${irc.fullsort}Which the .jsp file invokes with this:
    <c:set var="user" value="none" />   
    <c:set var="sort" value="none" />
    <inq:displayCollection>
      <jsp:attribute name="mgr">${user}</jsp:attribute>
      <jsp:attribute name="mkind">cotr</jsp:attribute>
      <jsp:attribute name="sort">${sort}</jsp:attribute>
    </inq:displayCollection>In other words, the exact same data is fed to the IrCollection bean. so I should get the same data, right?
    Except I get this: WHERE cotr = 'none' ORDER BY non DESC so when Java calls it, it thinks "none" == "none"
    but when jsp calls it, it thinks "none" != "none"

    To compare objects' states, including Strings' contents, use equals(), not ==. The == operator tests whether 2 references have the same value, that is, whether both point to the same object (or are both null). The equals() method does whatever that class's implementor tells it to do, but its purpose--and what it does in reasonable implementations--is to compare objects' states. In the case of String, it tests whether both String objects contain equal character sequences.
    If == happened to return true in your test case, its because interning led to both references pointing to the same String object in the constant pool.

  • By default all nodes expanded  in tree table in jsff page in adf

    Hi All,
    I have a jsff page there is a table tree on it.I want it to be expanded on page load(or default behavior).
    How will I achieve it.
    This is to be noted that this jsff page so I can not use before phase or after phase.
    There is a property in tree table which is expandAllEnabled it does not expand nodes of tree.
    There is one more property in tree table which is Initially expanded it shows only first node of tree table expanded.
    Thanks & regards,
    Vikas
    Edited by: vikasadf on May 16, 2013 8:02 AM

    Hi,
    It means store the variable ps in pageflowscope variable calles expanedAllNodes and use the disclosed property of treetable.
    example:
                if (ps == null) {
                    ps = new RowKeySetImpl(true);
                    ps = new RowKeySetImpl(true);
                    ADFContext.getCurrent().getPageFlowScope().put("expanedAllNodes", ps);
                disclosedRowKeys="#{pageFlowScope.expanedAllNodes}"
    Thanks
    Raj Gopal K

  • TREE-NODE-EXPANDED

    Hi all
    i have a problem in the tree node. i was upgrading the application from forms9i to forms10g. but after the upgrade the tree node does not work as before.
    every time i try to expand the tree with the keyboard ( the arrow key - the enter key ) i need to press the (tab key) to expand the tree .
    also when i try to open any form from the tree by pressing the (enter key) i need to press the (tab key).
    but when i use the mouse (double click) it works well.
    Thanx.

    It's a bug 4509399. There is a oneoff patch on Metalink:
    https://metalink.oracle.com/metalink/plsql/f?p=130:14:4034066994841324251::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,331369.1,1,1,1,helvetica

  • Set root node expanded when the page is opened

    Hi,
    I have a tree in a page having 2 children.
    Currently when I come to the page, the parent node appears, when click on that, it will show the 2 children.
    My requirement is, when come to the page, the parent node should be expanded and show its children.
    Please suggest how can i do this....!
    Thanks,
    ViN

    Hi Arun,
    When initiallyExpanded property of the tree is set to true, all the child nodes also expanded.
    My requirement is to expand only parent node.
    Thanks,
    ViN

  • Can't make buttons hidden in normal state.

    I've been reading the boards about how to make buttons hidden in the normal state and that all you have to do is turn the opacity down to 0, but that doesn't seem to be working for me.  The buttons (such as the triangle or solid line built in to DVDSP) just turn grey.
    Is there something I am missing?
    Please advise.

    button properties
    colors tab/set normal to 0.
    The manual also goes into great detail regarding this.

Maybe you are looking for

  • ACS IS WORKING, BUT NOT THE WEB GUI

    I have an ACS ver 5.4.0.46.7 running on an applicance, ACS-1121-K9. After rebooting a Win2008-controller it stopped working and someone in my Department rebooted the ACS. It looks like the authentications are working now, but I can't Access the web g

  • Connecting Oracle 9i and Dev 6i

    Dear Fellows, I installed first dev 6i than i installed oracle 9i on the same drive but different folder and different home. now forms are not being connected to oracle. Can you help to solve this problem? Thanks

  • New Air 2 = jerky pixelated video - what settings or resolution to fix this?

    New iPad Air 2 (A1566 64gig) - streaming video is pixelated and jerky.  All the signs of video hardware that can't keep up.    Not really usable.  Experimented by streaming the same clips both simultaneously (side by side) as well as one after the ot

  • Codec error window, please help!

    Hey there! I'm trying to import several videos in Premiere Pro CS5 to edit them, but I can't even get them in. An error message pops up: "the codec is missing or it does not exist" (this is a translation, I don't know if it's exact). So, I checked th

  • Read AOL on computer still shows as new

    AOL mail I read on my PC does not show as read on my phone.  I have over 500 in the notification badge.  Can someone please help?  Thanks!