[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