[jboss-cvs] jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/users ...

Christian Bauer christian.bauer at jboss.com
Tue Feb 27 08:21:45 EST 2007


  User: cbauer  
  Date: 07/02/27 08:21:45

  Modified:    examples/wiki/src/org/jboss/seam/wiki/core/users  
                        UserHome.java UserSearch.java
  Log:
  Implemented conversational navigation (not perfect, open JIRA issues)
  
  Revision  Changes    Path
  1.3       +24 -4     jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/users/UserHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: UserHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/users/UserHome.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- UserHome.java	26 Feb 2007 20:59:48 -0000	1.2
  +++ UserHome.java	27 Feb 2007 13:21:45 -0000	1.3
  @@ -4,6 +4,7 @@
   import org.jboss.seam.annotations.*;
   import org.jboss.seam.core.FacesMessages;
   import org.jboss.seam.core.Renderer;
  +import org.jboss.seam.core.Conversation;
   import org.jboss.seam.framework.EntityHome;
   import org.jboss.seam.wiki.core.dao.UserDAO;
   import org.jboss.seam.wiki.core.prefs.GlobalPreferences;
  @@ -29,6 +30,9 @@
       private UserDAO userDAO;
   
       @In(create = true)
  +    private NodeBrowser browser;
  +
  +    @In(create = true)
       private Hash hashUtil;
   
       @In
  @@ -57,7 +61,6 @@
           }
       }
   
  -    @Begin(flushMode = FlushModeType.MANUAL, join = true)
       @Transactional
       public void create() {
           super.create();
  @@ -68,6 +71,23 @@
           oldUsername = getInstance().getUsername();
       }
   
  +    // TODO: Typical exit method to get out of a root or nested conversation, JBSEAM-906
  +    public void exitConversation(Boolean endBeforeRedirect) {
  +        Conversation currentConversation = Conversation.instance();
  +        if (currentConversation.isNested()) {
  +            // End this nested conversation and return to last rendered view-id of parent
  +            currentConversation.endAndRedirect(endBeforeRedirect);
  +        } else {
  +            // End this root conversation
  +            currentConversation.end();
  +            // Return to the view-id that was captured when this conversation started
  +            if (endBeforeRedirect)
  +                browser.redirectToLastBrowsedPage();
  +            else
  +                browser.redirectToLastBrowsedPage();
  +        }
  +    }
  +
       public String persist() {
   
           // Validate
  @@ -107,7 +127,7 @@
                       "A confirmation e-mail has been sent to '" + getInstance().getEmail() + "'. " +
                       "Please read this e-mail to activate your account.");
   
  -                ((NodeBrowser) Component.getInstance(NodeBrowser.class)).redirectToLastBrowsedPageWithConversation();
  +                exitConversation(false);
   
               } catch (Exception ex) {
                   facesMessages.add(FacesMessage.SEVERITY_ERROR, "Couldn't send confirmation email: " + ex.getMessage());
  @@ -151,7 +171,7 @@
           String outcome = super.update();
           if (outcome != null) {
   
  -            if (getInstance().getId().equals(authenticatedUser.getId())) {
  +            if (authenticatedUser != null && getInstance().getId().equals(authenticatedUser.getId())) {
                   // Updated profile of currently logged-in user
                   authenticatedUser = getInstance();
   
  @@ -165,7 +185,7 @@
                       );
                   }
               }
  -            ((NodeBrowser) Component.getInstance(NodeBrowser.class)).redirectToLastBrowsedPageWithConversation();
  +            exitConversation(false);
           }
   
           return outcome;
  
  
  
  1.3       +22 -1     jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/users/UserSearch.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: UserSearch.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/users/UserSearch.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- UserSearch.java	26 Feb 2007 20:59:48 -0000	1.2
  +++ UserSearch.java	27 Feb 2007 13:21:45 -0000	1.3
  @@ -4,7 +4,9 @@
   import org.jboss.seam.annotations.datamodel.DataModel;
   import org.jboss.seam.ScopeType;
   import org.jboss.seam.core.FacesMessages;
  +import org.jboss.seam.core.Conversation;
   import org.jboss.seam.wiki.core.dao.UserDAO;
  +import org.jboss.seam.wiki.core.node.NodeBrowser;
   
   import javax.faces.application.FacesMessage;
   import java.util.List;
  @@ -19,6 +21,9 @@
       @In
       private FacesMessages facesMessages;
   
  +    @In(create = true)
  +    private NodeBrowser browser;
  +
       private User exampleUser;
       private String orderByProperty;
       private boolean orderDescending;
  @@ -32,7 +37,6 @@
       private List<User> usersList;
   
       @Create
  -    @Begin(join = true)
       public void initialize() {
           pageSize = 10;
           maxPageSize = 1000;
  @@ -42,6 +46,23 @@
           ignoreProperties = new String[]{"passwordHash", "activated", "createdOn"};
       }
   
  +    // TODO: Typical exit method to get out of a root or nested conversation, JBSEAM-906
  +    public void exitConversation(Boolean endBeforeRedirect) {
  +        Conversation currentConversation = Conversation.instance();
  +        if (currentConversation.isNested()) {
  +            // End this nested conversation and return to last rendered view-id of parent
  +            currentConversation.endAndRedirect(endBeforeRedirect);
  +        } else {
  +            // End this root conversation
  +            currentConversation.end();
  +            // Return to the view-id that was captured when this conversation started
  +            if (endBeforeRedirect)
  +                browser.redirectToLastBrowsedPage();
  +            else
  +                browser.redirectToLastBrowsedPage();
  +        }
  +    }
  +
       public void find() {
           page = 0;
           queryRowCount();
  
  
  



More information about the jboss-cvs-commits mailing list