[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