[jboss-cvs] jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node ...
Christian Bauer
christian.bauer at jboss.com
Wed Feb 21 11:24:09 EST 2007
User: cbauer
Date: 07/02/21 11:24:09
Modified: examples/wiki/src/org/jboss/seam/wiki/core/node
DocumentHome.java Menu.java DirectoryHome.java
NodeBrowser.java Node.java
Removed: examples/wiki/src/org/jboss/seam/wiki/core/node
WikiRoot.java
Log:
User registration/login and some security
JBSEAM-870
JBSEAM-871
JBSEAM-874
Revision Changes Path
1.3 +7 -3 jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/DocumentHome.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DocumentHome.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/DocumentHome.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- DocumentHome.java 16 Feb 2007 16:26:44 -0000 1.2
+++ DocumentHome.java 21 Feb 2007 16:24:09 -0000 1.3
@@ -6,6 +6,7 @@
import org.jboss.seam.framework.EntityHome;
import org.jboss.seam.annotations.*;
import org.jboss.seam.wiki.core.links.WikiLinkResolver;
+import org.jboss.seam.wiki.core.dao.NodeDAO;
import org.jboss.seam.core.FacesMessages;
import org.jboss.seam.core.Events;
import org.jboss.seam.ScopeType;
@@ -31,6 +32,9 @@
@In(create=true)
private WikiLinkResolver wikiLinkResolver;
+ @In(create = true)
+ private NodeDAO nodeDAO;
+
private String formContent;
boolean enabledPreview = false;
@@ -142,7 +146,7 @@
.setParameter("wikiname", getInstance().getWikiname())
.getResultList();
if (existingChildren.size() >0) {
- facesMessages.addFromResourceBundle(
+ facesMessages.addToControlFromResourceBundleOrDefault(
"name",
SEVERITY_ERROR,
getMessageKeyPrefix() + "duplicateName",
@@ -157,9 +161,9 @@
private boolean isUniqueWikinameInArea() {
getEntityManager().joinTransaction();
// Unique document name within area
- Document foundDocument = wikiLinkResolver.findDocumentInArea(parentDirectory.getAreaNumber(), getInstance().getWikiname());
+ Document foundDocument = nodeDAO.findDocumentInArea(parentDirectory.getAreaNumber(), getInstance().getWikiname());
if ( foundDocument != null && foundDocument != getInstance()) {
- facesMessages.addFromResourceBundle(
+ facesMessages.addToControlFromResourceBundleOrDefault(
"name",
SEVERITY_ERROR,
getMessageKeyPrefix() + "duplicateNameInArea",
1.3 +0 -6 jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/Menu.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Menu.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/Menu.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- Menu.java 16 Feb 2007 16:26:44 -0000 1.2
+++ Menu.java 21 Feb 2007 16:24:09 -0000 1.3
@@ -2,7 +2,6 @@
import org.jboss.seam.annotations.*;
import org.jboss.seam.ScopeType;
-import org.jboss.seam.Component;
import org.jboss.seam.wiki.core.links.WikiLinkResolver;
import javax.persistence.EntityManager;
@@ -14,9 +13,6 @@
public class Menu {
@In(create = true)
- protected EntityManager entityManager;
-
- @In(create = true)
private Directory wikiRoot;
private List<MenuItem> items;
@@ -35,10 +31,8 @@
* deletion of subtrees).
*/
@Observer("Nodes.menuStructureModified")
- @Transactional
public void refreshMenuItems() {
items = new ArrayList<MenuItem>();
- entityManager.joinTransaction();
for(Node area : wikiRoot.getChildren())
addNodesToMenuTree(items, 0, area);
}
1.3 +5 -11 jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/DirectoryHome.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: DirectoryHome.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/DirectoryHome.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- DirectoryHome.java 16 Feb 2007 16:26:44 -0000 1.2
+++ DirectoryHome.java 21 Feb 2007 16:24:09 -0000 1.3
@@ -1,16 +1,13 @@
package org.jboss.seam.wiki.core.node;
import static javax.faces.application.FacesMessage.SEVERITY_ERROR;
-import static javax.faces.application.FacesMessage.SEVERITY_INFO;
-import javax.faces.application.FacesMessage;
-import javax.faces.context.FacesContext;
import org.jboss.seam.annotations.*;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.framework.EntityHome;
import org.jboss.seam.ScopeType;
-import org.jboss.seam.wiki.core.links.WikiLinkResolver;
+import org.jboss.seam.wiki.core.dao.NodeDAO;
import org.jboss.seam.core.FacesMessages;
import org.jboss.seam.core.Events;
@@ -37,7 +34,7 @@
private FacesMessages facesMessages;
@In(create=true)
- private WikiLinkResolver wikiLinkResolver;
+ private NodeDAO nodeDAO;
@Override
public Object getId() {
@@ -141,7 +138,6 @@
return super.getDeletedMessage() + ": '" + getInstance().getName() + "'";
}
-
public String getCreatedMessage() {
return super.getCreatedMessage() + ": '" + getInstance().getName() + "'";
}
@@ -195,7 +191,7 @@
.setParameter("wikiname", getInstance().getWikiname())
.getResultList();
if (existingChildren.size() >0) {
- facesMessages.addFromResourceBundle(
+ facesMessages.addToControlFromResourceBundleOrDefault(
"name",
SEVERITY_ERROR,
getMessageKeyPrefix() + "duplicateName",
@@ -220,9 +216,9 @@
getEntityManager().joinTransaction();
// Unique directory name within area
Directory foundDirectory =
- wikiLinkResolver.findDirectoryInArea(parentDirectory.getAreaNumber(), getInstance().getWikiname());
+ nodeDAO.findDirectoryInArea(parentDirectory.getAreaNumber(), getInstance().getWikiname());
if (foundDirectory != null && foundDirectory != getInstance()) {
- facesMessages.addFromResourceBundle(
+ facesMessages.addToControlFromResourceBundleOrDefault(
"name",
SEVERITY_ERROR,
getMessageKeyPrefix() + "duplicateNameInArea",
@@ -233,6 +229,4 @@
return true;
}
-
-
}
1.3 +23 -12 jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/NodeBrowser.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: NodeBrowser.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/NodeBrowser.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- NodeBrowser.java 16 Feb 2007 16:26:44 -0000 1.2
+++ NodeBrowser.java 21 Feb 2007 16:24:09 -0000 1.3
@@ -2,7 +2,7 @@
import org.jboss.seam.annotations.*;
import org.jboss.seam.ScopeType;
-import org.jboss.seam.wiki.core.links.WikiLinkResolver;
+import org.jboss.seam.wiki.core.dao.NodeDAO;
import java.util.*;
@@ -12,10 +12,10 @@
* URLs typically mapped and resolved with these classes:
* <p>
* <pre>
- * http://host/ -- rewrite filter --> http://host/docDisplay.seam (DONE)
- * http://host/123.html -- rewrite filter --> http://host/docDisplay.seam?nodeId=123 (DONE)
- * http://host/Foo -- rewrite filter --> http://host/docDisplay.seam?areaName=Foo (PLANNED)
- * http://host/Foo/Bar -- rewrite filter --> http://host/docDisplay.seam?areaName=Foo&nodeName=Bar (PLANNED)
+ * http://host/ -- rewrite filter --> http://host/context/display.seam
+ * http://host/123.html -- rewrite filter --> http://host/context/display.seam?nodeId=123
+ * http://host/Foo -- rewrite filter --> http://host/context/display.seam?areaName=Foo
+ * http://host/Foo/Bar -- rewrite filter --> http://host/context/display.seam?areaName=Foo&nodeName=Bar
* </pre>
* 'Foo' is a WikiName of a directory with a parentless parent (ROOT), we call this a logical area.
* 'Bar' is a WikiName of a node in that logical area, unique within that area subtree.
@@ -31,7 +31,6 @@
@Scope(ScopeType.EVENT)
public class NodeBrowser {
-
@RequestParameter
protected String areaName;
@@ -49,7 +48,7 @@
protected Directory wikiRoot;
@In(create = true)
- protected WikiLinkResolver wikiLinkResolver;
+ protected NodeDAO nodeDAO;
// These are only EVENT scoped, we don't want them to jump from DocumentBrowser to
// DirectoryBrowser over redirects
@@ -88,6 +87,18 @@
redirect.returnToCapturedView();
}
+ public void redirectToLastBrowsedPageWithConversation() {
+ // We don't want to redirect to an action, so if the last browsed page was called with an action, remove it
+ redirect.getParameters().remove("actionOutcome");
+ redirect.getParameters().remove("actionMethod");
+
+ // If the last browsed page had a conversation identifier (we assume of a temporary conversation), remove it
+ redirect.getParameters().remove("cid");
+
+ redirect.returnToCapturedView();
+ }
+
+
// Just a convenience method for recursive calling
protected void addDirectoryToPath(List<Node> path, Node directory) {
path.add(directory);
@@ -106,11 +117,11 @@
if (nodeId != null && !nodeId.equals(wikiRoot.getId())) {
// Try to find a document
- currentDocument = wikiLinkResolver.findDocument(nodeId);
+ currentDocument = nodeDAO.findDocument(nodeId);
// Document not found, see if it is a directory
if (currentDocument == null) {
- currentDirectory = wikiLinkResolver.findDirectory(nodeId);
+ currentDirectory = nodeDAO.findDirectory(nodeId);
// Try to get a default document of that directory
if (currentDirectory != null) currentDocument = currentDirectory.getDefaultDocument();
@@ -124,9 +135,9 @@
} else if (areaName != null && nodeName != null) {
// Try to find the area
- Directory area = wikiLinkResolver.findArea(areaName);
+ Directory area = nodeDAO.findArea(areaName);
if (area != null) {
- Node node = wikiLinkResolver.findNodeInArea(area.getAreaNumber(), nodeName);
+ Node node = nodeDAO.findNodeInArea(area.getAreaNumber(), nodeName);
if (isDirectory(node)) {
currentDirectory = (Directory)node;
currentDocument = currentDirectory.getDefaultDocument();
@@ -138,7 +149,7 @@
// Or have we been called just with an areaName request parameter
} else if (areaName != null) {
- currentDirectory = wikiLinkResolver.findArea(areaName);
+ currentDirectory = nodeDAO.findArea(areaName);
if (currentDirectory != null) currentDocument = currentDirectory.getDefaultDocument();
}
1.3 +7 -8 jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/Node.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Node.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/org/jboss/seam/wiki/core/node/Node.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- Node.java 16 Feb 2007 16:26:44 -0000 1.2
+++ Node.java 21 Feb 2007 16:24:09 -0000 1.3
@@ -1,12 +1,14 @@
package org.jboss.seam.wiki.core.node;
import org.hibernate.validator.Length;
+import org.hibernate.validator.Pattern;
import org.jboss.seam.wiki.core.links.WikiLinkResolver;
import javax.persistence.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Date;
+import java.util.Collections;
import java.io.Serializable;
@Entity
@@ -41,6 +43,7 @@
@Column(name = "NAME", length = 255, nullable = false)
@Length(min = 3, max = 255)
+ @Pattern(regex="[a-zA-Z]?.+", message="Name must start with a letter")
protected String name;
@Column(name = "WIKINAME", length = 255, nullable = false)
@@ -49,8 +52,8 @@
@Column(name = "MENU_ITEM", nullable = false)
protected boolean menuItem;
- @Column(name = "CREATED_ON", nullable = false)
- private Date createdOn;
+ @Column(name = "CREATED_ON", nullable = false, updatable = false)
+ private Date createdOn = new Date();
@Column(name = "LAST_MODIFIED_ON")
private Date lastModifiedOn;
@@ -65,13 +68,11 @@
@OneToMany(cascade = CascadeType.PERSIST)
@JoinColumn(name = "PARENT_NODE_ID", nullable = true)
@org.hibernate.annotations.IndexColumn(name = "NODE_POSITION")
- @org.hibernate.annotations.Filter(name = "Node.onlyMenuItems")
+ // TODO: We are not really using this: @org.hibernate.annotations.Filter(name = "Node.onlyMenuItems")
@org.hibernate.annotations.BatchSize(size = 5)
private List<Node> children = new ArrayList<Node>();
- public Node() {
- this.createdOn = new Date();
- }
+ public Node() {}
public Node(String name) {
this.name = name;
@@ -135,8 +136,6 @@
}
public List<Node> getChildren() {
- // Unfortunately, it needs to be modifiable for the virtual root logic...
- //return Collections.unmodifiableList(children);
return children;
}
More information about the jboss-cvs-commits
mailing list