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

Christian Bauer christian at hibernate.org
Mon Apr 9 04:43:53 EDT 2007


  User: cbauer  
  Date: 07/04/09 04:43:53

  Added:       examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers  
                        FeedTeasers.java FeedTeasersPreferences.java
  Log:
  Plugin for feed teaser preview
  
  Revision  Changes    Path
  1.1      date: 2007/04/09 08:43:53;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers/FeedTeasers.java
  
  Index: FeedTeasers.java
  ===================================================================
  package org.jboss.seam.wiki.plugin.feedTeasers;
  
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Scope;
  import org.jboss.seam.annotations.In;
  import org.jboss.seam.annotations.Observer;
  import org.jboss.seam.wiki.core.dao.FeedDAO;
  import org.jboss.seam.wiki.core.model.FeedEntry;
  import org.jboss.seam.wiki.core.model.Feed;
  import org.jboss.seam.ScopeType;
  
  import java.io.Serializable;
  import java.util.List;
  
  @Name("feedTeasersPlugin")
  @Scope(ScopeType.PAGE)
  public class FeedTeasers implements Serializable {
  
      @In
      FeedDAO feedDAO;
  
      @In("#{feedTeasersPreferences.properties['numberOfTeasers']}")
      private Long numberOfTeasers;
  
      @In("#{feedTeasersPreferences.properties['feedIdentifier']}")
      private Long feedIdentifier;
  
      private List<FeedEntry> teasers;
  
      public List<FeedEntry> getTeasers() {
          if (teasers  == null) loadTeasers();
          return teasers;
      }
  
      @Observer("Preferences.feedTeasersPreferences")
      public void loadTeasers() {
          Feed feed = feedDAO.findFeed(feedIdentifier);
          teasers = feedDAO.findFeedEntries(feed, numberOfTeasers.intValue());
      }
  
  }
  
  
  
  1.1      date: 2007/04/09 08:43:53;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/feedTeasers/FeedTeasersPreferences.java
  
  Index: FeedTeasersPreferences.java
  ===================================================================
  package org.jboss.seam.wiki.plugin.feedTeasers;
  
  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.PreferenceVisibility;
  import org.jboss.seam.wiki.preferences.Preference;
  import org.jboss.seam.wiki.preferences.PreferenceSupport;
  import org.hibernate.validator.Range;
  
  import java.io.Serializable;
  
  @Name("feedTeasersPreferences")
  @Scope(ScopeType.CONVERSATION)
  @Preference(description = "D. Plugin: Feed Teasers", visibility = PreferenceVisibility.INSTANCE)
  public class FeedTeasersPreferences extends PreferenceSupport implements Serializable {
  
      public String getCurrentUserVariable() { return "currentUser"; }
      public String getCurrentInstanceVariable() { return "currentDocument"; }
  
      @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)
      private Long feedIdentifier;
  
      @Preference(description = "03. Number of feed entries shown in list", visibility = PreferenceVisibility.INSTANCE)
      @Range(min = 3l, max = 25l)
      private Long numberOfTeasers;
  
      @Preference(description = "04. Truncate teaser text after characters", visibility = PreferenceVisibility.INSTANCE)
      @Range(min = 10l, max = 500l)
      private Long truncateDescription;
  
      @Preference(description = "05. Show author name", visibility = PreferenceVisibility.INSTANCE)
      private boolean showAuthor;
  }
  
  
  



More information about the jboss-cvs-commits mailing list