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

Christian Bauer christian at hibernate.org
Sat Dec 29 21:33:20 EST 2007


  User: cbauer  
  Date: 07/12/29 21:33:20

  Modified:    examples/wiki/src/main/org/jboss/seam/wiki/plugin/dirMenu   
                        DirMenu.java DirMenuPreferences.java
  Added:       examples/wiki/src/main/org/jboss/seam/wiki/plugin/dirMenu   
                        DirMenuPreferencesSupport.java
  Log:
  Complete overhaul of the preferences system
  
  Revision  Changes    Path
  1.4       +19 -16    jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/dirMenu/DirMenu.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: DirMenu.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/dirMenu/DirMenu.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- DirMenu.java	19 Dec 2007 04:29:32 -0000	1.3
  +++ DirMenu.java	30 Dec 2007 02:33:20 -0000	1.4
  @@ -6,14 +6,14 @@
    */
   package org.jboss.seam.wiki.plugin.dirMenu;
   
  -import org.jboss.seam.annotations.Name;
  +import org.jboss.seam.ScopeType;
   import org.jboss.seam.annotations.In;
  -import org.jboss.seam.annotations.Scope;
  +import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Observer;
  -import org.jboss.seam.wiki.core.nestedset.query.NestedSetNodeWrapper;
  +import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.wiki.core.dao.WikiNodeDAO;
   import org.jboss.seam.wiki.core.model.WikiDirectory;
  -import org.jboss.seam.ScopeType;
  +import org.jboss.seam.wiki.core.nestedset.query.NestedSetNodeWrapper;
   
   import java.io.Serializable;
   
  @@ -32,21 +32,24 @@
       @In
       WikiNodeDAO wikiNodeDAO;
   
  -    @In
  -    DirMenuPreferences dirMenuPreferences;
  -/*
  -    NestedSetNodeWrapper<WikiDirectoryNSDelegate> root;
  -
  -    public NestedSetNodeWrapper<WikiDirectoryNSDelegate> getRoot() {
  -        if (root == null) {
  -            refreshRoot();
  -        }
  +    @In("#{preferences.get('DirMenu', currentMacro)}")
  +    DirMenuPreferences prefs;
  +        
  +    NestedSetNodeWrapper<WikiDirectory> root;
  +
  +    public NestedSetNodeWrapper<WikiDirectory> getRoot() {
  +        if (root == null) refreshRoot();
           return root;
       }
   
  -    @Observer("PreferenceComponent.refresh.dirMenuPreferences")
  +    @Observer(value = "Macro.render.dirMenu", create = false)
       public void refreshRoot() {
  -        root = wikiNodeDAO.findWikiDirectoryTree(currentDirectory, dirMenuPreferences.getMenuDepth(), dirMenuPreferences.getMenuLevels(), false);
  +
  +        if (prefs.getOnlyMenuItems() != null && prefs.getOnlyMenuItems()) {
  +            root = wikiNodeDAO.findMenuItemTree(currentDirectory, 3l, 3l, false);
  +        } else {
  +            root = wikiNodeDAO.findWikiDirectoryTree(currentDirectory, 3l, 3l, false);
  +        }
  +
       }
  -    */
   }
  
  
  
  1.3       +43 -21    jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/dirMenu/DirMenuPreferences.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: DirMenuPreferences.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/dirMenu/DirMenuPreferences.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -b -r1.2 -r1.3
  --- DirMenuPreferences.java	31 Aug 2007 13:38:13 -0000	1.2
  +++ DirMenuPreferences.java	30 Dec 2007 02:33:20 -0000	1.3
  @@ -8,42 +8,60 @@
   
   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("dirMenuPreferences")
  - at AutoCreate
  - at Scope(ScopeType.CONVERSATION)
  - at Preference(description = "Plugin: Directory Menu", visibility = PreferenceVisibility.INSTANCE)
  -public class DirMenuPreferences extends PreferenceSupport implements Serializable {
  + at Preferences(name = "DirMenu", description = "#{messages['dirMenu.preferences.Name']}")
  +public class DirMenuPreferences implements Serializable {
   
  -    public String getCurrentUserVariable() { return "currentUser"; }
  -    public String getCurrentInstanceVariable() { return "currentDocument"; }
  -
  -    @Observer("PreferenceEditor.refresh.dirMenuPreferences")
  -    public void refreshProperties() { super.refreshProperties(); }
  +    @PreferenceProperty(
  +        description = "#{messages['dirMenu.preferences.Title']}",
  +        visibility = {PreferenceVisibility.SYSTEM, PreferenceVisibility.INSTANCE},
  +        editorIncludeName = "AdaptiveTextInput"
  +    )
  +    @Length(min = 0, max = 255)
  +    @NotNull
  +    private String title;
   
  -    @Preference(description = "01. Flatten display of menu tree to levels", visibility = PreferenceVisibility.INSTANCE)
  -    @Range(min = 1l, max = 100l)
  +    @PreferenceProperty(
  +        description = "#{messages['dirMenu.preferences.MenuLevels']}",
  +        visibility = {PreferenceVisibility.SYSTEM, PreferenceVisibility.INSTANCE},
  +        editorIncludeName = "NumberRange"
  +    )
  +    @Range(min = 1l, max = 10l)
       @NotNull
       private Long menuLevels;
   
  -    @Preference(description = "02. Maximum depth of menu tree nodes", visibility = PreferenceVisibility.INSTANCE)
  +    @PreferenceProperty(
  +        description = "#{messages['dirMenu.preferences.MenuDepth']}",
  +        visibility = {PreferenceVisibility.SYSTEM, PreferenceVisibility.INSTANCE},
  +        editorIncludeName = "NumberRange"
  +
  +    )
       @Range(min = 1l, max = 100l)
       @NotNull
       private Long menuDepth;
   
  -    @Preference(description = "03. Show 'Subscribe' icon", visibility = PreferenceVisibility.INSTANCE)
  +    @PreferenceProperty(
  +        description = "#{messages['dirMenu.preferences.ShowSubscribeIcon']}",
  +        visibility = PreferenceVisibility.INSTANCE
  +    )
       private Boolean showSubscribeIcon;
   
  +    @PreferenceProperty(
  +            description = "#{messages['dirMenu.preferences.OnlyMenuItems']}",
  +        visibility = PreferenceVisibility.INSTANCE
  +    )
  +    private Boolean onlyMenuItems;
  +
  +    public String getTitle() {
  +        return title;
  +    }
  +
       public Long getMenuLevels() {
           return menuLevels;
       }
  @@ -55,4 +73,8 @@
       public Boolean getShowSubscribeIcon() {
           return showSubscribeIcon;
       }
  +
  +    public Boolean getOnlyMenuItems() {
  +        return onlyMenuItems;
  +    }
   }
  
  
  
  1.1      date: 2007/12/30 02:33:20;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/plugin/dirMenu/DirMenuPreferencesSupport.java
  
  Index: DirMenuPreferencesSupport.java
  ===================================================================
  package org.jboss.seam.wiki.plugin.dirMenu;
  
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.wiki.preferences.metamodel.PreferenceEntity;
  import org.jboss.seam.wiki.preferences.metamodel.PreferencesSupport;
  
  import java.util.HashSet;
  import java.util.Set;
  
  @Name("dirMenuPreferencesSupport")
  public class DirMenuPreferencesSupport extends PreferencesSupport {
  
      public Set<PreferenceEntity> getPreferenceEntities() {
          return new HashSet<PreferenceEntity>() {{
              add( createPreferenceEntity(DirMenuPreferences.class) );
          }};
      }
  
  /* TODO: Too complicated for now...
  
      @Name("dirMenuQualityPreferenceValueTemplate")
      @Scope(ScopeType.CONVERSATION)
      public static class DirMenuQualityTemplate implements PreferenceValueTemplate {
  
          public List<String> getTemplateValues() {
              return Collections.emptyList();
          }
  
          public String getConverterComponentName() {
              return "dirMenuQualityConverter";
          }
      }
  
      @Name("dirMenuQualityConverter")
      @org.jboss.seam.annotations.faces.Converter
      public static class DirMenuQualityConverter implements Converter, Serializable {
  
          public Object getAsObject(javax.faces.context.FacesContext facesContext, UIComponent uiComponent, String s) {
              return s != null ? DirMenuQuality.valueOf(s) : null;
          }
  
          public String getAsString(javax.faces.context.FacesContext facesContext, UIComponent uiComponent, Object o) {
              return o instanceof DirMenuQuality ? ((DirMenuQuality)o).name() : null;
          }
  
      }
      */
  }
  
  
  



More information about the jboss-cvs-commits mailing list