How can I get popup window using commandButton in Trinidad?

Posted by vikram on Stack Overflow See other posts from Stack Overflow or by vikram
Published on 2010-03-09T13:53:32Z Indexed on 2010/05/12 15:14 UTC
Read the original article Hit count: 416

Filed under:
|
|

How can I get popup window using commandButton in Trinidad?

My problem is that by clicking on Add button from dialogdemo.jspx, not any popup window or dialog box is opened.

This is dialogdemo.jspx file:

<jsp:root 
    xmlns:jsp="http://java.sun.com/JSP/Page" 
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:tr="http://myfaces.apache.org/trinidad" 
    version="1.2">
    <jsp:directive.page contentType="text/html;charset=utf-8" />
    <f:view>
        <tr:document title="Dialog Demo">
            <tr:form>
                <!--
                    The field for the value; we point partialTriggers at the 
                    button to ensure it gets redrawn when we return
                -->
                <tr:inputText label="Pick a number:" partialTriggers="buttonId"
                    value="#{launchDialog.input}" />
                <!--
                    The button for launching the dialog: we've also configured 
                    the width and height of that window
                -->
                <tr:commandButton text="Add" action="dialog:chooseInteger" 
                    id="buttonId" windowWidth="300" windowHeight="200" 
                    partialSubmit="true" useWindow="true"
                    returnListener="#{launchDialog.returned}" />
            </tr:form>
        </tr:document>
    </f:view>
</jsp:root>

Here is the associated managed bean LaunchDialogBean.java:

package jsfpkg;

import org.apache.myfaces.trinidad.component.UIXInput;
import org.apache.myfaces.trinidad.event.ReturnEvent;

public class LaunchDialogBean {
    private UIXInput _input;

    public UIXInput getInput() {
        return _input;
    }

    public void setInput(UIXInput input) {
        _input = input;
    }

    public void returned(ReturnEvent event) {
        if (event.getReturnValue() != null) {
            getInput().setSubmittedValue(null);
            getInput().setValue(event.getReturnValue());
        }
    }

}

Here is the popup file Popup.jspx:

<jsp:root 
    xmlns:jsp="http://java.sun.com/JSP/Page" 
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:trh="http://myfaces.apache.org/trinidad/html"
    xmlns:tr="http://myfaces.apache.org/trinidad"
    version="2.0">
    <jsp:directive.page contentType="text/html;charset=utf-8" />
    <f:view>
        <tr:document title="Add dialog">
            <tr:form>
                <!-- Two input fields -->
                <tr:panelForm>
                    <tr:inputText label="Number 1:" value="#{chooseInteger.value1}"
                        required="true" />
                    <tr:inputText label="Number 2:" value="#{chooseInteger.value2}"
                        required="true" />
                </tr:panelForm>

                <!-- Two buttons -->
                <tr:panelGroup layout="horizontal">
                    <tr:commandButton text="Submit" action="#{chooseInteger.select}" />
                    <tr:commandButton text="Cancel" immediate="true"
                        action="#{chooseInteger.cancel}" />
                </tr:panelGroup>
            </tr:form>
        </tr:document>
    </f:view>
</jsp:root>

For that I have written the bean ChooseIntegerBean.java

package jsfpkg;

import org.apache.myfaces.trinidad.context.RequestContext;

public class ChooseIntegerBean {

    private Integer _value1;
    private Integer _value2;

    public Integer getValue1() {
        return _value1;
    }

    public void setValue1(Integer value1) {
        _value1 = value1;
    }

    public Integer getValue2() {
        return _value2;
    }

    public void setValue2(Integer value2) {
        _value2 = value2;
    }

    public String cancel() {
        RequestContext.getCurrentInstance().returnFromDialog(null, null);
        return null;
    }

    public String select() {
        Integer value = new Integer(getValue1().intValue() + getValue2().intValue());
        RequestContext.getCurrentInstance().returnFromDialog(value, null);
        return null;
    }

}

Here is my faces-config.xml:

<managed-bean>
    <managed-bean-name>chooseInteger</managed-bean-name>
    <managed-bean-class>jsfpkg.ChooseIntegerBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

<managed-bean>
    <managed-bean-name>launchDialog</managed-bean-name>
    <managed-bean-class>jsfpkg.LaunchDialogBean</managed-bean-class>
    <managed-bean-scope>
        request
    </managed-bean-scope>
</managed-bean>

<navigation-rule>
    <from-view-id>/dialogdemo.jspx</from-view-id>
    <navigation-case>
        <from-outcome>dialog:chooseInteger</from-outcome>
        <to-view-id>/dialogbox.jspx</to-view-id>
    </navigation-case>
</navigation-rule>

© Stack Overflow or respective owner

Related posts about jsf

Related posts about trinidad