[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers ...
Christian Bauer
christian at hibernate.org
Sat Dec 29 21:33:21 EST 2007
User: cbauer
Date: 07/12/29 21:33:21
Modified: examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers
FeedTeasers.java FeedTeasersPreferences.java
Added: examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers
FeedTeasersPreferencesSupport.java
Log:
Complete overhaul of the preferences system
Revision Changes Path
1.6 +6 -6 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers/FeedTeasers.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: FeedTeasers.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers/FeedTeasers.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- FeedTeasers.java 19 Dec 2007 04:29:26 -0000 1.5
+++ FeedTeasers.java 30 Dec 2007 02:33:21 -0000 1.6
@@ -11,15 +11,15 @@
import java.io.Serializable;
import java.util.List;
- at Name("feedTeasersPlugin")
+ at Name("feedTeasers")
@Scope(ScopeType.PAGE)
public class FeedTeasers implements Serializable {
@In
FeedDAO feedDAO;
- @In
- FeedTeasersPreferences feedTeasersPreferences;
+ @In("#{preferences.get('FeedTeasers', currentMacro)}")
+ FeedTeasersPreferences prefs;
private List<FeedEntry> teasers;
@@ -28,12 +28,12 @@
return teasers;
}
- @Observer("PreferenceComponent.refresh.feedTeasersPreferences")
+ @Observer(value = "Macro.render.feedTeasers", create = false)
public void loadTeasers() {
teasers =
feedDAO.findLastFeedEntries(
- feedTeasersPreferences.getFeedIdentifier(),
- feedTeasersPreferences.getNumberOfTeasers().intValue()
+ prefs.getFeed(),
+ prefs.getNumberOfTeasers().intValue()
);
}
1.4 +39 -30 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers/FeedTeasersPreferences.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: FeedTeasersPreferences.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers/FeedTeasersPreferences.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- FeedTeasersPreferences.java 17 Aug 2007 13:00:30 -0000 1.3
+++ FeedTeasersPreferences.java 30 Dec 2007 02:33:21 -0000 1.4
@@ -2,55 +2,64 @@
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Range;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.AutoCreate;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.Observer;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.wiki.preferences.Preference;
-import org.jboss.seam.wiki.preferences.PreferenceSupport;
+import org.hibernate.validator.Length;
+import org.jboss.seam.wiki.preferences.annotations.Preferences;
+import org.jboss.seam.wiki.preferences.annotations.PreferenceProperty;
import org.jboss.seam.wiki.preferences.PreferenceVisibility;
import java.io.Serializable;
- at Name("feedTeasersPreferences")
- at Scope(ScopeType.CONVERSATION)
- at AutoCreate
- at Preference(description = "Plugin: Feed Teasers", visibility = PreferenceVisibility.INSTANCE)
-public class FeedTeasersPreferences extends PreferenceSupport implements Serializable {
-
- public String getCurrentUserVariable() { return "currentUser"; }
- public String getCurrentInstanceVariable() { return "currentDocument"; }
+ at Preferences(name = "FeedTeasers", description = "#{messages['feedTeasers.preferences.Name']}")
+public class FeedTeasersPreferences implements Serializable {
- @Observer("PreferenceEditor.refresh.feedTeasersPreferences")
- public void refreshProperties() { super.refreshProperties(); }
-
- @Preference(description = "01. Title of teaser box", visibility = PreferenceVisibility.INSTANCE)
- private String teaserTitle;
-
- @Preference(description = "02. Feed identifier (feedId)", visibility = PreferenceVisibility.INSTANCE)
+ @PreferenceProperty(
+ description = "#{messages['feedTeasers.preferences.Title']}",
+ visibility = {PreferenceVisibility.SYSTEM, PreferenceVisibility.INSTANCE},
+ editorIncludeName = "AdaptiveTextInput"
+ )
+ @Length(min = 0, max = 255)
@NotNull
- private Long feedIdentifier;
+ private String title;
- @Preference(description = "03. Number of feed entries shown in list", visibility = PreferenceVisibility.INSTANCE)
+ @PreferenceProperty(
+ description = "#{messages['feedTeasers.preferences.Feed']}",
+ visibility = {PreferenceVisibility.INSTANCE},
+ editorIncludeName = "SelectOne",
+ templateComponentName = "feedTeasersFeedPreferenceValueTemplate"
+ )
+ private Long feed;
+
+ @PreferenceProperty(
+ description = "#{messages['feedTeasers.preferences.NumberOfTeasers']}",
+ visibility = {PreferenceVisibility.SYSTEM, PreferenceVisibility.INSTANCE},
+ editorIncludeName = "NumberRange"
+ )
@Range(min = 3l, max = 25l)
@NotNull
private Long numberOfTeasers;
- @Preference(description = "04. Truncate teaser text after characters", visibility = PreferenceVisibility.INSTANCE)
+ @PreferenceProperty(
+ description = "#{messages['feedTeasers.preferences.TruncateDescription']}",
+ visibility = {PreferenceVisibility.SYSTEM, PreferenceVisibility.INSTANCE},
+ editorIncludeName = "NumberRange"
+ )
@Range(min = 10l, max = 5000l)
@NotNull
private Long truncateDescription;
- @Preference(description = "05. Show author name", visibility = PreferenceVisibility.INSTANCE)
+ @PreferenceProperty(
+ description = "#{messages['feedTeasers.preferences.ShowAuthor']}",
+ visibility = {PreferenceVisibility.SYSTEM, PreferenceVisibility.INSTANCE}
+ )
+ @NotNull
private Boolean showAuthor;
- public String getTeaserTitle() {
- return teaserTitle;
+ public String getTitle() {
+ return title;
}
- public Long getFeedIdentifier() {
- return feedIdentifier;
+ public Long getFeed() {
+ return feed;
}
public Long getNumberOfTeasers() {
1.1 date: 2007/12/30 02:33:21; author: cbauer; state: Exp;jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers/FeedTeasersPreferencesSupport.java
Index: FeedTeasersPreferencesSupport.java
===================================================================
/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.plugin.feedTeasers;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.wiki.core.feeds.FeedDAO;
import org.jboss.seam.wiki.core.model.Feed;
import org.jboss.seam.wiki.preferences.PreferenceValueTemplate;
import org.jboss.seam.wiki.preferences.metamodel.PreferenceEntity;
import org.jboss.seam.wiki.preferences.metamodel.PreferencesSupport;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.io.Serializable;
/**
* @author Christian Bauer
*/
@Name("feedTeasersPreferencesSupport")
public class FeedTeasersPreferencesSupport extends PreferencesSupport {
public Set<PreferenceEntity> getPreferenceEntities() {
return new HashSet<PreferenceEntity>() {{
add( createPreferenceEntity(FeedTeasersPreferences.class) );
}};
}
@Name("feedTeasersFeedPreferenceValueTemplate")
@Scope(ScopeType.CONVERSATION)
public static class FeedTeasersFeedTemplate implements PreferenceValueTemplate, Serializable {
@In
FeedDAO feedDAO;
List<String> feedIdentifiers;
public List<String> getTemplateValues() {
if (feedIdentifiers == null) {
List<Feed> feeds = feedDAO.findFeeds();
for (Feed feed : feeds) {
feedIdentifiers.add(feed.getId().toString());
}
}
return feedIdentifiers;
}
}
}
More information about the jboss-cvs-commits
mailing list