[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