/* * JBoss, Home of Professional Open Source * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.seam.wiki.core.action.prefs; import org.hibernate.validator.Length; import org.hibernate.validator.NotNull; import org.hibernate.validator.Range; 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; @Preferences(name = "Wiki", description = "#{messages['lacewiki.preferences.wiki.Name']}") public class WikiPreferences implements Serializable { @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.BaseURL']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "AdaptiveTextInput" ) @Length(min = 8, max = 255) @NotNull private String baseUrl; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.TimeZone']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "SelectOne", templateComponentName = "timeZonePreferenceValueTemplate" ) @Length(min = 3, max = 63) @NotNull private String timeZone; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.ThemeName']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "SelectOne", templateComponentName = "themePreferenceValueTemplate" ) @Length(min = 3, max = 255) @NotNull private String themeName; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.MemberArea']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "SelectOne", templateComponentName = "writeProtectedAreaPreferenceValueTemplate" ) @Length(min = 3, max = 255) @NotNull private String memberArea; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.HelpArea']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "SelectOne", templateComponentName = "writeProtectedAreaPreferenceValueTemplate" ) @Length(min = 3, max = 255) @NotNull private String helpArea; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.TrashArea']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "SelectOne", templateComponentName = "writeProtectedAreaPreferenceValueTemplate" ) @Length(min = 3, max = 255) @NotNull private String trashArea; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.DefaultDocumentId']}", visibility = PreferenceVisibility.SYSTEM ) @NotNull private Long defaultDocumentId; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.RenderPermLinks']}", visibility = PreferenceVisibility.SYSTEM ) private Boolean renderPermlinks; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.PermLinkSuffix']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "AdaptiveTextInput" ) @Length(min = 2, max = 10) @org.hibernate.validator.Pattern(regex="\\.[a-zA-z]+") @NotNull private String permlinkSuffix; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.FeedTitlePrefix']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "AdaptiveTextInput" ) @Length(min = 0, max = 255) @NotNull private String feedTitlePrefix; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.PurgeFeedEntriesAfterDays']}", visibility = PreferenceVisibility.SYSTEM ) @Range(min = 1l, max = 999l) @NotNull private Long purgeFeedEntriesAfterDays; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.ShowSiteFeedInMenu']}", visibility = PreferenceVisibility.SYSTEM ) private Boolean showSiteFeedInMenu; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.AtSymbolReplacement']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "AdaptiveTextInput" ) @Length(min = 1, max = 20) @NotNull private String atSymbolReplacement; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.ShowEmailToLoggedInOnly']}", visibility = PreferenceVisibility.SYSTEM ) private Boolean showEmailToLoggedInOnly; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.MainMenuLevels']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "NumberRange" ) @Range(min = 0l, max = 10l) @NotNull private Long mainMenuLevels; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.MainMenuDepth']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "NumberRange" ) @Range(min = 1l, max = 10l) @NotNull private Long mainMenuDepth; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.MainMenuShowAdminOnly']}", visibility = PreferenceVisibility.SYSTEM ) private Boolean mainMenuShowAdminOnly; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.ShowDocumentCreatorHistory']}", visibility = PreferenceVisibility.SYSTEM ) private Boolean showDocumentCreatorHistory; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.ShowTags']}", visibility = PreferenceVisibility.SYSTEM ) private Boolean showTags; @PreferenceProperty( description = "#{messages['lacewiki.preferences.wiki.WorkspaceSwitcherDescriptionLength']}", visibility = PreferenceVisibility.SYSTEM, editorIncludeName = "NumberRange" ) @Range(min = 3l, max = 100l) @NotNull private Long workspaceSwitcherDescriptionLength; public String getBaseUrl() { return baseUrl; } public String getTimeZone() { return timeZone; } public String getThemeName() { return themeName; } public String getMemberArea() { return memberArea; } public String getHelpArea() { return helpArea; } public String getTrashArea() { return trashArea; } public Long getDefaultDocumentId() { return defaultDocumentId; } public Boolean isRenderPermlinks() { return renderPermlinks; } public String getPermlinkSuffix() { return permlinkSuffix; } public String getFeedTitlePrefix() { return feedTitlePrefix; } public Long getPurgeFeedEntriesAfterDays() { return purgeFeedEntriesAfterDays; } public Boolean getShowSiteFeedInMenu() { return showSiteFeedInMenu; } public String getAtSymbolReplacement() { return atSymbolReplacement; } public Boolean isShowEmailToLoggedInOnly() { return showEmailToLoggedInOnly; } public Long getMainMenuLevels() { return mainMenuLevels; } public Long getMainMenuDepth() { return mainMenuDepth; } public Boolean isMainMenuShowAdminOnly() { return mainMenuShowAdminOnly; } public Boolean getShowDocumentCreatorHistory() { return showDocumentCreatorHistory; } public Boolean getShowTags() { return showTags; } public Long getWorkspaceSwitcherDescriptionLength() { return workspaceSwitcherDescriptionLength; } }