[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/blogdirectory ...

Christian Bauer christian at hibernate.org
Mon Apr 2 14:25:04 EDT 2007


  User: cbauer  
  Date: 07/04/02 14:25:04

  Modified:    examples/wiki/src/main/org/jboss/seam/wiki/plugin/blogdirectory  
                        BlogDirectory.java
  Added:       examples/wiki/src/main/org/jboss/seam/wiki/plugin/blogdirectory  
                        BlogDirectoryPreferences.java
  Log:
  Totally overengineered but definitely cool system/user/instance wiki preferences architecture
  
  Revision  Changes    Path
  1.5       +17 -17    jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/blogdirectory/BlogDirectory.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: BlogDirectory.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/blogdirectory/BlogDirectory.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- BlogDirectory.java	21 Mar 2007 21:25:13 -0000	1.4
  +++ BlogDirectory.java	2 Apr 2007 18:25:04 -0000	1.5
  @@ -1,7 +1,7 @@
   package org.jboss.seam.wiki.plugin.blogdirectory;
   
   import org.jboss.seam.annotations.*;
  -import org.jboss.seam.annotations.datamodel.DataModel;
  +import org.jboss.seam.annotations.Observer;
   import org.jboss.seam.ScopeType;
   import org.jboss.seam.wiki.core.dao.NodeDAO;
   import org.jboss.seam.wiki.core.model.Directory;
  @@ -35,18 +35,17 @@
       @RequestParameter
       private Integer year;
   
  -    @DataModel(scope = ScopeType.PAGE)
       private List<BlogEntry> blogEntries;
   
       private String orderByProperty;
       private boolean orderDescending;
       private int totalRowCount;
       private int page;
  -    private int pageSize;
  +    @In("#{blogDirectoryPreferences.properties['pageSize']}")
  +    private long pageSize;
       private Calendar startDate;
       private Calendar endDate;
   
  -    @Factory("blogEntries")
       @Create
       public void initialize() {
           Calendar today = new GregorianCalendar();
  @@ -54,13 +53,9 @@
           if (month == null) month = today.get(Calendar.MONTH);
           if (year == null) year = today.get(Calendar.YEAR);
   
  -        pageSize = 3;
           orderByProperty = "createdOn";
           orderDescending = true;
  -
  -        blogEntries = new ArrayList<BlogEntry>();
  -        queryRowCount();
  -        if (totalRowCount != 0) queryBlogEntries();
  +        refreshBlogEntries();
       }
   
       private void queryRowCount() {
  @@ -77,14 +72,21 @@
           }
       }
   
  -    public int getTotalRowCount() {
  -        return totalRowCount;
  +    @Observer("Preferences.blogDirectoryPreferences")
  +    public void refreshBlogEntries() {
  +        blogEntries = new ArrayList<BlogEntry>();
  +        queryRowCount();
  +        if (totalRowCount != 0) queryBlogEntries();
       }
   
       public List<BlogEntry> getBlogEntries() {
           return blogEntries;
       }
   
  +    public int getTotalRowCount() {
  +        return totalRowCount;
  +    }
  +
       public int getNextPage() {
           return page + 1;
       }
  @@ -97,18 +99,18 @@
           return 0;
       }
   
  -    public int getFirstRow() {
  +    public long getFirstRow() {
           return page * pageSize + 1;
       }
   
  -    public int getLastRow() {
  +    public long getLastRow() {
           return (page * pageSize + pageSize) > totalRowCount
                   ? totalRowCount
                   : page * pageSize + pageSize;
       }
   
  -    public int getLastPage() {
  -        int lastPage = (totalRowCount / pageSize);
  +    public long getLastPage() {
  +        long lastPage = (totalRowCount / pageSize);
           if (totalRowCount % pageSize == 0) lastPage--;
           return lastPage;
       }
  @@ -120,6 +122,4 @@
       public boolean isPreviousPageAvailable() {
           return blogEntries != null && page > 0;
       }
  -
  -
   }
  
  
  
  1.1      date: 2007/04/02 18:25:04;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/blogdirectory/BlogDirectoryPreferences.java
  
  Index: BlogDirectoryPreferences.java
  ===================================================================
  package org.jboss.seam.wiki.plugin.blogdirectory;
  
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Scope;
  import org.jboss.seam.annotations.Observer;
  import org.jboss.seam.ScopeType;
  import org.jboss.seam.wiki.preferences.Preference;
  import org.jboss.seam.wiki.preferences.PreferenceVisibility;
  import org.jboss.seam.wiki.preferences.PreferenceSupport;
  import org.hibernate.validator.Range;
  
  import java.io.Serializable;
  
  @Name("blogDirectoryPreferences")
  @Scope(ScopeType.CONVERSATION)
  @Preference(description = "C. Plugin: Blog Directory", visibility = PreferenceVisibility.INSTANCE)
  public class BlogDirectoryPreferences extends PreferenceSupport implements Serializable {
  
      public String getCurrentUserVariable() { return "currentUser"; }
      public String getCurrentInstanceVariable() { return "currentDocument"; }
  
      @Observer("PreferenceEditor.refresh.blogDirectoryPreferences")
      public void refreshProperties() { super.refreshProperties(); }
  
      @Preference(description = "01. Number of blog entries per page", visibility = PreferenceVisibility.INSTANCE)
      @Range(min = 1l, max = 100l)
      private Long pageSize;
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list