How can I get popup window using commandButton in Trinidad?
- by vikram
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>