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

Reply via email to