Tree component puzzle -

Hello
The example i am going to give is one of the issue that make me always wonder if ADF is the right framework for development. I might be of course wrong, it can only prove that we are not on the right track or there a lack of information either or our part or from the part of the Framework developers. We are using Jdeveloper 11g
We have a simple requirement:
Tree is to show the dept employees
Tree node is to show the Emp employee (of course the emps corresponding to the master dept)
This works nicely by following the standard tree implantation.
Then it is required to show only employees who satisfy a certain condition (ie sal > 2000)
We of course modified the EMP viewobject and added a viewCriteria . A been which is invoked by a button action executes the viewCriteria properly
This is the puzzling results
When you expand the tree node, all corresponding employees appear as if the where clause was not executed.
We used the same Emp View object and added a normal table component side by side with the tree, the table shows filtered information as expected
Findings
1) We monitored the executed statement through V$SQL_AREA and found that the action is actually executed.
2)We also found the another statement being executed which matches the dept employees with the emp employees but without the where condition (ie two statements are executed)
One statement select * from emp where deptno = :deptn_no and SaL > :sal
another state select * from emp where deptno = :deptno_no
3) After more debugging, the first statement is executed upon button invocation and actually successfully filters the data, but the user cannot see the filtered data because the tree node is still in collapsed state
4) when the user expands the tree to view the results, the other statement is executed , thus , overwriting the filtered data. and the user (also the developers) stays under the impression that the filtering was not done at all
I don't see how the ADF architects think about it and how come they re-execute the VOlink this way.
I will post it on OTN, but i am back to my original point, Should not this behavior be at least documented, and isnt this scenario a common want to warrant a more straight forward approach
your thoughts
Ammar Sajdi

hello
moh, we already know the reason , but it does not make sense that the framework takes over the behaves the way it wants.
if you invoke the button, the viewCiriteria is executed, and the VO get filtered, and we verified the result be iterating through the ViewObject programmatically after the viewCriteria is executed.
we tried the same with bind variable query, and faced other problems because when you expand the tree, NULL is assumed for the bind variable.
However, when you try to expand the tree node (to verify if the VieWCriteria is executed or not). the Framework issues another query based on the association only (leaving the view criteria). the ADF has no right to mess up the filtered data. Additionally, i do not know why it is re=executing the query every time you open the node, this is not good for performance.
Anyway, we solved in a bad way, through debugging, we noticed that the framework creates an additional VO programmatically (which i think represents the query of the association). We forced filteration on this VO programmatically, and it worked fine! But this is not a good workaround, because if later ADF changes this approach , the code would not work upon upgrade.
The .NET team finished the assignment and did not face such obscure behavior. I think we should drop ADF altogether, it keeps surprising me and advice new adopters to be careful because they will be wasting lots of time guessing how things are done.
and why should groovey need to work?
ammar

Similar Messages

  • Custom icon per entry in the AS2 Tree Component (using CS3)

    I have a tree component that loads its data from an XML file and I wonder if I can customize every entry to have its own icon by adding an icon attribute to every entry in the XML and giving the tree an action to read that icon (which would exist in the library of the Flash file). My goal is to reproduce a tree within an application that my company is developing (it's for a training tool related to that application).
    My XML says something like <node label = 'Label' heading = 'LABEL' desc = 'Description' icon = 'icon1' />
    My label is what the tree displays, the heading is what the information dialog in the training tool displays as a title bar, the desc is what the training tool displays within the body of the text for the function description and the icon is what I want to be a reference to the graphic in the library to place as an icon in front of the item rather than use setStyle with the properties for disclosure, leaf, and folder icons.
    Is that possible? I haven't found a solution for it yet.

    I've never used the Tree component, so I'm just guessing here....
    There is a slight delay before the xml file loads and your tree has its data provider.
    Perhaps during that time there is no node at mTree.getTreeNodeAt(0) to open? Try adding this just before the last line of your code:
    trace("the node is: "+mTree.getTreeNodeAt(0));
    What do you get?
    You might need to move that code inside the xml's load event handler.
    Another thing is that the Flash components tend to work on an invalidate-then-wait-one-frame-to-redraw kind of model. So it is possible you will need to wait one frame after the xml has loaded and then tell it to open that node.
    The doLater method might help with that.
    var home:MovieClip=this;
    var xmlTreeData:XML = new XML();
    xmlTreeData.onLoad = function() {
    mTree.dataProvider = this.firstChild;
    mTree.doLater(home,"delay");
    xmlTreeData.ignoreWhite = true;
    xmlTreeData.load("xml/treeValues1.xml");
    mTree.setStyle("fontSize","11");
    mTree.setStyle("selectionColor","0xE0E0E0");
    mTree.setStyle("useRollOver",false);
    function delay(){ 

  • Label display issue in Tree component when it is having vertical scrollbar

    I am using tree component as dropdown factory for combo box. When i open dropdown, it doesn't have vertical scrollbar and all the root nodes are getting displayed correctly(in closed mode). Now if i try to open any node, i am getting vertical scrollbar as the child nodes are more. Now the problem is if scroll down, some of the nodes(labels) are not getting displayed but i am able to see the icon. If i keep on scrolling bottom to top and top to bottom, some of the nodes are showing labels and some are not(It is inconsistant).
    I have not used any custom item renderer for tree control. I used my custom dataDescriptor which i have implemented from ITreeDataDescriptor. Also I tried extending DefalutDataDescriptor, but no luck.

    Does it work if the tree is not in a combobox?

  • Layout issue with af:tree component

    I am using af:tree component but I am finding layout issue with it. I have a requirement where in I need the tree to stretch to the available space but a horizontal and a vertical scrollbar comes up automatically. Is there a way to handle this issue?

    User, without your jdev version it's hard to help.
    Have you embedded the tree component in a stretch layout?
    Timo

  • [F8] Tree Component: How can I hide/remove the scrollbar and border?

    I'm using the Tree Component in my Flash 8 Pro - Project. I'm
    trying to customize the look of the Tree component in two ways:
    1. Is there any way to remove the scrollbar from the Tree
    Component?
    2. Can I also remove the Border from the Tree Component?
    I checked the Component Inspector and couldn't find any
    options for the scrollbar nor the border.
    Does anyone know how to do this or could you point me in the
    right direction?
    Thanks

    You can use the Status-4-Evar extension to replace some functionality that was lost withthe removal of the Status bar in Firefox 4.
    Open the Customize window via "View > Toolbars > Customize" or via "Firefox > Options > Toolbar Layout" after you have installed the Status-4-Evar extension and drag the items (Status Text, Progress Meter, Download Status) upon the Add-ons Bar (View > Toolbars > [X] Add-on Bar)
    * Status-4-Evar: https://addons.mozilla.org/firefox/addon/235283/

  • Tree Component Icons

    I'm using the tree component for a little Windows Parody I'm making. In my .fla, There's a tree component that loads an external XML file.  I can't figure out how to add custom icons to my component, though.
    I know it's possible to set the icons for just the default folder and file icons, but since it's a Windows Parody, there'll be different icons for different file types, folder types, etc.
    In other words,  I'd like to have a different icon for every item in my Tree component.
    How can I do this? 
    Here are the contents of my XML file:
    <node>
        <node label="Desktop">
    </node>
        <node label="Documents">
    <node label="Pictures" isBranch="true" />
    <node label="Movies" isBranch="true" />
    <node label="Games" isBranch="true" />
    <node label="Video" isBranch="true" />
    </node>
        <node label="Computer">
    <node label="Local Disk (C:)" isBranch="true" />
    <node label="Local Disk (D:)" isBranch="true" />
    <node label="DVD-RAM Drive (E:)" isBranch="true" />
    <node label="DVD/CD-RW Drive (F:)" isBranch="true" />
    </node>
    <node label="Readme.txt" isBranch="true" />
    </node>
    And the code on the first frame of my .fla file.  The Tree's name is "fileTree", and the XML file is "doors_explorerXML.xml".
    //Tree
    var fileDP:XML = new XML();
    fileDP.ignoreWhite = true;
    fileDP.load("doors_explorerXML.xml");
    fileDP.onLoad = function() {
        fileTree.dataProvider = this.firstChild;
    Also, I don't need to have an XML file loaded.  If there's an easy way that does it all within Flash, please tell me.  I just need to be able to handle events from the Tree. 

    Im having the same issue. I dont know how to change the tree icons separately with the xml. Is there anyone who knows how to do it?
    This is what I got so far. However, i can only get my first branch to show custom icons. I tried ALOT, but i guess I´m doing something completely wrong.
    Here is the code for my tree so far:
    my_xml = new XML();
    my_xml.ignoreWhite = true;
    my_xml.load("tree.xml");
    my_xml.onLoad = function(){
    myTree.dataProvider = this.firstChild;
    var folders = my_xml.firstChild.firstChild;
    var docs = folders.childNodes;
    for (var i=0; i < docs.length; i++){
    currDoc = docs[i];
    trace(docs[i]);
    var docIcon = currDoc.attributes.pic;
    switch(docIcon){
    case "pdf":
    myTree.setIcon(currDoc, "pdfIcon");
    break;
    case "word":
    myTree.setIcon(currDoc, "wordIcon");
    break;
    case "excel":
    myTree.setIcon(currDoc, "excelIcon");
    break;
    case "ie":
    myTree.setIcon(currDoc, "ieIcon");
    break;
    }//switch
    } //for
    };//onLoad
    And here is the XML I used:
    <node label="» Dokument typer">
    <node label="» links - document">
    <node label="test.url" url="http://www." pic="ie" info="test text" />
    <node label="test.doc" url="test.doc" pic="word" info="test text" />
    <node label="test.excel" url="test.xls" pic="excel" info="test text" />
    <node label="test.pdf" url="test.pdf" pic="pdf" info="test text." />
    </node>
    <node label="» Links - document">
    <node label="test URL" url="http://www." pic="ie" info="test text." />
    <node label="test URL" url="http://www." pic="ie" info="test text." />
    </node>
    </node>

  • Questions about AS2 Tree Component (Flash CS3)

    I have Flash application with a Tree component on the Stage. I'm using an XML file to create the structure of the Tree component.
    Each entry on my XML has the attributes id, label, heading, desc, and icon.
    My problem is that I can't seem to be able to set the Tree to default with the first node open.
    My code is:
    var xmlTreeData:XML = new XML();
    xmlTreeData.onLoad = function() {
    mTree.dataProvider = this.firstChild;
    xmlTreeData.ignoreWhite = true;
    xmlTreeData.load("xml/treeValues1.xml");
    mTree.setStyle("fontSize","11");
    mTree.setStyle("selectionColor","0xE0E0E0");
    mTree.setStyle("useRollOver",false);
    mTree.setIsOpen(mTree.getTreeNodeAt(0), true);
    My tree populates fine, and the handler I retrieve whatever item is clicked works great. However, the tree refuses to default to having that first node open.
    I'm also interested in placing custom icons into certain nodes via the icon attribute I've set in the XML, but that will have to come later I guess.

    I've never used the Tree component, so I'm just guessing here....
    There is a slight delay before the xml file loads and your tree has its data provider.
    Perhaps during that time there is no node at mTree.getTreeNodeAt(0) to open? Try adding this just before the last line of your code:
    trace("the node is: "+mTree.getTreeNodeAt(0));
    What do you get?
    You might need to move that code inside the xml's load event handler.
    Another thing is that the Flash components tend to work on an invalidate-then-wait-one-frame-to-redraw kind of model. So it is possible you will need to wait one frame after the xml has loaded and then tell it to open that node.
    The doLater method might help with that.
    var home:MovieClip=this;
    var xmlTreeData:XML = new XML();
    xmlTreeData.onLoad = function() {
    mTree.dataProvider = this.firstChild;
    mTree.doLater(home,"delay");
    xmlTreeData.ignoreWhite = true;
    xmlTreeData.load("xml/treeValues1.xml");
    mTree.setStyle("fontSize","11");
    mTree.setStyle("selectionColor","0xE0E0E0");
    mTree.setStyle("useRollOver",false);
    function delay(){ 

  • Ext. data source and Tree component

    Im using tree component and XMLConnector here.
    as far as i can see results in my tree (when testing my
    movie) it ouputs data thats loaded fom ext. XML file.
    But the problem is that it publishes [type Function] in the
    tree.
    no actual xml nodes are visible, just bunch of [type
    Function]
    ive also searched for info / tutorial how to publish actual
    xml data in the tree component but without any luck.
    So what should i do and how ?

    Solved
    xml tags needed just a label with attributes

  • Tree component and loading xml files into text field

    Hello and thank you for taking the time to read my issue....
    I am making a simple self help application.  I have a tree component that loads the different catagories and topics for my help app dynamically via an xml file...no issues there.
    I then want it so that when the user cliecks on the actual topic that the TextArea component will load the info from another xml file using the name of the topic as the name of the xml file to make it that much easier for anyone to maintain this program.
    So far the code i have is this.
    myTreeListener.change = function(eventObject)
        var theSelectedNode = eventObject.target.selectedNode;
        var theSelectedNodeLabel = theSelectedNode.attributes.label;
        topicTextArea.text +=
    I am a little fuzzy when it comes to loading the xml file in.  Should i be loading html instead of xml is my other question as well?
    Thanks in advance for your help
    FG

    Check out the Oracle XDB Developer's Guide, Chapter 3. There is an example of using BFileName function to load the xml files from a directory object created using create or replace directory. It works really well.
    Ben

  • Tree component display problem when text too long???

    hi all
    whenever i use a tree component to display some sort of text, i run into problems when the width of the text being display for a node is larger than the width of the tree component.
    Given: Tree tree1 with Node node1 and Child Node child1
    When the text of either node1 or child1 is longer than the width of tree1, the text is displayed on its own single line UNDERNEATH the node images. this makes the text look like it does not belong to the group of children of a given node.
    is there anyway to add maybe a text area or some sort of scrolling region to allow for any length of text for any node??
    thanks everyone!

    Yes, you can change the size of the tree node text field. Please see the "Tree Node Component Properties Window" section in the Help Contents within the IDE. Look at the info under the "Appearance" section.

  • How to build a form with a tree component

    Hi, i'd like to know if it's posssible to build a form with
    the Flash 8 Tree component.
    My menu looks like a tree but the childnodes of this tree are
    some form criteria that you can aditionate and post to a serveur.
    I try to use the accordeon menu, and it works but my menu
    must have dynamic heigth, and open all the boxes like the tree
    component...
    I'm in a hole... please healp me...
    Thinks

    Sans,
    I am no Apex expert, but with a situation as "complex" as yours, have you thought about creating a VIEW that joins these 7/8 tables, placing an INSTEAD OF trigger on that view to do all the business logic in the database, and base your application on the view?
    This is the "thick-database" approach that has been gaining momentum of late. The idea is to put your business logic in the database wherever possible, and let the application (Form, Apex, J2EE, whatever) concentrate on UI issues,

  • Incremental Loading of a Tree Component

    I'm working on an explorer-type interface in Flex 2 for
    browsing a remote file repository. It's a standard split-pane
    affair with a directory tree on the left and a listing on the
    right.
    Because the entire directory tree can be rather large, I need
    to load it incrementally as the user expands nodes rather than all
    at once. I failed to find a relevant example so I wrote my own. It
    works, but I'm new to Flex and am not sure if there's an easier way
    or if there are any pitfalls to the way I did it.
    I posted my code here:
    http://xocoatl.blogspot.com/2007/01/incremental-loading-of-tree-in-flex-2.html
    Any comments here or on the blog are appreciated; I'm
    guessing that having a good example of the "right" way to do this
    will be useful to many others.
    Thanks.

    i am also using another workaround using CSS trick(inlineStyle). if #{node.children} is null, i am placing an empty 10x10 white png image file over expand icon on tree node.
    following code is nodeStamp of tree component.
    <f:facet name="nodeStamp">
      <af:group id="g1">
        <af:image source="/images/spacer.png" id="i1" inlineStyle="border: 2px solid white; position: absolute; margin-left:-14px;" rendered="#{node.children == null}"/>
        <af:commandLink text="#{node.name}" id="cl1" partialSubmit="true"/>
      </af:group>
    </f:facet>

  • On click at tree component it has to call SWF using XML

    Hi,
    I have created a flash file with name xmltoflash_tree.
    Incules a Tree component named "tree01". On my first frame of
    actions i have included "#include "test.as"". This is about my
    flash file
    In my Test.as :
    import mx.controls.Tree;
    var xmlLoader:XML = new XML();
    xmlLoader.ignoreWhite = true;
    xmlLoader.load("list.xml");
    xmlLoader.onLoad = function(success:Boolean):Void {
    tree01.dataProvider = this;
    tree01.initBranches();
    tree01.vScrollPolicy = "auto";
    Tree.prototype.initBranches = function(node:XMLNode):Void {
    if (node == undefined) {
    for (var i = 0; i < this.dataProvider.childNodes.length;
    i++) {
    this.initBranches(this.dataProvider.childNodes
    } else {
    if ( (node.attributes.isBranch == "true") &&
    !(this.getIsBranch(node)) ) {
    this.setIsBranch(node, true);
    if ( (node.attributes.isOpen == "true") &&
    !(this.getIsOpen(node)) ) {
    this.setIsOpen(node, true);
    for (var i = 0; i < node.childNodes.length; i++) {
    this.initBranches(node.childNodes);
    I created an XML file named as "list.xml" :
    Script inside this xml is :
    <?xml version="1.0" encoding="iso-8859-1"?>
    <node label="Select Application" isOpen="true">
    <node label="Application1" isBranch="true">
    <node label="Introduction to Application1"
    isBranch="true" >
    <node label="Testing1" />
    <node label="Testing2" />
    <node label="Testing3" />
    </node>
    </node>
    <node label="Application2" isBranch="true">
    <node label="Introduction to Application2"
    isBranch="true" >
    <node label="Testing1" />
    <node label="Testing2" />
    <node label="Testing3" />
    </node>
    </node>
    I have folder with name Treehelp. All my files are in this
    folder.
    xmltoflash_tree.fla
    test.as
    list.xml
    linktesting.swf
    I have SWF in the same folder named "linktesting.swf".
    I need to call "linktesting.swf" or any other swf files
    included in the same folder. when i click on "Testing1/ or any
    othe".
    Have to write the script in XML to call the swf file. Help me
    in this.
    Regards
    Ranjith Kumar. Bandi

    Add oneMore attribute in the XML Nodes,
    When selecting a Node in a Tree component you will recieve
    all the data of that particular xml node. using that you can load
    the Files
    <node label="Testing1" filePath="MyFirstSWF.swf"/>

  • Tree Component and as3

    Hello ..
    my problem is tree component and AS3 , before we hade such
    easy time with tree component in as2 but now i founded that we cant
    talk directly to tree component and we have to use API and XML ,
    well i never liked XML and before i worked with tree component
    directly and no problem but now , Flex force me to work with XML or
    API(well I don’t know what dose it mean ) and I was tiring to
    find any way to get directly to tree component in Flex2 and no
    result … so my question , do I have use XML ? Is there any
    another way to get to Tree Component ? I was looking in Flex help ,
    and I find the help content is really bad . pleas help , I get
    crazy about this problem …….
    BWY this form work terrible on my PC ….. anyone have
    same problem ?

    Use xml. Resistance is futile.
    Tracy

  • Tree Component ... getting crazy !

    So tree component is terrible , every thing is gone , trying
    all day to get directly to tree component and no result ,and there
    is no basic explanation and no examples , i tried to search in Flex
    Help Content , but I get more Cold Fusion tree help than Flex tree
    .. spend 800 dollar for flex and get CFHelp , I don’t think
    is good idea , so pleas help me , how can i add simple tree node
    with out XML , I hate XML , and i know some how we can work with
    Tree component directly though ITreeDataDescriptor , but how ..?
    In As2 it was simple and easy, now how to do this I
    don’t know and I am not only one!
    I am not a specialist in Action Script but in AS2 I never had
    a problem, and if I did, we have a lot of documentation about AS2
    and examples, but Flex trying to sell a product that not supports
    any examples and documentation... Write in search content
    ‘tree’ and you get cf tree examples and structures, but
    I don’t need cftree information, I need flex tree exemplas,
    but there is few... Working with flex all week I get more tired and
    depressed.. Any thing I trying to do is going wrong, AS2 is not
    there any more and I understand that I have to learn AS3 from
    beginning to understand it... I hate it!!!!!!
    Flex - Rich Application for users and Rich work for
    Developers!

    Eddy, chill out man.
    How can you say, "I hate XML," and really even try to learn
    Flex? Flex is based on XML, MXML is XML, any services you call
    (HTTP or WEB) are XML. I think it's time for change and time you
    picked up XML. It's actually very, very simple.
    You don't have to learn AS3 from the ground up. There are a
    lot of similarities between AS2 and AS3.
    You just need to write a simple function which goes through
    the array and converts it to xml. While I could program that for
    you, I think you could probably figure it out yourself.
    But why even bother? Using an XMLList is just as easy.
    Behold:
    <mx:XMLList id="treeData">
    <node label="Mail Box">
    <node label="Inbox">
    <node label="Marketing"/>
    <node label="Product Management"/>
    <node label="Personal"/>
    </node>
    <node label="Outbox">
    <node label="Professional"/>
    <node label="Personal"/>
    </node>
    <node label="Spam"/>
    <node label="Sent"/>
    </node>
    </mx:XMLList>
    XML is composed of parents and children. You can do much more
    with XML than you can with plain old arrays, plus, when's the last
    time you saw a 10-tiered multi-dimensional array? It's not possible
    to do something like that without XML.
    Over and out - Taka.

Maybe you are looking for

  • How do i find music saved on my iCloud?

    Hey everyone, How do i find my music from itunes that was saved on icloud?

  • Internal table and work area

    Hi,        can anybody explain the concepts of Internal table and work area.Thanks in advance.

  • Budgetting

    Dear Experts, One of my client has a requirement that they need to display the budget allocated for the capital goods, consumption of budget as on date and available budget in hand. please provide menu path and the T code. Its an urgent requirement.

  • Would a Macbook Pro 2011 suffice?

    Would it? I need a laptop, so desktops are out of the question. I was going to get the creative suit 5.5 premium production and would use it for editing and photoshop and after effects. I had my eyes on a MabBook Pro 2.2 Ghz Quad core i7 with 500GB 7

  • Making a html list from itunes playlist

    I'm trying to sell all of my cd's and instead of typing out my list of cds...I was trying to make a list from my itunes library. I've searched for this topic already but I can't seem to find it-sorry if I missed it and I'm reasking. If you have any i