UIX/XML BC4J  Retaining multiple selection in tables

We have a table with multiple selection, and we want the items to remain selected after the page refresh for some reason. Whats the cheapest way to obtain this?

Data bind the selection attribute of multipleSelection to "someKey@ctrl:eventResult". Then in your event handler use an oracle.cabo.ui.data.ServletRequestDataSet and attach it to the event result, under the key "someKey".
When the page is refreshed it should remember the multiple selection.
Regards,
John Fallows
Oracle Corporation.

Similar Messages

  • UIX/XML BC4J  Retaining form values

    Whats the best way to retain form values in a UIX page when the user fires some action that makes it refresh? This is especially important in a master-detail page, where the user can for example modify some of the master data and navigate detail list before committing his changes (and therefore leaving that page).

    If you set the attribute values in the event handler before leaving the page, using releaseMode="stateful" or releaseMode="reserved", then these values should be available before when you return.
    Regards,
    John Fallows
    Oracle Corporation.

  • UIX XML BC4J Choice

    Adam, In a previous thread In cactus, it has problem to generate report you mentioned that in order to implement a Choice within UIX/XML/BC4J one would have to write some code to do it. Specifically,
    1. Implement the oracle.cabo.ui.data.DataObjectList interface to wrap up the results of a BC4J query ...
    2. Write a MethodDataProvider ....
    3. Access the Method and display the Choices.
    Can you JDEV guys post a WORKING example of how to do it?
    An "EDIT.UIX" page where the USER makes a selection from the drop-down-list (Choice) and then updates the record with that selection would be nice.
    Bill G...

    Beautiful!
    I'll will look at implementing this over the weekend. I made a decision to temporarily go with UIX-JSP since I did not know how to implement a "UIX XML BC4J Choice".
    Now that you've delivered it I should be able to convert some of my UIX-JSP apps to UIX/XML.
    Thank You Good Buddy! (Think truck driver accent)
    Bill G...

  • Multiple Selection in Table in uix page

    Hello EveryBody,
    I'm using jdeveloper 9051+adf+uix.
    I'm using multiple Selection in a table (dragged as read only table of a View Object).
    Now i've to perform some action on the selected rows from the page.
    How to implement this feature please help me to solve this problem.
    Waiting for the reply
    Thanks and Regards
    Mina

    Hi RB,
    Yes still you can use this.
    Ex:
    for(int k=0;k<wdContext.nodeEmployeeInfo().size();k++)
    if (wdContext.nodeEmployeeInfo().isMultiSelected(k))
      /* Here you will get all the list of selected rows */
    Regards, Anilkumar

  • UIX XML & BC4J Editable Tables

    How to process the changes on a bc4j table with editable columns (in UIX XML)?
    We can read the values, but when we try to update the view object, it occurs an error saying that the read value is not serializable.

    I think the problem is that you are not getting at the viewObject correctly in your eventHandler.
    First, in the uiXML file, the handler should be something like:
                <ctrl:handlers>
                  <ctrl:event name="..." >
                    <bc4j:findRootAppModule name="EmpAppModuleLocal" >
                      <bc4j:findViewObject name="AllEmpsVO" >
                        <ctrl:method class="yourClass"
                                     method="applyChanges"/>
                        <bc4j:commit/>
                      </bc4j:findViewObject>
                    </bc4j:findRootAppModule>
                  </ctrl:event>
                </ctrl:handlers>Then you can write your applyChanges method like this:
    public static EventResult applyChanges(BajaContext context,
                                           Page page,PageEvent event)
      ViewObject view = (ViewObject) context.getProperty(
                JboConstants.BC4J_NAMESPACE,
                JboConstants.VIEW_OBJECT_PROPERTY);
      view.getCurrentRow().setAttribute("Ename","Smith");
      return null;
    }Please see:
    http://otn.oracle.com/jdeveloper/help/topic?inOHW=true&file=jar%3Afile%3A/u01/webapps/OHW/ohw-app/jdeveloper/helpsets/jdeveloper/uix_devguide_ohj.jar!/bc4j.html&linkHelp=false#HandlingEvents
    http://otn.oracle.com/jdeveloper/help/topic?inOHW=true&file=jar%3Afile%3A/u01/webapps/OHW/ohw-app/jdeveloper/helpsets/jdeveloper/uixref.jar!/bc4j/findViewObject.html&linkHelp=false

  • UIX XML - BC4J +

    We are implementing a functionality to insert new elements using BC4J components and UIX XML.
    We have carefully followed istruction from the UIX developer's guide (Business Components for Java Integration) but we notice some problems
    that we suppose are due to RowDefs with autocreate=true and the KEY attribute management flow.
    The components implemented have:
    1) A create method implemented for setting entity primary key using a DB sequence and other default values:
         protected void create(AttributeList attributeList) {
              super.create(attributeList);
              SequenceImpl seq = new SequenceImpl("VA_TIPO_PUNTEGGIO_SEQ", getDBTransaction());
              setAttribute("IdTipoPunteggio", seq.getSequenceNumber());
              setDataAgg(new Date( new Timestamp(System.currentTimeMillis())));
    2) A validation rule that checks for duplicate description using a ListCompare:
    <ListValidationBean
    OnAttribute="TitTipoPunteggio"
    OperandType="SQL"
    Inverse="true"
    ListValue="select tit_tipo_punteggio from va_tipo_punteggio where id_tipo_punteggio &#60;&#62; %IdTipoPunteggio%" >
    </ListValidationBean>
    Our problems are:
    1) The ID taken from a DB Sequence are increased by 2 (this doesn't occur using test on application module), and we suppose that it happens because row isn't
    found using the correct KEY property.
    2) When the validation's rule is triggered, row data aren't reloaded
    UIX code for apply event is:
    <event name="saveEvent" >
         <bc4j:findRootAppModule name="TipoPunteggioViewAppModule" >
              <bc4j:findViewObject name="TipoPunteggioView" >
                   <bc4j:findRow name="newRow">
                        <bc4j:setPageProperty name="key" >
                             <bc4j:stringKey />
                        </bc4j:setPageProperty>
                        <bc4j:setAttribute name="IdTipoPunteggio" />
                        <bc4j:setAttribute name="TitTipoPunteggio" />
                        <bc4j:setAttribute name="FlgObsoleto" />
                        <bc4j:insertRow/>
                        <bc4j:commit/>
                        <bc4j:executeQuery/>
                        <ctrl:go redirect="true" name="Anagrafiche_TipiPunteggio"/>
                   </bc4j:findRow>
              </bc4j:findViewObject>
         </bc4j:findRootAppModule>
    </event>
    However we have doubts on the code flow because we suppose the following istruction are missing before the findRow tag:
    <bc4j:setPageProperty name="keyTipoPunteggio" >
         <bc4j:parameter name="keyTipoPunteggio"/>
    </bc4j:setPageProperty>
    otherwise what is the reason of the keyStamp tag declared on the region?
    Moreover we don't understand the purpose of these instructions:
    <bc4j:setPageProperty name="keyTipoPunteggio" >
         <bc4j:stringKey />
    </bc4j:setPageProperty>
    because when validation on the row occurs, data of the rejected row are not reloaded.
    Perhaps would be useful an HowTo or a detailed explanation of interaction between registryDefs and event handler tags.
    TIA

    Our problems are:
    1) The ID taken from a DB Sequence are increased by 2 (this doesn't occur using test on application module), and we suppose that it happens because row isn't found using the correct KEY property.This is correct.
    2) When the validation's rule is triggered, row data aren't reloaded
    UIX code for apply event is: <snip>
    Replace it with this:
    <event name="saveEvent" >
    <bc4j:findRootAppModule name="TipoPunteggioViewAppModule" >
    <bc4j:findViewObject name="TipoPunteggioView" >
    <bc4j:setPageProperty name="key" >
    <bc4j:parameter name="key" />
    </bc4j:setPageProperty>
    <bc4j:findRow name="newRow">
    <bc4j:setAttribute name="IdTipoPunteggio" />
    <bc4j:setAttribute name="TitTipoPunteggio" />
    <bc4j:setAttribute name="FlgObsoleto" />
    <bc4j:insertRow/>
    <bc4j:setPageProperty name="key" >
    <bc4j:stringKey />
    </bc4j:setPageProperty>
    <bc4j:commit/>
    <bc4j:executeQuery/>
    <ctrl:go redirect="true" name="Anagrafiche_TipiPunteggio"/>
    </bc4j:findRow>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    The main issue is that the string representation of the key changes when the row is inserted into the view object. It is a "short" key before insert and a "long" key after insert. Also, "short" keys cannot be found by ViewObject APIs to locate rows when the key is still "short".
    Here is the flow:
    1. Create page is rendered, auto-creating a new row with "short" key.
    2. In apply event handler, we must set the page property based on the submitted key
    to find the same row. Unfortunately, the "short" key does not find the old row, so
    we end up creating a new one for this request (incrementing the sequence).
    3. We may get as far as inserting the new row, upgrading to a "long" key.
    4. So we update the page property after a successful insert to the new "long" key.
    5. We rerender the page and use the page property to find the row, most likely the "long" key.
    [Note: if an exception occurred during set attribute, before insert row, the key will still
              be "short"]
    6. Once we get as far as attempting insertRow, the key will become "long" and locatable by
    ViewObject APIs.
    You don't encounter this problem in the tester because it can keep an in-memory handle to the row it
    is trying to insert for the duration of the insert attempt.
    The web-based UI relies on key-based references instead, which have the issue outlined above.
    We will follow up on this to see if "short" keys can be located by ViewObject APIs in future, allowing
    the same reference to be found across requests.
    Regards,
    John Fallows.

  • UIX XML BC4J  Calling custom and framework methods

    We are developing an application using BC4J and UIX XML.
    We would like to define field attributes, such as date formatting and labels, at business component-level, but those properties are bound to a locale setting. We do not want to duplicate this kind of settings for each end-user locale, whats the best way to obtain that? And UIX BC4J extension tags, like tables and region in automatic mode, will automatically use those settings?
    In BC4J components we can define custom methods to perform further processing, using UIX XML can we access those and other framework-provided interfaces, and how?

    automatic mode is just for quick demos. You cannot internationalize your application while using automatic mode.
    You will need to turn off automatic mode, and have bc4j:column beans in your table and databind the data to come from your resource bundles.

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

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

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

  • Multiple Selection for Tables

    HI Team, When I try to select the multiple selection for field Material in table Mara, the To value is not displayed
    e.g in table mara if i select the material option from A* to Z*, all the materials are displayed from A until x but no of the materials are displayed starting with Z. I have found this as standard functionality in SAP and happens for all fields with multple selection in tables. can you guys advise if there is an OSS note for this?
    Thanks,
    Sunny

    Hai Sunny,
    Please check Do you have material staring with Z
    and check is there any
    Maximum No. of Hits restriction.
    Till you get SAP notes
    Create a query in SQVI for only ine table and
    MARA and tick mark the selection b fields and fields to be displayed in the report.
    Now in the report selection screen you will get TO option as well it will list all the Z materials.
    Regards,
    Mani

  • Multiple selection in table not returning all selected rows

    I am unable to obtain multiple selected rows from a table. I only get a single row no matter how many I select.
    I have the following table
    <af:table value="#{bindings.TargetSelectorTargets1.collectionModel}"
    var="row"
    rows="#{bindings.TargetSelectorTargets1.rangeSize}"
    emptyText="#{bindings.TargetSelectorTargets1.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.TargetSelectorTargets1.rangeSize}"
    rowBandingInterval="0"
    filterModel="#{bindings.ImplicitViewCriteriaQuery2.quickQueryDescriptor}"
    queryListener="#{bindings.ImplicitViewCriteriaQuery2.processQuery}"
    filterVisible="true" varStatus="vs"
    selectedRowKeys="#{bindings.TargetSelectorTargets1.collectionModel.selectedRow}"
    selectionListener="#{bindings.TargetSelectorTargets1.collectionModel.makeCurrent}"
    rowSelection="multiple"
    partialTriggers="::qryId1" id="t3"
    styleClass="AFStretchWidth"
    binding="#{testbean.targetselectortable}">
    <af:column sortProperty="Name" filterable="true"
    sortable="true"
    headerText="#{bindings.TargetSelectorTargets1.hints.Name.label}"
    id="c2">
    <af:outputText value="#{row.Name}" id="ot33"/>
    </af:column>
    <af:column sortProperty="Type" filterable="true"
    sortable="true"
    headerText="#{bindings.TargetSelectorTargets1.hints.Type.label}"
    id="c11">
    <af:outputText value="#{row.Type}" id="ot34"/>
    </af:column>
    </af:table>
    and I have the following bean method to get the selected rows
    RowKeySet rks = targetselectortable.getSelectedRowKeys();
    Iterator itr = rks.iterator();
    Object key;
    while(itr.hasNext())
    key = (Object)itr.next(); targetselectortable.setRowKey(key);
    Object o = targetselectortable.getRowData();
    JUCtrlHierNodeBinding rowData = (JUCtrlHierNodeBinding) o;
    Row row = rowData.getRow();
    System.out.println(row.getAttribute("Name").toString());
    and I only get one row.
    Note: selectedRowKeys="#{bindings.TargetSelectorTargets1.collectionModel.selectedRow}"
    shows a warning that "reference selectedRow" not found.
    Can I do something to make it work?

    can u change the logic like
    RowKeySet rowSet = targetselectortable.getSelectedRowKeys();
    Iterator rowSetIter = rowSet.iterator();
    > while (rowSetIter.hasNext()) {
    > List l = (List)rowSetIter.next();
    > Key key = (Key)l.get(0);
    >
    FacesContext fc = FacesContext.getCurrentInstance();> BindingContainer bindings =
    > (BindingContainer)fc.getApplication().evaluateExpressionGet(fc,
    > "#{bindings}",
    > BindingContainer.class);
    >
    DCBindingContainer bindings = (DCBindingContainer)bindings ;> DCIteratorBinding iter =
    > bindings.findIteratorBinding("TargetSelectorTargets1Iterator");
    >
    > iter.setCurrentRowWithKey(key.toStringFormat(true));
    > Row r = iter.getCurrentRow();
    > System.out.println(row.getAttribute("Name").toString());
    > }

  • UIX/XML BC4J - Controlling page flow in event handlers

    We have an event handler that executes some data processing using bc4j tags, and need to redirect the flow to another page, based on the value of some parameters. For example, we have a checkbox Prepare for another insert, and we want to check for its state in the event handler to determine which page to display.
    We tried the following code
    UIX page event handler:
    <event name="saveEvent" >
         <bc4j:findRootAppModule name="TipoPunteggioViewAppModule" >
              <bc4j:findViewObject name="TipoPunteggioView" >
                   <bc4j:findRow name="CreateTipoPunteggioView" >
                        <bc4j:setPageProperty name="keyTipoPunteggio" >
                             <bc4j:stringKey />
                        </bc4j:setPageProperty>
                        <bc4j:setAttribute name="FlgObsoleto" />
                        <bc4j:setAttribute name="Firma" />
                        <bc4j:setAttribute name="TitTipoPunteggio" />
                        <bc4j:insertRow/>
                        <bc4j:commit/>
                        <bc4j:executeQuery/>
                        <ctrl:method class="com.websiteitalia.valutazioni.handlers.Handlers"
                             method="anotherInsertEventHandler" />
                   </bc4j:findRow>
              </bc4j:findViewObject>
         </bc4j:findRootAppModule>
    </event>
    Java method event handler:
    public static EventResult anotherInsertEventHandler(BajaContext bCtx,
                                       Page page,
                                       PageEvent event) {
         // AnotherInsert is the name of the checkbox on the page
    if ("on".equals(event.getParameter("AnotherInsert"))) {
              return new EventResult(page);
         } else {
              return new EventResult(new Page("ListPage"));
    When we return the same page, things work fine, but when we return another page we get an ArrayIndexOutOfBoundException. We have also noticed that if we return a simple page, without data scopes and bc4j tags, we get the correct result. We are probably wrong in the manner we do the redirect inside of a java event handler, because seems that the page we return is not completely processed.
    Can anyone explain the available techniques to control the page flow, using UIX XML tags or Java APIs alone or both of these together? For example, how can be replicated the <ctrl:go> behavior using Java APIs?

    The UIX page works correctly if loaded directly, the error takes place only when we redirect in this manner from a page that has a different application module / view object scopes. In fact, when we redirect to a page that have the same scopes of the first (or when the second page has not scopes at all the simple page) the error doesnt occur. Thats why we suppose that some step of the page rendering process arent executed correctly, it seems that the new page still finds some of the old page (the scopes)..
    To redirect to a page from a java event handler we have returned an event result with the next page (see above post for a code snippet), is this the correct way? Can we simulate the ctrl:go tag from the java code (with the redirect=true option)? There are any other?

  • Help needed with singleSelection and multiple selection in table.

    Hi ,
    How do i implement the singleSelection and multipleSelection on table rows.
    How do i capture the checked rows?
    How should the code be written and where should it be written.
    I should be capturing the values of the checked rows and pass it to the pl/sql package.
    I have a table - in -table so there is a singleselection on the outer table and multiple selection on the Inner table.
    Could anyone help me with this.
    Thanks,

    One solution to most of your questions : Read the advanced table section of Dev guide.
    Always go through the dev guide before putting up the issue. Let the forum be for those scenarios which dev guide doesn't covers in much detail.
    --Shiv                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Multiple Selection in Table

    Hi,
    I have a table control which is configured for multiple selection.
    But, I need to get the list of selected rows?
    How can I do it?
    I didn't find any methods on the table control or at the context node.
    Can anyone guide me out of this issue?
    Thanks and regards
    RB

    Hi RB,
    Yes still you can use this.
    Ex:
    for(int k=0;k<wdContext.nodeEmployeeInfo().size();k++)
    if (wdContext.nodeEmployeeInfo().isMultiSelected(k))
      /* Here you will get all the list of selected rows */
    Regards, Anilkumar

  • UIX-XML BC4J Question regarding event handling

    How can I use/access Application Module, defined in UIX-XML page (using <bc4j:registryDef>), in my event handler method ???

    Sorry for the confusion. I figured out what you were asking.
    The right way is this.
    First, in your UIX XML page, declare your handler like this:
    <event name="%myEvent%" >
    <bc4j:findRootAppModule name="%ModuleName%" >
    <method class="%eventclass%" method="%eventmethod%" />
    </bc4j:findRootAppModule>
    </event>
    the strings in the % have to be replaced with your own particular names. %ModuleName% should be the same as the name of the module in the registry.
    Then in the event handler %eventclass%.%eventmethod% you can use this to find the Application Module:
    oracle.jbo.ApplicationModule mymodule
    = oracle.cabo.data.servlet.bind.ServletBindingUtils.getApplicationModule(context);
    "context" is passed in to your event handler as a BajaContext. ServletBindingUtils has several other methods for getting BC4J stuff, you should look at its definition.
    Joe

  • UIX/XML - BC4J - " a strategic decision"

    I have read that you (Oracle JDev Team) suggest using, for new applications, UIX/XML and BC4J.
    We are engaging our best resources trying to use these frameworks but, due to poor documentation/samples, we are in serious difficulties.
    Every day some new problems rise.
    What do you suggest?
    - To wait for release 9.0.3 hoping to see a better product and well documented?
    - To participate to training courses hoping to find them in our country (Rome - Italy)?
    - To continue to solve a problem every day with your help hoping that they are a reasonable number?
    Excuse my poor English.
    TIA

    I have read that you (Oracle JDev Team) suggest using, for new applications, UIX/XML and BC4J.
    We are engaging our best resources trying to use these frameworks but, due to poor
    documentation/samples, we are in serious difficulties.
    Every day some new problems rise.
    What do you suggest?
    - To wait for release 9.0.3 hoping to see a better product and well documented?That's a tough one to answer: it depends on where you are in the development
    cycle, your schedule etc. 9.0.3 will definitely be an improvement - and these
    aren't technologies that will be going away, so there'll be ongoing improvements
    in the future.
    - To participate to training courses hoping to find them in our country (Rome - Italy)?I wouldn't personally know if those are available. Sorry. :(
    - To continue to solve a problem every day with your help hoping that they are a
    reasonable number?We'll continue to help! If you're running into problems because of inadequacies
    on our documentation, that's our fault, not yours. The questions here on OTN
    have been essential in figuring out the most significant holes in BC4J UIX XML,
    and I'm sure they'll continue to be.
    Excuse my poor English.Your English is pretty darn good. No apologies needed!

Maybe you are looking for

  • Screen Sharing does not accept my password anymore

    Hi I have a headless Mac Mini Server running Snow Leopard Server 10.6.8 and a MacBook Pro  running Snow Leopard 10.6.8. I detected this morning, that I'm not able to connect from the MacBook Pro to my Mac Mini over Screen Sharing. All other services,

  • Still Have v. 10.4.11 but am configuring a new MBP and I need some advice..

    hey- I am replacing my 3 year-old MBP which never made it to the Leopard stage, because I was chicken. This one is going to be cleaned up and given to a family next door from a real poor area of Mexico and until they saw this had never seen a noteboo

  • MBP 17" 2.16 + Toshiba HD LCD TV

    Hey there, I have a MBP 17" 2.16 and have just got a Toshiba 42X3030DB HD LCD for my livingroom. Thought that I would hook the two up so I could see how everything works for HD playback, so I went out and got a 1080P rated DVI-D to HDMI 1.3 cable and

  • Can I install IWorks 9 on my new MacBook Pro along with the free version now included ?

    I have IWorks 09 for my Mac desktop. I'm purchasing a MacBook Pro shortly and would like to have the same version of IWorks on both PCs. Can I install IWorks 09 on the MacBook which comes with the new version of IWorks pre-installed ? Or, can I delet

  • Uhhhhh.....Where is my watermark?!?!

    I am in the process of editing over 400 photo's I have shot over the past weekend.  And everytime I go to export them either 1 photo at a time or multiples at a time my water mark is not being put on the photo's.  This is bad.  I looked it up here on