Is Paginated Tree-Table/Tree supported using ProgramaticVO

I have question Is Paginated Tree-Table/Tree supported using Programmatic View Object technique (http://docs.oracle.com/cd/E21043_01/web.1111/b31974/bcadvvo.htm#sm0341)

Thanks Timo for reply, let me add more details to the question, i wanted to know if we have a tree/tree-table build using paginated VO, is the pagination will work for the sub nodes in the tree/tree-table i.e if we have child itself has 100 of rows and when we expand child, will pagination work?
I am also looking for some input/examples if someone has tried paginated tree using programmatic VO.
Thanks
..Sunil

Similar Messages

  • Problem in executing Child VO having bind parameter for ADF tree table

    In my application i need to show a ADF Tree table which is using two view objects having view links between them
    and the child VO has a bind variable.By clicking on the parent node of the parent VO attribute it showing the right result from the child VO attribute by the view link.
    I have tried to execute the child VO programmatically (In AmImpl) with the bind variable and using ViewCriteria as well
    but both the cases the child vo is not showing the proper result according to the bind variable instead of it is showing all the records on click of the parent node attribute.
    Your help will be appreciated.
    Thanks

    Hello,
    In the same situation I added another relationship to the view link to set the parameter.
    Tricky moment is you have to name your parameter like :Bind_ParamName as view link is setting this kind of parameters (check it in Query tab).

  • Af:tree table Server Exception During PPR#10

    Hi,
    I am using jdev 11.1.1.4.
    I am facing error in tree table.I have used af:inputtext in nodestamp facet.
    My page is running successfully, but when I click on show hierarchy arrow from context menu it's giving the following error.
    RegistrationConfigurator> <handleError> ADF_FACES-60096:Server Exception during PPR, #10
    java.lang.ClassCastException: oracle.adfinternal.view.faces.renderkit.rich.TreeRendererUtils$2 cannot be cast to javax.faces.component.EditableValueHolder
    at org.apache.myfaces.trinidad.component.StampState$EVHState.restoreRowState(StampState.java:456)
         at org.apache.myfaces.trinidad.component.StampState.restoreStampState(StampState.java:128)
         at org.apache.myfaces.trinidad.component.UIXCollection.restoreStampState(UIXCollection.java:913)
         at org.apache.myfaces.trinidad.component.UIXTreeTable.restoreStampState(UIXTreeTable.java:379)
         at org.apache.myfaces.trinidad.component.UIXCollection._restoreStampState(UIXCollection.java:1508)
         at org.apache.myfaces.trinidad.component.UIXCollection.postRowDataChange(UIXCollection.java:747)
         at org.apache.myfaces.trinidad.component.UIXCollection.setRowKey(UIXCollection.java:426)
         at oracle.adfinternal.view.faces.renderkit.rich.TreeRendererUtils$2$1.encodeAllChildren(TreeRendererUtils.java:961)
         at oracle.adfinternal.view.faces.renderkit.rich.PopupRenderer.encodeAll(PopupRenderer.java:776)
         at oracle.adfinternal.view.faces.renderkit.rich.TreeRendererUtils$2$1.encodeAll(TreeRendererUtils.java:902)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at oracle.adfinternal.view.faces.renderkit.rich.TreeRendererUtils.encodeSelectorPopup(TreeRendererUtils.java:1069)
         at oracle.adfinternal.view.faces.renderkit.rich.TreeTableRenderer.encodeAll(TreeTableRenderer.java:588)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:529)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:399)
         at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
         at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2004)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelBoxRenderer.access$100(PanelBoxRenderer.java:34)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelBoxRenderer$ChildEncoderCallback.processComponent(PanelBoxRenderer.java:2219)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelBoxRenderer$ChildEncoderCallback.processComponent(PanelBoxRenderer.java:2202)
         at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
         at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
         at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelBoxRenderer._encodeAllChildren(PanelBoxRenderer.java:1344)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelBoxRenderer._renderContentRow(PanelBoxRenderer.java:1265)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelBoxRenderer.encodeAll(PanelBoxRenderer.java:348)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:399)
         at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeCenterFacet(PanelStretchLayoutRenderer.java:769)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeCenterPane(PanelStretchLayoutRenderer.java:1140)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeMiddlePanes(PanelStretchLayoutRenderer.java:348)
         at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeAll(PanelStretchLayoutRenderer.java:313)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:399)
         at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:415)
         at oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:220)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:399)
         at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2633)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:415)
         at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1181)
         at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
         at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
         at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
         at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
         at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
         at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
         at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:777)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:293)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:213)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
         at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
    If I use output text in nodestamp facet, whole thing is working fine.
    Here is my jspx code
    <af:treeTable value="#{bindings.Department.treeModel}" var="node"
    selectionListener="#{bindings.Department.treeModel.makeCurrent}"
    rowSelection="single" id="tt1" width="500">
    <f:facet name="nodeStamp">
    <af:column id="c1">
    <af:inputText value="#{node.deptname}" id="ot1" />
    </af:column>
    </f:facet>
    <f:facet name="pathStamp">
    <af:outputText value="#{node}" id="ot2"/>
    </f:facet>
    <f:facet name="header">
    <af:outputText value="Employee Id"/>
    </f:facet>
    <af:outputText value="#{node.ID}"/>
    </af:column>
    <af:column>
    <f:facet name="header">
    <af:outputText value="EmpName"/>
    </f:facet>
    <af:outputText value="#{node.empName}"/>
    </af:column>
    <af:column>
    <f:facet name="header">
    <af:outputText value="Addr"/>
    </f:facet>
    <af:outputText value="#{node.city}"/>
    </af:column>
    </af:treeTable>
    Thanks
    Deepthi

    I didn't notice that example was using a tree instead of a treeTable. I change mine to use a tree and was able to successfully get it to commit data as well as click the show Hierarchy menu without getting an exception.
    I want to switch to edit mode on a double click not a single click and had that working when I used a treeTable but it now causes an infinite ADF loop when I refresh the table to show the row as editable.
    I'm using readOnly="#{node.editMode ne true}"/>
    I'm also am seeing that row selection highlighting does not display on the outputText. It does if I use a inputText.
    I'm getting close though. Thanks again for getting me past that hurdle.

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

  • How to use tree tables with CRUD operation for begineers ADF 11g

    This is Friday night call for help.
    This is only few sample ressources on the web for tree table and only one with CRUD operation.
    I used this one http://jobinesh.blogspot.com/2010/05/crud-operations-on-tree-table.html because this is the only one that address CRUD.
    And it is shaky. Deletion works fine but insertion not very well. This is working using custom code provided below.
    Depending if the user selection in the tree, the code insert from the master node to the children node.
    Any other options because it is not working well.
    Also where Oracle describes how to use the row, rowset, itorator API? This is really hard to understand like almost if we should not use it.
    then if not how can I insert in tree with two nodes and insert in the parent or children depending the users selection.
    Lately I 'been posting questions on this forum with no response. This hurts. I understand developers cannot spend their time on this but People from Oracle, please help. We pay licenses...
    public void createChildren(RowIterator ri, Key selectedNodeKey) {
    final String deptViewDefName = "model.DepartmentsView";
    final String empViewDefName = "model.EmployeesView";
    if (ri != null && selectedNodeKey != null) {
    Row last = ri.last();
    Key lastRowKey = last.getKey();
    // if the select row is not the last row in the row iterator...
    Row[] found = ri.findByKey(selectedNodeKey, 1);
    if (found != null && found.length == 1) {
    Row foundRow = found[0];
    String nodeDefname =
    foundRow.getStructureDef().getDefFullName();
    if (nodeDefname.equals(deptViewDefName)) {
    RowSet parents =
    (RowSet)foundRow.getAttribute("EmployeesView");
    Row childrow = parents.createRow();
    parents.insertRow(childrow);
    } else {
    RowSet parents =
    (RowSet)foundRow.getAttribute("EmployeesView");
    Row childrow = parents.createRow();
    childrow.setAttribute("DepartmentId",
    foundRow.getAttribute("DepartmentId"));
    parents.insertRow(childrow);
    } else {
    System.out.println("Node not Found for " + selectedNodeKey);
    }

    I am looking for a sample that describe how to design a jsf page with a tree table.
    So you have Department and employees. In the tree first comes Department and if you click the node you see the employees assigned to this department.
    I need to be able to insert a new department or a new employee from the tree table by clicking on a insert button in the panel collection toolbar depending on user selection in the tree.
    I got part of it working but not good enough.
    By problem is the get insertion working
    I have a createChildren method in my AM implementation that get in input a RowIterator and selected node key.
    To goal is to create new records depending of the user selection and the input parameters get populated by the binding like this:
    #{backing_treeSampleBean.selectedNodeRowIterator} #{backing_TreeSampleBean.selectedNodeRowkey} via method binding with parameters.
    Is it the right approach?
    First to be able to insert a parent record, I select nothing in the tree and ri and selectedNodeKey comes to null
    we run this code
    ViewObjectImpl vo = getSchHolidaySchedExceptionsView1();
    //ViewObjectImpl vo = getDepartmentsView1();
    Row foundRow = vo.first();
    Row childrow = vo.createRow();
    vo.insertRow(childrow);
    A new blank entry appears in the parent node and we enter a value.
    The the problem starts when we want to add a child to this parent.
    We select the created parent and press the insert button, this code get executed
    if (nodeDefname.equals(deptViewDefName))
    //list of the children of the parent and create an new row
    RowSet childRows = (RowSet)foundRow.getAttribute("SchHolidayExceptionDatesView");
    Row childrow = childRows.createRow();
    childRows.insertRow(childrow);
    But the new entry does not appear, it is almost like it would be created for a different parent because this is a mandatory field that is not feel in yet and the interface complaints of a missing value. It is created somewhere just not a the right place... This is my guess.
    Do you see something wrong with the code?
    The full code og my create children method is there below
    I am using jdeveloper 11.1.1.3.0 any issues with tree table to know about with this version?
    Thanks for your help
    public void createChildren(RowIterator ri, Key selectedNodeKey) {
    final String deptViewDefName = "com.bcferries.app.pdfroutesched.model.SchHolidaySchedExceptionsView";
    final String empViewDefName = "com.bcferries.app.pdfroutesched.model.SchHolidayExceptionDatesView";
    if (ri != null && selectedNodeKey != null) {
    // last row
    Row last = ri.last();
    Key lastRowKey = last.getKey();
    // if the select row is not the last row in the row iterator...
    Row[] found = ri.findByKey(selectedNodeKey, 1);
    if (found != null && found.length == 1) {
    // foundRow is the row selected
    Row foundRow = found[0];
    // The row selected can be the parent node or the child node
    String nodeDefname = foundRow.getStructureDef().getDefFullName();
    // if parent row
    if (nodeDefname.equals(deptViewDefName))
    //list of the children of the parent and create an new row
    //works but we try to resolve the creation of a parent
    RowSet childRows = (RowSet)foundRow.getAttribute("SchHolidayExceptionDatesView");
    Row childrow = childRows.createRow();
    //childrow.setAttribute("HolidayDate", new java.util.Date().getDate());
    System.out.println("insert child row from master");
    childRows.insertRow(childrow);
    } else
    //RowSet ParentRow = (RowSet)foundRow.getAttribute("SchHolidaySchedExceptionsView");
    //RowSet childRows = (RowSet)ParentRow.first().getAttribute("SchHolidayExceptionDatesView");
    Row childrow = ri.createRow();
    System.out.println("insert child row from child ");
    } else {
    System.out.println("Node not Found for " + selectedNodeKey);
    } else {
    System.out.println(" param null try creating for first row : " +
    ri + " * " + selectedNodeKey);
    ViewObjectImpl vo = getSchHolidaySchedExceptionsView1();
    Row foundRow = vo.first();
    Row childrow = vo.createRow();
    vo.insertRow(childrow);
    }

  • Problem occured when create a tree table for master-detail view objects using SQL queries?

    I am programming a tree table for master-detail view objects using SQL queries and these 2 view objects are not simple singel tables queries, and 2 complex SQL are prepared for master and view objects. see below:
    1. Master View object (key attribute is SourceBlock and some varaible bindings are used for this view object.)
    SELECT  cntr_list.SOURCE_BLOCK,                   
            sum(                   
             case when cntr_list.cntr_size_q = '20'                   
                  then cntr_list.cntr_qty                   
                  else 0 end ) as cntr20 ,                   
            sum(                   
             case when cntr_list.cntr_size_q = '40'                   
                  then cntr_list.cntr_qty                   
                  else 0 end ) as cntr40 ,                   
             sum(                   
             case when cntr_list.cntr_size_q = '45'                   
                  then cntr_list.cntr_qty                   
                  else 0 end ) as cntr45                    
    FROM (       
        SELECT yb1.BLOCK_M as SOURCE_BLOCK,       
               scn.CNTR_SIZE_Q,        
               count(scn.CNTR_SIZE_Q) AS cntr_qty        
        FROM  SHIFT_CMR scm, SHIFT_CNTR scn, YARD_BLOCK yb1, YARD_BLOCK yb2       
        WHERE       
        scm.cmr_n = scn.cmr_n             
        AND (scm.plan_start_dt BETWEEN to_date(:DateFrom,'YYYY/MM/DD HH24:MI:SS') AND to_date(:DateTo,'YYYY/MM/DD HH24:MI:SS')                 
        OR scm.plan_end_dt BETWEEN to_date(:DateFrom,'YYYY/MM/DD HH24:MI:SS') AND to_date(:DateTo,'YYYY/MM/DD HH24:MI:SS'))                 
        AND scm.shift_mode_c = :ShiftModeCode                           
        AND scm.end_terminal_c = :TerminalCode      
        AND scm.start_terminal_c = yb1.terminal_c                  
        AND scm.start_block_n = yb1.block_n                  
        AND substr(scn.start_location_c,(instr(scn.start_location_c,',',1,5)+1),instr(scn.start_location_c,',',1,6)-(instr(scn.start_location_c,',',1,5)+1)) BETWEEN yb1.slot_from_n AND yb1.slot_to_n                  
        AND scm.end_terminal_c = yb2.terminal_c                  
        AND scm.end_block_n = yb2.block_n                  
        AND substr(scn.end_location_c,(instr(scn.end_location_c,',',1,5)+1),instr(scn.end_location_c,',',1,6)-(instr(scn.end_location_c,',',1,5)+1)) BETWEEN yb2.slot_from_n AND yb2.slot_to_n           
        AND scn.status_c not in (1, 11)             
        AND scn.shift_type_c = 'V'             
        AND scn.source_c = 'S'       
        GROUP BY yb1.BLOCK_M, scn.CNTR_SIZE_Q       
    ) cntr_list       
    GROUP BY cntr_list.SOURCE_BLOCK
    2. Detail View object (key attributes are SourceBlock and EndBlock and same varaible bindings are used for this view object.)
    SELECT  cntr_list.SOURCE_BLOCK, cntr_list.END_BLOCK,                
            sum(                     
             case when cntr_list.cntr_size_q = '20'                     
                  then cntr_list.cntr_qty                     
                  else 0 end ) as cntr20 ,                     
            sum(                     
             case when cntr_list.cntr_size_q = '40'                     
                  then cntr_list.cntr_qty                     
                  else 0 end ) as cntr40 ,                     
             sum(                     
             case when cntr_list.cntr_size_q = '45'                     
                  then cntr_list.cntr_qty                     
                  else 0 end ) as cntr45                      
    FROM (         
        SELECT yb1.BLOCK_M as SOURCE_BLOCK,     
               yb2.BLOCK_M as END_BLOCK,  
               scn.CNTR_SIZE_Q,          
               count(scn.CNTR_SIZE_Q) AS cntr_qty          
        FROM  SHIFT_CMR scm, SHIFT_CNTR scn, YARD_BLOCK yb1, YARD_BLOCK yb2         
        WHERE         
        scm.cmr_n = scn.cmr_n               
        AND (scm.plan_start_dt BETWEEN to_date(:DateFrom,'YYYY/MM/DD HH24:MI:SS') AND to_date(:DateTo,'YYYY/MM/DD HH24:MI:SS')                   
        OR scm.plan_end_dt BETWEEN to_date(:DateFrom,'YYYY/MM/DD HH24:MI:SS') AND to_date(:DateTo,'YYYY/MM/DD HH24:MI:SS'))                   
        AND scm.shift_mode_c = :ShiftModeCode                             
        AND scm.end_terminal_c = :TerminalCode        
        AND scm.start_terminal_c = yb1.terminal_c                    
        AND scm.start_block_n = yb1.block_n                    
        AND substr(scn.start_location_c,(instr(scn.start_location_c,',',1,5)+1),instr(scn.start_location_c,',',1,6)-(instr(scn.start_location_c,',',1,5)+1)) BETWEEN yb1.slot_from_n AND yb1.slot_to_n                    
        AND scm.end_terminal_c = yb2.terminal_c                    
        AND scm.end_block_n = yb2.block_n                    
        AND substr(scn.end_location_c,(instr(scn.end_location_c,',',1,5)+1),instr(scn.end_location_c,',',1,6)-(instr(scn.end_location_c,',',1,5)+1)) BETWEEN yb2.slot_from_n AND yb2.slot_to_n             
        AND scn.status_c not in (1, 11)               
        AND scn.shift_type_c = 'V'               
        AND scn.source_c = 'S'         
        GROUP BY yb1.BLOCK_M, yb2.BLOCK_M, scn.CNTR_SIZE_Q         
    ) cntr_list         
    GROUP BY cntr_list.SOURCE_BLOCK, cntr_list.END_BLOCK
    3. I create a view link to create master-detail relationship for these 2 view objects.
    masterview.SourceBlock (1)->detailview.SourceBlock (*).
    4. I create a tree table using these 2 view objects with master-detail relationship.
    When I set default value for variable bindings of these 2 view objects and the matching records exist, tree table can work well. I can expand the master row to display detail row in UI.
    But I need to pass in dymamic parameter value for variable bindings of these 2 view objects, tree table cannnot work again. when I expand the master row and no detail row are displayed in UI.
    I am sure that I pass in correct parameter value for master/detail view objects and matching records exist.
    Managed Bean:
            DCIteratorBinding dc = (DCIteratorBinding)evaluteEL("#{bindings.MasterView1Iterator}");
            ViewObject vo = dc.getViewObject();
            System.out.println("Before MasterView1Iterator vo.getEstimatedRowCount()="+ vo.getEstimatedRowCount());
            System.out.println("Before MasterView1Iterator ShiftModeCode="+ vo.ensureVariableManager().getVariableValue("ShiftModeCode"));
            vo.ensureVariableManager().setVariableValue("DateFrom", dateFrom);
            vo.ensureVariableManager().setVariableValue("DateTo", dateTo);
            vo.ensureVariableManager().setVariableValue("ShiftModeCode", shiftModeC);
            vo.ensureVariableManager().setVariableValue("TerminalCode", terminalCode);
            vo.executeQuery();
            System.out.println("MasterView1Iterator vo.getEstimatedRowCount()="+ vo.getEstimatedRowCount());
            DCIteratorBinding dc1 = (DCIteratorBinding)evaluteEL("#{bindings.DetailView1Iterator}");
            ViewObject vo1 = dc1.getViewObject();
            System.out.println("Before DetailView1Iterator vo1.getEstimatedRowCount()="+ vo1.getEstimatedRowCount());
            System.out.println("Before DetailView1Iterator ShiftModeCode="+ vo1.ensureVariableManager().getVariableValue("ShiftModeCode"));
            vo1.ensureVariableManager().setVariableValue("DateFrom", dateFrom);
            vo1.ensureVariableManager().setVariableValue("DateTo", dateTo);
            vo1.ensureVariableManager().setVariableValue("ShiftModeCode", shiftModeC);
            vo1.ensureVariableManager().setVariableValue("TerminalCode", terminalCode);
            vo1.executeQuery();
            System.out.println("after DetailView1Iterator vo1.getEstimatedRowCount()="+ vo1.getEstimatedRowCount());
    5.  What's wrong in my implementation?  I don't have no problem to implement such a tree table if using simple master-detail tables view object, but now I have to use such 2 view objects using complex SQL for my requirement and variable bindings are necessary for detail view object although I also think a bit strange by myself.

    Hi Frank,
    Thank you and it can work.
    public void setLowHighSalaryRangeForDetailEmployeesAccessorViewObject(Number lowSalary,
                                                                              Number highSalary) {
            Row r = getCurrentRow();
            if (r != null) {
                RowSet rs = (RowSet)r.getAttribute("EmpView");
                if (rs != null) {
                    ViewObject accessorVO = rs.getViewObject();
                    accessorVO.setNamedWhereClauseParam("LowSalary", lowSalary);
                    accessorVO.setNamedWhereClauseParam("HighSalary", highSalary);
                executeQuery();
    but I have a quesiton in this way. in code snippet, it is first getting current row of current master VO to determine if update variables value of detail VO. in my case, current row is possibly null after executeQuery() of master VO and  I have to change current row manually like below.
    any idea?
                DCIteratorBinding dc = (DCIteratorBinding)ADFUtil.evaluateEL("#{bindings.SSForecastSourceBlockView1Iterator}");
                ViewObject vo = dc.getViewObject();           
                vo.ensureVariableManager().setVariableValue("DateFrom", dateFrom);
                vo.ensureVariableManager().setVariableValue("DateTo", dateTo);
                vo.ensureVariableManager().setVariableValue("ShiftModeCode", shiftModeC);
                vo.ensureVariableManager().setVariableValue("TerminalCode", terminalCode);
                vo.executeQuery();
                vo.setCurrentRowAtRangeIndex(0);
                ((SSForecastSourceBlockViewImpl)vo).synchornizeAccessorVOVariableValues();

  • HTMLDB - Support HGrid or Hierachical Tree Table Grid?

    When is HTMLDB going to support
    more advanced GUI controls such
    as the HGrid or "tree table grid"?
    I want to display a hierarchy of
    objects in a tabular format.
    Thanks!
    -Kathryn

    When is HTMLDB going to support
    more advanced GUI controls such
    as the HGrid or "tree table grid"?
    I want to display a hierarchy of
    objects in a tabular format.
    Thanks!
    -Kathryn

  • Using the tree table ui pdf has this problem

    hai all,when i used the tree table UI(pdf in sdn) my checkboxes are not enabled at runtime
    Thanks n Regards
    Sharanya.R

    hai all,
         how to make the checkbox enabled at runtime when i use this tree in table UI.
    Thanks n Regards
    Sharanya.R
    Edited by: Shivani on Mar 3, 2008 1:12 PM
    Edited by: Shivani on Mar 3, 2008 1:15 PM

  • 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

  • Printing data available in an SAPUI5 tree table control / Model

    Hello Experts,
    I have a JSON model, which holds the data coming from an MII BLS transction.
    A Tree table is bound to the JSON model. Also, based on the "Expand" icon click on each row in Tree table, I load some data from the back-end dynamically and insert into my JSON model.
    My next course of action is to "Print" the data which is currently held by the tree table only. I don't want to print other UI controls which are present on the screen.
    Moreover, the table has a scroll bar. Irrespective of the scroll bar, I want to print all the data which is contained in side the tree table (and hence the model).
    Is there anyway I can achieve this? I went through few posts like: http://scn.sap.com/thread/3394127
    The question is remotely connected, but it gives me an impression that a particular "UI" control cannot be printed directly.
    Any suggestion will be greatly appreciated.

    Thank you Chandra.
    I now understand that it is not really possible to print a UI control directly. the framework doesn't support any kind of functionality/API for this.
    As suggested in this post that you have shared, it is not feasible for us to change the CSS and why are going to display the data in the table in another page, without keeping any scroll/pagination constraint. Thereafter, we'll print it using Ctrl+P.

  • ADF Query Panel with Tree Table

    I am using JDev 11g to create ADF Query Panel withTree Table. Basically it's working on data part.
    But on presentation part it looks awkward. The tree table's master row and child row share first row for column name
    ColumnMaster1   ColumnMaster2   ColumnMaster3    ColumnChild1   ColumnChild2   ColumnChild3
    So when tree closed, the master side filled. Child side empty. When tree opened, master side empty and child side filled.
    Are there any way, to make it inline looking with it's own column name for child?
    Thanks in advance.
    Edited by: kxc on Oct 30, 2009 9:19 AM

    Hi,
    the bug got closed already as not a bug. Instead this is filed as a documentation bug now, saying that tree tables don't support wrapped columns. So the bottom line is that three tables can only have a single leading column. If you need to show multiple information in there then I guess you will concatenate this
    Frank

  • I really needed this one implementation of tree table on mvc

    hi there i'm burning my as* reading some tutorials about tree table and all i found was a complex codes
    i just wanna know if you know some codes of a simple tree table where in the content of a tree or table was hardcoded and there are no thingy effects such as sortes. coz i really wanted to implement this on mvc since we are using STable here's the sample code:
    View:
    package treeTable;
    import java.awt.*;
    //import java.awt.event.MouseEvent;
    //import java.util.EventObject;
    import javax.swing.*;
    //import javax.swing.table.TableCellEditor;
    //import javax.swing.table.TableCellRenderer;
    import javax.swing.table.TableColumnModel;
    //import javax.swing.tree.DefaultTreeCellRenderer;
    //import javax.swing.tree.DefaultTreeSelectionModel;
    //import javax.swing.tree.TreeCellRenderer;
    //import javax.swing.tree.TreeModel;
    //import javax.swing.tree.TreePath;
    import javax.swing.border.*;
    //import javax.swing.event.ListSelectionEvent;
    //import javax.swing.event.ListSelectionListener;
    import com.jgoodies.forms.layout.CellConstraints;
    import com.jgoodies.forms.layout.FormLayout;
    //import com.borland.jbcl.layout.*;
    import org.scopemvc.core.Control;
    import org.scopemvc.core.Selector;
    import org.scopemvc.view.swing.*;
    * View for PosCCYFX
    * @author Raymond Isip
    public class HistoricTotalPositionByCurrencyFXView extends SPanel implements HistoricTotalPositionByCurrencyFXConstants {
    // Instance variables for the selectors used by the JBuilder designer
    Selector cashStructTBLSelector = CASH_STRUCT_TBL_SELECTOR;
    Selector selectedCashStructTBLSelector = SELECTED_CASH_STRUCT_TBL_SELECTOR;
    Selector optionsTBLSelector = OPTIONS_TBL_SELECTOR;
    Selector selectedOptionsTBLSelector = SELECTED_OPTIONS_TBL_SELECTOR;
    Selector fxcashStructuredFwdLBLSelector = FXCASH_STRUCTURED_FWD_LBL_SELECTOR;
    Selector cashLBLSelector = CASH_LBL_SELECTOR;
    Selector structFwdsLBLSelector = STRUCT_FWDS_LBL_SELECTOR;
    Selector optionsLBLSelector = OPTIONS_LBL_SELECTOR;
         FormLayout MainFormLayout = new FormLayout ("12,p,12,p,12", "11,p,11");
         FormLayout LeftFormLayout = new FormLayout ("280,250,87", "p,p");
         FormLayout LeftTableFormLayout = new FormLayout ("p", "p,p");
         FormLayout RightTableFormLayout = new FormLayout ("300", "p,p");
         FormLayout LeftSubFormLayout = new FormLayout ("100,50,100", "p");
         CellConstraints cc = new CellConstraints();
    Border cashStructTBLBorder;
    STable cashStructTBLTable = new STable();
    JScrollPane cashStructTBLScrollPane = new JScrollPane(cashStructTBLTable);
    Border optionsTBLBorder;
    STable optionsTBLTable = new STable();
    JScrollPane optionsTBLScrollPane = new JScrollPane(optionsTBLTable);
    JLabel fxcashStructuredFwdLBLLabel = new JLabel();
    SLabel fxcashStructuredFwdLBLSLabel = new SLabel();
    JLabel cashLBLLabel = new JLabel();
    SLabel cashLBLSLabel = new SLabel();
    JLabel structFwdsLBLLabel = new JLabel();
    SLabel structFwdsLBLSLabel = new SLabel();
    JLabel optionsLBLLabel = new JLabel();
    SLabel optionsLBLSLabel = new SLabel();
    * Constructor for the PosCCYFXView object
    public HistoricTotalPositionByCurrencyFXView() {
    jbInit();
    * The main program for the PosCCYFXView class
    * @param args The command line arguments
    public static void main(String[] args) {
              HistoricTotalPositionByCurrencyFXView view = new HistoricTotalPositionByCurrencyFXView();
    JFrame frame = new JFrame();
    frame.setSize(800, 600);
    frame.getContentPane().add(view);
    frame.setVisible(true);
    * Used by Scope to set the window frame title.
    * @return The title value
    public String getTitle() {
    return "PosCCYFX";
    * Used by Scope to end the application when the window is closed.
    * @return The closeControl value
    public Control getCloseControl() {
    return new Control(HistoricTotalPositionByCurrencyFXController.EXIT_CONTROL_ID);
    * Description of the Method
    * @return Description of the Return Value
    public boolean validateForm() {
    return true;
    private void jbInit() {
    this.setLayout(MainFormLayout);
         JPanel LeftPanel = new JPanel();
         JPanel LeftSubPanel = new JPanel();
         JPanel LeftTablePanel = new JPanel();
              JPanel RightTablePanel = new JPanel();
         LeftPanel.setLayout(LeftFormLayout);
              LeftSubPanel.setLayout(LeftSubFormLayout);
              LeftTablePanel.setLayout(LeftTableFormLayout);
              RightTablePanel.setLayout(RightTableFormLayout);
              JScrollPane LeftScrollPane = new JScrollPane(LeftTablePanel);
              //LeftScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
              LeftScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
              JScrollPane RightScrollPane = new JScrollPane(RightTablePanel);
              RightScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
              RightScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
              LeftScrollPane.setPreferredSize(new Dimension(620,330));
              RightScrollPane.setPreferredSize(new Dimension(300,330));
    cashStructTBLTable.setSelector(cashStructTBLSelector);
    cashStructTBLTable.setSelectionSelector(selectedCashStructTBLSelector);
    String[] columnSelects = {"col1", "col2", "col3", "col4", "col5","col6", "col7", "col8", "col9", "col10"};
    String[] columnNames = {"USD", "Date","Product Type", "Details", "Buy", "Sell", "Sub Total", "Buy", "Sell", "Total"};
    int colWidths[] = {100,70,70,40,50,50,60,50,50,60};
    cashStructTBLTable.setColumnSelectors(columnSelects);
    cashStructTBLTable.setColumnNames(columnNames);
    cashStructTBLTable.setPreferredScrollableViewportSize(new Dimension(600,273));
    TableColumnModel cashStructTBLModel = cashStructTBLTable.getColumnModel();
    for (int x=0; x<colWidths.length; x++) {
    int width = colWidths[x];
    cashStructTBLModel.getColumn(x).setPreferredWidth(width);}
              cashStructTBLTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    cashStructTBLScrollPane.setBorder(cashStructTBLBorder);
    cashStructTBLScrollPane.getViewport().add(cashStructTBLTable, null);
    optionsTBLTable.setSelector(optionsTBLSelector);
    optionsTBLTable.setSelectionSelector(selectedOptionsTBLSelector);
    String[] columnSelects1 = {"col1", "col2", "col3"};
    String[] columnNames1 = {"Buy", "Sell", "Total"};
    int colWidths1[] = {90,90,100};
    optionsTBLTable.setColumnSelectors(columnSelects1);
    optionsTBLTable.setColumnNames(columnNames1);
    optionsTBLTable.setPreferredScrollableViewportSize(new Dimension(300,290));
    TableColumnModel optionsTBLModel = optionsTBLTable.getColumnModel();
    for (int x1=0; x1<colWidths1.length; x1++) {
    int width1 = colWidths1[x1];
    optionsTBLModel.getColumn(x1).setPreferredWidth(width1); }
              optionsTBLTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    optionsTBLScrollPane.setBorder(optionsTBLBorder);
    optionsTBLScrollPane.getViewport().add(optionsTBLTable, null);
              optionsTBLTable.setEnabled(false);
    fxcashStructuredFwdLBLLabel.setText(" FX Cash & Structured Forwards");
              fxcashStructuredFwdLBLLabel.setBorder(BorderFactory.createRaisedBevelBorder());
              cashLBLLabel.setText(" Cash");
              cashLBLLabel.setBorder(BorderFactory.createRaisedBevelBorder());
              structFwdsLBLLabel.setText(" Structured FWDs");
              structFwdsLBLLabel.setBorder(BorderFactory.createRaisedBevelBorder());
              optionsLBLLabel.setText(" Options");
              optionsLBLLabel.setBorder(BorderFactory.createRaisedBevelBorder());
              /******************************Fillers*************************************/
    JLabel sample = new JLabel(" ");
              JLabel sample1 = new JLabel(" ");
              JLabel sample2 = new JLabel(" ");
              JLabel sample3 = new JLabel(" ");
              JLabel sample4 = new JLabel(" ");
              sample.setBorder(BorderFactory.createRaisedBevelBorder());
              sample1.setBorder(BorderFactory.createRaisedBevelBorder());
              sample2.setBorder(BorderFactory.createRaisedBevelBorder());
              sample3.setBorder(BorderFactory.createRaisedBevelBorder());
              sample4.setBorder(BorderFactory.createRaisedBevelBorder());
              LeftSubPanel.add(sample, cc.xy(2,1));
              LeftPanel.add(sample1, cc.xy(1,1));
              LeftPanel.add(sample2, cc.xy(3,1));
              LeftPanel.add(sample3, cc.xy(1,2));
              LeftPanel.add(sample4, cc.xy(3,2));
              LeftSubPanel.add(cashLBLLabel, cc.xy(1,1));
              LeftSubPanel.add(structFwdsLBLLabel, cc.xy(3,1));
              LeftPanel.add(fxcashStructuredFwdLBLLabel, cc.xy(2,1));
              LeftPanel.add(LeftSubPanel, cc.xy(2,2));
              LeftTablePanel.add(LeftPanel, cc.xy(1,1));
              LeftTablePanel.add(cashStructTBLScrollPane, cc.xy(1,2));
              RightTablePanel.add(optionsLBLLabel, cc.xy(1,1));
              RightTablePanel.add(optionsTBLScrollPane, cc.xy(1,2));
              this.add(LeftScrollPane, cc.xy(2,2));
              this.add(RightScrollPane, cc.xy(4,2));
    Model:
    package treeTable;
    import java.util.ArrayList;
    import java.util.List;
    import org.scopemvc.core.ModelChangeEvent;
    import org.scopemvc.core.Selector;
    import org.scopemvc.model.basic.*;
    import org.scopemvc.model.collection.ListModel;
    * Model for for PosCCYFX
    * @author Raymond Isip
    public class HistoricTotalPositionByCurrencyFXModel extends BasicModel implements HistoricTotalPositionByCurrencyFXConstants {
    private ListModel cashStructTBLList = new ListModel();
    private CashStructTBLItem selectedCashStructTBL = null;
    private ListModel optionsTBLList = new ListModel();
    private OptionsTBLItem selectedOptionsTBL = null;
    private String fxcashStructuredFwdLBL;
    private String cashLBL;
    private String structFwdsLBL;
    private String optionsLBL;
    * Constructor for the PosCCYFXModel object
    public HistoricTotalPositionByCurrencyFXModel() {
              Object[] data1= new Object[]{"100","100","200"};
              Object[] data2= new Object[]{"","29.Apr.2004","Forward","SGD","200","100","300","250","150","400"};
              for(int x = 0; x<=25;x++){
                   selectedOptionsTBL = new OptionsTBLItem(data1);
                   optionsTBLList.add(selectedOptionsTBL);
                   selectedCashStructTBL = new CashStructTBLItem(data2);
                   cashStructTBLList.add(selectedCashStructTBL);
    * Gets the cashStructTBL list
    * @return The cashStructTBL list
    public List getCashStructTBLList() {
    return cashStructTBLList;
    * Sets the cashStructTBL list
    * @param newCashStructTBLList The new cashStructTBL list
    public void setCashStructTBLList(List newCashStructTBLList) {
    cashStructTBLList.setList(newCashStructTBLList);
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, CASH_STRUCT_TBL_SELECTOR);
    * Gets the selected cashStructTBL item
    * @return A cashStructTBL item
    public CashStructTBLItem getSelectedCashStructTBL() {
    return selectedCashStructTBL;
    * Sets the selected cashStructTBL item
    * @param newCashStructTBL The new cashStructTBL item
    public void setSelectedCashStructTBL(CashStructTBLItem newCashStructTBL) {
    selectedCashStructTBL = newCashStructTBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, SELECTED_CASH_STRUCT_TBL_SELECTOR) ;
    * Gets the optionsTBL list
    * @return The optionsTBL list
    public List getOptionsTBLList() {
    return optionsTBLList;
    * Sets the optionsTBL list
    * @param newOptionsTBLList The new optionsTBL list
    public void setOptionsTBLList(List newOptionsTBLList) {
    optionsTBLList.setList(newOptionsTBLList);
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, OPTIONS_TBL_SELECTOR);
    * Gets the selected optionsTBL item
    * @return A optionsTBL item
    public OptionsTBLItem getSelectedOptionsTBL() {
    return selectedOptionsTBL;
    * Sets the selected optionsTBL item
    * @param newOptionsTBL The new optionsTBL item
    public void setSelectedOptionsTBL(OptionsTBLItem newOptionsTBL) {
    selectedOptionsTBL = newOptionsTBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, SELECTED_OPTIONS_TBL_SELECTOR) ;
    * Gets the fxcashStructuredFwdLBL attribute
    * @return The fxcashStructuredFwdLBL value
    public String getFxcashStructuredFwdLBL() {
    return fxcashStructuredFwdLBL;
    * Sets the fxcashStructuredFwdLBL attribute
    * @param newFxcashStructuredFwdLBL The new fxcashStructuredFwdLBL value
    public void setFxcashStructuredFwdLBL(String newFxcashStructuredFwdLBL) {
    fxcashStructuredFwdLBL = newFxcashStructuredFwdLBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, FXCASH_STRUCTURED_FWD_LBL_SELECTOR);
    * Gets the cashLBL attribute
    * @return The cashLBL value
    public String getCashLBL() {
    return cashLBL;
    * Sets the cashLBL attribute
    * @param newCashLBL The new cashLBL value
    public void setCashLBL(String newCashLBL) {
    cashLBL = newCashLBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, CASH_LBL_SELECTOR);
    * Gets the structFwdsLBL attribute
    * @return The structFwdsLBL value
    public String getStructFwdsLBL() {
    return structFwdsLBL;
    * Sets the structFwdsLBL attribute
    * @param newStructFwdsLBL The new structFwdsLBL value
    public void setStructFwdsLBL(String newStructFwdsLBL) {
    structFwdsLBL = newStructFwdsLBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, STRUCT_FWDS_LBL_SELECTOR);
    * Gets the optionsLBL attribute
    * @return The optionsLBL value
    public String getOptionsLBL() {
    return optionsLBL;
    * Sets the optionsLBL attribute
    * @param newOptionsLBL The new optionsLBL value
    public void setOptionsLBL(String newOptionsLBL) {
    optionsLBL = newOptionsLBL;
    this.fireModelChange(ModelChangeEvent.VALUE_CHANGED, OPTIONS_LBL_SELECTOR);
    Controller:
    package treeTable;
    import java.awt.Dimension;
    import org.scopemvc.controller.basic.BasicController;
    import org.scopemvc.core.Control;
    import org.scopemvc.core.ControlException;
    * Controller for PosCCYFX
    * @author Raymond Isip
    public class HistoricTotalPositionByCurrencyFXController extends BasicController implements HistoricTotalPositionByCurrencyFXConstants {
    * Constructor for the PosCCYFXController object
    public HistoricTotalPositionByCurrencyFXController() {
    setModel(new HistoricTotalPositionByCurrencyFXModel());
    setView(new HistoricTotalPositionByCurrencyFXView());
         public HistoricTotalPositionByCurrencyFXController(HistoricTotalPositionByCurrencyFXView view) {
              setModel(new HistoricTotalPositionByCurrencyFXModel());
              setView(view);
    * Call this after creating the Controller to make it perform
    * its initial action. Default impl opens the view in a new frame.
    public void startup() {
              HistoricTotalPositionByCurrencyFXView myView = (HistoricTotalPositionByCurrencyFXView) getView();
    // This is the code that centers the view
    myView.setViewBounds(myView.CENTRED);
    myView.setPreferredSize(new Dimension(1000, 600));
    showView(myView);
    * Can be called by a parent to shutdown and remove this from
    * the chain of responsibility. Default impl does this:
    * <ul>
    * <li>call shutdown() on every child controller</li>
    * <li>call hideView()</li>
    * <li>setParent(null)</li>
    * </ul>
    public void shutdown() {
    super.shutdown();
    * Handles all controls
    * @param inControl The control token invoking the presentation logic
    * @throws ControlException when an error occured while handling the control
    protected void doHandleControl(Control inControl) throws ControlException {
    try {
    if (inControl.matchesID(SAVE)) {
    inControl.markMatched();
    doSave();
    } else if (inControl.matchesID(RESET)) {
    inControl.markMatched();
    doReset();
    } else if (inControl.matchesID(GOT_OPTIONS_TBL)) {
    inControl.markMatched();
    doGotOptionsTbl();
    } catch (ControlException ce) {
    throw ce;
    } catch (RuntimeException re) {
    re.printStackTrace();
    throw re;     
    } finally {
    // do cleanup
    * Handles the SAVE control
    * @todo Implement doSave
    protected void doSave() throws ControlException {
    // to implement
    * Handles the RESET control
    * @todo Implement doReset
    protected void doReset() throws ControlException {
    // to implement
    * Handles the GOT_OPTIONS_TBL control
    * @todo Implement doGotOptionsTbl
    protected void doGotOptionsTbl() throws ControlException {
    // to implement
    Launcher:
    package treeTable;
    import org.scopemvc.util.ResourceLoader;
    import org.scopemvc.util.UIStrings;
    * Launcher for PosCCYFX
    * @author Raymond Isip
    public class HistoricTotalPositionByCurrencyFXLauncher {
    * Constructor for the PosCCYFXLauncher object
    public HistoricTotalPositionByCurrencyFXLauncher() {
    * Start the PosCCYFX application
    * @param args The command line arguments
    public static void main(String[] args) {
    // TODO: change 'resources' by the name of your properties file
    UIStrings.setPropertiesName("resources");
    ResourceLoader.setClientClassLoader(HistoricTotalPositionByCurrencyFXLauncher.class.getClassLoader());
              HistoricTotalPositionByCurrencyFXController mainController = new HistoricTotalPositionByCurrencyFXController();
    mainController.startup();
    Constant:
    package treeTable;
    import org.scopemvc.core.Selector;
    * Constants for the selectors and the control ids defined in PosCCYFX
    * @author Raymond Isip
    public interface HistoricTotalPositionByCurrencyFXConstants {
    // Selectors
    Selector CASH_STRUCT_TBL_SELECTOR = Selector.fromString("cashStructTBLList");
    Selector SELECTED_CASH_STRUCT_TBL_SELECTOR = Selector.fromString("selectedCashStructTBL");
    Selector OPTIONS_TBL_SELECTOR = Selector.fromString("optionsTBLList");
    Selector SELECTED_OPTIONS_TBL_SELECTOR = Selector.fromString("selectedOptionsTBL");
    Selector FXCASH_STRUCTURED_FWD_LBL_SELECTOR = Selector.fromString("fxcashStructuredFwdLBL");
    Selector CASH_LBL_SELECTOR = Selector.fromString("cashLBL");
    Selector STRUCT_FWDS_LBL_SELECTOR = Selector.fromString("structFwdsLBL");
    Selector OPTIONS_LBL_SELECTOR = Selector.fromString("optionsLBL");
    // Control IDs
    * The SAVE control ID for the save button
    String SAVE = "SAVE";
    * The RESET control ID for the reset button
    String RESET = "RESET";
    * The GOT_OPTIONS_TBL control ID for the optionsTBL field
    String GOT_OPTIONS_TBL = "GOT_OPTIONS_TBL";
    CashStructTBLItem:
    package treeTable;
    * Item for CashStructTBL
    * @author Raymond Isip
    public class CashStructTBLItem {
         String col1= new String();
         String col2= new String();
         String col3= new String();
         String col4= new String();
         String col5= new String();
         String col6= new String();
         String col7= new String();
         String col8= new String();
         String col9= new String();
         String col10= new String();
    * Constructor for the CashStructTBLItem object
         public CashStructTBLItem(Object[] data1) {
              setCol1((String)data1[0]);
              setCol2((String)data1[1]);
              setCol3((String)data1[2]);
              setCol4((String)data1[3]);
              setCol5((String)data1[4]);
              setCol6((String)data1[5]);     
              setCol7((String)data1[6]);
              setCol8((String)data1[7]);
              setCol9((String)data1[8]);     
              setCol10((String)data1[9]);
         * @return
         public String getCol1() {
              return col1;
         * @return
         public String getCol10() {
              return col10;
         * @return
         public String getCol2() {
              return col2;
         * @return
         public String getCol3() {
              return col3;
         * @return
         public String getCol4() {
              return col4;
         * @return
         public String getCol5() {
              return col5;
         * @return
         public String getCol6() {
              return col6;
         * @return
         public String getCol7() {
              return col7;
         * @return
         public String getCol8() {
              return col8;
         * @return
         public String getCol9() {
              return col9;
         * @param string
         public void setCol1(String string) {
              col1 = string;
         * @param string
         public void setCol10(String string) {
              col10 = string;
         * @param string
         public void setCol2(String string) {
              col2 = string;
         * @param string
         public void setCol3(String string) {
              col3 = string;
         * @param string
         public void setCol4(String string) {
              col4 = string;
         * @param string
         public void setCol5(String string) {
              col5 = string;
         * @param string
         public void setCol6(String string) {
              col6 = string;
         * @param string
         public void setCol7(String string) {
              col7 = string;
         * @param string
         public void setCol8(String string) {
              col8 = string;
         * @param string
         public void setCol9(String string) {
              col9 = string;
    OptionsTBLItem:
    package treeTable;
    * Item for OptionsTBL
    * @author Raymond Isip
    public class OptionsTBLItem {
         String col1= new String();
         String col2= new String();
         String col3= new String();
    * Constructor for the OptionsTBLItem object
         public OptionsTBLItem(Object[] data1) {
              setCol1((String)data1[0]);
              setCol2((String)data1[1]);
              setCol3((String)data1[2]);
         * @return
         public String getCol1() {
              return col1;
         * @return
         public String getCol2() {
              return col2;
         * @return
         public String getCol3() {
              return col3;
         * @param string
         public void setCol1(String string) {
              col1 = string;
         * @param string
         public void setCol2(String string) {
              col2 = string;
         * @param string
         public void setCol3(String string) {
              col3 = string;
    All I want is for the tree table renderers or editors to use the table created on the vieew part of this mvc
    i will greatly appreciates your help

    As a start point take sources of JTable (the component and datamodel) and rebuild them. I have made such component for my company product. To write it I spend 5 days and about two weeks for debugging. This code cannot be very simple. As it should be fully mutable. For example, each line should have bkcolor, fgcolor, font, etc. Each sell has bkcolor, fgcolor, font, insets, border, alighnment, visibility, etc. Each node has its cell, indent and array of data cells. To support fast scrolling the painting should be buffered. My components also supports text line wrapping. The tree component consists of three parts: the header, the left part and the matrix of data. This component can be printed (this is a secial code for paging and scaling).

  • Table/tree table refresh issue

    I create a table and tree table, we see the refresh happen when adding or deleting a row. We are trying to reach the following behavior:
    1) when adding a row, it should add (before or after or END) and scroll to that location and put focus on that row. In a simple case where we do not have to scroll down to some page, this should present minimal refresh
    2) Deleting a row or multiple rows, should present minimal refresh
    3) we don't want to fetch at all for ADD and delete rows. Only in pagination scrolling we should fetch.
    Does anyone have the similar requirement for the behavior of Table /Tree table?
    how do you achieve that ?

    Hi KRISHNA,
    there is no other way as a complete page refresh with the normal APEX trees. But you could use an javascript library instead like JQuery or ExtJS.
    More details here: [http://apex-at-work.blogspot.com/2009/08/apex-navigation-concepts.html|http://apex-at-work.blogspot.com/2009/08/apex-navigation-concepts.html]
    or here: [http://www.e-dba.com/uk/f?p=105:1|http://www.e-dba.com/uk/f?p=105:1]
    or here: [http://bassistance.de/jquery-plugins/jquery-plugin-treeview/|http://bassistance.de/jquery-plugins/jquery-plugin-treeview/]
    Best regards,
    Tobias

  • Complex Table Tree Button Image

    Hi all,
    it seems that with SMP SDK 3.0 SP7, the styles for the comlex table tree dialog are supported for the WPF client (yay!). Unfortunately, the button for opening that dialog () is still pretty small for the average thumb. Is there any way to replace that image?
    Regards, Daniel

    Daniel,
    The engineering team is working on making the WPF client more touch friendly.  You may have already noticed some changes in SDK SP07/PL01 where spacing is increased in rows for drop downs, lists, etc.  I believe there are also more changes planned for SP08 as well in this regard.
    The only thing you could try would be in the editor under Application Settings the checkbox for Use Large Buttons.  I do not know if this will affect the WPF client or not.  You would just need to test it out and see.
    Support is also working on a note to detail out some of the changes being made to make the WPF client more touch friendly.
    --Bill

Maybe you are looking for

  • Is it a hardware and/or software issue when the screen suddenly shifts?

    Hey there, Yesterday my 2.5 year old laptop had an error. I was working in excel, when suddenly the screen shifted out of focus. I saw everything on the screen echoed some pixels to the upperleft, and moving the mouse over a shifted area turned this

  • SERIOUS PROBLEM HELPZ!!!!

    Basically, my phone froze so I logically turned it off, now I know my inbox and memory card is full and may have something to do with it. Then when I turn it on, it loads and then the screen goes black and will not load and then it dies. Turns itself

  • Itunes deleting music off my iPod on its own

    So I was noticing that I would add an album to my iPod from my iTunes and then after a little bit the songs would just be gone from my iPod. Not sure whats causing it, but basically I stared at my iTunes looking at the amount of free space of my iPod

  • Manually refreshing page in servlet

    Hi, I have this servlet that when processed automatically opens a window that display the results, however, because of IE's caching, when I reprocess the page the window still displays the old data. I can simply set the caching settings but I was won

  • Request can't be completed

    I bought The iPad2 16 GB running on iOS 5.0. I downloaded some apps from The app store with my account. Later from the past two days it's featured bar isn't responding. I can still download apps but I've to search or go to top charts.... Can't see wh