ADF : af:resetActionListener

Dear all,
I use JDev version 11.1.1.4.
I use af:resetActionListener at a Cancel button on a popup, and I get null pointer exception
at oracle.adfinternal.view.faces.model.binding.RowDataManager.getRowIndex(RowDataManager.java:191).
Does someone know if the resetActionListener do a page refresh or other operation which could
generate that current row in page is lost (and getting the null pointer exception)?
Thank you,
Mirela

Hi,
Prior to resetActionListener is row revert, where the current row is well identified.
But even if the row revert is not included, the null pointer exception is still thrown.
The cancel button is in a popup which represents the details of a row from a view Object.
The rows are displayed in the page via af:iterator, which by default doesn't know the
current row. When the popup is called, the current row is specified programmatic (the key of the row
is taken from page via setPropertyListener).
So even if for other operations (popup invocation, row revert), the current row is known,
when it executes resetActionListener, it seems like the current row is lost.
So I thought maybe refresh of ViewObject or other operation is executed when calling
resetActionListener.
Does someone know which operation is executed simultaneously with resetActionListener,
or if, by default, the resetActionListener generates losing the current row in page (and if
there is a method to set current row when resetActionListener is executed).
Thank you,
Mirela
Thank you,
Mirela

Similar Messages

  • Adf table with detail stamp , not able to close the detail stamp

    Hi
    i'm using 11g adf jdeveloper.
    I'm using adf table to display records of XXXVO.In table i have used detail stamp, in which i have drag XXXVO read-only form and used a ADD button which call a pop-up with createInsert of the XXXVO form with submit button.In pop i have used a drop downlist of other YYYVO. I have used another button Edit which call the same pop-up, using show pop-up.
    Issue is when i run the application i can open the detail stamp and close but i couldn't get the selected record on the table in edit mode pop up. if i give partial trigger in pop-up of table id . den i'm getting the selected record in edit pop up. but detail stamp is not working .
    Here is the code .......
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
    <af:document id="d1">
    <af:messages id="m1"/>
    <af:form id="f1">
    <af:pageTemplate viewId="/XBBaseTemplate.jspx"
    value="#{bindings.pageTemplateBinding}" id="pt1">
    <f:facet name="body">
    <af:panelBox text="AMC Charges" id="pb1">
    <f:facet name="toolbar"/>
    <af:panelGroupLayout layout="scroll" id="pgl1">
    <af:panelCollection id="pc1"
    inlineStyle="width:1105px; height:336px;">
    <f:facet name="menus">
    <af:menu text="Export Excel" id="m2">
    <af:commandMenuItem text="Excel" id="cmi1">
    <af:exportCollectionActionListener exportedId="resId1"
    type="excelHTML"/>
    </af:commandMenuItem>
    </af:menu>
    </f:facet>
    <f:facet name="toolbar">
    <af:toolbar id="t1">
    <af:commandToolbarButton id="ctb1"
    icon="/Images/browse.gif"
    shortDesc="Search"
    partialTriggers="resId1"
    disabled="#{UsapProgramPrivilege.query}">
    <af:showPopupBehavior popupId=":::p2"/>
    </af:commandToolbarButton>
    <af:commandToolbarButton id="ctb_add"
    icon="/Images/addsymbol.png"
    shortDesc="Add"
    action="#{MasterManagedBean.createRecord}"
    useWindow="true"
    windowModalityType="applicationModal"
    windowHeight="300"
    windowWidth="300"
    disabled="#{UsapProgramPrivilege.insert}"/>
    <af:commandToolbarButton
    id="ctb2"
    partialTriggers="resId1"
    icon="/Images/update_ena.png">
    <af:showPopupBehavior popupId=":::p_edit"/>
    </af:commandToolbarButton>
    <af:commandToolbarButton id="ctb_delete"
    icon="/Images/delete_ena.png"
    shortDesc="Delete"
    partialTriggers="resId1"
    actionListener="#{bindings.Delete.execute}"
    disabled="#{UsapProgramPrivilege.delete}"/>
    <af:commandToolbarButton id="ctb3"
    icon="/Images/filesave.png"
    shortDesc="Save"
    partialTriggers="resId1 ctb_add ctb_delete :::cb1"
    actionListener="#{bindings.Commit.execute}"
    disabled="#{!bindings.Commit.enabled}"/>
    <af:commandToolbarButton id="ctb5" icon="/Images/undo.png"
    actionListener="#{bindings.Rollback.execute}"
    disabled="#{!bindings.Rollback.enabled}"
    immediate="true">
    <af:resetActionListener/>
    </af:commandToolbarButton>
    <af:commandToolbarButton id="ctb4"
    icon="/Images/eraser-4.gif"
    shortDesc="Clear"
    action="#{MasterManagedBean.onClearTableSearchFields}"/>
    <af:outputText value="CmmAmcRatesVO1Iterator"
    id="ot_amciterator"
    binding="#{MasterManagedBean.iteratorName}"
    visible="false"/>
    </af:toolbar>
    </f:facet>
    <f:facet name="statusbar"/>
    <af:table value="#{bindings.CmmAmcRatesVO1.collectionModel}"
    var="row"
    rows="#{bindings.CmmAmcRatesVO1.rangeSize}"
    emptyText="#{bindings.CmmAmcRatesVO1.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.CmmAmcRatesVO1.rangeSize}"
    rowBandingInterval="0"
    filterModel="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}"
    queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}"
    filterVisible="true" varStatus="vs"
    selectedRowKeys="#{bindings.CmmAmcRatesVO1.collectionModel.selectedRow}"
    selectionListener="#{bindings.CmmAmcRatesVO1.collectionModel.makeCurrent}"
    rowSelection="single" id="resId1"
    binding="#{MasterManagedBean.masterTable}"
    styleClass="hieght:100% width:100%"
    columnSelection="multiple" width="1099"
    rowDisclosureListener="#{MasterManagedBean.onRowDiscloseureEvent}"
    partialTriggers="::ctb_add ::ctb_delete ::::cb1">
    <af:column sortProperty="AmrtPrdId" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtPrdId.label}"
    id="resId1c1">
    <af:outputText value="#{row.AmrtPrdId}" id="ot8"/>
    </af:column>
    <af:column sortProperty="AmrtFeeId" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtFeeId.label}"
    id="resId1c2">
    <af:outputText value="#{row.AmrtFeeId}" id="ot7"/>
    </af:column>
    <af:column sortProperty="AmrtRateTyp" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtRateTyp.label}"
    id="resId1c3">
    <af:outputText value="#{row.AmrtRateTyp}" id="ot11"/>
    </af:column>
    <af:column sortProperty="AmrtFxdAmt" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtFxdAmt.label}"
    id="resId1c4">
    <af:outputText value="#{row.AmrtFxdAmt}" id="ot3">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtFxdAmt.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtPerc" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtPerc.label}"
    id="resId1c5">
    <af:outputText value="#{row.AmrtPerc}" id="ot4">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtPerc.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtMinAmt" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtMinAmt.label}"
    id="resId1c6">
    <af:outputText value="#{row.AmrtMinAmt}" id="ot2">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtMinAmt.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtMaxAmt" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtMaxAmt.label}"
    id="resId1c7">
    <af:outputText value="#{row.AmrtMaxAmt}" id="ot9">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtMaxAmt.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtFolioId" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtFolioId.label}"
    id="resId1c8">
    <af:outputText value="#{row.AmrtFolioId}" id="ot1"/>
    </af:column>
    <af:column sortProperty="AmrtCurrId" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtCurrId.label}"
    id="resId1c9">
    <af:outputText value="#{row.AmrtCurrId}" id="ot10"/>
    </af:column>
    <af:column sortProperty="AmrtRndMthd" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtRndMthd.label}"
    id="resId1c10">
    <af:outputText value="#{row.AmrtRndMthd}" id="ot14"/>
    </af:column>
    <af:column sortProperty="AmrtDecPlc" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtDecPlc.label}"
    id="resId1c11">
    <af:outputText value="#{row.AmrtDecPlc}" id="ot5">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtDecPlc.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="AmrtActiveYn" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtActiveYn.label}"
    id="resId1c12">
    <af:outputText value="#{row.AmrtActiveYn}" id="ot13"/>
    </af:column>
    <af:column sortProperty="AmrtHoldYn" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtHoldYn.label}"
    id="resId1c13">
    <af:outputText value="#{row.AmrtHoldYn}" id="ot12"/>
    </af:column>
    <af:column sortProperty="AmrtEffFdate" filterable="true"
    sortable="true"
    headerText="#{bindings.CmmAmcRatesVO1.hints.AmrtEffFdate.label}"
    id="resId1c14">
    <f:facet name="filter">
    <af:inputDate value="#{vs.filterCriteria.AmrtEffFdate}"
    id="id1"/>
    </f:facet>
    <af:outputText value="#{row.AmrtEffFdate}" id="ot6">
    <af:convertDateTime pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtEffFdate.format}"/>
    </af:outputText>
    </af:column>
    <f:facet name="detailStamp">
    <af:panelFormLayout id="pfl2" rows="9">
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtPrdId.label}"
    id="plam10">
    <af:outputText value="#{row.AmrtPrdId}" id="ot31"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtFeeId.label}"
    id="plam17">
    <af:outputText value="#{row.AmrtFeeId}" id="ot20"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtRateTyp.label}"
    id="plam11">
    <af:outputText value="#{row.AmrtRateTyp}" id="ot28"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtFxdAmt.label}"
    id="plam18">
    <af:outputText value="#{row.AmrtFxdAmt}" id="ot16">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtFxdAmt.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtPerc.label}"
    id="plam14">
    <af:outputText value="#{row.AmrtPerc}" id="ot30">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtPerc.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtMinAmt.label}"
    id="plam1">
    <af:outputText value="#{row.AmrtMinAmt}" id="ot22">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtMinAmt.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtMaxAmt.label}"
    id="plam13">
    <af:outputText value="#{row.AmrtMaxAmt}" id="ot18">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtMaxAmt.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtFolioId.label}"
    id="plam7">
    <af:outputText value="#{row.AmrtFolioId}" id="ot27"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtCurrId.label}"
    id="plam4">
    <af:outputText value="#{row.AmrtCurrId}" id="ot26"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtRndMthd.label}"
    id="plam6">
    <af:outputText value="#{row.AmrtRndMthd}" id="ot25"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtDecPlc.label}"
    id="plam12">
    <af:outputText value="#{row.AmrtDecPlc}" id="ot21">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtDecPlc.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtActiveYn.label}"
    id="plam2">
    <af:outputText value="#{row.AmrtActiveYn}" id="ot32">
    <f:converter converterId="CharYNAsString"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtHoldYn.label}"
    id="plam8">
    <af:outputText value="#{row.AmrtHoldYn}" id="ot24">
    <f:converter converterId="CharYNAsString"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.AmrtEffFdate.label}"
    id="plam15">
    <af:outputText value="#{row.AmrtEffFdate}" id="ot23">
    <af:convertDateTime pattern="#{bindings.CmmAmcRatesVO1.hints.AmrtEffFdate.format}"/>
    </af:outputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.FeeDescription.label}"
    id="plam16">
    <af:outputText value="#{row.FeeDescription}"
    id="ot29"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.FolioDescription.label}"
    id="plam9">
    <af:outputText value="#{row.FolioDescription}"
    id="ot17"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.ProductDescription.label}"
    id="plam3">
    <af:outputText value="#{row.ProductDescription}"
    id="ot19"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CmmAmcRatesVO1.hints.CurrencyDescription.label}"
    id="plam5">
    <af:outputText value="#{row.CurrencyDescription}"
    id="ot15"/>
    </af:panelLabelAndMessage>
    </af:panelFormLayout>
    </f:facet>
    </af:table>
    </af:panelCollection>
    </af:panelGroupLayout>
    </af:panelBox>
    </f:facet>
    <f:facet name="first">
    <af:panelStretchLayout id="psl3" startWidth="39px">
    <f:facet name="bottom"/>
    <f:facet name="center"/>
    <f:facet name="start"/>
    <f:facet name="end"/>
    <f:facet name="top"/>
    </af:panelStretchLayout>
    </f:facet>
    <f:facet name="top"/>
    <f:facet name="Bticker"/>
    </af:pageTemplate>
    <af:popup id="p2">
    <af:panelWindow id="pw1">
    <af:panelGroupLayout id="pgl2">
    <af:panelHeader text="AMC Rates" id="ph1">
    <af:query id="qryId1" headerText="Search" disclosed="true"
    value="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}"
    model="#{bindings.ImplicitViewCriteriaQuery.queryModel}"
    queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}"
    queryOperationListener="#{bindings.ImplicitViewCriteriaQuery.processQueryOperation}"
    resultComponentId="::pt1:pc1:resId1"
    displayMode="compact"
    />
    </af:panelHeader>
    </af:panelGroupLayout>
    </af:panelWindow>
    </af:popup>
    <af:popup id="p_edit" popupCanceledListener="#{MasterManagedBean.resetPopTitle}"
    partialTriggers="pt1:pc1:resId1">
    <af:panelWindow id="pw2" inlineStyle="width:600px; height:600.0px;"
    title="Edit"
    binding="#{MasterManagedBean.masterPenalWindow}">
    <af:panelGroupLayout id="pgl3">
    <af:panelFormLayout id="pfl4" rows="2" maxColumns="2">
    <af:inputListOfValues id="amrtFeeIdId"
    popupTitle="Search and Select: #{bindings.AmrtFeeId.hints.label}"
    value="#{bindings.AmrtFeeId.inputValue}"
    label="#{bindings.AmrtFeeId.hints.label}"
    model="#{bindings.AmrtFeeId.listOfValuesModel}"
    required="#{bindings.AmrtFeeId.hints.mandatory}"
    columns="#{bindings.AmrtFeeId.hints.displayWidth}"
    shortDesc="#{bindings.AmrtFeeId.hints.tooltip}">
    <f:validator binding="#{bindings.AmrtFeeId.validator}"/>
    </af:inputListOfValues>
    <af:inputListOfValues id="amrtPrdIdId"
    popupTitle="Search and Select: #{bindings.AmrtPrdId.hints.label}"
    value="#{bindings.AmrtPrdId.inputValue}"
    label="#{bindings.AmrtPrdId.hints.label}"
    model="#{bindings.AmrtPrdId.listOfValuesModel}"
    required="#{bindings.AmrtPrdId.hints.mandatory}"
    columns="#{bindings.AmrtPrdId.hints.displayWidth}"
    shortDesc="#{bindings.AmrtPrdId.hints.tooltip}">
    <f:validator binding="#{bindings.AmrtPrdId.validator}"/>
    </af:inputListOfValues>
    <af:inputText value="#{bindings.FeeDescription.inputValue}"
    required="#{bindings.FeeDescription.hints.mandatory}"
    columns="#{bindings.FeeDescription.hints.displayWidth}"
    maximumLength="#{bindings.FeeDescription.hints.precision}"
    shortDesc="#{bindings.FeeDescription.hints.tooltip}"
    partialTriggers="amrtFeeIdId" id="it10"
    readOnly="true">
    <f:validator binding="#{bindings.FeeDescription.validator}"/>
    </af:inputText>
    <af:inputText value="#{bindings.ProductDescription.inputValue}"
    required="#{bindings.ProductDescription.hints.mandatory}"
    columns="#{bindings.ProductDescription.hints.displayWidth}"
    maximumLength="#{bindings.ProductDescription.hints.precision}"
    shortDesc="#{bindings.ProductDescription.hints.tooltip}"
    partialTriggers="amrtPrdIdId" id="it7"
    readOnly="true">
    <f:validator binding="#{bindings.ProductDescription.validator}"/>
    </af:inputText>
    </af:panelFormLayout>
    <af:panelFormLayout id="pfl6" rows="2" maxColumns="2">
    <af:inputListOfValues id="amrtFolioIdId"
    popupTitle="Search and Select: #{bindings.AmrtFolioId.hints.label}"
    value="#{bindings.AmrtFolioId.inputValue}"
    label="#{bindings.AmrtFolioId.hints.label}"
    model="#{bindings.AmrtFolioId.listOfValuesModel}"
    required="#{bindings.AmrtFolioId.hints.mandatory}"
    columns="#{bindings.AmrtFolioId.hints.displayWidth}"
    shortDesc="#{bindings.AmrtFolioId.hints.tooltip}">
    <f:validator binding="#{bindings.AmrtFolioId.validator}"/>
    </af:inputListOfValues>
    <af:inputListOfValues id="amrtCurrIdId"
    popupTitle="Search and Select: #{bindings.AmrtCurrId.hints.label}"
    value="#{bindings.AmrtCurrId.inputValue}"
    label="#{bindings.AmrtCurrId.hints.label}"
    model="#{bindings.AmrtCurrId.listOfValuesModel}"
    required="#{bindings.AmrtCurrId.hints.mandatory}"
    columns="#{bindings.AmrtCurrId.hints.displayWidth}"
    shortDesc="#{bindings.AmrtCurrId.hints.tooltip}">
    <f:validator binding="#{bindings.AmrtCurrId.validator}"/>
    </af:inputListOfValues>
    <af:inputText value="#{bindings.FolioDescription.inputValue}"
    required="#{bindings.FolioDescription.hints.mandatory}"
    columns="#{bindings.FolioDescription.hints.displayWidth}"
    maximumLength="#{bindings.FolioDescription.hints.precision}"
    shortDesc="#{bindings.FolioDescription.hints.tooltip}"
    partialTriggers="amrtFolioIdId" id="it9"
    readOnly="true">
    <f:validator binding="#{bindings.FolioDescription.validator}"/>
    </af:inputText>
    <af:inputText value="#{bindings.CurrencyDescription.inputValue}"
    required="#{bindings.CurrencyDescription.hints.mandatory}"
    columns="#{bindings.CurrencyDescription.hints.displayWidth}"
    maximumLength="#{bindings.CurrencyDescription.hints.precision}"
    shortDesc="#{bindings.CurrencyDescription.hints.tooltip}"
    partialTriggers="amrtCurrIdId" id="it3"
    readOnly="true">
    <f:validator binding="#{bindings.CurrencyDescription.validator}"/>
    </af:inputText>
    </af:panelFormLayout>
    <af:panelFormLayout id="pfl1" rows="5" fieldWidth="150">
    <af:selectOneChoice value="#{bindings.AmrtRateTyp.inputValue}"
    label="#{bindings.AmrtRateTyp.label}"
    required="#{bindings.AmrtRateTyp.hints.mandatory}"
    shortDesc="#{bindings.AmrtRateTyp.hints.tooltip}"
    id="soc1">
    <f:selectItems value="#{bindings.AmrtRateTyp.items}"
    id="si1"/>
    </af:selectOneChoice>
    <af:inputText value="#{bindings.AmrtFxdAmt.inputValue}"
    label="#{bindings.AmrtFxdAmt.hints.label}"
    required="#{bindings.AmrtFxdAmt.hints.mandatory}"
    columns="#{bindings.AmrtFxdAmt.hints.displayWidth}"

    See if this helps:
    http://blogs.oracle.com/shay/2010/03/popup_details_for_a_table_reco.html

  • Best practice for mouseless ADF applications

    I am developing an ADF application where the users do not want to use the mouse.
    So I would like to know if there are a best practice for this?
    I am already using the accessKey functionality and subforms defaultCommand
    But I have had problems setting focus to objects on a page like tables. I would like a button to return the focus to the table after it has made the command like delete.
    I have implemented a solution where I have found inspiration several threads and other webpages (see below).
    Is this solution okay?
    Are there any problems with it?
    I would also like to know if there are better pathways to go like
    out of the box solutions,
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
    http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
    in advance thanks
    Inspiration webpages
    https://blogs.oracle.com/jdevotnharvest/entry/how_to_programmatically_set_focus
    http://technology.amis.nl/2008/01/04/adf-11g-rich-faces-focus-on-field-after-button-press-or-ppr-including-javascript-in-ppr-response-and-clientlisteners-client-side-programming-in-adf-faces-rich-client-components-part-2/
    how to Commit table by writting Java code in Managed Bean?
    Table does not refresh and getting error as UIComponent is Null
    A short description of the solution:
    (jdeveloper version 11.1.1.2.0)
    --- Example where I use onSetFocus in jsff page
    <af:commandButton text="#{hrsusuiBundle.FOCUS}" id="cb10"
    partialSubmit="true" accessKey="f"
    shortDesc="Alt+Shift+F"
    actionListener="#{managedBean_clientUtils.onSetFocus}">
    <af:clientAttribute name="focusField" value="t1"/>
    </af:commandButton>
    --- Examples where I use doTableActionAndSetFocus in jsff page
    --- There have to be a binding in the jsff page to delete, commit and rollback
    <af:commandButton text="#{hrsusuiBundle.DELETE}" id="cb4"
    accessKey="x"
    shortDesc="Alt+Shift+X"
    partialSubmit="true"
    actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
    <af:clientAttribute name="focusField" value="t1"/>
    <af:clientAttribute name="actionField" value="Delete"/>
    </af:commandButton>
    <af:commandButton text="#{hrsusuiBundle.COMMIT}" id="cb5"
    accessKey="s" shortDesc="Alt+Shift+S"
    partialSubmit="true"
    actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
    <af:clientAttribute name="focusField" value="t1"/>
    <af:clientAttribute name="actionField" value="Commit"/>
    </af:commandButton>
    <af:commandButton text="#{hrsusuiBundle.ROLLBACK}" id="cb6"
    accessKey="z" shortDesc="Alt+Shift+Z"
    partialSubmit="true"
    actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}"
    immediate="true">
    <af:resetActionListener/>
    <af:clientAttribute name="focusField" value="t1"/>
    <af:clientAttribute name="actionField" value="Rollback"/>
    </af:commandButton>
    --- This is the java class I use
    --- It is published in adfc-config.xml as a request scope managedbean
    public class ClientUtils {
    public ClientUtils() {
    public void doTableActionAndSetFocus(ActionEvent event) {
    RichCommandButton rcb = (RichCommandButton)event.getSource();
    String focusOn = (String)rcb.getAttributes().get("focusField");
    String actionToDo = (String)rcb.getAttributes().get("actionField");
    UIComponent component = null;
    String clientId = null;
    component = JSFUtils.findComponentInRoot(focusOn);
    clientId = component.getClientId(JSFUtils.getFacesContext());
    if ( "Delete".equals(actionToDo) || "Commit".equals(actionToDo) || "Rollback".equals(actionToDo) ){
    BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
    OperationBinding operationBinding = bindings.getOperationBinding(actionToDo);
    Object result = operationBinding.execute();
    AdfFacesContext.getCurrentInstance().addPartialTarget(component);
    if (clientId != null) {           
    makeSetFocusJavaScript(clientId);
    public static String onSetFocus(ActionEvent event) {
    RichCommandButton rcb = (RichCommandButton)event.getSource();
    String focusOn = (String)rcb.getAttributes().get("focusField");
    String clientId = null;
    if (focusOn.contains(":")) {
    clientId = focusOn;
    } else {
    clientId = findComponentsClientIdInRoot(focusOn);
    if (clientId != null) {           
    makeSetFocusJavaScript(clientId);
    return null;
    private static void writeJavaScriptToClient(String script) {
    FacesContext fctx = FacesContext.getCurrentInstance();
    ExtendedRenderKitService erks = null;
    erks = Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
    erks.addScript(fctx, script);
    public static void makeSetFocusJavaScript(String clientId) {
    if (clientId != null) {
    StringBuilder script = new StringBuilder();
    //use client id to ensure component is found if located in
    //naming container
    script.append("var textInput = ");
    script.append("AdfPage.PAGE.findComponentByAbsoluteId");
    script.append ("('"+clientId+"');");
    script.append("if(textInput != null){");
    script.append("textInput.focus();");
    script.append("}");
    writeJavaScriptToClient(script.toString());
    public static String findComponentsClientIdInRoot(String id) {
    UIComponent component = null;
    String clientId = null;
    component = JSFUtils.findComponentInRoot(id);
    clientId = component.getClientId(JSFUtils.getFacesContext());
    return clientId;
    }

    Hi,
    I am developing an ADF application where the users do not want to use the mouse. So I would like to know if there are a best practice for this?
    Well HTML (and this is the user interface you see) follows a tab index navigation that you follow with "tab" and "shift+tab". Anything else is a short cut for which you use mnemonics (as you already do) or shortcuts (explained in http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html). There is a distinction to make between non-web environments (which I think you and your users have abackground in) and client desktop environments. Browsers block some keyboard functionality for their own purpose. So you may have to find a list of keys first that work across browsers. Unlike desktop clients, which allow you to "press a button" without the button to take focus, this cannot be done on the web. So you need to be clever here, avoiding buttons at all.
    The following paper is about JavaScript in ADF and explains the basics for what Chris Muir explains in : http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
    http://www.oracle.com/technetwork/developer-tools/jdev/1-2011-javascript-302460.pdf
    It has the outline for how to register short cut keys that perform a specific action (e.g. register ctrl+d to delete the current row you are on, or press F11 to execute a query (similar to Oracle Forms frmres files)). However, be aware that this includes some code you have to write (actually quite some code to be honest).
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
    http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
    Actually these are implementations as they come with example code for you to use and customize, do they? So what is this question asking for more ? Also note that global buttons don't quite have anything in common with the question you asked. I assume you want to see it as an implementation of the Forms toolbar that operates on the form or table the focus is in. This however does not work for the web as there is nothing that keeps track of which component has a focus and to what iterator (data block) it belongs. This would involve even more coding (though possibly doable)
    Frank

  • Cancel button on ADF popup does not work with AutoSubmit Fields

    Hello,
    I currently have a very simple form inside of and ADF popup. I the form contains one SelectManyListbox. Here's my issue.
    Lets say my form contains option A, B, and C.
    Okay I open the popup for the first time, and a select, A and B, and I click cancel. When I open the form again, I would expect no options to be selected. HOwever, that is not the case, the last options I selected, prior to hitting Cancel are still selected.
    I was able to fix this issue by setting contentDelivery to "lazyUncached".. However, as soon as I set autoSubmit to "true", the behavior goes back to keeping the selections I made, even if I hit cancel.
    Question :
    How can tell the popup to deselect the items that were selected in the SelectManyListbox during the canceled operation of the popup, when autoSubmit is enabled? IN other words, if A and B were selected, and I hit cancel, when I open the popup again, I should see zero items selected in the list.
    Regards,,.

    Here, is a sample that i have in my project.
    <af:popup childCreation="deferred" autoCancel="disabled" id="p1"
    binding="#{backing_dev_rma_cart_Details.showCartDetails}"
    contentDelivery="lazyUncached">
    <af:dialog id="d2" type="none"
    title="#{userinterfaceBundle.MODIFY_CART_DETAILS}"
    inlineStyle="font-size:small;" closeIconVisible="false">
    <f:facet name="buttonBar"/>
    <af:panelGroupLayout id="pgl33" layout="vertical">
    <af:panelFormLayout id="pfl2" rows="4" maxColumns="1">
    <af:panelLabelAndMessage label="#{userinterfaceBundle.SERIAL}"
    id="plam1">
    <af:outputText value="#{bindings.SerialNumber.inputValue}"
    id="ot9"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{userinterfaceBundle.PART}"
    id="plam2">
    <af:outputText value="#{bindings.ItemNumber.inputValue}"
    id="ot10"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.Description.hints.label}"
    id="plam3">
    <af:outputText value="#{bindings.Description.inputValue}"
    id="ot12"/>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage id="plam12"
    label="#{bindings.CustomerPo1.hints.label}"
    rendered="#{pageFlowScope.RmaAttributesBean.categoryId == 'RET ONLY' ? false : true}">
    <af:inputText value="#{bindings.CustomerPo1.inputValue}"
    label="#{bindings.CustomerPo1.hints.label}"
    columns="30" maximumLength="25"
    shortDesc="#{bindings.CustomerPo1.hints.tooltip}"
    id="it11" simple="true"
    required="#{sessionScope.GlobalInfo.rmaPOreq == true ? true : false}"
    rendered="#{pageFlowScope.RmaAttributesBean.categoryId == 'RET ONLY' ? false : true}">
    <f:validator binding="#{bindings.CustomerPo1.validator}"/>
    </af:inputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.TrailerNo1.hints.label}"
    id="plam5">
    <af:inputText value="#{bindings.TrailerNo1.inputValue}"
    label="#{bindings.TrailerNo1.hints.label}"
    required="#{bindings.TrailerNo1.hints.mandatory}"
    columns="30" maximumLength="15"
    shortDesc="#{bindings.TrailerNo1.hints.tooltip}"
    id="it8" simple="true">
    <f:validator binding="#{bindings.TrailerNo1.validator}"/>
    </af:inputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage id="plam11"
    label="#{userinterfaceBundle.REASON_FOR_RETURN_0}">
    <af:selectOneChoice id="soc5" autoSubmit="true"
    unselectedLabel="#{'--'} #{userinterfaceBundle.REASON_FOR_RETURN_0} #{'--'}"
    valueChangeListener="#{backing_dev_rma_cart_Details.reasonForReturnValueChange}"
    simple="true"
    value="#{bindings.ProblemTypeId.inputValue}">
    <af:forEach items="#{bindings.RmaProblemCodes.rangeSet}"
    var="item">
    <af:selectItem id="si4" value="#{item.Meaning}"
    label="#{item.LookupCode}"/>
    </af:forEach>
    </af:selectOneChoice>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{bindings.CompanyNotes1.label}"
    id="plam4"
    showRequired="#{bindings.ProblemTypeId.inputValue eq 'OT'}"
    partialTriggers="soc5">
    <af:inputText value="#{bindings.CompanyNotes1.inputValue}"
    label="#{bindings.CompanyNotes1.label}"
    required="#{bindings.CompanyNotes1.hints.mandatory}"
    columns="60" maximumLength="150"
    shortDesc="#{bindings.CompanyNotes1.hints.tooltip}"
    id="it9" simple="true" partialTriggers="soc5"
    rows="2">
    <f:validator binding="#{bindings.CompanyNotes1.validator}"/>
    </af:inputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName1}"
    id="plam6"
    showRequired="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired1 == 'Y' ? true : false}"
    rendered="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName1 != null}">
    <af:inputText value="#{bindings.Attribute1.inputValue}"
    label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName1}"
    columns="60" maximumLength="150" rows="2"
    shortDesc="#{bindings.Attribute1.hints.tooltip}"
    required="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired1 == 'Y' ? true : false}"
    id="it14" simple="true">
    <f:validator binding="#{bindings.Attribute1.validator}"/>
    </af:inputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName2}"
    showRequired="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired2 == 'Y' ? true : false}"
    rendered="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName2 != null}"
    id="plam7">
    <af:inputText value="#{bindings.Attribute2.inputValue}"
    label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName2}"
    columns="60" maximumLength="150" rows="2"
    required="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired2 == 'Y' ? true : false}"
    shortDesc="#{bindings.Attribute2.hints.tooltip}"
    simple="true" id="it15">
    <f:validator binding="#{bindings.Attribute2.validator}"/>
    </af:inputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName3}"
    showRequired="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired3 == 'Y' ? true : false}"
    rendered="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName3 != null}"
    id="plam8">
    <af:inputText value="#{bindings.Attribute3.inputValue}"
    label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName3}"
    columns="60" maximumLength="150" rows="2"
    shortDesc="#{bindings.Attribute3.hints.tooltip}"
    required="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired3 == 'Y' ? true : false}"
    simple="true" id="it16">
    <f:validator binding="#{bindings.Attribute3.validator}"/>
    </af:inputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName4}"
    showRequired="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired4 == 'Y' ? true : false}"
    rendered="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName4 != null}"
    id="plam9">
    <af:inputText value="#{bindings.Attribute4.inputValue}"
    label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName4}"
    columns="60" maximumLength="150" rows="2"
    shortDesc="#{bindings.Attribute4.hints.tooltip}"
    required="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired4 == 'Y' ? true : false}"
    simple="true" id="it17">
    <f:validator binding="#{bindings.Attribute4.validator}"/>
    </af:inputText>
    </af:panelLabelAndMessage>
    <af:panelLabelAndMessage label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName5}"
    showRequired="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired5 == 'Y' ? true : false}"
    rendered="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName5 != null}"
    id="plam10">
    <af:inputText value="#{bindings.Attribute5.inputValue}"
    label="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customName5}"
    columns="60" maximumLength="150" rows="2"
    shortDesc="#{bindings.Attribute5.hints.tooltip}"
    required="#{pageFlowScope.RmaAttributesBean.rmaReturnType.customRequired5 == 'Y' ? true : false}"
    simple="true" id="it18">
    <f:validator binding="#{bindings.Attribute5.validator}"/>
    </af:inputText>
    </af:panelLabelAndMessage>
    <f:facet name="footer"/>
    </af:panelFormLayout>
    <af:spacer width="10" height="10" id="s19"/>
    <af:panelGroupLayout id="pgl40" layout="horizontal"
    styleClass="AFStretchWidth">
    <af:panelGroupLayout id="pgl41" layout="horizontal"
    styleClass="AFStretchWidth">
    *<af:commandButton text="#{userinterfaceBundle.CANCEL}"*
    styleClass="Button2" id="cb8" immediate="true"
    *actionListener="#{backing_dev_rma_cart_Details.showDetailsPopupCancel}">*
    *<af:resetActionListener/>*
    *</af:commandButton>*
    </af:panelGroupLayout>
    <af:panelGroupLayout id="pgl42" layout="horizontal" halign="end"
    styleClass="AFStretchWidth">
    <af:commandButton text="#{userinterfaceBundle.OK}" id="cb10"
    partialSubmit="true"
    actionListener="#{backing_dev_rma_cart_Details.okAction}"
    icon="/iq/skin/images/CommandButtonIcon.png"
    iconPosition="trailing"/>
    </af:panelGroupLayout>
    </af:panelGroupLayout>
    </af:panelGroupLayout>
    <af:spacer height="-25px" id="s20"/>
    </af:dialog>
    </af:popup>

  • How to implement a go to next node button for an ADF Tree backed by ADF Bin

    Dear all,
    I have been trying for quite some time now, and I do not get it. For my ADF Tree component, I want to implement a series of little iconic buttons that my users can press to Expand and Collapse the current node - those I have got to work, sort of - and Move to the Next or Previous node. My definition of Next Node is: the next node you can see on the screen; this can either be a child, a sibling or an ancestor's sibling.
    + A
    - B
    |- C
    |+ D
    + E
    So from A, next means B, from B next means C, from C it means D and from D it should go to E.
    My main question is: how can I programmatically set the currently selected node in the tree? And I mean not just set the focusRowKey...
    My tree is bound to a ADF Tree Iterator Binding.
    My tree nodes are 'clickable through an action link; this informs a managed bean of the currently selected node, a JUCtrlHierNodeBinding instance.
    <f:facet name="DeptView1Node" >
    <h:panelGroup>
    <af:commandLink text="#{node.Dname}"
    immediate="true"
    action="StartHrmTree"
    >
    <af:setActionListener from="#{HrmTreeTree.tree.rowKey}"
    to="#{HrmTreeTree.focusRowKey}"/>
    <af:setActionListener from="#{node}"
    to="#{HrmTreeTree.selectedNode}"/>
    <af:resetActionListener/>
    </af:commandLink>
    </h:panelGroup>
    </f:facet>
    At that point, in my setSelectedNode method, I can access the Node, its children etc. Methods calls to the tree are less successful; despite their description in the JavaDoc, calls like: getTreeModel().getRowKey() or getContainerRowKey() return null.
    From the Next Node button:
    <af:commandButton immediate="true" actionListener="#{HrmTreeTree.nextNode}" text="&gt;">
    </af:commandButton>
    I invoke the nextNode() method on my bean. When I access the selectedNode that I saved on this bean when the node was clicked on, I no longer can access the children of the node. Even the childIterator property returns null.
    Using the RowSetIterator I can access the current Row, go to the next row in the RSI, access children, so that seems a reasonable approach. However, I do not know how I can make the first child the currently selected node or even how to tell the tree that the child iterator is the current one.
    Using this code:
    // find out if the current Node has a child
    DCBindingContainer container =
    (DCBindingContainer)JsfUtils.getExpressionValue("#{bindings}");
    String iterName = "HrmTreeTreeIterator";
    JUIteratorBinding ib =
    (JUIteratorBinding)container.findIteratorBinding(iterName);
    List ibs =container.getIterBindingList();
    FacesCtrlHierBinding tree = (FacesCtrlHierBinding)container.findCtrlBinding("HrmTreeTree");
    RowSetIterator rsi2 = ib.getRowSetIterator();
    I never seem to be able to get beyond the RowSet iterator of the root level nodes. How can I make a child node's row set iterator the current one? How is it that my selected node object does not know how to access its child-nodes or even its childIterator binding? What refresh operation is required here?
    Any help will be very much appreciated (and credited in the blog article I will write when it all works out).
    Lucas

    Can you try setSelectedRowKeys(RowKeySet newSelectionState) API on the tree? That should change the selection.
    You can do some thing like this to populate the RowKeySet:
    RowKeySet oldSelectionState = null;
    RowKeySet newSelectionState = null;
    oldSelectionState = table.getSelectedRowKeys(); //table is the table component
    newSelectionState = oldSelectionState.clone();
    newSelectionState.clear();
    Object oldRowKey = table.getRowKey(); //Save the orginal rowKey in the variable
    String rowKey = "XXXX" // the key of the row you want to select
    table.setRowKey(rowKey); //set the currency of the table to the row you want to select
    newSelectionState.setContained(true); //add the current row to the selection key set
    table.setRowKey(oldRowKey); //Restore the currency to the old one.
    table.setSelectedRowKeys(newSelectionState); //update the table selection
    ///Now Do some partial update here to change display

  • ADF Forms Issue

    Hi All,
    I am fairly new to JDeveloper so please bear with me.
    Based on the ADF Tutorial for Forms/4GL developers I have developed a simple ADF form that edits data on a database table. The table is built from a data control, has bound managed session beans for each of the editable items and has 2 simple command buttons - 1 to submit changes to the form (action listener -> commit), the other to rollback (action listener - rollback)
    The form compiles OK and then runs OK via the OC4J Embedded Server.
    However when trying to use the command buttons to perform a submit changes or to rollback the operation is not performed and it also looks as though the resulting redirecting URL is not correct. The original URL appears on the link with just the # (hash) sign appearing after it e.g.
    http://10.101.7.34:8989/Data_Maintenance-Data_Maintenace-context-root/faces/app/grademaintain.jspx
    becomes after clicking on a command button -
    http://10.101.7.34:8989/Data_Maintenance-Data_Maintenace-context-root/faces/app/grademaintain.jspx#
    I have also noticed that the range selector on the table is also not working and displays the second URL above.
    Can anyone advise what I am doing wrong and why JDeveloper may be doing this ?
    Please find source for the page below :-
    ============================================================
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:af="http://xmlns.oracle.com/adf/faces"
    xmlns:afh="http://xmlns.oracle.com/adf/faces/html">
    <jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
    doctype-system="http://www.w3.org/TR/html4/loose.dtd"
    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
    <jsp:directive.page contentType="text/html;charset=windows-1252"/>
    <f:view>
    <afh:html>
    <afh:head title="grademaintain_edit">
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    </afh:head>
    <afh:body>
    <h:form>
    <af:messages/>
    <h:form>
    <h:form>
    <af:panelPage title="#{res['fpgrademaintain.pageTitle']}">
    <f:facet name="menu1"/>
    <f:facet name="menuGlobal"/>
    <f:facet name="branding">
    <h:graphicImage height="85" width="137"
    url="/images/ids_logo2.JPG"/>
    </f:facet>
    <f:facet name="brandingApp"/>
    <f:facet name="appCopyright"/>
    <f:facet name="appPrivacy"/>
    <f:facet name="appAbout"/>
    <af:table value="#{bindings.GradeVwView1.collectionModel}"
    var="row" rows="#{bindings.GradeVwView1.rangeSize}"
    first="#{bindings.GradeVwView1.rangeStart}"
    emptyText="#{bindings.GradeVwView1.viewable ? 'No rows yet.' : 'Access Denied.'}">
    <af:column sortProperty="GradeId" sortable="true"
    headerText="#{bindings.GradeVwView1.labels.GradeId}">
    <af:inputText value="#{row.GradeId}"
    required="#{bindings.GradeVwView1.attrDefs.GradeId.mandatory}"
    columns="#{bindings.GradeVwView1.attrHints.GradeId.displayWidth}"
    autoSubmit="true"
    binding="#{backing_app_grademain_edit.inputText1}">
    <f:convertNumber groupingUsed="false"
    pattern="#{bindings.GradeVwView1.formats.GradeId}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="ChannelId" sortable="true"
    headerText="#{bindings.GradeVwView1.labels.ChannelId}">
    <af:inputText value="#{row.ChannelId}"
    required="#{bindings.GradeVwView1.attrDefs.ChannelId.mandatory}"
    columns="#{bindings.GradeVwView1.attrHints.ChannelId.displayWidth}"
    autoSubmit="true" disabled="true">
    <f:convertNumber groupingUsed="false"
    pattern="#{bindings.GradeVwView1.formats.ChannelId}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="Channel" sortable="true"
    headerText="#{bindings.GradeVwView1.labels.Channel}">
    <h:inputText value="#{row.Channel}"
    binding="#{backing_app_grademain_edit.inputText3}"/>
    </af:column>
    <af:column sortProperty="Grade" sortable="true"
    headerText="#{bindings.GradeVwView1.labels.Grade}">
    <af:inputText value="#{row.Grade}"
    required="#{bindings.GradeVwView1.attrDefs.Grade.mandatory}"
    columns="#{bindings.GradeVwView1.attrHints.Grade.displayWidth}"
    autoSubmit="true"
    binding="#{backing_app_grademain_edit.inputText4}">
    <f:convertNumber groupingUsed="false"
    pattern="#{bindings.GradeVwView1.formats.Grade}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="ValueFrom" sortable="true"
    headerText="#{bindings.GradeVwView1.labels.ValueFrom}">
    <af:inputText value="#{row.ValueFrom}"
    required="#{bindings.GradeVwView1.attrDefs.ValueFrom.mandatory}"
    columns="#{bindings.GradeVwView1.attrHints.ValueFrom.displayWidth}"
    binding="#{backing_app_grademain_edit.inputText5}">
    <f:convertNumber groupingUsed="false"
    pattern="#{bindings.GradeVwView1.formats.ValueFrom}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="ValueTo" sortable="true"
    headerText="#{bindings.GradeVwView1.labels.ValueTo}">
    <af:inputText value="#{row.ValueTo}"
    required="#{bindings.GradeVwView1.attrDefs.ValueTo.mandatory}"
    columns="#{bindings.GradeVwView1.attrHints.ValueTo.displayWidth}"
    autoSubmit="true"
    binding="#{backing_app_grademain_edit.inputText6}">
    <f:convertNumber groupingUsed="false"
    pattern="#{bindings.GradeVwView1.formats.ValueTo}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="EffFromDate" sortable="true"
    headerText="#{bindings.GradeVwView1.labels.EffFromDate}">
    <af:inputText value="#{row.EffFromDate}"
    required="#{bindings.GradeVwView1.attrDefs.EffFromDate.mandatory}"
    columns="#{bindings.GradeVwView1.attrHints.EffFromDate.displayWidth}"
    autoSubmit="true"
    binding="#{backing_app_grademain_edit.inputText7}">
    <f:convertDateTime pattern="#{bindings.GradeVwView1.formats.EffFromDate}"/>
    </af:inputText>
    </af:column>
    <af:column sortProperty="EffToDate" sortable="true"
    headerText="#{bindings.GradeVwView1.labels.EffToDate}">
    <af:inputText value="#{row.EffToDate}"
    required="#{bindings.GradeVwView1.attrDefs.EffToDate.mandatory}"
    columns="#{bindings.GradeVwView1.attrHints.EffToDate.displayWidth}"
    autoSubmit="true"
    binding="#{backing_app_grademain_edit.inputText8}">
    <f:convertDateTime pattern="#{bindings.GradeVwView1.formats.EffToDate}"/>
    </af:inputText>
    </af:column>
    </af:table>
    <af:commandButton actionListener="#{bindings.Commit.execute}"
    text="Submit Changes"
    action="Home"
    binding="#{backing_app_grademain_edit.commandButton1}"/>
    <af:commandButton actionListener="#{bindings.Rollback.execute}"
    text="Rollback"
    immediate="true" action="Home"
    binding="#{backing_app_grademain_edit.commandButton2}">
    <af:resetActionListener/>
    </af:commandButton>
    </af:panelPage>
    </h:form>
    </h:form>
    </h:form>
    </afh:body>
    </afh:html>
    </f:view>
    </jsp:root>
    ===========================================================
    Many thanks for your help in advance.
    Cheers,
    Gary

    Hi Gary,
    I'll just clear a couple of things up first.
    Both the command buttons and the range selector on the table should be pointing to that URL you mention (with the hash). This is the way that JSF/ADF works. Even if you have specified that a navigation case should redirect, it still first fires a request to the current page.
    As far as I can see, there is no obvious problem with your page code. There are some things I would do.
    1. You have three h:form components in your page. Remove the two below the af:messages component. You only need one form.
    2. Check that there exist Commit and Rollback executables in the page definition file (right-click on page and select Go to Page Definition).
    3. Check that there exists a navigation case from this page to the home page and that it is named Home (Look in the faces-config.xml file).

  • ADF Tree 10.1.3.1, not highlighting the selected node.

    Hi,
    I'm having a problem highlighting the selected node in the ADF CoreTree.
    I use the treehandler and model as described in the link: http://technology.amis.nl/blog/2116/much-faster-adf-faces-tree-using-a-pojo-as-cache-based-on-read-only-view-object-showing-proper-leaf-nodes-again
    I use this objects because my tree was showing leaf node with the image to collapse.
    The tree now looks great, the only problem is that when i click on a node the focusRowKey is set accordingly(debugging the getter and setter) but is not show as the selected node.
    The tree jspx code looks the follow:
                   <!--TREE-->
                                     <af:tree value="#{ActosTreeHandler.treemodel}" var="node"
                                               focusRowKey="#{ActosTreeHandler.focusRowKey}"
                                               id="treeActos"
                                               varStatus="nodeStatus" binding="#{ActosTreeHandler.jsfTree}">
                                        <f:facet name="nodeStamp">
                                          <af:commandLink text="#{node.description}" partialTriggers="treeActos"
                                                          action="#{backing_documentos_detalhesDocumento.treeAction}">
                                            <!--disabled="#{node.nodeType != 'ACTO'}"-->
                                            <af:setActionListener from="#{ActosTreeHandler.jsfTree.rowKey}"
                                                                  to="#{ActosTreeHandler.focusRowKey}"/>
                                            <af:setActionListener from="#{node}"
                                                                  to="#{ActosTreeHandler.selectedNode}"/>
                                            <af:resetActionListener/>
                                          </af:commandLink>
                                        </f:facet>
                                      </af:tree>Does anyone know how this can be solved?
    Best Regards.

    Hi,
    is this the same as
    Re: Facing a problem in programmatically setting focus on a node in <af:tre
    Frank

  • Unable to capture the adf table column sort icons using open script tool

    Hi All,
    I am new to OATS and I am trying to create script for testing ADF application using open script tool. I face issues in recording two events.
    1. I am unable to record the event of clicking adf table column sort icons that exist on the column header. I tried to use the capture tool, but that couldn't help me.
    2. The second issue is I am unable to capture the panel header text. The component can be identified but I was not able to identify the supporting attribute for the header text.

    Hi keerthi,
    1. I have pasted the code for the first issue
    web
                             .button(
                                       122,
                                       "/web:window[@index='0' or @title='Manage Network Targets - Oracle Communications Order and Service Management - Order and Service Management']/web:document[@index='0' or @name='1824fhkchs_6']/web:form[@id='pt1:_UISform1' or @name='pt1:_UISform1' or @index='0']/web:button[@id='pt1:MA:0:n1:1:pt1:qryId1::search' or @value='Search' or @index='3']")
                             .click();
                        adf
                        .table(
                                  "/web:window[@index='0' or @title='Manage Network Targets - Oracle Communications Order and Service Management - Order and Service Management']/web:document[@index='0' or @name='1c9nk1ryzv_6']/web:ADFTable[@absoluteLocator='pt1:MA:n1:pt1:pnlcltn:resId1']")
                        .columnSort("Ascending", "Name" );
         }

  • Using ADFS with SharePoint Foundation 2013?

    We have a WSS 3.0 web site used primarily for sharing documents with business partners who do not work for our company.  We plan on doing the 2 step upgrade to SharePoint Foundation 2013
    Our internal users also use it but normally just use internal network file shares if they aren't planning to share the documents with external users.
    Each business partner's company has a sub site within our main WSS site and documents are uploaded to that section of the site if we want to share documents with employees of that company. 
    Since we use AD for authentication, to make this work, we create AD user accounts for each external user and add them to a security group that gives them access to only their company's subsite on the main site.  
    We have to maintain their passwords, reset them and delete/disable them when that person no longer needs access.  Each business partner has a limit on the number of users who can get one of our AD accounts due to limits on the number of CALs available
    to them.  It is messy because these users often forget their passwords since they aren't using these accounts every day.  
    Is there a better way to do this so that we no longer have create and maintain user accounts for external users other than having to do a domain trust with all these other domains?
    I have heard of ADFS, but will it allow us to still control which sites and documents the external company users can access if we are not creating and managing the accounts and adding them to the correct security groups ourselves?
    We don't want every user from the partner's domains to be able to access the site.  If we use ADFS, how do we keep control of which external users have access to the site?

    Yes, you would add permissions just the same way you do with users from your local Active Directory. And yes, if you chose the email address to be the user's identifier, you would simply ask for the email addresses that you wanted and input those to the
    appropriate permissions on your SharePoint sites.
    You'll want to take a look at this:
    http://blogs.msdn.com/b/russmax/archive/2013/10/31/guide-to-sharepoint-2013-host-name-site-collections.aspx
    Also another thing to keep in mind is that you'll need to have those 3rd parties set up ADFS themselves, and you'll create an ADFS Trust between you and the 3rd party.
    Trevor Seward
    Follow or contact me at...
    &nbsp&nbsp
    This post is my own opinion and does not necessarily reflect the opinion or view of Microsoft, its employees, or other MVPs.

  • Issue with SharePoint foundation 2010 to use Claims Based Auth with Certificate authentication method with ADFS 2.0

    I would love some help with this issue.  I have configured my SharePoint foundation 2010 site to use Claims Based Auth with Certificate authentication method with ADFS 2.0  I have a test account set up with lab.acme.com to use the ACS.
    When I log into my site using Windows Auth, everything is great.  However when I log in and select my ACS token issuer, I get sent, to the logon page of the ADFS, after selected the ADFS method. My browser prompt me which Certificate identity I want
    to use to log in   and after 3-5 second
     and return me the logon page with error message “Authentication failed” 
    I base my setup on the technet article
    http://blogs.technet.com/b/speschka/archive/2010/07/30/configuring-sharepoint-2010-and-adfs-v2-end-to-end.aspx
    I validated than all my certificate are valid and able to retrieve the crl
    I got in eventlog id 300
    The Federation Service failed to issue a token as a result of an error during processing of the WS-Trust request.
    Request type: http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue
    Additional Data
    Exception details:
    Microsoft.IdentityModel.SecurityTokenService.FailedAuthenticationException: MSIS3019: Authentication failed. ---> System.IdentityModel.Tokens.SecurityTokenValidationException:
    ID4070: The X.509 certificate 'CN=Me, OU=People, O=Acme., C=COM' chain building failed. The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. 'A certification chain processed
    correctly, but one of the CA certificates is not trusted by the policy provider.
    at Microsoft.IdentityModel.X509CertificateChain.Build(X509Certificate2 certificate)
    at Microsoft.IdentityModel.Tokens.X509NTAuthChainTrustValidator.Validate(X509Certificate2 certificate)
    at Microsoft.IdentityModel.Tokens.X509SecurityTokenHandler.ValidateToken(SecurityToken token)
    at Microsoft.IdentityModel.Tokens.SecurityTokenElement.GetSubject()
    at Microsoft.IdentityServer.Service.SecurityTokenService.MSISSecurityTokenService.GetOnBehalfOfPrincipal(RequestSecurityToken request, IClaimsPrincipal callerPrincipal)
    --- End of inner exception stack trace ---
    at Microsoft.IdentityServer.Service.SecurityTokenService.MSISSecurityTokenService.GetOnBehalfOfPrincipal(RequestSecurityToken request, IClaimsPrincipal callerPrincipal)
    at Microsoft.IdentityServer.Service.SecurityTokenService.MSISSecurityTokenService.BeginGetScope(IClaimsPrincipal principal, RequestSecurityToken request, AsyncCallback callback, Object state)
    at Microsoft.IdentityModel.SecurityTokenService.SecurityTokenService.BeginIssue(IClaimsPrincipal principal, RequestSecurityToken request, AsyncCallback callback, Object state)
    at Microsoft.IdentityModel.Protocols.WSTrust.WSTrustServiceContract.DispatchRequestAsyncResult..ctor(DispatchContext dispatchContext, AsyncCallback asyncCallback, Object asyncState)
    at Microsoft.IdentityModel.Protocols.WSTrust.WSTrustServiceContract.BeginDispatchRequest(DispatchContext dispatchContext, AsyncCallback asyncCallback, Object asyncState)
    at Microsoft.IdentityModel.Protocols.WSTrust.WSTrustServiceContract.ProcessCoreAsyncResult..ctor(WSTrustServiceContract contract, DispatchContext dispatchContext, MessageVersion messageVersion, WSTrustResponseSerializer responseSerializer, WSTrustSerializationContext
    serializationContext, AsyncCallback asyncCallback, Object asyncState)
    at Microsoft.IdentityModel.Protocols.WSTrust.WSTrustServiceContract.BeginProcessCore(Message requestMessage, WSTrustRequestSerializer requestSerializer, WSTrustResponseSerializer responseSerializer, String requestAction, String responseAction, String
    trustNamespace, AsyncCallback callback, Object state)
    System.IdentityModel.Tokens.SecurityTokenValidationException: ID4070: The X.509 certificate 'CN=Me, OU=People, O=acme., C=com' chain building
    failed. The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. 'A certification chain processed correctly, but one of the CA certificates is not trusted by the policy provider.
    at Microsoft.IdentityModel.X509CertificateChain.Build(X509Certificate2 certificate)
    at Microsoft.IdentityModel.Tokens.X509NTAuthChainTrustValidator.Validate(X509Certificate2 certificate)
    at Microsoft.IdentityModel.Tokens.X509SecurityTokenHandler.ValidateToken(SecurityToken token)
    at Microsoft.IdentityModel.Tokens.SecurityTokenElement.GetSubject()
    at Microsoft.IdentityServer.Service.SecurityTokenService.MSISSecurityTokenService.GetOnBehalfOfPrincipal(RequestSecurityToken request, IClaimsPrincipal callerPrincipal)
    thx
    Stef71

    This is perfectly correct on my case I was not adding the root properly you must add the CA and the ADFS as well, which is twice you can see below my results.
    on my case was :
    PS C:\Users\administrator.domain> $root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\
    cer\SP2K10\ad0001.cer")
    PS C:\Users\administrator.domain> New-SPTrustedRootAuthority -Name "domain.ad0001" -Certificate $root
    Certificate                 : [Subject]
                                    CN=domain.AD0001CA, DC=domain, DC=com
                                  [Issuer]
                                    CN=domain.AD0001CA, DC=portal, DC=com
                                  [Serial Number]
                                    blablabla
                                  [Not Before]
                                    22/07/2014 11:32:05
                                  [Not After]
                                    22/07/2024 11:42:00
                                  [Thumbprint]
                                    blablabla
    Name                        : domain.ad0001
    TypeName                    : Microsoft.SharePoint.Administration.SPTrustedRootAuthority
    DisplayName                 : domain.ad0001
    Id                          : blablabla
    Status                      : Online
    Parent                      : SPTrustedRootAuthorityManager
    Version                     : 17164
    Properties                  : {}
    Farm                        : SPFarm Name=SharePoint_Config
    UpgradedPersistedProperties : {}
    PS C:\Users\administrator.domain> $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\
    cer\SP2K10\ADFS_Signing.cer")
    PS C:\Users\administrator.domain> New-SPTrustedRootAuthority -Name "Token Signing Cert" -Certificate $cert
    Certificate                 : [Subject]
                                    CN=ADFS Signing - adfs.domain
                                  [Issuer]
                                    CN=ADFS Signing - adfs.domain
                                  [Serial Number]
                                    blablabla
                                  [Not Before]
                                    23/07/2014 07:14:03
                                  [Not After]
                                    23/07/2015 07:14:03
                                  [Thumbprint]
                                    blablabla
    Name                        : Token Signing Cert
    TypeName                    : Microsoft.SharePoint.Administration.SPTrustedRootAuthority
    DisplayName                 : Token Signing Cert
    Id                          : blablabla
    Status                      : Online
    Parent                      : SPTrustedRootAuthorityManager
    Version                     : 17184
    Properties                  : {}
    Farm                        : SPFarm Name=SharePoint_Config
    UpgradedPersistedProperties : {}
    PS C:\Users\administrator.PORTAL>

  • ADF  Get selected values from Dynamic Lists

    Hi,
    I have a created a dropdown list box where the list gets value through a managed bean. On commit I want the selected value to be saved into the CardiacV1EchoSched column of the Entity object (database). The source looks like this.
    <af:selectOneChoice value="#{bindings.CardiacV1EchoSched.inputValue}"
    label="#{bindings.CardiacV1EchoSched.label}"
    valuePassThru="true">
    <f:selectItems value="#{TTrack.carScheList}"/>
    </af:selectOneChoice>
    The problem is that getCardiacV1EchoSched() in the entity object class is null. The selected value does not get passed into #{bindings.CardiacV1EchoSched.inputValue} at all. If I bind the value to a variable in managed bean I get the selected value.
    Thanks in advance,

    Hi,
    not sure which business service you use to update the database, but if you use ADF Business Components then you need to call the commit operation
    Frank

  • Problem with links in deployed ADF application to Weblogic Server 11g

    Hi everyone !
    I have a query here, firstly, I have created an ADF application using Jdeveloper 11g and have successfully deployed (EAR file) onto the weblogic server.
    However, after testing out the application, the linking within the application does not seem to work. Whenever I click on a link or button, the page refreshes but the result is not displayed.
    What could have cause the problem?
    Thanks
    Gavin

    Are the ADF runtime libraries installed into the WebLogic server?

  • Open file from ADF pages gives a problem

    Hi all,
    I have created with Jdev 11g an ADF page.
    In that page is shown a table with the files that are stored in the database.
    I use this code to show the file:
        public void showFile(BlobDomain  b,String filename){
            FacesContext fc = FacesContext.getCurrentInstance(); 
            HttpServletResponse response = (HttpServletResponse)fc.getExternalContext().getResponse();
            response.setHeader("Content-Disposition","attachment; filename=\""+filename+"\"");
            response.setHeader("cache-control", "no-cache");
            try {
                InputStream in;
                in = b.getInputStream();
                ServletOutputStream out = response.getOutputStream();
                writeInputStreamToOutputStream(in, out);
                fc.responseComplete(); 
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Throwable e) {
                e.printStackTrace();
        }This works for the first time a file is opened. But when the user then selects a different row nothing is happening anymore.
    What can that be?

    Hi Simon,
    This is the button:
                      <af:commandButton text="Open file"
                                        binding="#{backingBeanScope.backing_pages_Meldingen.cb5}"
                                        id="cb5"
                                        disabled="false"
                                        action="#{backingBeanScope.backing_pages_Meldingen.openFile}"/>this is openfile:
        public String openFile() {
            BindingContainer bindings = this.getBindings();
            DCIteratorBinding iter = (DCIteratorBinding)bindings.get("XxahelpBezoekRapDocView1Iterator");
            Row currentRw = iter.getCurrentRow();
            showFile((BlobDomain)currentRw.getAttribute("Bijlage"),currentRw.getAttribute("Filename").toString());
            return null;
        }And how can I download in a popup??

  • Is it possible to call the Print Quote functionality from Custom ADF page

    Hi,
    We are researching if it is possible to call the Print Quote functionality from the Custom ADF application.
    Goal is to pop up the PDF report upon clicking the Print Quote button on the custom page. Is it possible ?
    Atleast advice on the direction to go forward is appreciated.
    Thanks
    Sai

    Hi ,
    Please check following thread on forum -
    Re: ADF: Calling OAF Page from ADF page
    Check this may also be useful-
    https://blogs.oracle.com/shay/entry/to_adf_or_oaf_or
    I have not tried yet but Steven Chan (Sr. Director OATG) suggest following methodolgy for this-
    https://blogs.oracle.com/stevenChan/entry/appsdatasource_jaas_ebs
    Thanks,
    Ashish

  • ADF Desktop Integration : How to delete the table in Excel?

    Hi,
    I am using Jdev 11.1.1.3.0 and Excel 2007 for Oracle ADF DI, I had created an ADF table using pageDef file in the excel. Now I wanted to delete that table and use a different pageDef file.
    I could not find a way to delete that table.
    I deleted full row of tables and then I used different pageDef file and created a new adf table. But when I am running this version of excel, I am getting runtime exception and excel is getting corrupted.
    My question how to delete the table not corrupting the Excel.
    Thanks
    Pavan

    Pavan,,
    Welcome to OTN.
    You can delete the table by selecting the top left column (of the table) and then select delete from the ADFdi tab.
    Refer the documentation for more info.
    http://docs.oracle.com/cd/E17904_01/web.1111/e10139/get_start_dev_tools.htm#ADFDI608
    -Arun

Maybe you are looking for

  • Problem: 503 Service Unavailable  SAP WebAS Engine is starting...

    Problem: 503 Service Unavailable SAP WebAS Engine is starting... If this state does not change within a few minutes, please contact your system administrator. Check the recommendations in SAP Notes: 943498, 764417 Message: Dispatcher running but no s

  • Administration password disable

    i dont know my administration password, so pls help how to disable or changing the password to upgrade my mac

  • Qosmio X770-10G: integrated Microphoe isn't detected using viso cam

    Hell, I just tried to use skype and use the integated camera and microphoen that are genuine parts of the X770 10 G. The camera is OK but the microphoen is not detected at all. I dont see it in windows harware panel and it is not shown on Nvidia driv

  • How to delete inspection type assigned in material on mass level

    Hi Team, How to delete inspection type assigned in material on mass level. This inspection type is assigned in material master with indicator set as"Task List", however we are using "material specification". This inspection type is assigned to materi

  • O`c question

    is this likely to work with my setup ? 240 x11 =2640 mhz mem at 5:6 =200    ?????? if not suggestions plz. would be greatly appreciated as cant find much about these 3700+ proc`s see sig for specs thx.