[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action ...

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


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

  Modified:    examples/wiki/src/main/org/jboss/seam/wiki/core/action            
                        PreferenceEditor.java WikiIdentity.java Help.java
                        DirectoryHome.java AdminHome.java
                        PluginPreferenceEditor.java Menu.java UserHome.java
                        Authenticator.java DocumentHome.java
                        CommentHome.java CommentQuery.java
  Log:
  Complete overhaul of the preferences system
  
  Revision  Changes    Path
  1.6       +48 -49    jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/PreferenceEditor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PreferenceEditor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/PreferenceEditor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- PreferenceEditor.java	20 Jun 2007 01:30:36 -0000	1.5
  +++ PreferenceEditor.java	30 Dec 2007 02:33:25 -0000	1.6
  @@ -2,19 +2,18 @@
   
   import org.jboss.seam.annotations.*;
   import org.jboss.seam.ScopeType;
  -import org.jboss.seam.Component;
   import org.jboss.seam.log.Log;
   import org.jboss.seam.faces.FacesMessages;
  -import org.jboss.seam.wiki.preferences.*;
  -import org.jboss.seam.wiki.preferences.PreferenceRegistry;
   import org.jboss.seam.wiki.core.model.User;
  +import org.jboss.seam.wiki.preferences.PreferenceVisibility;
  +import org.jboss.seam.wiki.preferences.PreferenceValue;
  +import org.jboss.seam.wiki.preferences.PreferenceProvider;
  +import org.jboss.seam.wiki.preferences.metamodel.PreferenceEntity;
  +import org.jboss.seam.wiki.preferences.metamodel.PreferenceRegistry;
   import org.hibernate.validator.InvalidValue;
   
   import javax.faces.application.FacesMessage;
  -import java.util.List;
  -import java.util.ArrayList;
  -import java.util.Map;
  -import java.util.HashSet;
  +import java.util.*;
   import java.io.Serializable;
   
   @Name("prefEditor")
  @@ -26,76 +25,76 @@
       @In
       private FacesMessages facesMessages;
   
  -    private User user;
  -    private PreferenceVisibility preferenceVisibility;
  +    @In
  +    PreferenceProvider preferenceProvider;
  +
  +    @In
  +    PreferenceRegistry preferenceRegistry;
   
  -    private PreferenceComponent preferenceComponent;
  +    private User user;
  +    private PreferenceVisibility[] visibilities;
  +    private List<PreferenceEntity> preferenceEntities;
  +    private PreferenceEntity preferenceEntity;
       private List<PreferenceValue> preferenceValues;
       boolean valid = true;
   
       public String save() {
  -        log.debug("saving preference component values");
  -        if (preferenceComponent == null) return null;
  +        log.debug("saving preference values");
  +        if (preferenceEntity == null) return null;
   
           validate();
           if (!valid) return "failed";
   
  -        PreferenceProvider provider = (PreferenceProvider)Component.getInstance("preferenceProvider");
  -        if (preferenceVisibility.equals(PreferenceVisibility.USER)) {
  -            // Store prefs for a user
  -            preferenceValues = new ArrayList<PreferenceValue>(
  -                provider.store(preferenceComponent, new HashSet<PreferenceValue>(preferenceValues), user, null)
  -            );
  -        } else {
  -            // Store system prefs
  -            preferenceValues = new ArrayList<PreferenceValue>(
  -                provider.store(preferenceComponent, new HashSet<PreferenceValue>(preferenceValues), null, null)
  -            );
  -        }
  -        provider.flush();
  +        preferenceProvider.storeValues(new HashSet<PreferenceValue>(preferenceValues), user, null);
  +        preferenceProvider.flush();
  +        log.debug("completed saving of preference values");
   
           return null;
       }
   
       public void validate() {
           log.debug("validating preference component values");
  -        if (preferenceComponent == null) return;
  +        if (preferenceEntity == null) return;
           valid = true;
  -        Map<PreferenceProperty, InvalidValue[]> invalidProperties = preferenceComponent.validate(preferenceValues);
  -        for (Map.Entry<PreferenceProperty, InvalidValue[]> entry : invalidProperties.entrySet()) {
  +        Map<PreferenceEntity.Property, InvalidValue[]> invalidProperties =
  +                preferenceEntity.validate(preferenceValues, Arrays.asList(visibilities));
  +
  +        for (Map.Entry<PreferenceEntity.Property, InvalidValue[]> entry : invalidProperties.entrySet()) {
               for (InvalidValue validationError : entry.getValue()) {
                   valid = false;
   
                   facesMessages.addToControlFromResourceBundleOrDefault(
                       "preferenceValidationErrors",
                       FacesMessage.SEVERITY_ERROR,
  -                    "preferenceValueValidationFailed." + preferenceComponent.getName() + "." + entry.getKey().getName(),
  -                    preferenceComponent.getDescription() + " - '" + entry.getKey().getDescription() + "': " + validationError.getMessage());
  +                    "preferenceValueValidationFailed." + preferenceEntity.getEntityName() + "." + entry.getKey().getFieldName(),
  +                    preferenceEntity.getDescription() + " - '" + entry.getKey().getDescription() + "': " + validationError.getMessage());
               }
           }
       }
   
  -    public void selectPreferenceComponent(PreferenceComponent selectedPreferenceComponent) {
  -        preferenceComponent = selectedPreferenceComponent;
  -
  -        PreferenceProvider provider = (PreferenceProvider)Component.getInstance("preferenceProvider");
  -
  -        if (preferenceVisibility.equals(PreferenceVisibility.USER)) {
  -            // Load prefs for a user
  -            preferenceValues = new ArrayList<PreferenceValue>(provider.load(preferenceComponent, user, null, false));
  -        } else {
  -            // Load system prefs
  -            preferenceValues = new ArrayList<PreferenceValue>(provider.load(preferenceComponent, null, null, true));
  +    public void selectPreferenceEntity(PreferenceEntity selectedPreferenceEntity) {
  +        preferenceEntity = selectedPreferenceEntity;
  +        log.debug("selected preference entity: " + preferenceEntity);
  +        preferenceValues =
  +                new ArrayList<PreferenceValue>(
  +                    preferenceProvider.loadValues(preferenceEntity.getEntityName(),
  +                                                      user,
  +                                                      null,
  +                                                      Arrays.asList(visibilities))
  +                );
           }
  +
  +    private void loadPreferenceEntities() {
  +        preferenceEntities = new ArrayList<PreferenceEntity>(preferenceRegistry.getPreferenceEntities(visibilities));
       }
   
  -    public List<PreferenceComponent> loadPreferenceComponents() {
  -        PreferenceRegistry registry = (PreferenceRegistry)Component.getInstance("preferenceRegistry");
  -        return new ArrayList<PreferenceComponent>(registry.getPreferenceComponents(preferenceVisibility));
  +    public List<PreferenceEntity> getPreferenceEntities() {
  +        if (preferenceEntities == null) loadPreferenceEntities();
  +        return preferenceEntities;
       }
   
  -    public PreferenceComponent getPreferenceComponent() {
  -        return preferenceComponent;
  +    public PreferenceEntity getPreferenceEntity() {
  +        return preferenceEntity;
       }
   
       public List<PreferenceValue> getPreferenceValues() {
  @@ -106,8 +105,8 @@
           this.user = user;
       }
   
  -    public void setPreferenceVisibility(PreferenceVisibility preferenceVisibility) {
  -        this.preferenceVisibility = preferenceVisibility;
  +    public void setVisibilities(PreferenceVisibility[] visibilities) {
  +        this.visibilities = visibilities;
       }
   
       public boolean isValid() {
  
  
  
  1.13      +0 -4      jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiIdentity.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: WikiIdentity.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiIdentity.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -b -r1.12 -r1.13
  --- WikiIdentity.java	19 Dec 2007 04:29:25 -0000	1.12
  +++ WikiIdentity.java	30 Dec 2007 02:33:25 -0000	1.13
  @@ -17,8 +17,6 @@
   import org.jboss.seam.core.Events;
   import org.jboss.seam.security.AuthorizationException;
   import org.jboss.seam.security.Identity;
  -import org.jboss.seam.wiki.core.action.prefs.WikiPreferences;
  -import org.jboss.seam.wiki.core.dao.UserRoleAccessFactory;
   import org.jboss.seam.wiki.core.model.User;
   import org.jboss.seam.wiki.core.model.WikiNode;
   import org.jboss.seam.wiki.core.model.Role;
  @@ -37,7 +35,6 @@
   
       private User currentUser;
       private Integer currentAccessLevel;
  -    private WikiPreferences wikiPrefs;
   
       // We don't care if a user is logged in, just check it...
       public void checkRestriction(String expr) {
  @@ -52,7 +49,6 @@
   
           currentUser = (User)Component.getInstance("currentUser");
           currentAccessLevel = (Integer)Component.getInstance("currentAccessLevel");
  -        wikiPrefs = (WikiPreferences) Component.getInstance("wikiPreferences");
   
           if (args == null || args.length == 0) {
               // All the security checks currently need arguments...
  
  
  
  1.6       +1 -1      jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/Help.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Help.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/Help.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- Help.java	20 Dec 2007 18:35:56 -0000	1.5
  +++ Help.java	30 Dec 2007 02:33:25 -0000	1.6
  @@ -22,7 +22,7 @@
       @In
       WikiNodeDAO wikiNodeDAO;
   
  -    @In
  +    @In("#{preferences.get('Wiki')}")
       WikiPreferences wikiPreferences;
   
       WikiDirectory helpAreaRoot;
  
  
  
  1.25      +6 -1      jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/DirectoryHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: DirectoryHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/DirectoryHome.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -b -r1.24 -r1.25
  --- DirectoryHome.java	20 Dec 2007 12:34:54 -0000	1.24
  +++ DirectoryHome.java	30 Dec 2007 02:33:25 -0000	1.25
  @@ -203,7 +203,12 @@
           getLog().debug("number of children: " + pager.getNumOfRecords());
           if (pager.getNumOfRecords() > 0) {
               getLog().debug("loading children page from: " + pager.getNextRecord() + " size: " + pager.getPageSize());
  -            childNodes = getWikiNodeDAO().findChildren(dir, "createdOn", false, pager.getNextRecord(), pager.getPageSize());
  +            childNodes =
  +                    getWikiNodeDAO().findChildren(
  +                            dir, "createdOn", false,
  +                            new Long(pager.getNextRecord()).intValue(),
  +                            new Long(pager.getPageSize()).intValue()
  +                    );
           }
       }
   
  
  
  
  1.14      +15 -17    jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/AdminHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: AdminHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/AdminHome.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -b -r1.13 -r1.14
  --- AdminHome.java	19 Dec 2007 04:29:25 -0000	1.13
  +++ AdminHome.java	30 Dec 2007 02:33:25 -0000	1.14
  @@ -2,23 +2,20 @@
   
   import org.apache.lucene.index.IndexReader;
   import org.apache.lucene.index.TermEnum;
  -import org.hibernate.Session;
  -import org.hibernate.search.store.DirectoryProvider;
  -import org.hibernate.search.util.ContextHelper;
   import org.hibernate.search.FullTextSession;
  +import org.hibernate.search.store.DirectoryProvider;
   import org.hibernate.validator.ClassValidator;
   import org.hibernate.validator.InvalidValue;
   import org.jboss.seam.Component;
   import org.jboss.seam.ScopeType;
   import org.jboss.seam.annotations.*;
  -import org.jboss.seam.annotations.remoting.WebRemote;
   import org.jboss.seam.annotations.datamodel.DataModel;
   import org.jboss.seam.annotations.datamodel.DataModelSelection;
  +import org.jboss.seam.annotations.remoting.WebRemote;
   import org.jboss.seam.annotations.security.Restrict;
   import org.jboss.seam.contexts.Contexts;
  -import org.jboss.seam.faces.FacesMessages;
   import org.jboss.seam.core.Validators;
  -import org.jboss.seam.core.Events;
  +import org.jboss.seam.faces.FacesMessages;
   import org.jboss.seam.log.Log;
   import org.jboss.seam.security.AuthorizationException;
   import org.jboss.seam.security.Identity;
  @@ -27,17 +24,17 @@
   import org.jboss.seam.wiki.core.search.IndexManager;
   import org.jboss.seam.wiki.core.search.metamodel.SearchRegistry;
   import org.jboss.seam.wiki.core.search.metamodel.SearchableEntity;
  -import org.jboss.seam.wiki.preferences.PreferenceComponent;
  +import org.jboss.seam.wiki.preferences.metamodel.PreferenceEntity;
   import org.jboss.seam.wiki.preferences.PreferenceVisibility;
   import org.jboss.seam.wiki.util.Progress;
   
   import javax.faces.application.FacesMessage;
   import javax.persistence.EntityManager;
  +import java.io.Serializable;
   import java.util.ArrayList;
   import java.util.HashMap;
   import java.util.List;
   import java.util.Map;
  -import java.io.Serializable;
   
   @Name("adminHome")
   @Scope(ScopeType.CONVERSATION)
  @@ -52,8 +49,6 @@
       @In
       EntityManager entityManager;
   
  -    PreferenceEditor preferenceEditor;
  -
       @Create
       public void create() {
           if (!Identity.instance().hasPermission("User", "isAdmin", (User)Component.getInstance("currentUser") ) ) {
  @@ -63,6 +58,7 @@
   
       @Restrict("#{s:hasPermission('User', 'isAdmin', currentUser)}")
       public String update() {
  +        log.debug("updating system settings");
   
           // Preferences
           if (preferenceEditor != null) {
  @@ -70,6 +66,7 @@
               if (editorFailed != null) return null;
           }
   
  +        log.debug("flushing the entityManager (maybe again)");
           entityManager.flush(); // Flush everything (maybe again if prefEditor.save() already flushed)
   
           facesMessages.addFromResourceBundleOrDefault(
  @@ -83,18 +80,19 @@
   
       // ####################### PREFERENCES ##################################
   
  -    @DataModel(value = "systemPreferenceComponents")
  -    private List<PreferenceComponent> systemPreferenceComponents;
  +    PreferenceEditor preferenceEditor;
  +
  +    @DataModel(value = "systemPreferenceEntities")
  +    private List<PreferenceEntity> systemPreferenceEntities;
   
  -    @Factory("systemPreferenceComponents")
  -    public void loadUserPreferenceComponents() {
  +    @Factory("systemPreferenceEntities")
  +    public void initPreferencesEditor() {
           preferenceEditor = (PreferenceEditor)Component.getInstance("prefEditor");
  -        preferenceEditor.setPreferenceVisibility(PreferenceVisibility.SYSTEM);
  -        systemPreferenceComponents = preferenceEditor.loadPreferenceComponents();
  +        preferenceEditor.setVisibilities(new PreferenceVisibility[] {PreferenceVisibility.SYSTEM});
  +        systemPreferenceEntities = preferenceEditor.getPreferenceEntities();
           Contexts.getConversationContext().set("preferenceEditor", preferenceEditor);
       }
   
  -
       // ####################### LINK PROTOCOLS ##################################
   
       @DataModel(value = "linkProtocols")
  
  
  
  1.7       +2 -2      jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/PluginPreferenceEditor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: PluginPreferenceEditor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/PluginPreferenceEditor.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- PluginPreferenceEditor.java	14 Nov 2007 10:55:25 -0000	1.6
  +++ PluginPreferenceEditor.java	30 Dec 2007 02:33:25 -0000	1.7
  @@ -36,7 +36,7 @@
    * @author Christian Bauer
    */
   public class PluginPreferenceEditor implements Serializable {
  -
  +/* TODO: We need to implement a new macro editor
       private String pluginPreferenceName;
       private PreferenceComponent preferenceComponent;
       private List<PreferenceValue> preferenceValues = new ArrayList<PreferenceValue>();
  @@ -125,5 +125,5 @@
           }
       }
   
  -    
  +    */
   }
  
  
  
  1.14      +1 -1      jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/Menu.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Menu.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/Menu.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -b -r1.13 -r1.14
  --- Menu.java	19 Dec 2007 04:29:25 -0000	1.13
  +++ Menu.java	30 Dec 2007 02:33:25 -0000	1.14
  @@ -34,7 +34,7 @@
       @In
       WikiNodeDAO wikiNodeDAO;
   
  -    @In
  +    @In("#{preferences.get('Wiki')}")
       WikiPreferences wikiPreferences;
   
       NestedSetNodeWrapper<WikiDirectory> root;
  
  
  
  1.19      +32 -30    jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: UserHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserHome.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -b -r1.18 -r1.19
  --- UserHome.java	19 Dec 2007 04:29:25 -0000	1.18
  +++ UserHome.java	30 Dec 2007 02:33:25 -0000	1.19
  @@ -6,11 +6,12 @@
    */
   package org.jboss.seam.wiki.core.action;
   
  -import static javax.faces.application.FacesMessage.SEVERITY_INFO;
  -
   import org.jboss.seam.Component;
   import org.jboss.seam.ScopeType;
  -import org.jboss.seam.annotations.*;
  +import org.jboss.seam.annotations.Factory;
  +import org.jboss.seam.annotations.In;
  +import org.jboss.seam.annotations.Name;
  +import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.annotations.datamodel.DataModel;
   import org.jboss.seam.annotations.security.Restrict;
   import org.jboss.seam.contexts.Contexts;
  @@ -24,19 +25,18 @@
   import org.jboss.seam.wiki.core.dao.UserDAO;
   import org.jboss.seam.wiki.core.model.Role;
   import org.jboss.seam.wiki.core.model.User;
  -import org.jboss.seam.wiki.core.model.WikiUpload;
   import org.jboss.seam.wiki.core.model.WikiUploadImage;
  -import org.jboss.seam.wiki.core.upload.UploadType;
   import org.jboss.seam.wiki.core.upload.Uploader;
  -import org.jboss.seam.wiki.preferences.PreferenceComponent;
   import org.jboss.seam.wiki.preferences.PreferenceVisibility;
  +import org.jboss.seam.wiki.preferences.Preferences;
  +import org.jboss.seam.wiki.preferences.metamodel.PreferenceEntity;
   import org.jboss.seam.wiki.util.Hash;
   import org.jboss.seam.wiki.util.WikiUtil;
   
   import javax.faces.application.FacesMessage;
  -import java.util.List;
  +import static javax.faces.application.FacesMessage.SEVERITY_INFO;
   import java.util.ArrayList;
  -import java.util.Map;
  +import java.util.List;
   import java.util.regex.Matcher;
   import java.util.regex.Pattern;
   
  @@ -59,17 +59,13 @@
       private UserDAO userDAO;
   
       @In
  -    private UserManagementPreferences userManagementPreferences;
  -
  -    @In
       private Hash hashUtil;
   
       @In(create = true)
       private Renderer renderer;
   
  -    @DataModel
  -    private List<PreferenceComponent> userPreferenceComponents;
  -    PreferenceEditor preferenceEditor;
  +    @In("#{preferences.get('UserManagement')}")
  +    UserManagementPreferences prefs;
   
       private String oldUsername;
       private String password;
  @@ -97,9 +93,7 @@
               uploader = (Uploader)Component.getInstance("uploader");
   
           } else {
  -            UserManagementPreferences userMgmtPrefs =
  -                    (UserManagementPreferences) Component.getInstance("userManagementPreferences");
  -            if (!userMgmtPrefs.isEnableRegistration() &&
  +            if (!prefs.getEnableRegistration() &&
                   !Identity.instance().hasPermission("User", "isAdmin", Component.getInstance("currentUser"))) {
                   throw new AuthorizationException("User registration is disabled");
               }
  @@ -134,8 +128,9 @@
               getInstance().setActivated(true);
               return super.persist();
           } else {
  +
               // Set activation code (unique user in time)
  -            String seed = getInstance().getUsername() + System.currentTimeMillis() + userManagementPreferences.getActivationCodeSalt();
  +            String seed = getInstance().getUsername() + System.currentTimeMillis() + prefs.getActivationCodeSalt();
               getInstance().setActivationCode( ((Hash)Component.getInstance("hashUtil")).hash(seed) );
   
               String outcome = super.persist();
  @@ -145,7 +140,7 @@
   
                       // Send confirmation email
                       renderer.render("/themes/"
  -                            + ((WikiPreferences)Component.getInstance("wikiPreferences")).getThemeName()
  +                            + ((WikiPreferences) Preferences.getInstance("Wiki")).getThemeName()
                               + "/mailtemplates/confirmationRegistration.xhtml");
   
                       /* For debugging
  @@ -334,15 +329,6 @@
           );
       }
   
  -    @Factory("userPreferenceComponents")
  -    public void loadUserPreferenceComponents() {
  -        preferenceEditor = (PreferenceEditor)Component.getInstance("prefEditor");
  -        preferenceEditor.setPreferenceVisibility(PreferenceVisibility.USER);
  -        preferenceEditor.setUser(getInstance());
  -        userPreferenceComponents = preferenceEditor.loadPreferenceComponents();
  -        Contexts.getConversationContext().set("preferenceEditor", preferenceEditor);
  -    }
  -
       // Validation rules for persist(), update(), and remove();
   
       public boolean passwordAndControlNotNull() {
  @@ -360,14 +346,14 @@
       }
   
       public boolean passwordMatchesRegex() {
  -        Matcher matcher = Pattern.compile(userManagementPreferences.getPasswordRegex()).matcher(getPassword());
  +        Matcher matcher = Pattern.compile(prefs.getPasswordRegex()).matcher(getPassword());
           if (!matcher.find()) {
               facesMessages.addToControlFromResourceBundleOrDefault(
                   "password",
                   FacesMessage.SEVERITY_ERROR,
                   "lacewiki.msg.PasswordDoesntMatchPattern",
                   "Password does not match the pattern: {0}",
  -                userManagementPreferences.getPasswordRegex()
  +                prefs.getPasswordRegex()
               );
               return false;
           }
  @@ -414,4 +400,20 @@
           passwordMatchesControl();
       }
   
  +    // ####################### PREFERENCES ##################################
  +
  +    PreferenceEditor preferenceEditor;
  +
  +    @DataModel(value = "userPreferenceEntities")
  +    private List<PreferenceEntity> userPreferenceEntities;
  +
  +    @Factory("userPreferenceEntities")
  +    public void initPreferencesEditor() {
  +        preferenceEditor = (PreferenceEditor)Component.getInstance("prefEditor");
  +        preferenceEditor.setVisibilities(new PreferenceVisibility[] {PreferenceVisibility.USER});
  +        preferenceEditor.setUser(getInstance());
  +        userPreferenceEntities = preferenceEditor.getPreferenceEntities();
  +        Contexts.getConversationContext().set("preferenceEditor", preferenceEditor);
  +    }
  +
   }
  
  
  
  1.12      +6 -5      jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/Authenticator.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Authenticator.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/Authenticator.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -b -r1.11 -r1.12
  --- Authenticator.java	19 Dec 2007 04:29:25 -0000	1.11
  +++ Authenticator.java	30 Dec 2007 02:33:25 -0000	1.12
  @@ -15,6 +15,7 @@
   import org.jboss.seam.wiki.core.engine.MacroWikiTextRenderer;
   import org.jboss.seam.wiki.util.WikiUtil;
   import org.jboss.seam.wiki.util.Hash;
  +import org.jboss.seam.wiki.preferences.Preferences;
   import org.jboss.seam.ScopeType;
   import org.jboss.seam.Component;
   import org.jboss.seam.log.Log;
  @@ -117,8 +118,8 @@
   
               // Optionally, create home directory
               UserManagementPreferences userMgmtPrefs =
  -                    (UserManagementPreferences)Component.getInstance("userManagementPreferences");
  -            if ( userMgmtPrefs.isCreateHomeAfterUserActivation() ) {
  +                    (UserManagementPreferences) Preferences.getInstance("UserManagement");
  +            if ( userMgmtPrefs.getCreateHomeAfterUserActivation() ) {
                   createHomeDirectory(user);
               }
   
  @@ -160,12 +161,12 @@
           homePage.setCreatedBy(user);
           homePage.setAreaNumber(homeDirectory.getAreaNumber());
           homePage.setContent(
  -            ((UserManagementPreferences)Component.getInstance("userManagementPreferences")).getHomepageDefaultContent()
  +            ((UserManagementPreferences) Preferences.getInstance("UserManagement")).getHomepageDefaultContent()
           );
           homePage.setWriteAccessLevel(Role.ADMINROLE_ACCESSLEVEL);
           homePage.setReadAccessLevel(Role.GUESTROLE_ACCESSLEVEL);
   
  -        MacroWikiTextRenderer renderer = MacroWikiTextRenderer.renderMacros(homeDirectory.getAreaNumber(), homePage.getContent());
  +        MacroWikiTextRenderer renderer = MacroWikiTextRenderer.renderMacros(homePage.getContent());
           homePage.setContentMacros(renderer.getMacros());
           homePage.setContentMacrosString(renderer.getMacrosString());
   
  @@ -196,7 +197,7 @@
        */
       @Factory(value = "currentAccessLevel", scope = ScopeType.SESSION, autoCreate = true)
       public Integer getGuestAccessLevel() {
  -        return ((Role)Component.getInstance("guestRole")).getAccessLevel();
  +        return Role.GUESTROLE_ACCESSLEVEL;
       }
   
   }
  
  
  
  1.39      +15 -15    jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/DocumentHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: DocumentHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/DocumentHome.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -b -r1.38 -r1.39
  --- DocumentHome.java	19 Dec 2007 04:29:25 -0000	1.38
  +++ DocumentHome.java	30 Dec 2007 02:33:25 -0000	1.39
  @@ -23,7 +23,7 @@
   import org.jboss.seam.wiki.core.model.WikiDocument;
   import org.jboss.seam.wiki.core.model.WikiFile;
   import org.jboss.seam.wiki.core.model.FeedEntry;
  -import org.jboss.seam.wiki.preferences.PreferenceProvider;
  +import org.jboss.seam.wiki.preferences.Preferences;
   
   import static javax.faces.application.FacesMessage.SEVERITY_INFO;
   import java.util.*;
  @@ -82,7 +82,7 @@
       public WikiDocument beforeNodeEditNew(WikiDocument doc) {
           doc = super.beforeNodeEditNew(doc);
   
  -        doc.setEnableComments( ((CommentsPreferences)Component.getInstance("commentsPreferences")).getEnableByDefault() );
  +        doc.setEnableComments( ((CommentsPreferences)Preferences.getInstance("Comments")).getEnableByDefault() );
   
           return doc;
       }
  @@ -92,7 +92,7 @@
           doc = super.afterNodeFound(doc);
   
           findHistoricalFiles(doc);
  -        syncMacros(doc.getAreaNumber(), doc);
  +        syncMacros(doc);
           outjectDocumentAndDirectory(doc, getParentNode());
   
           return doc;
  @@ -141,7 +141,7 @@
           // Create feed entries (needs identifiers assigned, so we run after persist())
           if (outcome != null && isPushOnFeeds()) {
               getLog().debug("creating feed entries on parent dirs - and on site feed: " + isPushOnSiteFeed());
  -            isOnSiteFeed = isPushOnSiteFeed();
  +            if (isPushOnSiteFeed()) isOnSiteFeed = true;
   
               FeedEntry feedEntry =
                       ((FeedEntryManager)Component.getInstance(getFeedEntryManagerName())).createFeedEntry(getInstance());
  @@ -165,7 +165,7 @@
   
           // Update feed entries
           if (isPushOnFeeds()) {
  -            isOnSiteFeed = isPushOnSiteFeed();
  +            if (isPushOnSiteFeed()) isOnSiteFeed = true;
   
               FeedEntry feedEntry = feedDAO.findFeedEntry(getInstance());
               if (feedEntry == null) {
  @@ -184,7 +184,7 @@
   
           // Feeds should not be removed by a maintenance thread: If there
           // is no activity on the site, feeds shouldn't be empty but show the last updates.
  -        WikiPreferences wikiPrefs = (WikiPreferences) Component.getInstance("wikiPreferences");
  +        WikiPreferences wikiPrefs = (WikiPreferences) Preferences.getInstance("Wiki");
           Calendar oldestDate = GregorianCalendar.getInstance();
           oldestDate.add(Calendar.DAY_OF_YEAR, -wikiPrefs.getPurgeFeedEntriesAfterDays().intValue());
           feedDAO.purgeOldFeedEntries(oldestDate.getTime());
  @@ -204,8 +204,7 @@
   
               // Reset form
               setMinorRevision(
  -                (Boolean)((DocumentEditorPreferences)Component
  -                    .getInstance("docEditorPreferences")).getProperties().get("minorRevisionEnabled")
  +                ((DocumentEditorPreferences)Preferences.getInstance("DocEditor")).getMinorRevisionEnabled()
               );
           }
   
  @@ -227,9 +226,11 @@
       @Override
       protected boolean beforeRemove() {
   
  +        /* TODO:
           // Delete preferences of this node
           PreferenceProvider provider = (PreferenceProvider) Component.getInstance("preferenceProvider");
           provider.deleteInstancePreferences(getInstance());
  +        */
   
   
           return super.beforeRemove();
  @@ -309,19 +310,19 @@
           getInstance().setTagsCommaSeparated(tagString);
       }
   
  -    private void syncMacros(Long areaNumber, WikiDocument doc) {
  +    private void syncMacros(WikiDocument doc) {
           if (doc.getHeader() != null) {
  -            MacroWikiTextRenderer renderer = MacroWikiTextRenderer.renderMacros(areaNumber, doc.getHeader());
  +            MacroWikiTextRenderer renderer = MacroWikiTextRenderer.renderMacros(doc.getHeader());
               doc.setHeaderMacros(renderer.getMacros());
               doc.setHeaderMacrosString(renderer.getMacrosString());
           }
           if (doc.getContent() != null) {
  -            MacroWikiTextRenderer renderer = MacroWikiTextRenderer.renderMacros(areaNumber, doc.getContent());
  +            MacroWikiTextRenderer renderer = MacroWikiTextRenderer.renderMacros(doc.getContent());
               doc.setContentMacros(renderer.getMacros());
               doc.setContentMacrosString(renderer.getMacrosString());
           }
           if (doc.getFooter() != null) {
  -            MacroWikiTextRenderer renderer = MacroWikiTextRenderer.renderMacros(areaNumber, doc.getFooter());
  +            MacroWikiTextRenderer renderer = MacroWikiTextRenderer.renderMacros(doc.getFooter());
               doc.setFooterMacros(renderer.getMacros());
               doc.setFooterMacrosString(renderer.getMacrosString());
           }
  @@ -335,7 +336,7 @@
               getInstance().setContent(
                   wikiLinkResolver.convertToWikiProtocol(linkTargets, dir.getAreaNumber(), formContent)
               );
  -            syncMacros(dir.getAreaNumber(), getInstance());
  +            syncMacros(getInstance());
           }
       }
   
  @@ -372,8 +373,7 @@
       public boolean isMinorRevision() {
           // Lazily initalize preferences
           if (minorRevision == null)
  -            minorRevision = (Boolean)((DocumentEditorPreferences)Component
  -                    .getInstance("docEditorPreferences")).getProperties().get("minorRevisionEnabled");
  +            minorRevision = ((DocumentEditorPreferences) Preferences.getInstance("DocEditor")).getMinorRevisionEnabled();
           return minorRevision;
       }
       public void setMinorRevision(boolean minorRevision) { this.minorRevision = minorRevision; }
  
  
  
  1.15      +4 -4      jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/CommentHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: CommentHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/CommentHome.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -b -r1.14 -r1.15
  --- CommentHome.java	19 Dec 2007 04:29:25 -0000	1.14
  +++ CommentHome.java	30 Dec 2007 02:33:25 -0000	1.15
  @@ -38,7 +38,7 @@
       @In
       protected FeedDAO feedDAO;
   
  -    @In
  +    @In("#{preferences.get('Comments')}")
       protected CommentsPreferences commentsPreferences;
   
       /* -------------------------- Internal State ------------------------------ */
  @@ -222,14 +222,14 @@
           if (parentCommentId == null || parentCommentId.equals(0l))
               throw new IllegalStateException("Missing parentCommentId request parameter");
   
  -        if (commentsPreferences.getThreadedComments()) {
  +        if (commentsPreferences.getThreaded()) {
               // Override parent from @Create
               setParentNodeId(parentCommentId);
           }
           getLog().debug("reply to comment id: " + parentCommentId);
           newComment();
   
  -        if (commentsPreferences.getThreadedComments()) {
  +        if (commentsPreferences.getThreaded()) {
               getInstance(); // Init
               setReplySubject((WikiComment)getParentNode());
           } else {
  @@ -242,7 +242,7 @@
       public String quote() {
           replyTo();
   
  -        if (commentsPreferences.getThreadedComments()) {
  +        if (commentsPreferences.getThreaded()) {
               setQuotedContent((WikiComment)getParentNode());
           } else {
               setQuotedContent(getWikiNodeDAO().findWikiComment(parentCommentId));
  
  
  
  1.2       +2 -2      jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/CommentQuery.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: CommentQuery.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/CommentQuery.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- CommentQuery.java	19 Dec 2007 04:29:25 -0000	1.1
  +++ CommentQuery.java	30 Dec 2007 02:33:25 -0000	1.2
  @@ -24,7 +24,7 @@
       @In
       protected DocumentHome documentHome;
   
  -    @In
  +    @In("#{preferences.get('Comments')}")
       protected CommentsPreferences commentsPreferences;
   
       protected List<WikiComment> comments;
  @@ -47,7 +47,7 @@
               return;
           }
   
  -        if (commentsPreferences.getThreadedComments() != null && commentsPreferences.getThreadedComments()) {
  +        if (commentsPreferences.getThreaded()) {
               comments = wikiNodeDAO.findWikiCommentsThreaded(documentHome.getInstance());
           } else {
               comments = wikiNodeDAO.findWikiCommentsFlat(documentHome.getInstance(), commentsPreferences.getListAscending());
  
  
  



More information about the jboss-cvs-commits mailing list