Tree Table buttons displaying twice

I have an issue in ADF applicationsTreeTable button bar, If I select a row, button's area shuffles and we can see the button twice. This would be replicated only for the first time, On save/reload, it will not reproduce. If I clear the cookies and restore the page, this issue reoccurs. Please suggest some ways to avoid this. I have a selection listener, on select I have some if else conditions, based on that, I am disabling & enabling the buttons.

Hi,
Have you got any solution of this issue as I am also facing similar issue.
In my case I am enabling disabling the delete icon based on certain conditions. In the initial load of the object icons are getting disabled as expected but later if I add any new node in tree table and delete it the code will written the correct value of the disable variable but the icon will not be disabled.
Any inputs will be appreciated.
Thanks.

Similar Messages

  • DETACHED MODE ON TREE TABLE

    Hi,
    I have an issue with detached mode on Tree table. In one of the page, I'm having a Tree table in Panel Collection with "Detach" enabled. In Tree Table, I have a column "Actions" and it has links for every record. Using these links, user performs operations like 'allocate' and 'de-allocate '.
    I allocated a resource to the Tree table, now the "Deallocate" operation is allowed on that particular row of Tree table.
    Now I click the "Detach" button, Tree table is displayed in Detached Mode. When I click the "De-allocate" link of Tree table, allocated resource is deallocated without issue, but the Tree table no more stays in Detached mode.
    Here whenever user allocates / deallocates resource from Tree table, I refresh the tree table. I use the binding attribute to refresh the Tree table component.
    Can I restrict the Tree table to stay in Detached mode, even after refreshing the component?
    Please let me know if there is any solution.
    Thanks
    Ravi

    Hi,
    do your links perform a page refresh ? Make sure the links have their partialSubmit property set to true as otherwise they perform a full page refresh.
    Frank

  • Selected node in a tree table (via Data Controls and not managed bean)

    I am facing some problems in getting the selected row in a tree table.I have used data controls for creating the tree on the page.
    I have 3 POJO's,ex; Class AB which has a list of Class CD.And Class CD has a list of class EF. (Used for the tree table)
    Now i have a java class, called MyDelegate.java which has a list of AB.I generated data controls off this MyDelegate class and have dropped the ABlist as a tree table (also displaying CD and EF in the tree table).
    It displays fine with nodes of AB,CD (child of AB)and EF(child of CD)
    The tree table is not bound to any managed bean.
    For performing actions on the tree, i create a method - "doSomething() in the delegate class",generate data controls and drop it as a button.
    Inside doSomething(), i need acess to the selected node in the tree (it can be a node of type AB or CD or EF).
    The problem: I always get access to the node of type AB, and not the child nodes no matter what i click in the tree table.
    doSomething(){
    DCBindingContainer dcBindingContainer = (DCBindingContainer)ADFUtil.evaluateEL("#{bindings}");
    DCIteratorBinding dcTreeIteratorBinding = dcBindingContainer.findIteratorBinding("lstABIterator");
    RowSetIterator rowTreeSetIterator = dcTreeIteratorBinding.getRowSetIterator();
    DCDataRow rowTree = (DCDataRow)rowTreeSetIterator.getCurrentRow();
    if (rowTree.getDataProvider() instanceof AB) {
              //do something
              AB selectedAB = (AB)row.getDataProvider();
    } else if (rowTree.getDataProvider() instanceof CD){
              //do something
    } else if (rowTree.getDataProvider() instanceof EF) {
              // do something
    How do i access the "selected child node of the tree table" here in the delegate class method? Pls help.

    Hi Frank,
    Thanks for the response. In my case, i dont have a managed bean, so i am slightly unsure how to do it.
    There is a mention "Note that another way to access the treeTable component at runtime is to search for it in JavaServer Faces UIViewRoot. This latter option allows you to write more generic code and does not require to create a page dependency to a managed bean"
    How do i use this adf view root (without a managed bean) to get hold of the selected row in the tree table. Pls help.
    Thanks.

  • Question on the ADF Tree Table

    Hi, I am using Jdev 10.1.3.2 and ADF BC. I have created a ADF Tree Table to display multiple attributes, both the master and detail VO are based on the same EO. It seems all of attributes are displayed in one colume, and there is no column heading, is that possible to add column heading and display in multiple columns?
    Thanks!

    Hi,
    actually the node stamp doesn't accept more than one column element
    Frank

  • Tree table doesn't update the data for checkboxes properly

    Hi All,
    I'm trying to use tomahawk tree table component to render a tree column of items along with checkboxes in other columns. Note that all the other columns except tree column are generated dynamically inside backing bean and checkboxes too added to the column dynamically.
    All works fine until it comes to the valuechangelistener.Inside valuechangelistener if try to fetch the component id from the event, it doesn't return the correct id and instead always return the id that corresponds to the last node of tree.
    Has anyone successfully used tree table to display input components? or any workaround my problem would be much appreciated.
    The code where I'm adding my dynamic columns as well as checkboxes is as below.
    for (int i = 0; i < roleNames.size(); i++) {
    HtmlSimpleColumn column = new HtmlSimpleColumn();
    htmlTree.getChildren().add(column);
    // Create header
    HtmlOutputText header = new HtmlOutputText();
    header.setValue(roleNames.get(i));
    column.setHeader(header);
                   ValueExpression valueExpression = FacesContext
    .getCurrentInstance().getApplication()
    .getExpressionFactory()
    .createValueExpression(
    FacesContext.getCurrentInstance().getELContext(),
    "#{treeItem.name}",
    Object.class);
    // Create check box
    HtmlSelectBooleanCheckbox checkbox = new HtmlSelectBooleanCheckbox();
                   // add the hidden input elements
                   HtmlInputHidden input = new HtmlInputHidden();
                   HtmlInputHidden input1 = new HtmlInputHidden();
                   // Bind changeRolePresent method in to listen to the
    // role permission change
                   checkbox.setImmediate(true);
    Class<?>[] parms = new Class[] { ValueChangeEvent.class };
    System.out.println("Adding value change listener to permission grid");
    MethodExpression valueChangeListener = FacesContext
    .getCurrentInstance().getApplication()
    .getExpressionFactory().createMethodExpression(
    FacesContext.getCurrentInstance()
    .getELContext(),
    "#{customTreeBean.changeRolePermission}",
    String.class, parms);
    checkbox
    .addValueChangeListener(new MethodExpressionValueChangeListener(
    valueChangeListener));
    input.setValueExpression("value", valueExpression);
                        input1.setValue(roleNames.get(i));
                   valueExpression = app
    .getExpressionFactory()
    .createValueExpression(
    FacesContext.getCurrentInstance().getELContext(),
    "#{treeItem.roleDetailsList["+i+"].selectedRole}",
    Object.class);
    checkbox.setValueExpression("value", valueExpression);
                   //checkbox.setOnclick("selectAll(this)");
                   checkbox.getChildren().add(input);
                   checkbox.getChildren().add(input1);
    column.getChildren().add(checkbox);
    In above code there will be four columns added dynamically and for each column a checkbox component is being added here. Rest JSF takes care to create checkboxes for each row of tree. But one thing that I noticed while viewing source that JSF is creating duplicate names for checkboxes in a batch of four (So for say if I had 3 rows, every row of checkboxes had same set of four ID's assigned, like ID1, ID2, ID3, ID4)
    Please help,
    Umesh

    Hi!!!
    Could you see this document : http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=BUG&p_id=3970326
    It describes the exactly bug, but there isn't solution...

  • In a popup the tree table data is not getting displayed properly

    Hi,
    I have a taskflow which contains a tree table within a panelStetchLayout. Following is the taskflow code :
    <af:panelStretchLayout id="SecurityAdminManageRoles" bottomHeight="0" topHeight="auto" inlineStyle="width:725px;height:400px;">
    <f:facet name="center">
    <af:treeTable value="#{bindings.WebCenterSecurityDCPermission.treeModel}" var="node" expandAllEnabled="true" fetchSize="150" verticalGridVisible="false" horizontalGridVisible="true" columnSelection="none" rowBandingInterval="0" columnStretching="last" contentDelivery="immediate" summary="#{uib_o_w_w_r_WebCenter.SECURITY_PERMISSIONS}" disclosedRowKeys="#{webcenterAdminSecurityBean.disclosedRowKeySet}" inlineStyle="border:none" binding="#{webcenterAdminSecurityBean.rolesTable}" id="tt2" styleClass="AFStretchWidth" autoHeightRows="150">
    <f:facet name="nodeStamp">
    <af:column width="260"
    selected="false" noWrap="false" id="c3">
    <f:facet name="header">
    <af:outputText value="#{uib_o_w_w_r_WebCenter.LABEL_PERMISSIONS}"
    id="ot5"/>
    </f:facet>
    <af:panelGroupLayout id="pgl26">
    <af:forEach items="#{bindings.getRoleHeaders.result}" var="role">
    <af:outputText value="#{role.value}" visible="false" id="ot1"/>
    <af:selectBooleanCheckbox selected="#{node.dataProvider.serviceActions[role.value]}"
    rendered="#{!node.dataProvider.serviceHeader}"
    label="#{null}"
    disabled="#{(node.dataProvider.readOnly and role.seededRole) or node.dataProvider.actionDisabledMap[role.value] == true}"
    simple="true" id="sbc2">
    <f:attribute name="permission" value="#{node}"/>
    </af:selectBooleanCheckbox>
    </af:forEach>
    <af:spacer width="5" id="s2"/>
    <af:outputText value="#{node.name}" noWrap="false" id="ot2"
    inlineStyle="#{node.dataProvider.serviceHeader? 'font-weight:bolder;': ''}"/>
    </af:panelGroupLayout>
    </af:column>
    </f:facet>
    <af:column headerText="#{uib_o_w_w_r_WebCenter.LABEL_DESCRIPTION}" rowHeader="unstyled" noWrap="false" id="c1">
    <af:outputText value="#{node.description}" noWrap="false"
    inlineStyle="color:grey;" id="ot3"/>
    </af:column>
    </af:treeTable>
    </f:facet>
    </af:panelStretchLayout>
    </jsp:root>
    This taskflow is included as a region within another page :
    <af:commandToolbarButton id="cb3"
    shortDesc="#{uib_o_w_w_r_WebCenter.LABEL_EDIT_PERMISSION_HINT}"
    icon="/adf/webcenter/edit_sm_ena.png"
    text="#{uib_o_w_w_r_WebCenter.LABEL_EDIT_PERMISSION}"
    inlineStyle="align:left">
    <af:showPopupBehavior popupId="managePopup"/>
    </af:commandToolbarButton>
    <af:popup id="managePopup" contentDelivery="lazyUncached">
    <af:dialog modal="true" type="cancel"
    title="#{requestContext.formatter[uib_o_w_s_r_Spaces.EDIT_ROLE][pageFlowScope.o_w_wa_spacesRoleBacker1.selectedRole.value == webcenterAdminSecurityBean.spacesUsersRole ? uib_o_w_s_r_Spaces.LABEL_AUTH_USER : pageFlowScope.o_w_wa_spacesRoleBacker1.selectedRole.value]}"
    titleIconSource="/adf/webcenter/empty.png" id="d4">
    <af:region value="#{bindings.editroletaskflow.regionModel}"
    id="r2"/>
    <f:facet name="buttonBar">
    <af:commandButton partialSubmit="true"
    text="#{uib_o_w_w_r_WebCenter.LABEL_SAVE}"
    actionListener="#{o_w_w_i_v_b_webCenterViewUtilsBean.saveChangesAndCloseWCLinksPopup}"
    id="cb4">
    <f:attribute value="#{bindings.editroletaskflow.regionModel}"
    name="wcRegionModel"/>
    <f:attribute value="bindings.saveRoles.execute"
    name="wcMethodToExecute"/>
    </af:commandButton>
    </f:facet>
    </af:dialog>
    </af:popup>
    In the main page, there is a table, I select one row and then click on this commandButton, which launches the popup.
    The problem here is that when I launch the popup, there are many rows in the table and hence a scroll bar appears. Scroll down the popup and close the popup.
    Again I launch the popup, I see that the popup displays in the same state as it was closed before, i.e the scrollbar is at the bottom and the first row is not displayed.

    ...also do not forget to:
    1. adjust the Active property for the task flow binding (in the pageDef).
    Set property value to the true on popupFetchListener, and to the false when closing popup
    2. for the af:popup containing region, set childCreation to deffered

  • How to add a button in the child node of the Tree Table?

    Hi All,
    I am having a requirement to create a tree table and it should have a delete button to each child node (screenshot attached).
    Can anyone provide me a sample for how to implement this.
    Thanks in Advance
    Aravindh

    Hi Aravindhan,
    Try something like this:
    var ttDesvios = new sap.ui.table.TreeTable();
      var cbDesviacion = new sap.ui.commons.CheckBox();
      ttDesvios.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Col1"}),
      template: new sap.ui.commons.Label({text: "Info"}),
      width: "50px",
      ttDesvios.addColumn(new sap.ui.table.Column({
      label: new sap.ui.commons.Label({text: "Action"}),
      template: new sap.ui.commons.Button({text: "Delete"}).bindProperty("visible", "pathPropertyChild", function(value){
              if(value .............){ return true;} //For child
              else{ return false;} //For parent
      width: "160px",
    Regards
    EDIT: Wrong paste code, that's better!

  • How to display the path of selected node of a tree table.

    Hi,
    I have one use case where I have to display the path of node of tree table which is selected one.
    e.g.
    Suppose the tree table is like this.
    Folder1(root)
              ->folder2
              ->folder3
                        ->folder4
    Now when I select this folder1 then path display should be "/folder1(root)"
    when i select the folder4 then path should be "/folder1(root)/folder3/folder4"
    Hope this one will help to understand my use case..
    Thanks

    Hello,
    try this:
    jsp page:
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=UTF-8"/>
      <f:view>
        <af:document id="d1">
          <af:messages id="m1"/>
          <af:form id="f1">
            <af:tree value="#{bindings.RootNodes.treeModel}" var="node"
                     rowSelection="single" id="t1" expandAllEnabled="true"
                     rowDisclosureListener="#{Test.testDisclosureListener}"
                     selectionListener="#{Test.SelectionListener}">
              <f:facet name="nodeStamp">
                <af:panelGroupLayout id="pgl0">
                  <af:outputText rendered="#{empty node.Link}" value="#{node.Edesc}"
                                 id="ot1"/>
                  <af:goLink rendered="#{!empty node.Link}" targetFrame="_blank" text="#{node.Edesc}" destination="#{node.Link}"  id="gl1"/>
                </af:panelGroupLayout>
              </f:facet>
            </af:tree>
            <af:outputText value="#{bindings.Id.inputValue}" id="ot2"
                           partialTriggers="t1">
              <af:convertNumber groupingUsed="false"
                                pattern="#{bindings.Id.format}"/>
            </af:outputText>
          </af:form>
        </af:document>
      </f:view>
    </jsp:root>
    code:
    package testing;
    import java.util.Iterator;
    import java.util.List;
    import model.businessObjects.view.ZamerTreeMenuViewRowImpl;
    import oracle.adf.view.rich.component.rich.data.RichTree;
    import oracle.jbo.Row;
    import oracle.jbo.uicli.binding.JUCtrlHierBinding;
    import oracle.jbo.uicli.binding.JUCtrlHierNodeBinding;
    import org.apache.myfaces.trinidad.event.RowDisclosureEvent;
    import org.apache.myfaces.trinidad.event.SelectionEvent;
    import org.apache.myfaces.trinidad.model.CollectionModel;
    import org.apache.myfaces.trinidad.model.RowKeySet;
    public class Test{
        public Test(){
        public void testDisclosureListener(RowDisclosureEvent rowDisclosureEvent){
            RichTree tree1=(RichTree)rowDisclosureEvent.getSource();
            CollectionModel model = (CollectionModel)tree1.getValue();
            JUCtrlHierBinding treeBinding = (JUCtrlHierBinding)model.getWrappedData();
            JUCtrlHierNodeBinding start = null;
            List focus = (List)tree1.getFocusRowKey();
            tree1.setRowKey(rowDisclosureEvent.getAddedSet().iterator().next());
            System.out.println("testing.Test.testDisclosureListener>>"+treeBinding.getPath());
            start = (JUCtrlHierNodeBinding)tree1.getRowData();
    //        ZamerTreeMenuViewRowImpl temp = (ZamerTreeMenuViewRowImpl)start.getRow();
            JUCtrlHierNodeBinding parent=start.getParent();
            String path="";
            ZamerTreeMenuViewRowImpl  r = (ZamerTreeMenuViewRowImpl)start.getRow();
            path+="/"+r.getAdesc();
            while(parent!=null){
                r = (ZamerTreeMenuViewRowImpl)parent.getRow();
                if(r==null){
                    break;
            System.out.println("testing.Test.testDisclosureListener>>"+path);

  • How to achieve this tree table (displaying/modifying non leaf level details) ?? Image inside

    Region
    location
    Dept
    Budget Available
    Allot Budget
    Unused Budget
    Decision for unused budget
    US
    200$
    User Input
    NY
    100$
    User Input
    CA
    100$
    User Input
    HR
    50$
    User Input
    IT
    50$
    User Input
    ---------30$--------
    20$
    LOV
    Add to Location
    Use for Future Project
    Add to Region
    Spend as Bonus
    How to achieve this tree table ?
    My client wants that they should also be able to manage budge at Location or region level not only at the leaf(Dept) level.
    I did a lot of research and finally found out that the details can only printed at the leaf(Dept) level.......
    We can not hard code Region, locations and departments in table rows. When table tree is displayed we will only show all the regions... (US, UK, SA, IND, AUS, CAN,RUS, JPN.... etc..)
    For Example:
    Locations for US (NY, CA, OKH, WC...... etc.)
    Locaitons for UK (SC, ENG, WL..... etc)  and so on......
    Departments for CA (HR, IT, ADMIN, FIN, TRVL, OPRN........ etc. ..)
    Thanks in advance... It will be really great help if I get some breakthrough...
    -Rahul

    Hi,
    what if you add a transient attribute to those view objects? This way you don't need to change the table structure.
    Frank

  • How to display the icon as folder in tree table representation

    Hi,
    I am displaying the hierarchical structure for one table in which the expanding comes like normal ">". But i want to make it like folder icon.How is it possible plz suggest me.
    Thanks,
    Harsh

    The folder icons are added in the node stamp of the tree table.
    <f:facet name="nodeStamp">
      <af:column headerText="Directory Name" width="200" sortable="true" rowHeader="unstyled"
      sortProperty="name" id="c2">
      <af:panelGroupLayout id="pgl2">
      <af:image source="#{directory.icon}" id="nodeIcon"
      inlineStyle="margin-right:3px; vertical-align:middle; height:16px; width:16px;"
      shortDesc="directory"/>
      <af:outputText id="directoryStamp" inlineStyle="vertical-align:middle" value="#{directory.name}"/>
      </af:panelGroupLayout>
      </af:column>
      </f:facet>
    You can see the full source if you click the 'view source' link in the menu bar of the demo.
    Timo

  • Need to display only leaf and not the node using tree table

    Hi,
    Am using Jdeveloper 11.1.2.0.0 . As per requirement , am having Department - Employee View wherein Department is the parent considered as node and Employee as a child which is considered as a leaf. Having dragged and dropped the DepartmentView as a tree table -> shuttle department id and department name to be displayed -> added EmployeeView to the same and shuttled employee id along with the first and last name. so this works as it has to be in the below structure...
    10 ADF
    256 A
    257 B
    258 C
    20 JAVA
    259 D
    260 E
    Code for the same ..
    <af:treeTable value="#{bindings.DepartmentsView.treeModel}" var="node"
    selectionListener="#{bindings.DepartmentsView.treeModel.makeCurrent}" rowSelection="single" id="tt1">
    <f:facet name="nodeStamp">
    <af:column id="c1">
    <af:outputText value="#{node}" id="ot1"/>
    </af:column>
    </f:facet>
    <f:facet name="pathStamp">
    <af:outputText value="#{node}" id="ot2"/>
    </f:facet>
    </af:treeTable>
    *Here comes my requirement , need to display only the leaf nodes which has employee name [Employees] and need to hide the node [Department] in the below structure....*
    256 A
    257 B
    258 C
    259 D
    260 E
    Things tried to achieve the requirement....
    1. Got only the EmployeeName in the nodeStamp facet as below. Hence am getting only Employee name but the issue is am getting the icon for the node [Parent - Department]. Now how do i hide the same.
    <af:treeTable value="#{bindings.DepartmentsView.treeModel}" var="node"
    selectionListener="#{bindings.DepartmentsView.treeModel.makeCurrent}" rowSelection="single" id="tt1">
    <f:facet name="nodeStamp">
    <af:column id="c1">
    <af:outputText *value="#{node.FirstName}"* id="ot1"/>
    </af:column>
    </f:facet>
    <f:facet name="pathStamp">
    <af:outputText value="#{node}" id="ot2"/>
    </f:facet>
    </af:treeTable>
    Please do suggest some solution....
    Thanks and Regards,
    Vinitha G

    Hi,
    Thanks for the reply. As the project has already implemented tree table they do not wanna change any logic written for the same. So they wanted to just display only the leaf node data using treetable component. Can you please suggest.
    Thanks and Regards,
    Vinitha G

  • Create Custom tree table panel collection toolbar buttons

    Dear all
    i have a tree table inside panel collection,inside the toolbar there is some buttons like show as top ,show top, expand all ....etc
    what i want to do is i want to call it from custom button not from the toolbar button.
    any suggestions
    Regards

    Hi,
    yes, it is. Its fixed in a the current build and should be fixed in TP4 (upcoming)
    Frank

  • Tree Table is not getting refreshed properly in Jdev 11.1.2.0

    Hi,
    I am seeing a peculiar issue with tree table not getting refreshed in Jdev 11.1.2.0.
    Let me explain you my use case.
    I have a tree table in a page, where the first column is displayed as selectBooleanRadio component. When user selects this selectBooleanRadio component, that treetable node should get expanded and at the same time all the child records(I have a select boolean check box component(transient attribute) at the child level) for that node should get selected. This is to allow user to unselect the child records, which he/she does not want to process further(some functionality).
    Now when the user selects any radio button, the tree table node is not expanded, but the arrow beside the radio button for that node can be seen as expanded.
    I thought it may be a partial trigger issue, so i tried refreshing the tree table programatically as well. But it was of no use.
    Then I set the partial triggers wrt to SelectBooleanRadio component on the parent container of the TreeTable. After which somehow the node got expanded but the tree table shrinks in width and the actual disclosure functionality of a tree table is lost.
    The same use case works perfectly fine in Jdev 11.1.1.5.
    For reference:
    I created a sample test case(Dept/Emp) in jdev version 11.1.1.5, which works fine. Workspace: http://adf-use-cases.googlecode.com/files/TreeTable1.rar
    But the same test case, when i created in jdev version 11.1.2.0, gives issues. Workspace: http://adf-use-cases.googlecode.com/files/TreeTableUseCase.rar
    If you download the application and run in respective jdev version, you will get to know more about the issue.
    Please let me know, If I am doing anything wrong in the implementation of this use case.
    Any help/suggestions are appreciated.
    Thanks
    Umesh
    Note: My complete application is in Jdev 11.1.2.0, so I can't degrade my jdev version to 11.1.1.5.

    Thanks Frank for the reply.
    But upgrading the jdeveloper to 11.1.2.2 is not an ideal solution for us now, because of the size of the project.
    Some how, the issue of refreshing the tree table is resolved. I am using a command button with clientComponent to true and causing a full page refresh.
    I am not sure, if this is a perfect solution.
    As you said, that this behavior may be an issue with the Jdev version 11.1.2.0, I am using. I am going with the above said approach.

  • How to read the configuration of tree table from the variant of Personalization of the Tree UIBB?

    Hi Experts !
    I have created an application using  Tree UIBB to display the list output along with personalization property. The user can save the settings of the output table such as shuffling of column position and hiding / display of columns in the variant.
    The export to excel button gives the output as per the current variant but I need to develop a custom export to excel button, on action of which I need to read the currently selected variant and the visble columns from the variant.
    I found that CL_FPM_TREE_ASSISTANCE gets the variant and columns from the personalization object, however, I am unable utilize it in my custom code.
    Please help or suggest any class which I can utilize.
    Thanks !

    Aristos Queue wrote:
    Alias name here wrote:
    ..second post telling me the 'propertys' of a control have nothing to do with the value is bizzare - via 'properties' for a LV control is the ONLY way to configure the specific type of a numeric...so via the numeric 'property nodes' should\would be able to query it's configuration.
    I do not see any way to set these things through the properties...
    I think he means by right clicking the control on the front panel and configuring with the properties dialog. The properties are exposed there, but not within the property nodes.
    Edit: You beat me.
    CLA, LabVIEW Versions 2010-2013

  • Cannot sort child rows in multilevel tree table

    Hi,
    I originally hijacked a two-year-old forum thread that was vaguely similar to my issue, but a kind forum moderator split my post away
    (and deleted my other hijack post asking this same question)
    so that my inquiry might be viewable on its own.
    Hopefully someone can pay attention to my issue instead of getting it confused with those other old forum threads.
    So, here we go ...
    Is sorting in a treeTable at a particular level possible? Just want to let you I have tried the following approaches to do this. But it dis not work for me.
    I have tree table with 2 levels. I am trying to sort the child rows based on its column say "Display Sequence".
    User can type in number in this column which contains input text. On value change event of the this field, all the
    child rows in the level 2 need to be sorted. This needs to be done without committing the data. On commit it works,
    because it sorts based on order by clause. I want the child rows to be sorted on value change event. Following
    various approaches I tried.
    TreeModel tModel = (TreeModel)treeTable.getValue();
    SortCriterion sortCriterion = new SortCriterion("DisplaySequence",true);
    List<SortCriterion> sortCriteriaList = new ArrayList<SortCriterion>();
    sortCriteriaList.add(sortCriterion);
    tModel.setSortCriteria(sortCriteriaList);
    The above code does not work, As "DisplaySequence" is not available in the parent view object.
    Here is approach no 2
    JUCtrlHierBinding treeTableBinding = null;
    JUCtrlHierNodeBinding nodeBinding = null;
    JUCtrlHierNodeBinding parentNodeBinding = null;
    JUCtrlHierTypeBinding nodeHierTypeBinding = null;
    Key rowKey;
    Object dispSeqObj;
    Number displaySequence = null;
    Map<Key,Number> keyValueMap = null;
    Set<Key> emptyValueKeySet = null;
    Map<Key,Number> sortedKeyValueMap = null;
    DCIteratorBinding target = null;
    Iterator iter = null;
    int rowIndex = 1;
    RowSetIterator rsi = null;
    Row currentRow = null;
    Row row = null;
    RowKeySet selectedRowKey = lookupTreeTable.getSelectedRowKeys();
    Iterator rksIterator = selectedRowKey.iterator();
    if (rksIterator.hasNext()) {
    List key = (List)rksIterator.next();
    System.out.println("key :"+key);
    treeTableBinding = (JUCtrlHierBinding) ((CollectionModel)lookupTreeTable.getValue()).getWrappedData();
    nodeBinding = treeTableBinding.findNodeByKeyPath(key);
    parentNodeBinding = nodeBinding.getParent();
    //rsi = nodeBinding.getParentRowSetIterator();
    rsi = parentNodeBinding.getChildIteratorBinding().getRowSetIterator();
    keyValueMap = new LinkedHashMap<Key,Number>();
    emptyValueKeySet = new LinkedHashSet<Key>();
    // Gets the DisplaySequence by iterating through the child rows
    while(rsi.hasNext()) {
    if(rowIndex==1)
    row = rsi.first();
    else
    row = rsi.next();
    rowKey = row.getKey();
    dispSeqObj = row.getAttribute("DisplaySequence");
    if(dispSeqObj!=null && dispSeqObj instanceof Number) {
    displaySequence = (Number)dispSeqObj;
    keyValueMap.put(rowKey, displaySequence);
    }else {
    emptyValueKeySet.add(rowKey);
    rowIndex++;
    rowIndex = 0;
    // Sort the numbers using comparator
    DisplaySequenceComparator dispSeqComparator = new DisplaySequenceComparator(keyValueMap);
    sortedKeyValueMap = new TreeMap<Key,Number>(dispSeqComparator);
    sortedKeyValueMap.putAll(keyValueMap);
    rsi.reset();
    nodeHierTypeBinding = nodeBinding.getHierTypeBinding();
    System.out.println("nodeHierTypeBinding :"+nodeHierTypeBinding);
    String expr = nodeHierTypeBinding.getTargetIterator();
    if (expr != null) {
    Object val = nodeBinding.getBindingContainer().evaluateParameter(expr, false);
    if (val instanceof DCIteratorBinding) {
    target = ((DCIteratorBinding)val);
    ViewObject targetVo = target.getViewObject();
    System.out.println("targetVo :"+targetVo);
    targetVo.setAssociationConsistent(true);
    //ri = target.findRowsByKeyValues(new Key[]{rowData.getRowKey()});
    rsi = parentNodeBinding.getChildIteratorBinding().getRowSetIterator();
    //rsi = nodeBinding.getParentRowSetIterator();
    // Rearrange the tree rows by inserting at respective index based on sorting.
    ViewObject vo = nodeBinding.getViewObject();
    iter = sortedKeyValueMap.keySet().iterator();
    while(iter.hasNext()) {
    currentRow = rsi.getRow((Key)iter.next());
    rsi.setCurrentRow(currentRow);
    rsi.setCurrentRowAtRangeIndex(rowIndex);
    //rsi.insertRowAtRangeIndex(rowIndex, currentRow);
    rowIndex++;
    iter = emptyValueKeySet.iterator();
    while(iter.hasNext()) {
    currentRow = rsi.getRow((Key)iter.next());
    rsi.setCurrentRow(currentRow);
    rsi.setCurrentRowAtRangeIndex(rowIndex);
    //rsi.insertRowAtRangeIndex(rowIndex, currentRow);
    rowIndex++;
    rsi.closeRowSetIterator();
    AdfFacesContext.getCurrentInstance().addPartialTarget(treeTable);
    private class DisplaySequenceComparator implements Comparator {
    Map<Key,oracle.jbo.domain.Number> dispSeqMap = null;
    public DisplaySequenceComparator(Map<Key,oracle.jbo.domain.Number> dispSeqMap) {
    this.dispSeqMap = dispSeqMap;
    public int compare(Object a, Object b) {
    Key key1 = (Key)a;
    Key key2 = (Key)b;
    oracle.jbo.domain.Number value1 = dispSeqMap.get(key1);
    oracle.jbo.domain.Number value2 = dispSeqMap.get(key2);
    if(value1.getValue() > value2.getValue()) {
    return 1;
    } else if(value1.getValue() == value2.getValue()) {
    return 0;
    } else {
    return -1;
    In the above code I tried to perform sorting of DisplaySequence values using comparator, then tried to rearrange
    nodes or rows based on sort resurts. But rsi.insertRowAtRangeIndex(rowIndex, currentRow) give
    DeadViewException...unable to find view reference. While setting current row also does not work.
    Approach 3.
    DCIteratorBinding iter1 =
    bindings.findIteratorBinding("childIterator");
    iter1.executeQuery();
    SortCriteria sc = new SortCriteriaImpl("DisplaySequence",false);
    SortCriteria [] scArray = new SortCriteria[1];
    scArray[0] = sc;
    iter1.applySortCriteria(scArray);
    Any help in Sorting Child nodes ADF treeTable is appreciated. Thanks in Advance.
    Abhishek

    Hi Frank,
    Thanks for your reply. I have tried similar approach for sorting tree table child rows based on user specified number and it works. But there is a limitation for this. This sorting works only for read only/transient view object. For updatable view object after sorting, data cannot be saved or updated, as it cannot find the rowid. Here is what I tried
    In the ParentViewImpl class,
    1. overrode the method createViewLinkAccessorRS, so that this method is forcefully executed.
    @Override
    protected ViewRowSetImpl createViewLinkAccessorRS(AssociationDefImpl associationDefImpl,
    oracle.jbo.server.ViewObjectImpl viewObjectImpl,
    Row row,
    Object[] object) {
    ViewRowSetImpl viewRowSetImpl = super.createViewLinkAccessorRS(associationDefImpl, viewObjectImpl, row, object);
    return viewRowSetImpl;
    2. Added the following method, which will be invoked on valueChange of DisplaySequence in child row. Expose this method through client interface. This method accept a parameter i.e. parent row key of the child row.
    public void sortChildRecords(Key parentKey) {
    ViewObject viewObject = null;
    String type = null;
    if(parentKey==null) {
    Row [] row = this.findByKey(parentKey, 1);
    RowSet rowSet = (RowSet)row[0].getAttribute("ChildVO");
    viewObject = rowSet.getViewObject();
    viewObject.setSortBy("DisplaySequence asc");
    }else {
    Row row = getCurrentRow();
    RowSet rowSet = (RowSet)row.getAttribute("ChildVO");
    viewObject = rowSet.getViewObject();
    viewObject.setSortBy("DisplaySequence asc");
    this.setQueryMode(ViewObject.QUERY_MODE_SCAN_DATABASE_TABLES |
    ViewObject.QUERY_MODE_SCAN_ENTITY_ROWS);
    this.executeQuery();
    For custom sort, lets say all the numbers should be display first in ascending order, and null or empty values to be display at the end need to override the getRowComparator method in the ChildViewImpl class,
    Here is the code for the same
    @Override
    public Comparator getRowComparator() {
    SortCriteria sortCriteria = new SortCriteriaImpl("DisplaySequence",false);
    SortCriteria [] sortCriterias = new SortCriteria[1];
    sortCriterias[0] = sortCriteria;
    return new DisplaySequenceComparator(sortCriterias);
    private class DisplaySequenceComparator extends RowComparator {
    public DisplaySequenceComparator(SortCriteria [] sortCriterias) {
    super(sortCriterias);
    public int compareRows(Row row1, Row row2) {
    Object dispSeqObj1;
    Object dispSeqObj2;
    Number dispSeq1 = null;
    Number dispSeq2 = null;
    boolean compareRow1 = true;
    boolean compareRow2 = true;
    if(row1!=null) {
    dispSeqObj1 = row1.getAttribute("DisplaySequence");
    if(dispSeqObj1!=null && dispSeqObj1 instanceof Number) {
    dispSeq1 = (Number)dispSeqObj1;
    }else {
    compareRow1 = false;
    if(row2!=null) {
    dispSeqObj2 = row2.getAttribute("DisplaySequence");
    if(dispSeqObj2!=null && dispSeqObj2 instanceof Number) {
    dispSeq2 = (Number)dispSeqObj2;
    }else {
    compareRow2 = false;
    if(compareRow1 && compareRow2) {
    if(dispSeq1.getValue() > dispSeq2.getValue()) {
    return 1;
    } else if(dispSeq1.getValue() == dispSeq2.getValue()) {
    return 0;
    } else {
    return -1;
    if(!compareRow1 && compareRow2)
    return 1;
    if(compareRow1 && !compareRow2)
    return -1;
    return 0;
    The above solution works properly, and sorts the child tree rows. But while saving the changes, update fails. I also came to know that in-memory sorting is applicable to read-only/transient view objects from some blogs and also mentiond in this link http://docs.oracle.com/cd/E24382_01/web.1112/e16182/bcadvvo.htm
    Is there any way that updatable view objects can be sorted and saved as well?
    Thanks,
    Abhishek
    Edited by: 930857 on May 2, 2012 7:12 AM

Maybe you are looking for

  • How can I save a file in the server?

    Hello, I am writing a Java Web Start program that it will generate a html file, how can I save the generated file in the server, fro example, the directory where I stored my JAR files. Because right now, it will create the html file in the local clie

  • How can I reset my macs partition map?

    I have an MBP mid 2012 with 750GB HD (the higher model, with i7 2.9GHz and 8 gigs of ram) which I am possibly passing on to someone. I have the latest version of Mavericks, triple booted to include Windows 8.1 and Linux Ubuntu. To reset the computer

  • Creating synonys for all table

    i want to create synonyms for all atbles.the synonyn name and table name are same.instead creating one by one synonym i wnat to create all synonyms at a time. 1)select 'CREATE PUBLIC SYNONYM'||' '||'test'||' '||'for' ||' '||'test' from dual 2)select

  • How to install my webcam using my Facebook account in my imac27

    how to install my webcam using facebook in my imac 27?

  • Download error 45054/ itunes/ previous purchases

    Hello. I am brand new to the mac community. i would like to download previous purchased tv shows of my ipad to my macbook. it just doesn't work. itunes keeps telling me error 45054 and i should try again later. any ideas? thanx so much!