Uix:tree

Hi,
* Could somebody give me an example of using the <uix:tree> tag to build the following tree?
<PRE>
Root
|_____Category1
|_____Cat1-Sub1
|_____Cat1-Sub2
|_____Category2
|_____Cat2-Sub1
|_____Cat2-Sub2
|_____Cat2-Sub3
</PRE>
* This is for a UIX/JSP page (NOT a UIX/XML page).
Thanks,
Ranga

You could start with SimpleTreeData.
Please see
http://otn.oracle.com/jdeveloper/help/topic?inOHW=false&linkHelp=false&file=jar:file:/u01/webapps/OHW/ohw-app/jdeveloper/helpsets/jdeveloper/reference/reference.zip!/uix2-javadoc/oracle/cabo/ui/data/tree/SimpleTreeData.html

Similar Messages

  • Uix:Tree - How to populate in jsp ?

    Hello all,
    I'm having trouble to know how to populate an <uix:tree> in a JSP page. I see the UIX Developer's guide and the SimpleTreeData example and the documentation about uix:jsp is very poor. The data that will be posted in the <uix:tree> was provided by IFS. Then, I populate a DataObjectList with the files name. The point is that I don't know how to make a link between this DataObjectList, populated in a class(*.JAVA) file and the <uix:tree>(*.JSP) file. I wanna know how to use only <uix:jsp> and don't use *.UIX files, only *.JSP and *.JAVA files, ok ?
    Here are some code part :
    This is the JSP file
    <%@ taglib uri="http://xmlns.oracle.com/uix/ui" prefix="uix" %>
    <%@ page import="Hierarquia" %>
    <%@ page import="oracle.cabo.ui.data.DataObjectList" %>
    <%@ page contentType="text/html;charset=windows-1252"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>
    Ifs - Publicação de Documentos
    </title>
    </head>
    <uix:document>
    <uix:styleSheet />
    <body>
    <uix:body>
    <uix:pageLayout>
    <uix:contents>
    <uix:form name="teste">
    <uix:contents>
    <%
    DataObjectList dados = null;
    Hierarquia x = new Hierarquia();
    x.conecta();
    x.populateTree();
    dados = x.getResultSet();
    %>
    <uix:formattedText text="Teste" />
    <uix:tree id="arvore_teste" nodesBinding="????" formName="teste">
    </uix:tree>
    </uix:contents>
    </uix:form>
    </uix:contents>
    </uix:pageLayout>
    </uix:body>
    </body>
    </uix:document>
    </html>
    Thanks folks !
    Carlos

    Carlos -
    I believe that the best way to do this is to use scriptable variables, eg:
      <uix:tree id="arvore_teste">
        <%
          // Assuming "dados" contains your tree data
          arvore_teste.setNodes(dados);
        %>
      </uix:tree>See the "Scriptable Variables" section in the "UIX JSP Tag Libraries" chapter of the UIX Developer's Guide for more info...
    Andy

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

  • UIX tree, table-based example needed

    Has anyone ever used the UIX tree element (JDev help, UIX developer's guide, chapter 15) in combination with BC4J and/or Jheadstart generated UIX-pages? Any examples are welcome. I also can't get the (static :-/) example in the Help to expand when clicking the +/- icons. Help on this one too please. Tnx.

    You should try to post this question on JDevelper Forum.

  • UIX:Tree Control

    Hi,
    Has anybody used or know to use the UIX:Tree control part of the UIX Simple JSP Components? If so can you please tell me if this helps creating a DHTML Tree component?
    Thanks
    mn

    Hello there,
    You should check out the "Data Trees" chapter of the UIX Developer's Guide. It goes into a lengthy description of the tree component and how to code it in UIX. The tree component does not use DHTML, but rather rerenders based on its state (what is expanded and collapsed).

  • ADF UIX Tree Component

    Hi
    I have created ADF UIX Tree Component on my screen and i want to have button expand all / collapse all for my tree .
    Can i create event for expand all / collapse all ADF UIX Tree ?
    If i can ,could you please advise how i should to do ?
    Thanks

    Hi Daniel,
    Are there any one can tell me when the new ADF UIX
    demo based on uix 2.2 be released?I'm not sure when any sample applications will be released, but there is an ADF UIX tutorial available here:
    http://otn.oracle.com/products/jdev/collateral/tutorials/9050/adfuix_tut.html
    I want to know if we can get databind uix tree
    component (or other ui components) from ADF data
    action control which return dataobject and something
    else.I'm not sure about the tree component - I'll try to find out whether that is/will be supported. Once your data controls are available in the Data Control Palette, you can bind them to components in your UIX page by:
    1. Selecting the data control that you want to bind.
    2. Selecting a component type from the "Drop As" choice.
    3. Dragging the data control onto the UIX page.
    This process is illustrated in the tutorial above.
    Andy

  • UIX Tree: "Expand All" Functionality

    Hello,
    I have a question about the Tree in UIX. We are using the Tree component in a UIX Page (JDeveloper 10.1.2). With the tree we also make use of the ClientStateTreeDataProxy class.
    It is possible to expand and collapse the tree, but I want to have 1 button to be able to expand all nodes on the first level of the tree or if this isn't possible to expand all the nodes.
    I have try to simulate this using struts actions, but I'm unable to simulate the state request-parameter. I also try to look if something is possible with the ClientStateTreeDataProxy class. Which possibilities are there to manipulate the tree component?
    Thanks, Dennis

    Thanx Jeanne,
    You brought me on a idea with the UIX Developer's Guide and EXPANDABLE_EXPANDED value.
    I couldn't figure out how the expand property was filled, because it wasn't done in the ADF BC ViewObject. We have a Utility class that creates a DataObject from the ViewObject Data and here the expand property was set.
    Now it was easy to build a ExpandAll option. It is possible to access the HttpServletRequest object were the DataObject is created. By setting a attribute in the request I could react on that and give the expand property indeed the value EXPANDABLE_EXPANDED.
    Dennis

  • UIX Tree for all who needs help!!!

    Hi guys!!!
    Uix team can`t write any examples of this subject, we decided to create it :-)...
    There is an example of working tree with proxy for JDev 9.03!!!
    All data takes from the DataBase. We use a ViewObject for DataBinding with hierarhical querry
    (start with...
    connect by prior... )! Dont forget to write this querry!
    For using this querry U must use primary key (but not the rowID Item!!!!).
    Don`t forget to change the name of your package, appmodule in UIX and Java!!!
    There are Java & Uix files here!
    If U have any questions ask us for e-mail: [email protected] !
    With best regards,
    Diamond Developer Team (Stukotiy Luda (advancd support), Chindakov Alex, Druppov Serge).
    From Russia!
    P.S. We will be glad to see the working example of hGrid with the same DataBinding!
    package mypackage1;
    import java.lang.String;
    import oracle.cabo.data.jbo.ui.bind.UIBindingUtils;
    import oracle.cabo.servlet.BajaContext;
    import oracle.cabo.servlet.Page;
    import oracle.cabo.servlet.event.EventResult;
    import oracle.cabo.servlet.event.PageEvent;
    import oracle.cabo.servlet.ui.BajaRenderingContext;
    import oracle.cabo.ui.RenderingContext;
    import oracle.cabo.ui.UIConstants;
    import oracle.cabo.ui.data.DataObject;
    import oracle.cabo.ui.data.DataObjectList;
    import oracle.cabo.ui.data.tree.ClientStateTreeDataProxy;
    import oracle.cabo.ui.data.tree.SimpleTreeData;
    import oracle.jbo.NoDefException;
    import oracle.jbo.Row;
    import oracle.jbo.RowIterator;
    import oracle.jbo.ViewObject;
    import oracle.jbo.server.ApplicationModuleImpl;
    // --- File generated by Oracle Business Components for Java.
    public class Mypackage1ModuleImpl extends ApplicationModuleImpl
    * This is the default constructor (do not remove)
    public Mypackage1ModuleImpl()
    * Container's getter for TsStatView1
    public TsStatViewImpl getTsStatView1()
    return (TsStatViewImpl)findViewObject("TsStatView1");
    * Sample main for debugging Business Components code using the tester.
    public static void main(String[] args)
    launchTester("mypackage1", "Mypackage1ModuleLocal");
    public class JBODataObjectList implements DataObjectList
    * Create a data object list based on the current range of
    * this row iterator.
    public JBODataObjectList(RowIterator iterator)
    this(iterator, Integer.MAX_VALUE);
    * Create a data object list based on the current range of
    * this row iterator, with a restricted size.
    public JBODataObjectList(RowIterator iterator, int maxSize)
    _iterator = iterator;
    size     = Math.min(iterator.getRowCountInRange(), maxSize);
    * Return the size of the list.
    public int getLength()
    return _size;
    * Get an item from the list.
    public DataObject getItem(int index)
    // Make sure we're in range
    if ((index < 0) || (index >= _size))
    throw new IndexOutOfBoundsException();
    Row row = _iterator.getRowAtRangeIndex(index);
    if (row == null)
    return null;
    return new DO(row);
    // An inner class that handles a single row
    static private final class DO implements DataObject
    public DO(Row row)
    _row = row;
    public Object selectValue(RenderingContext context, Object key)
    // Make sure that the key is non-null
    if (key != null)
    try
    // Treat the key as an attribute name
    return _row.getAttribute(key.toString());
    catch (NoDefException nde)
    // Do nothing. It's legal to pass an invald key to DataObjects.
    return null;
    private final Row _row;
    private final RowIterator _iterator;
    private final int _size;
    public class Tree implements DataObject {
    private String submitURL = null;
    public Tree(String submitURL){
    this.submitURL = submitURL;
    public static DataObject getProxy(RenderingContext rc, String ns, String name) {
    return new Tree(null);
    public static EventResult handleExpand(BajaContext context,Page page,PageEvent event)
    throws Throwable
    String state = event.getParameter(UIConstants.STATE_PARAM);
    String node = event.getParameter(UIConstants.NODE_PARAM);
    String selection = event.getParameter(UIConstants.SELECTION_PARAM);
    EventResult result = new EventResult(page);
    Object proxy = new ClientStateTreeDataProxy(null, state, node, selection);
    result.setProperty("proxy", proxy);
    return result;
    public static int s = 0; // ������
    public static int i = 0; // ������
    // � ��������, ����������� ����, ���������� ��� ����� ������� �������� �����������!!!
    public static String mOwner[]=new String[100]; // �������� ���� fk_owner �� ����
    public static String mName[]=new String[100]; // �������� ���� fc_name �� ����
    public static DataObject getTree(RenderingContext rc, String ns, String name){
    SimpleTreeData child = new SimpleTreeData();
    SimpleTreeData parent = new SimpleTreeData(); // ����������� ��������
    SimpleTreeData parent1 = new SimpleTreeData(); // �������� �������
    SimpleTreeData parentBuf[] = new SimpleTreeData[130]; // ����� ��� �������� ����������� ��������
    int ownerInt; // ��� �������� fk_owner ������� ������
    int buf = 0; // ��� �������� fk_owner ������� ������
    String ownerStr, // --- � ������� ������
    valueColumn; // ������ �������� ������� ������
    if (i==0)
    ViewObject vo = UIBindingUtils.getViewObject(rc); // ��� VO
    vo.previous();
    //for(s=0;s<96;s++)
    while(vo.hasNext())
    Row row=vo.next();
    mOwner[s]=row.getAttribute("FkOwnerid").toString();
    mName[s]=row.getAttribute("FcName").toString();
    s++;
    for (i=0;i<s;i++)
    ownerStr=mOwner;
    valueColumn=mName[i];
    //ownerStr = row.getAttribute("FkOwnerid").toString();
    ownerInt = Integer.parseInt(ownerStr);
    //valueColumn = row.getAttribute("FcName").toString();
    if(ownerInt == 0) // ������ ������
    parent1 = new SimpleTreeData();
    parent1.setText(valueColumn);
    parent1.setExpandable("expanded");
    parent.addChild(parent1);
    buf = 0;
    // parentBuf[ownerInt] = new MySimpleTreeData();
    else
    if(ownerInt != buf)
    if(ownerInt > buf)
    child = new SimpleTreeData();
    child.setText(valueColumn);
    child.setExpandable("expanded");
    parent1.addChild(child);
    parentBuf[ownerInt] = parent1;
    parent1 = child;
    buf = ownerInt;
    else
    child.setExpandable("no");
    parent1 = parentBuf[ownerInt];
    child = new SimpleTreeData();
    child.setText(valueColumn);
    child.setExpandable("expanded");
    parent1.addChild(child);
    parent1 = child;
    buf = ownerInt;
    else
    child.setExpandable("no");
    child = new SimpleTreeData();
    child.setText(valueColumn);
    child.setExpandable("expanded");
    //parentBuf[ownerInt].addChild(child);
    parent1 = parentBuf[ownerInt];
    parent1.addChild(child);
    parent1 = child;
    if(i == 95)
    child.setExpandable("no");
    //child.setExpandable("no");
    return parent;
    public Object selectValue(RenderingContext rc, Object p1) {
    BajaContext bc = BajaRenderingContext.getBajaContext(rc);
    EventResult result = EventResult.getEventResult(bc);
    Object proxy = (result==null) ? null : result.getProperty("proxy");
    if (proxy==null) proxy = new ClientStateTreeDataProxy( submitURL, null, null, null);
    return proxy;
    <?xml version="1.0" encoding="windows-1252"?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:bc4j="http://xmlns.oracle.com/uix/bc4j"
    xmlns:html="http://www.w3.org/TR/REC-html40">
    <bc4j:registryDef>
    <bc4j:rootAppModuleDef name="TsStatView1AppModule"
    definition="Project4.Mypackage1Module"
    releaseMode="stateful" >
    <bc4j:viewObjectDef name="TsStatView1"
    rangeSize="3" />
    </bc4j:rootAppModuleDef>
    </bc4j:registryDef>
    <content>
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui">
    <provider>
    <data name="Proxy">
    <method class="mypackage1.Tree" method="getProxy" />
    </data>
    <data name="Nodes">
    <method class="mypackage1.Tree" method="getTree" />
    </data>
    </provider>
    <contents>
    <bc4j:rootAppModuleScope name="TsStatView1AppModule" >
    <contents>
    <document>
    <metaContainer>
    <!-- Set the page title -->
    <head title=""/>
    </metaContainer>
    <contents>
    <bc4j:viewObjectScope name="TsStatView1" >
    <contents>
    <pageLayout>
    <contents>
    <form name="menuForm" >
    <contents>
    <tree id="menuTree" formSubmitted="true"
    data:nodes="nodes@Nodes"
    data:proxy="proxy@Proxy" />
    </contents>
    </form>
    </contents>
    </pageLayout>
    </contents>
    </bc4j:viewObjectScope>
    </contents>
    </document>
    </contents>
    </bc4j:rootAppModuleScope>
    </contents>
    </dataScope>
    </content>
    <handlers>
    <event name="expand" >
    <method class="mypackage1.Tree" method="handleExpand" />
    </event>
    </handlers>
    </page>

    Don't forget, you can make code easier to read by enclosing it in [code ]  tags (without the space in the first tag), so it looks like this:
    <provider>
         <data name="bundle">
              <bundle class="strings" />
         </data>
    </provider> instead of this:
    <provider>
         <data name="bundle">
              <bundle class="strings" />
         </data>
    </provider>

  • Dynamic UIX tree

    Hi everybody, for the last couple of days i was trying to create a tree in UIX (with nodes and subnodes) based on dynamic data (not inline data defined in the UIX page) and i have found that the only way to do it(correct me if i'm wrong) is through java (not XML) and these are my main attempts:
    1)
    public class TreeTest1
    public static UINode getPage()
    HTMLWebBean div = new HTMLWebBean("div");
    TreeBean tree = new TreeBean();
    tree.setNodes(_getDataForTree());
    div.addIndexedChild(tree);
    BodyBean body = new BodyBean();
    body.addIndexedChild(div);
    return body;
    static private DataObjectList _getDataForTree()
    DataObject[] rows = new DataObject[5];
    for (int j = 0; j < rows.length; j++)
    DictionaryData row = new DictionaryData();
    row.put("key", "" + j);
    row.put("text", "" + j);
    rows[j] = row;
    return new ArrayDataSet(rows);
    when i run this i just get level-1 nodes without any control over them (i.e i can't set their properties like destination, expandabilty..etc)
    2) I have found this code here http://otn.oracle.com/jdeveloper/help/topic?inOHW=false&linkHelp=false&file=jar:file:/u01/webapps/OHW/ohw-app/jdeveloper/helpsets/jdeveloper/reference/reference.zip!/uix2-javadoc/oracle/cabo/ui/data/tree/SimpleTreeData.html but it is not mentioned how to add this DataModel to the tree.
    3) In the TreeBean API there are methods to add any IUNode to the tree (including another tree) and here's an example :
    public class TreeTest1
    public static UINode getPage()
    HTMLWebBean div = new HTMLWebBean("div");
    TreeBean tree = new TreeBean();
    tree.addIndexedChild(new TextNode("First tree node"));
    tree.addIndexedChild(new TextNode("Second tree node"));
    div.addIndexedChild(tree);
    BodyBean body = new BodyBean();
    body.addIndexedChild(div);
    return body;
    but the problem here is that the tree is not rendered, any other UINode is rendered perfectly.
    I would appreciate any help.

    Hi Houssen, I made a simple example. Try it.
    The uix file
    -------- BEGIN ----------
    <?xml version="1.0" encoding="windows-1252"?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:html="http://www.w3.org/TR/REC-html40">
    <content>
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui">
    <provider>
    <data name="Proxy">
    <method class="mypackage.Tree" method="getProxy" />
    </data>
    <data name="Nodes">
    <method class="mypackage.Tree" method="getTree" />
    </data>
    </provider>
    <contents>
    <document>
    <metaContainer>
    <!-- Set the page title -->
    <head title=""/>
    </metaContainer>
    <contents>
    <pageLayout>
    <contents>
    <form name="menuForm" >
    <contents>
    <tree id="menuTree" formSubmitted="true"
    data:nodes="nodes@Nodes"
    data:proxy="proxy@Proxy" />
    </contents>
    </form>
    </contents>
    </pageLayout>
    </contents>
    </document>
    </contents>
    </dataScope>
    </content>
    <handlers>
    <event name="expand" >
    <method class="mypackage.Tree" method="handleExpand" />
    </event>
    </handlers>
    </page>
    -------- END ----------
    The java file
    -------- BEGIN ----------
    package mypackage;
    import oracle.cabo.servlet.BajaContext;
    import oracle.cabo.servlet.Page;
    import oracle.cabo.servlet.event.EventResult;
    import oracle.cabo.servlet.event.PageEvent;
    import oracle.cabo.servlet.ui.BajaRenderingContext;
    import oracle.cabo.ui.RenderingContext;
    import oracle.cabo.ui.UIConstants;
    import oracle.cabo.ui.data.DataObject;
    import oracle.cabo.ui.data.tree.ClientStateTreeDataProxy;
    import oracle.cabo.ui.data.tree.SimpleTreeData;
    public class Tree implements DataObject {
    private String submitURL = null;
    public Tree(String submitURL){
    this.submitURL = submitURL;
    public static DataObject getProxy(RenderingContext rc, String ns, String name) {
    return new Tree(null);
    public static EventResult handleExpand(BajaContext context,Page page,PageEvent event)
    throws Throwable
    String state = event.getParameter(UIConstants.STATE_PARAM);
    String node = event.getParameter(UIConstants.NODE_PARAM);
    String selection = event.getParameter(UIConstants.SELECTION_PARAM);
    EventResult result = new EventResult(page);
    Object proxy = new ClientStateTreeDataProxy(null, state, node, selection);
    result.setProperty("proxy", proxy);
    return result;
    public static DataObject getTree(RenderingContext rc, String ns, String name){
    SimpleTreeData parent = new SimpleTreeData();
    SimpleTreeData child = new SimpleTreeData();
    child.setText("1");
    child.setExpandable("collapsed");
    parent.addChild(child);
    child = new SimpleTreeData();
    child.setText("2");
    child.setExpandable("collapsed");
    SimpleTreeData child2 = new SimpleTreeData();
    child2.setText("2.1");
    child2.setExpandable("collapsed");
    child.addChild(child2);
    parent.addChild(child);
    return parent;
    public Object selectValue(RenderingContext rc, Object p1) {
    BajaContext bc = BajaRenderingContext.getBajaContext(rc);
    EventResult result = EventResult.getEventResult(bc);
    Object proxy = (result==null) ? null : result.getProperty("proxy");
    if (proxy==null) proxy = new ClientStateTreeDataProxy( submitURL, null, null, null);
    return proxy;
    -------- END ----------
    Hope this help
    Rafael

  • JDEV 10.1.2 UIX Tree Event Handler

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

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

  • UIX Tree Component

    I have an issue with using tree component for our application. We need to provide expand/collapse facility for tree component (using default (+) and (-) icons). Does ADF_UIX support s for this situation. Please provide me any guideline....

    I have an issue with using tree component for our application. We need to provide expand/collapse facility for tree component (using default (+) and (-) icons). Does ADF_UIX support s for this situation. Please provide me any guideline....

  • Skinning UIX tree component

    Are there any possibilities to skin tree component somehow?

    Changing the avatar size doesn't seem to have any affect. Do
    you know what the Avatar is for? It appears to be a bounding box of
    some sort, but resizing it doesn't seem to change anything.
    Actually, I notice that if I open the avatar, it says it is
    22x80, although the scaled version in the Slider is 3x80. It seems
    to be some sort of shared component. If I resize the contents of
    the avatar, all my buttons change, but the sliders don't actually
    change. Sadly, it seems like "3" is a hard coded value somewhere in
    the source. Blah.

  • UIX-XML BC4J - Unexpected errors using paths and DeltaTree on a particular UIX page

    We are using a PageDescription to dynamically change a UIX tree using the DeltaTree technique described in the Dynamic Structure for For UIX Pages chapter of the UIX Developers Guide.
    We search for a particular node using PathUtils.FindPathWithNodeID(RenderingContext context, UINode from, java.lang.String nodeID), but this fails when the page contains nested ViewObjectScopes.
    The method throws a NullPointerException, and the render fails:
    29/08/02 9.08 Valutazioni: java.lang.NullPointerException
         oracle.cabo.ui.data.DataObjectList oracle.cabo.ui.collection.DataObjectListNodeList.getDataObjectList(oracle.cabo.ui.RenderingContext)
         int oracle.cabo.ui.collection.DataObjectListNodeList.size(oracle.cabo.ui.RenderingContext)
         int oracle.cabo.ui.BaseUINode.getIndexedChildCount(oracle.cabo.ui.RenderingContext)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         oracle.cabo.ui.path.Path oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
         oracle.cabo.ui.path.Path oracle.cabo.ui.path.PathUtils.findPathWithNodeID(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.UINode, java.lang.String)
         oracle.cabo.ui.UINode com.websiteitalia.wsdk.uix.pageflow.PageFlowManager.getRootUINode()
         oracle.cabo.ui.UINode oracle.cabo.servlet.ui.UINodePageDescriptionProxy.getRootUINode()
         oracle.cabo.ui.UINode oracle.cabo.servlet.ui.UINodePageRenderer.getRootUINode(oracle.cabo.servlet.BajaContext, oracle.cabo.ui.RenderingContext, oracle.cabo.servlet.Page)
         oracle.cabo.ui.UINode oracle.cabo.servlet.ui.HTMLUINodePageRenderer.getRootUINode(oracle.cabo.servlet.BajaContext, oracle.cabo.ui.RenderingContext, oracle.cabo.servlet.Page)
         void oracle.cabo.servlet.ui.UINodePageRenderer.renderPage(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page)
         void oracle.cabo.servlet.AbstractPageBroker.renderPage(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page)
         oracle.cabo.servlet.Page oracle.cabo.servlet.PageBrokerHandler.handleRequest(oracle.cabo.servlet.BajaContext)
         void oracle.cabo.servlet.BajaServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
         void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
         void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
         boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
         void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
         void com.evermind.util.ThreadPoolThread.run()
    We found the element of the UIX page that causes the problem:
    <bc4j:viewObjectScope name="ElementsView" >
    <contents>
         <bc4j:rowScope name="NewElement" >
         <contents>     
              <bc4j:region automatic="false" >
                   <bc4j:key>
                        <bc4j:rowKey name="keyElement"/>
                   </bc4j:key>
                   <contents>
                        <bc4j:attrScope name="FlgState">
                        <contents>
                             <messageChoice name="FlgState" prompt="State" >
                                  <boundAttribute name="selectedValue">
                                       <concat>
                                            <bc4j:attrProperty name="value"/>
                                            <fixed text=""/>
                                       </concat>
                                  </boundAttribute>
                                  <contents>
                                       <!-- This is the nested vo scope causing the error -->
                                       <bc4j:viewObjectScope name="DecodeStateView" >
                                       <contents data:childData="list@DecodeState">
                                            <option data:value="StateCode"
                                                 data:text="StateDescription"/>
                                       </contents>
                                       </bc4j:viewObjectScope>
                                  </contents>
                             </messageChoice>
                        </contents>
                        </bc4j:attrScope>
                   </contents>
              </bc4j:region>
         </contents>
         </bc4j:rowScope>
    </contents>
    </bc4j:viewObjectScope>
    This usage of nested view object scopes has been explained in reply of a previous post, How to databind the children of a UIX XML choice, and before ours attempts to modify the tree it worked fine. Removing the nested view object scope the page makes the page render correctly, but we need it to retrieve the description of its state.
    We get the same behaviour (and a much similar stack trace, with the same oracle.cabo.ui.data.DataObjectList oracle.cabo.ui.collection.DataObjectListNodeList.getDataObjectList (oracle.cabo.ui.RenderingContext) throwing a NullPointerException) if we use NodeUtils.createPreorderDescendentAttributeEnumeration method instead of PathUtils.

    It's a bug in the DataObjectListNodeList class that's up at the top of
    the stack. It's been fixed for 9.0.3. The bit of XML that's triggering
    it isn't the <viewObjectScope>s, but the "data:childData".
    I believe you can workaround this bug by not passing a null RenderingContext to
    findPathWithNodeID(). Now, you don't have a real RenderingContext, and we
    don't especially need one - "null" is legit here, but I think if
    you just pass "new oracle.cabo.ui.RootRenderingContext()" then you'll
    get around this bug.

  • When will new ADF UIX demo be released?

    Are there any one can tell me when the new ADF UIX demo based on uix 2.2 be released?
    I want to know if we can get databind uix tree component (or other ui components) from ADF data action control which return dataobject and something else.
    Thanks a lot.

    Hi Daniel,
    Are there any one can tell me when the new ADF UIX
    demo based on uix 2.2 be released?I'm not sure when any sample applications will be released, but there is an ADF UIX tutorial available here:
    http://otn.oracle.com/products/jdev/collateral/tutorials/9050/adfuix_tut.html
    I want to know if we can get databind uix tree
    component (or other ui components) from ADF data
    action control which return dataobject and something
    else.I'm not sure about the tree component - I'll try to find out whether that is/will be supported. Once your data controls are available in the Data Control Palette, you can bind them to components in your UIX page by:
    1. Selecting the data control that you want to bind.
    2. Selecting a component type from the "Drop As" choice.
    3. Dragging the data control onto the UIX page.
    This process is illustrated in the tutorial above.
    Andy

  • Example Wanted:  JSP UIX data binding

    Hullo! I'm trying to display an active tree using 9.0.3 JSP UIX. I was successful in straight UIX (thanks to the examples), but can't figure out how do get the databinding correct in JSP/UIX. Does anyone have an example using <uix:tree>, or failing that how about anything substantial in JSP/UIX?
    The uiXML/UIX download examples are great, and the online documentation is extensive though I find it hard to follow... but for the JSP side there just aren't any working examples!
    Thanks so much.
    Heather

    Thank you very much for the response.
    It got me looking in the right direction, and now I have something working!
    Sincerely,
    Heather
    btw In case anyone else is ever in a similar position, here is an implementation of the above example, with some really silly data plugged in.
    jsp" contentType="text/html;charset=windows-1252"%>
    <%@ taglib uri="http://xmlns.oracle.com/uix/ui" prefix="uix" %>
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <%@ page import = "oracle.cabo.ui.data.tree.*" %>
    <%@ page import = "oracle.cabo.ui.data.*" %>
    <%@ page import = "oracle.cabo.ui.*" %>
    <%@ page import = "oracle.cabo.ui.data.*" %>
    <%-- user interface begins here --%>
    <HTML>
    <HEAD>
    <TITLE>Browse Page</TITLE>
    <uix:styleSheet/>
    </HEAD>
    <BODY>
    <uix:pageLayout>
    <%-- Main page contents go here --%>
    <uix:contents>
    <uix:header text="Tree Demo"/>
    <uix:spacer height="15" />
    <%
    SimpleTreeData shop = new SimpleTreeData();
    shop.setText("Shop");
    shop.setDescription("Spend some money!");
    shop.setDestination( "http://bali.us.oracle.com");
    shop.setDestinationText( "More Information");
    shop.setExpandable(UIConstants.EXPANDABLE_EXPANDED);
    SimpleTreeData books = new SimpleTreeData();
    books.setText("Books");
    books.setDescription("books have pages!");
    books.setDestination( "http://bali.us.oracle.com");
    books.setDestinationText( "More Information");
    books.setExpandable(UIConstants.EXPANDABLE_EXPANDED);
    SimpleTreeData art = new SimpleTreeData();
    art.setText("Art");
    art.setDescription("picasso et al!");
    art.setDestination( "http://bali.us.oracle.com");
    art.setDestinationText( "More Information");
    SimpleTreeData[] bookCategories = { art, art };
    books.addChildren( bookCategories );
    SimpleTreeData[] categories = { books, books };
    shop.addChildren(categories);
    ListDataObjectList treeData = new ListDataObjectList();
    treeData.addItem(shop);
    request.setAttribute("treeData", treeData);
    ClientStateTreeDataProxy proxy =
    new ClientStateTreeDataProxy("",
    request.getParameter(UIConstants.STATE_PARAM),
    request.getParameter(UIConstants.NODE_PARAM),
    request.getParameter(UIConstants.SELECTION_PARAM));
    request.setAttribute("treeProxy", proxy);
    %>
    <uix:tree id="myId" nodesBinding="treeData@servletRequest"
    proxyBinding="treeProxy@servletRequest">
    <uix:nodeStamp>
    <uix:flowLayout>
    <uix:contents>
    <uix:link destinationBinding="destination" textBinding="text" />
    </uix:contents>
    </uix:flowLayout>
    </uix:nodeStamp>
    </uix:tree>
    </uix:contents>
    </uix:pageLayout>
    </BODY>
    </HTML>
    <jbo:ReleasePageResources />

Maybe you are looking for