Mainly I use the following class for consistent dialog handling for trinidad:
package de.livemediagroup.dialog;
|
| import java.util.Hashtable;
| import java.util.Map;
|
| import org.apache.myfaces.trinidad.context.RequestContext;
| import org.apache.myfaces.trinidad.event.ReturnEvent;
|
| public final class Dialog {
|
| public static final String CONFIRM = "confirm";
|
| public static final String CANCEL = "cancel";
|
| public static Map createReturnParameterMap() {
| return new Hashtable();
| }
|
| @SuppressWarnings("unchecked")
| public static void cancelDialog() {
| RequestContext.getCurrentInstance().returnFromDialog(CANCEL,
createReturnParameterMap());
| }
|
| @SuppressWarnings("unchecked")
| public static void confirmDialog(Map returnParameters) {
| RequestContext.getCurrentInstance().returnFromDialog(CONFIRM,
returnParameters);
| }
|
| public static boolean isConfirmed(ReturnEvent event) {
| Object returnValue = event.getReturnValue();
| return ((returnValue != null) &&
(returnValue.equals(CONFIRM)));
| }
|
| public static boolean isCanceled(ReturnEvent event) {
| Object returnValue = event.getReturnValue();
| return ((returnValue == null) || (returnValue.equals(CANCEL)));
| }
|
| }
|
when wanting to confirm a dialog i use the following code:
| public void saveUser() {
| Map returnParameters = Dialog.createReturnParameterMap();
| returnParameters.put("user", currentUserInformation);
| Dialog.confirmDialog(returnParameters);
| }
|
a return listener gets activated when returning from my dialog:
| public void processReturn(ReturnEvent event)
| throws AbortProcessingException {
| if (!Dialog.isCanceled(event)) {
| for (Object object :
event.getReturnParameters().values()) {
| PersistableObject pObject = (PersistableObject)
object;
| saveObject(pObject);
| getEntityManager().flush();
| }
| refresh();
| getNotifier().notifyDialogEnd();
| }
| clearHandledEntity();
| }
|
The snippet that activates the dialog, e.g.:
| <tr:commandLink id="editModeCommand" useWindow="true"
|
returnListener="#{model.processReturn}" action="#{model.customize}">
| <f:param
name="conversationPropagation" value="join"/>
| <h:graphicImage
value="/images/gnome-settings.gif" />
| </tr:commandLink>
getNotifier is a simple, yet powerful goodie, because PPR updates can only
occur on components that are below my triggering component. My Notifier is the
first UI component so when I trigger it I can also PPR components which are
before my commandLink that triggers the dialog.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4037388#4037388
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4037388
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user