Hi All,
I am again struggling with popups. I have a submit button which when clicked
does an initial pass of a database and calculates the number of results that
would be returned. If this number is (e.g) > 50 but < 100 I want a warning
popup with the option of continuing or cancelling. if the number > 100 I
want a popup that informs the user to selection is too large. This last
popup would have a single OK button and would cancel the transaction.
My problem is I can get a single popup to work. But I cannot get two popups
to be associated with my submit button. I have been playing around with the
facet name and the popup rendered attribute but without success. I cannot
get popup2 to be displayed. Only the first popup is displayed.
Note the facet names in the below code. There is popup and popup2. If they
are both 'popup 'then JSF throws an exception. Only the one with the name
'popup' will be displayed, but I have seen sample code on this forum where
the facet name is set to 'popup1' and 'popup2'.
<tc:button label="Open Popup" action="#{InputScreenBean.submit}"
id="myButtonId">
<f:facet name="popup">
<tc:popup width="150" height="100" id="popup1"
rendered="#{InputScreenBean.showPopup1}">
<tc:box label="Popup Title 1">
<tc:panel>
<f:facet name="layout">
<tc:gridLayout rows="1*;fixed;" columns="1*;1*" />
</f:facet>
<tc:cell spanX="2">
<tc:out value="Over 100 results returned"></tc:out>
</tc:cell>
<tc:button label="OK" action="#{InputScreenBean.popupAction1}">
<tc:attribute name="popupClose" value="afterSubmit" />
</tc:button>
<tc:button label="Cancel">
<tc:attribute name="popupClose" value="immediate" />
</tc:button>
</tc:panel>
</tc:box>
</tc:popup>
</f:facet>
<f:facet name="popup2">
<tc:popup width="150" height="100" id="popupId_2"
rendered="#{InputScreenBean.showPopup2}">
<tc:box label="Popup Title 2">
<tc:panel>
<f:facet name="layout">
<tc:gridLayout rows="1*;fixed;" columns="1*;1*" />
</f:facet>
<tc:cell spanX="2">
<tc:out value="Hooray 2nd popup shown"></tc:out>
</tc:cell>
<tc:button label="OK" action="#{InputScreenBean.popupAction2}">
<tc:attribute name="popupClose" value="afterSubmit" />
</tc:button>
<tc:button label="Cancel">
<tc:attribute name="popupClose" value="immediate" />
</tc:button>
</tc:panel>
</tc:box>
</tc:popup>
</f:facet>
</tc:button>
Relevant InputScreenBean.java code:
public String popupAction1() {
System.out.println("in popupAction1");
showPopup1 = false;
return "success";
}
public String popupAction2() {
System.out.println("in popupAction");
return "success";
}
public String submit() {
try {
int maxAllowed = 100;
int maxWarnings = 50;
showPopup1 = false;
showPopup2 = false;
System.out.println("numResults is " + numResults);
//if numResults > maxAllowed the popup
//is show, if it is only > maxWarnings no
//popup is shown
int iNumRes = Integer.parseInt(numResults);
if (iNumRes > maxAllowed) {
showPopup1 = true;
return null;
} else if (iNumRes > maxWarnings) {
showPopup2 = true;
return null;
}
} catch (Exception e) {
System.out.println("Error in submit()");
e.printStackTrace();
return "failure";
}
return "success";
}
--
View this message in context:
http://www.nabble.com/-Tobago--choosing-popup-to-display-tp17338603p17338603.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.