[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