ADF Show popup from managed bean

Hi, i have one popup in jspx. On click of a command button a method in managed bean should be called and that has to decide whether to show the popup or not. I have a check and using that i need to show this popup. How to show/invoke the popup from managed bean? I used script also but it was not working. Kindly help me.
Thank you,
Sankari Kannan

Hi,
Which JDeveloper Release You Use?
In JDeveloper11g the structure View---->Document----->Form.
Try one of these solutions:
- Try to put it outside of your pageTemplate tage as:
<af:view>
<af:popup>
</af:popup>
<af:pageTemplate>
<f:facet>
<af:decorativeBox>
<af:view>
I don't know is it possible or not.
- you can put the ids of your popup container as
StringBuilder strb =
new StringBuilder("AdfPage.PAGE.findComponent(\"container1:container2:popup5\").show();");
Sameh Nassar

Similar Messages

  • Show Popup From Managed Bean

    Hi,
    how i show a inline popup from managed bean , triggered by a certain action in bean, like satisfying a condition or something else?
    normally, showing a popup from bean involves clicking some userinterface components on page.
    in my case, showing a popup should totally automated by a managed bean.
    i m using jdev 11.1.1.2 .
    Plz , help me in this context.
    Regards,

    Hi John,
    I used the above code but it doesnt work.Can you please look into my code.
    In Jspx page,
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
    <af:document id="d1" binding="#{backingBeanScope.backing_untitled5.d1}">
    <af:form id="f1" binding="#{backingBeanScope.backing_untitled5.f1}">
    <af:commandButton text="commandButton 2"
    binding="#{backingBeanScope.backing_untitled5.cb2}"
    id="cb2"
    action="#{backingBeanScope.backing_untitled5.cb2_action}"/>
    </af:form>
    <af:popup binding="#{backingBeanScope.backing_untitled5.p1}" id="p1">
    <af:panelWindow binding="#{backingBeanScope.backing_untitled5.pw1}"
    id="pw1"/>
    </af:popup>
    </af:document>
    </f:view>
    <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_untitled5-->
    </jsp:root>
    In backing bean,
    package view.backing;
    import javax.faces.context.FacesContext;
    import oracle.adf.view.rich.component.rich.RichDocument;
    import oracle.adf.view.rich.component.rich.RichForm;
    import oracle.adf.view.rich.component.rich.RichPanelWindow;
    import oracle.adf.view.rich.component.rich.RichPopup;
    import oracle.adf.view.rich.component.rich.nav.RichCommandButton;
    import org.apache.myfaces.trinidad.render.ExtendedRenderKitService;
    import org.apache.myfaces.trinidad.util.Service;
    public class Untitled5 {
    private RichForm f1;
    private RichDocument d1;
    private RichPopup p1;
    private RichPanelWindow pw1;
    private RichCommandButton cb2;
    public void setF1(RichForm f1) {
    this.f1 = f1;
    public RichForm getF1() {
    return f1;
    public void setD1(RichDocument d1) {
    this.d1 = d1;
    public RichDocument getD1() {
    return d1;
    public void setP1(RichPopup p1) {
    this.p1 = p1;
    public RichPopup getP1() {
    return p1;
    public void setPw1(RichPanelWindow pw1) {
    this.pw1 = pw1;
    public RichPanelWindow getPw1() {
    return pw1;
    public void setCb2(RichCommandButton cb2) {
    this.cb2 = cb2;
    public RichCommandButton getCb2() {
    return cb2;
    public String cb2_action() {
    // Add event code here...
    FacesContext context = FacesContext.getCurrentInstance();
    ExtendedRenderKitService extRenderKitSrvc =
    Service.getRenderKitService(context, ExtendedRenderKitService.class);
    extRenderKitSrvc.addScript(context,"AdfPage.PAGE.findComponent('" + p1 + "').show();");
    return null;
    Please correct my mistake if any.
    Regards,
    Tom

  • How to Open PopUp from Managed Bean?

    Hi,
    Can you please let me know how can we open a pop up from managed bean.
    Thanks & Regards,
    Kiran Konjeti

    Hi,
    I got the answer for this question.
    Write the following code in Managed Bean
    ==========================
    private RichOutputText errorText;
    private RichPopup PopUp;
    Generate accessors(setters & getters) for these 2 variablesAnd place this method in your managed bean.
    > private void showPopup(RichPopup popUp, UIComponent source) {
    > FacesContext context = FacesContext.getCurrentInstance();
    > String popupId = popUp.getClientId(context);
    > String alignId = source.getClientId(context);
    > StringBuilder script = new StringBuilder();
    > script.append("var popup = AdfPage.PAGE.findComponent('").append(popupId).append("'); ").append("if (!popup.isPopupVisible()) { ").append("var hints = {}; ").append("hints
    [AdfRichPopup.HINT_ALIGN_ID] = '").append(alignId).append("'; ").append("hints[AdfRichPopup.HINT_ALIGN] = AdfRichPopup.ALIGN_AFTER_START; ").append("popup.show(hints);}");> ExtendedRenderKitService erks =
    > Service.getService(context.getRenderKit(),
    > ExtendedRenderKitService.class);
    > erks.addScript(context, script.toString());
    > }
    Now, how to call this method from your managed bean ... depends upon situation.
    public void sendEmailstoBorrowers(ActionEvent actionEvent) {
    .....................some logic ...............> if(true){
    > personHistoryStatus = defaultPreventionHelper.writeBorrowerHistory(borrowersList,getFormattedAction());
    > this.errorText.setValue((borrowersList != null ? borrowersList.size() : "")+" E-mails have been sent successfully..!");
    > }else{
    > this.errorText.setValue("Unable to send emails. Please contact System Administrator..!");
    > }
    > showPopup(this.getPopUp(), actionEvent.getComponent());
    }And ... what do we need to do on the UI??
    Write the following code in UI -- Here is the button which calls sendEmail method
    ==================================================
    ><af:commandButton text="SEND" id="cb3"
    >shortDesc="Click 'Send' to send emails."
    >styleClass="defaultButton"
    >blocking="true"
    >disabled="#{pageFlowScope.DefaultPreventMB.disablePrintButton || bindings.DelinquentBorrowersList.estimatedRowCount == 0}"
    >rendered="#{pageFlowScope.DefaultPreventMB.formattedAction eq 'E-mail'}"
    >partialTriggers="t2:dlDelete"
    >actionListener="#{pageFlowScope.DefaultPreventMB.sendEmailstoBorrowers}"/>
    Once this button get clicked ... it calls sendEmailstoBorrowers, and based on the result(either true or false) the method sets the content for the pop up and opens the popup from managed bean.
    And here is the code for which we have to keep inside the jsff and this gets invoked from managed bean.
    ><af:popup id="p1" binding="#{pageFlowScope.DefaultPreventMB.popUp}">
    > <af:dialog id="d1" type="ok" title="E-mail Communication Status">
    ><af:outputText value="E-mails have been sent successfully..!"
    > id="ot11"
    >binding="#{pageFlowScope.DefaultPreventMB.errorText}"/>
    ></af:dialog>
    ></af:popup>
    Let me know if you need more information about it.
    Thanks & Regards,
    Kiran Konjeti

  • How to show popup from backing bean code immediately?

    Hi,
    I'm using JDeveloper 11.1.2.1.0 and have problems with showing popups. I have a button with an action on my page and a method in backing bean.
    I want to rise up few popups from this method in backing bean (for example just an anouncement that something will happen) or a dialog
    (for example a question if you want to continue).
    I understand how to get a dialog response to deal with it in code, but the problem is that the popup doesn't show up immediately, but only when
    this method called on button finishes. I'd like to handle dialog responses in the middle of the action and then the code to continue with the execution.
    Here is my backing bean code:
    private RichPopup popup;
    public String test() {
    //Some code...
    RichPopup.PopupHints hints = new RichPopup.PopupHints();
    popup.show(hints);
    //Here is the place for code which I want to be executed after popup closes,
    //but is executed before the popup shows...
    return null;
    And here is part of my jssf:
    <af:commandButton text="Test" id="cb1"
    action="#{popupBean.test}"/>
    <af:popup id="popup" binding="#{popupBean.popup}">
    <af:dialog id="dialog" type="yesNo"
    title="Dialog"
    dialogListener="#{popupBean.onDialogAction}"
    binding="#{popupBean.dialog}" clientComponent="true">
    <af:outputText value="Do you want to continue?" id="ot1"/>
    <af:clientListener method="onDialogCancel" type="dialog"/>
    <af:serverListener type="DialogCancelHandlerEvent" method="#{popupBean.onDialogCancel}"/>
    </af:dialog>
    </af:popup>
    Can someone give me some answer how to show the popup from backing bean code immediately?
    Thanks in advance,
    Tina

    If you want to execute code after popup closes, then put this code in PopupCanceledListener or in DialogListener(you can't block method execution).
    Dario

  • How to invoke popup from managed bean

    Hi Can anyone give me idea for invoking a pop-up from method in the managed bean plz,
    Here my coding,
    <?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" binding="#{backingBeanScope.backing_untitled5.d1}">
    <af:form id="f1" binding="#{backingBeanScope.backing_untitled5.f1}">
    <af:commandButton text="commandButton 2"
    binding="#{backingBeanScope.backing_untitled5.cb2}"
    id="cb2"
    action="#{backingBeanScope.backing_untitled5.cb2_action}"/>
    </af:form>
    <af:popup binding="#{backingBeanScope.backing_untitled5.p1}" id="p1">
    <af:panelWindow binding="#{backingBeanScope.backing_untitled5.pw1}"
    id="pw1"/>
    </af:popup>
    </af:document>
    </f:view>
    <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_untitled5-->
    </jsp:root>
    Managed bean coding,
    import javax.faces.context.FacesContext;
    import oracle.adf.view.rich.component.rich.RichDocument;
    import oracle.adf.view.rich.component.rich.RichForm;
    import oracle.adf.view.rich.component.rich.RichPanelWindow;
    import oracle.adf.view.rich.component.rich.RichPopup;
    import oracle.adf.view.rich.component.rich.nav.RichCommandButton;
    import org.apache.myfaces.trinidad.render.ExtendedRenderKitService;
    import org.apache.myfaces.trinidad.util.Service;
    public class Untitled5 {
    private RichForm f1;
    private RichDocument d1;
    private RichPopup p1;
    private RichPanelWindow pw1;
    private RichCommandButton cb2;
    public void setF1(RichForm f1) {
    this.f1 = f1;
    public RichForm getF1() {
    return f1;
    public void setD1(RichDocument d1) {
    this.d1 = d1;
    public RichDocument getD1() {
    return d1;
    public void setP1(RichPopup p1) {
    this.p1 = p1;
    public RichPopup getP1() {
    return p1;
    public void setPw1(RichPanelWindow pw1) {
    this.pw1 = pw1;
    public RichPanelWindow getPw1() {
    return pw1;
    public void setCb2(RichCommandButton cb2) {
    this.cb2 = cb2;
    public RichCommandButton getCb2() {
    return cb2;
    public String cb2_action() {      .
    FacesContext context = FacesContext.getCurrentInstance();
    ExtendedRenderKitService extRenderKitSrvc =
    Service.getRenderKitService(context, ExtendedRenderKitService.class);
    extRenderKitSrvc.addScript(context,"AdfPage.PAGE.findComponent('" + p1 + "').show();");
    return null;
    looking for ur reply
    Regards,
    Tom

    If you are using JDev 11.1.1.3, then in a managed bean method use the following to show or hide the popup:
    RichPopup.PopupHints hints = ...<set_the_hints>...;
    p1.show(hints);
    // or
    p1.hide();If you are using an older JDev 11g, then use the following:
       * Hides a popup.
       * @param popup Popup to be hidden.
      public static void hidePopup(RichPopup popup) {
        FacesContext context = FacesContext.getCurrentInstance();
        String popupId = popup.getClientId(context);
        StringBuilder script = new StringBuilder();
        script.append("var popup = AdfPage.PAGE.findComponent('").append(popupId).append("'); ")
              .append("if (popup.isPopupVisible()) { ")
              .append("popup.hide();}");
        ExtendedRenderKitService erks =
          Service.getService(context.getRenderKit(), ExtendedRenderKitService.class);
        erks.addScript(context, script.toString());
       * Shows a popup.
       * @param popup Popup to be shown
      public static void showPopup(RichPopup popup) {
        showPopup(popup, null);
       * Shows a popup alligned to the start of specified UI component.
       * @param popup Popup to be shown
       * @param component UI component to allign to
      public static void showPopup(RichPopup popup, UIComponent component) {
        FacesContext context = FacesContext.getCurrentInstance();
        String popupId = popup.getClientId(context);
        String alignId = (component==null) ? null : component.getClientId(context);
        StringBuilder script = new StringBuilder();
        script.append("var popup = AdfPage.PAGE.findComponent('").append(popupId).append("'); ")
              .append("if (!popup.isPopupVisible()) { ")
              .append("var hints = {}; ");
        if (alignId!=null) {
          script.append("hints[AdfRichPopup.HINT_ALIGN_ID] = '").append(alignId).append("'; ")
                .append("hints[AdfRichPopup.HINT_ALIGN] = AdfRichPopup.ALIGN_AFTER_START; ");
        script.append("popup.show(hints);}");
        ExtendedRenderKitService erks =
          Service.getService(context.getRenderKit(), ExtendedRenderKitService.class);
        erks.addScript(context, script.toString());
      }You can find these methods in the Steve Muench's utility class JSFUtils.
    Dimitar
    Edited by: Dimitar Dimitrov on Nov 15, 2010 2:59 PM

  • Error while opening a popup from managed bean

    Hi,
    I am trying to open a popup from bean, after another popup is closed. When I open the second popup either through ActionListener(on first popup button) or DialogListener(on first popup), I am getting the below error on browser status bar(!); and the second popup doesn't open. There is no error in the log.
    *'AdfPage.PAGE.findComponent(...)' is null or not an object.*
    Although the popup id is there on the jspx page.
    <af:popup id="confirmationStatus" binding="#{MyBean1.confirmationStatus}">
    <af:dialog cancelVisible="false"
    closeIconVisible="false" binding="#{MyBean1.d2}"
    title="Appointment Confirmation Status">
    <af:outputText value="Appointment is successfully confirmed"/>
    </af:dialog>
    </af:popup>
    public void confirmAppointment_dialogListener(DialogEvent dialogEvent) {
    FacesContext context = FacesContext.getCurrentInstance();
    ExtendedRenderKitService service = Service.getRenderKitService(context, ExtendedRenderKitService.class);
    String popupId = "confirmationStatus";
    service.addScript(context,"AdfPage.PAGE.findComponent('" + popupId + "').show();");
    Please tell me why my popup is not getting open from the managed bean and I am getting an error in below line.
    service.addScript(context,"AdfPage.PAGE.findComponent('" + popupId + "').show();");

    To find out the right address of a component related to an other component, open your page select the component you want to add a partial trigger, go to the partial trigger property, select the down arrow at the right end and select 'Edit'. Now look for the popup in the component tree shown on the left side. When you have found the popup shuffle it the the selected side and click OK. The string you see in the field is the full address of the popup related to he component you've selected. Try the string you see there in your bean code. Remove the string from the partial trigger property, it's just to get the correct path.
    One other thing to check is that your popup has the ClientComponent property set to true.
    Next thing to try, is to use AdfPage.PAGE.findComponentByAbsoluteId(...)
    Timo

  • Open popup from managed bean

    How can i open a popup from a managed bean function?
    Suppose i have an inputfield that is bound to a function getValue(), how can i open a specific popup from that function?

    Essential you have to put the popup somewhere on the page and you have to know the popup id (or search for it in the page). Then you call
         * Opens the RichPopup based on the key.
        public static void showPopup(String popupId)
            FacesContext context = FacesContext.getCurrentInstance();
            ExtendedRenderKitService extRenderKitSrvc =
                Service.getRenderKitService(context, ExtendedRenderKitService.class);
            extRenderKitSrvc.addScript(context,
                                       "AdfPage.PAGE.findComponent('" + popupId + "').show();");
        }with the popup id as parameter.
    Timo

  • How to open a jspx in a popup from managed bean.

    Hello,
    I'm using Studio Edition Version 11.1.1.4.0.
    I have a JSPX that is to be used as an application monitor screen. So it contains 5 af:tables with plenty of columns & query search criteria. Each of the tables has context sensitive menus as well as double click functionality.
    When I write everything in a single JSPX, the code functions as expected. i.e. menu items & double click actions open new popups with requisite data. However, single JSPX becomes huge in size and hence difficult to maintain.
    When I transfer code to another JSPX, How do I call the new JSPX in a popup from the managed bean?
    Regards,
    Amar

    Try this:
    http://www.oracle.com/technetwork/developer-tools/adf/learnmore/53-taskflow-in-popup-169196.pdf

  • Showing Yes/No option  popup from backing bean

    Hi,
    I have a af:query popup where i search for the results using the backing bean.
    So if this query retrieves more than say 100 rows, I want to show an Yes/No option popup from baking bean informing the user that "the result rows exceed 100, do you wish to continue"
    So on click of yes i will continue processing the result rows otherwise i will dispose the option popup.
    Please note i also need to use the Message bundle for localizing the message in the backing bean.
    Thanks
    Ajay

    What I do.
    In my jspx:
                   <af:popup binding="#{backingBeanScope.backing_site_search.msgPop}"
                             id="msgPop" contentDelivery="lazyUncached">
                     <af:dialog binding="#{backingBeanScope.backing_site_search.msgDiag}"
                                id="msgDiag" type="yesNo">
                       <af:outputText binding="#{backingBeanScope.backing_site_search.msgText}"
                                      id="msgText"/>
                     </af:dialog>
                   </af:popup>In my backing bean, when I need the popup:
    myUtils.showPopup(this.getMsgPop().getClientId(FacesContext.getCurrentInstance()));In my utility bean:
        public static void showPopup(String popupId){
          ExtendedRenderKitService service =
              Service.getRenderKitService(FacesContext.getCurrentInstance(),
                                          ExtendedRenderKitService.class);     
          service.addScript(FacesContext.getCurrentInstance(),
                            "AdfPage.PAGE.findComponent('"+popupId+"').show();");
        }And, of course, you can create a dialogListener, popupFetchListener, and popupCancelListener in your backign bean to handle any actions you need to accomplish.
    public void newDialogListener(DialogEvent dialogEvent) {
            if (dialogEvent.getOutcome().name().equals("yes")) {
        }

  • Re:How to get the vo from managed bean

    Hi all,
    I am using Jdev11.1.2.3.0
    My requirement is : I have one jspx page.In that page i have created one form,so i need to get the values from managed bean.here i wont create by using data control view instance.so finally i have to get the table values from managed bean.so how can i get it.can anyone help me please.
    Thanks,
    G.Shilpa

    So you're not using ADF BC at all, right ?
    From JSF point of view, it does not matter how you provide UI control values.
    What you can do, for example, is to use pure JDBC in order to get and display the database values.
    What you need in your backing bean, is appropriate properties (setter/getter method pairs).
    In the getter, you can obtain DB values by using JDBC
    Take a look at:
    JSF 2.0 + JDBC integration example
    JSF JDBC Integration
    JDBC in JSF - YouTube

  • ADF Faces: How to get the ADF BindingContainer in a managed bean?

    Hi,
    I not sure how to get the BindingContainer instance from inside of a managed bean method. I have tried the following config, but it does not work in all situations.
      <managed-bean>
        <managed-bean-name>backing_showBooks</managed-bean-name>
        <managed-bean-class>view.backing.ShowBooks</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <managed-property>
          <property-name>bindingContainer</property-name>
          <property-class>oracle.adf.model.binding.DCBindingContainer</property-class>
          <value>#{bindings}</value>
        </managed-property>
        <!--oracle-jdev-comment:managed-bean-jsp-link:1showBooks.jsp-->
      </managed-bean>When an ActionListener- method of my ShowBooks bean is called the property bindingContainer is NULL!!
    Is there a save way to get the BindingContainer in my bean??
    Any hints are welcome.
    Thanks,
    Markus

    Maybe I just need another pair of eyes but when I set this up as explained and watch it in the debugger my method public void setBindingContainer(DCBindingContainer bc) gets called but bc is null. Can anyone help?
    Thanks
    Backing Bean-
    private DCBindingContainer bindingContainer;
    public void setBindingContainer(DCBindingContainer bc) {
    this.bindingContainer = bc;
    public DCBindingContainer getBindings() {
    return bindingContainer;
    //I just threw this method on there in case I was missing something & I also
    //tried using a getBindingContainer method above but that didn;t work.
    public void setBindings(DCBindingContainer bindings) {
    this.bindingContainer = bindings;
    adf-faces.conf entry
    <managed-bean>
    <managed-bean-name>backing_VunerabilityDetail</managed-bean-name>
    <managed-bean-class>viewcontroller.backing.VunerabilityDetail</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
    <property-name>bindingContainer</property-name>
    <property-class>oracle.adf.model.binding.DCBindingContainer</property-class>
    <value>#{bindings}</value>
    </managed-property>
    <!--oracle-jdev-comment:managed-bean-jsp-link:1VunerabilityDetail.jsp-->
    </managed-bean>

  • Problem while invoking popup from backing bean

    I am invoking a popup from backing bean method.
    The same backing bean method has the business logic which depends on the data collected from popup(user enters some data on popup).
    So I need the business logic to be executed after popup comes up.
    The popup is coming after the execution of return statement in backing bean method . How do i make popup trigger at earlier point in the method.
    <af:commandToolbarButton text="#{corePostupgradeuiBundle.SIGN_OFF_MIG}"
    id="socb52"
    partialSubmit="true"
    actionListener="#{viewScope.signoffBean.signOffAgents}"
    partialTriggers="t3"/>
    public void signOffAgents(ActionEvent event) throws SQLException {
    DCBindingContainer bc =
    (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
    DCIteratorBinding summaryIter =
    bc.findIteratorBinding("Signoff1Iterator");
    showPopup("credentials"); //will get credential details from user and store in credential Bean
    //Following logic uses the data collected from popup
    EMCredentialReference credRef= credentialBean.getCredReference();
    submitJOb(credRef);
    public static void showPopup(String popupId) {
    FacesContext context = FacesContext.getCurrentInstance();
    StringBuilder script = new StringBuilder();
    script.append("AdfPage.PAGE.findComponent(\"").append(popupId).append("\").show();");
    ExtendedRenderKitService erks =
    Service.getService(context.getRenderKit(),
    ExtendedRenderKitService.class);
    erks.addScript(context, script.toString());
    UIComponent component = context.getViewRoot().findComponent(popupId);
    RequestContext.getCurrentInstance().addPartialTarget(component);
    }

    Well, your work flow is wrong.
    What you try to accomplish should work out of the box as
    1) user hit toolbar button
    2) this opens a popup "credentials" which have listeners for ok and cancel
    3) use fills in data in popup and hit ok or cancel
    4) one of the listeners gets fired
    5a) if OK listener you do your business logic
    5b) if cancel you do something else
    So all you have to do is the use a af:af:showPopupBehavioron the toolbar button, add a popup canel listener (if you need to act on canel) dependign on your popup design (dialog or simple button) add the appropriate listeners and in the listener method so your business logic.
    Timo

  • Binding ADF UI components to managed beans instead of using bindings

    Hi All,
    We are working on a ADF based development project and we have complex data input forms.
    We have close to 200 input forms for different products and each form has different details.
    Requirement is to store the data captured in the input forms as XML in database instead of storing the information in relational tables to avoid creating tables for each of the 200 products.
    We are planning to capture user input in page flow scoped managed beans and when user save the data, generate the XML from managed bean data and store the XML string in DB using ADF BC.
    So we would develop the UI more like a normal J2ee application using JSF where managed beans are used to collect data, and then use ADF BC for database persistence.
    Is it a good practice to bind the managed beans to UI bypassing the bindings? (We can't use bindings as we store data in XML format).

    Hi Alex,
    That is not the right way to get the component, #{it1} is not valid.
    Here is the sample code to get the component by id, but is not recommended as you should know the parent component ids as well and it would be difficult to maintain in long run:
            FacesContext context = FacesContext.getCurrentInstance();
            context.getViewRoot().findComponent("<id>")What is your exact usecase?
    Any specific reason for not using binding property?
    Sireesha

  • Trigger click event on RichLink from Managed Bean

    I want to fire a click event from a managed bean of a RichLink which has a clientListener of click type.
    For this, I have tried many options, but nothing works.
    My problem is that the RichLink doesn't have action and actionListener properties, then I couldn't launch ActionEvent, since doesn't exists.
    I have tried few options:
    //NOT WORKS
    public void option1() {
      RichLink linkF11 = (RichLink) JSFUtils.findComponentInRoot("cil2");
      String script = "var link = AdfPage.PAGE.findComponentByAbsoluteId('"+linkF11.getClientId()+"');" +
                        "link.click();";
      addJavaScript(script;)
    //NOT WORKS
    public void option2() {
      RichLink linkF11 = (RichLink) JSFUtils.findComponentInRoot("cil2");
      String script = "var link = AdfPage.PAGE.findComponentByAbsoluteId('"+linkF11.getClientId()+"');" +
                      "link.queueEvent('click');";
      addJavaScript(script;)
    //NOT WORKS
    public void option3() {
      RichLink linkF11 = (RichLink) JSFUtils.findComponentInRoot("cil2");
      String script = "var link = AdfPage.PAGE.findComponentByAbsoluteId('"+linkF11.getClientId()+"');" +
                      "AdfCustomEvent.queue(link, "tooglePanelSplitter",{}, false);";
      addJavaScript(script;)
    //WORKS -> DOM EVENTS, NOT ADF
    public void option4() {
      RichLink linkF11 = (RichLink) JSFUtils.findComponentInRoot("cil2");
      String script = "var link = document.getElementById('"+linkF11.getClientId()+"');" +
                      "link.click();";
      addJavaScript(script;)
    private void addJavaScript(String script) {
      FacesContext facesContext = FacesContext.getCurrentInstance();
      ExtendedRenderKitService service = (ExtendedRenderKitService) Service.getRenderKitService(facesContext, ExtendedRenderKitService.class);
      service.addScript(facesContext, script);
    Finally, I could find a solution, but I have read that, we should avoid call javascript standard code in ADF.
    jsf code
    <af:link text="Modo Comp." id="cil2"
      partialSubmit="true" styleClass="icon-list-alt"
      shortDesc="Modo Compatibilidad"
      clientComponent="true">
      <af:clientAttribute name="psId" value="#{myBean.psF11.clientId}"/>
      <af:clientListener method="tooglePanelSplitter" type="click"/>
    </af:link>
    javascript code
    function tooglePanelSplitter(event) {
        var psId = event.getSource().getProperty('psId');
        comp = AdfPage.PAGE.findComponent(psId);
        if (comp) {
            comp.setProperty("collapsed", !comp.getProperty("collapsed"));
        }  else {
            alert('not found');
    PS: jdeveloper 12c (12.1.2.0.0)

    I wanted to fire the ClientListener from a managed bean, but finally I have solved executing a new javascript code from managed bean.
    In my first javascript code, I toggle the position of a panelSplitter, and in this new code, I set the position to not collapsed.
    //SOLUTION
    public void option4() {
      String psId = ztBean.getPsF11().getClientId();
      String script = "var psl = document.getElementById('"+psId+"');" +
                      "psl.setCollapsed(false);";
      addJavaScript(script);
    private void addJavaScript(String script) {
      FacesContext facesContext = FacesContext.getCurrentInstance();
      ExtendedRenderKitService service = (ExtendedRenderKitService) Service.getRenderKitService(facesContext, ExtendedRenderKitService.class);
      service.addScript(facesContext, script);

  • Popup from backing bean not using facesContext.addMessage()

    I am creating a popup from backing bean as:
    FacesContext facesContext = FacesContext.getCurrentInstance();
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, null, "some message");
    facesContext.addMessage();
    I want the code after the popup creation to execute after the user clicks "ok" on the popup. But somehow the code after these lines gets executed first & then the popup appears after the control returns from the backing bean. Looks like the popup creation happens in a completely different thread. Is there a way to show the popup immediately where I want instead of this facesContext.addMessage() method where execution can wait for the user action?

    yeah, you can create a component declarative or popup that shows the message personalized, and call with javascript , see my others posts
    Re: Component Poppup declarative - problems with multiple instances
    this functional now with jdev 11.1.1.3.
    Regards
    joaquin

Maybe you are looking for

  • Syncing To-Dos from Mail.app

    Is anything special required to get the ToDos to synch from Mail.app with the iCal server? For example, I can create ToDos, but they're not showing up on my iCal.app. I have an entry in iCal that shows "IMAP" and under it, a calendar for my ToDos, bu

  • Setting thin titlebar on a JFrame

    Hi, I'm using JFrame for my non-modal dialogs. What I want is to be able to set the height of the toolbars to be half of what they currently are, and making corresponding changes to the font used and the minimize\maximize/close buttons so that they f

  • New Camera, Can't Import the Video & Upcoming Dance Recital

    Hello! I just bought a camcorder, a Sony DCR-SR42. When I plug it into my Mac, the computer recognizes it, and I'm able to transfer the data file over USB to my iMovie projects folder. However, neither iMovie nor Quicktime can open the file. When I t

  • Gaps within(!!) songs!

    iTunes iTunes iTunes... This morning I downloaded an album (or several actually) Some songs in one of the albums are full of gaps of ½ second each, here and there. Tried to fix by shuting down iTunes and restart. Don't help. Now, I don't want a ruine

  • Can I record vocals directly into Logic Pro X with my Tascam DR 680?

    I'm connecting via the USB port on the Tascam. I opened up my "Devices" list under "Preferences" in Logic but it doesn't seem to be registering. I thought there might be a driver out there or some other way to make this work. If anybody has any sugge