org.opencms.db.CmsUserSettings Maven / Gradle / Ivy
Show all versions of opencms-test Show documentation
/*
* This library is part of OpenCms -
* the Open Source Content Management System
*
* Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* For further information about Alkacon Software GmbH & Co. KG, please see the
* company website: http://www.alkacon.com
*
* For further information about OpenCms, please see the
* project website: http://www.opencms.org
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.opencms.db;
import org.opencms.configuration.CmsDefaultUserSettings;
import org.opencms.configuration.CmsWorkplaceConfiguration;
import org.opencms.configuration.I_CmsXmlConfiguration;
import org.opencms.configuration.preferences.I_CmsPreference;
import org.opencms.file.CmsObject;
import org.opencms.file.CmsResource.CmsResourceCopyMode;
import org.opencms.file.CmsResource.CmsResourceDeleteMode;
import org.opencms.file.CmsUser;
import org.opencms.i18n.CmsLocaleManager;
import org.opencms.main.CmsContextInfo;
import org.opencms.main.CmsException;
import org.opencms.main.CmsLog;
import org.opencms.main.OpenCms;
import org.opencms.report.I_CmsReport;
import org.opencms.synchronize.CmsSynchronizeSettings;
import org.opencms.util.A_CmsModeStringEnumeration;
import org.opencms.util.CmsStringUtil;
import org.opencms.workplace.CmsWorkplace;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import org.apache.commons.logging.Log;
import com.google.common.collect.Maps;
/**
* Object to conveniently access and modify the users workplace settings.
*
* @since 6.0.0
*/
public class CmsUserSettings {
/**
* Enumeration class for workplace search result styles.
*/
public static final class CmsSearchResultStyle extends A_CmsModeStringEnumeration {
/** Workplace search result style explorer view. */
public static final CmsSearchResultStyle STYLE_EXPLORER = new CmsSearchResultStyle(
"explorer",
Messages.GUI_WORKPLACE_SEARCH_STYLE_EXPLORER_0);
/** Workplace search result style list view with excerpts. */
public static final CmsSearchResultStyle STYLE_LIST_WITH_EXCERPTS = new CmsSearchResultStyle(
"list-with-excerpts",
Messages.GUI_WORKPLACE_SEARCH_STYLE_LIST_WITH_EXCERPTS_0);
/** Workplace search result style list view without excerpts. */
public static final CmsSearchResultStyle STYLE_LIST_WITHOUT_EXCERPTS = new CmsSearchResultStyle(
"list-without-excerpts",
Messages.GUI_WORKPLACE_SEARCH_STYLE_LIST_WITHOUT_EXCERPTS_0);
/** Serializable version id. */
private static final long serialVersionUID = 6611568161885127011L;
/** The localization key for this style. */
private final String m_key;
/**
* Private constructor.
*
* @param style the workplace search result style string representation
* @param key the localization key for this style
*/
private CmsSearchResultStyle(String style, String key) {
super(style);
m_key = key;
}
/**
* Returns the copy mode object from the old copy mode integer.
*
* @param mode the old copy mode integer
*
* @return the copy mode object
*/
public static CmsSearchResultStyle valueOf(String mode) {
if (STYLE_LIST_WITHOUT_EXCERPTS.getMode().equals(mode)) {
return STYLE_LIST_WITHOUT_EXCERPTS;
} else if (STYLE_LIST_WITH_EXCERPTS.getMode().equals(mode)) {
return STYLE_LIST_WITH_EXCERPTS;
} else {
return STYLE_EXPLORER;
}
}
/**
* Returns the localization key for this style.
*
* @return the localization key for this style
*/
public String getKey() {
return m_key;
}
}
/** A enum for the different upload variants. */
public enum UploadVariant {
/** The default html upload. */
basic,
/** The gwt upload. */
gwt
}
/** Key for additional info address. */
public static final String ADDITIONAL_INFO_ADDRESS = "USER_ADDRESS";
/** Key for additional info city. */
public static final String ADDITIONAL_INFO_CITY = "USER_TOWN"; // Value must unfortunately still be "USER_TOWN" or existing serialized user information will be lost
/** Key for additional info of resources that were confirmed by the user. */
public static final String ADDITIONAL_INFO_CONFIRMED_RESOURCES = "ADDITIONAL_INFO_CONFIRMED_RESOURCES";
/** Key for additional info address. */
public static final String ADDITIONAL_INFO_COUNTRY = "USER_COUNTRY";
/** Key for additional info default group. */
public static final String ADDITIONAL_INFO_DEFAULTGROUP = "USER_DEFAULTGROUP";
/** Key for additional info address. */
public static final String ADDITIONAL_INFO_DESCRIPTION = "USER_DESCRIPTION";
/** Key for additional info explorer settings. */
public static final String ADDITIONAL_INFO_EXPLORERSETTINGS = "USER_EXPLORERSETTINGS";
/** Key for additional info institution. */
public static final String ADDITIONAL_INFO_INSTITUTION = "USER_INSTITUTION";
/** Key for last password change additional info. */
public static final String ADDITIONAL_INFO_LAST_PASSWORD_CHANGE = "LAST_PASSWORD_CHANGE";
/** Key for last user data check additional info. */
public static final String ADDITIONAL_INFO_LAST_USER_DATA_CHECK = "ADDITIONAL_INFO_LAST_USER_DATA_CHECK";
/** Key for additional info flags. */
public static final String ADDITIONAL_INFO_PREFERENCES = "USER_PREFERENCES";
/** Key for additional info start settings. */
public static final String ADDITIONAL_INFO_STARTSETTINGS = "USER_STARTSETTINGS";
/** Key for additional info time warp. */
public static final String ADDITIONAL_INFO_TIMEWARP = "USER_TIMEWARP";
/** Key for additional info upload applet client folder path. */
public static final String ADDITIONAL_INFO_UPLOADAPPLET_CLIENTFOLDER = "USER_UPLOADAPPLET_CLIENTFOLDER";
/** Key for additional info address. */
public static final String ADDITIONAL_INFO_ZIPCODE = "USER_ZIPCODE";
/** Flag for displaying the date created column. */
public static final int FILELIST_DATE_CREATED = 1024;
/** Flag for displaying the date expired column. */
public static final int FILELIST_DATE_EXPIRED = 8192;
/** Flag for displaying the changed column. */
public static final int FILELIST_DATE_LASTMODIFIED = 4;
/** Flag for displaying the date released column. */
public static final int FILELIST_DATE_RELEASED = 4096;
/** Flag for displaying the locked column. */
public static final int FILELIST_LOCKEDBY = 256;
/** Flag for displaying the name column. */
public static final int FILELIST_NAME = 512;
/** Flag for displaying the navigation text column. */
public static final int FILELIST_NAVTEXT = 64;
/** Flag for displaying the access column. */
public static final int FILELIST_PERMISSIONS = 128;
/** Flag for displaying the size column. */
public static final int FILELIST_SIZE = 8;
/** Flag for displaying the state column. */
public static final int FILELIST_STATE = 16;
/** Flag for displaying the title column. */
public static final int FILELIST_TITLE = 1;
/** Flag for displaying the file type column. */
public static final int FILELIST_TYPE = 2;
/** Flag for displaying the owner column. */
public static final int FILELIST_USER_CREATED = 32;
/** Flag for displaying the user who last modified column. */
public static final int FILELIST_USER_LASTMODIFIED = 2048;
/** Identifier for the login user agreement accepted information. */
public static final String LOGIN_USERAGREEMENT_ACCEPTED = "LOGIN_UA_ACCEPTED";
/** Preference for setting which workplace to open on startup. */
public static final String PREF_WORKPLACE_MODE = "workplaceMode";
/** Identifier prefix for all keys in the user additional info table. */
public static final String PREFERENCES = "USERPREFERENCES_";
/** Prefix for additional info key for user defined preferences. */
public static final String PREFERENCES_ADDITIONAL_PREFIX = PREFERENCES + "additional_";
/** Identifier for the synchronize setting key. */
public static final String SYNC_DESTINATION = "DESTINATION";
/** Identifier for the synchronize setting key. */
public static final String SYNC_ENABLED = "ENABLED";
/** Identifier for the synchronize setting key. */
public static final String SYNC_SETTINGS = "SYNC_SETTINGS_";
/** Identifier for the synchronize setting key. */
public static final String SYNC_VFS_LIST = "VFS_LIST";
/** Preference value for new workplace. */
public static final String WORKPLACE_MODE_NEW = "new";
/** Preference value for new workplace. */
public static final String WORKPLACE_MODE_OLD = "old";
/** The default button style. */
private static final int BUTTONSTYLE_DEFAULT = 1;
/** The default number of entries per page. */
private static final int ENTRYS_PER_PAGE_DEFAULT = 50;
/** The log object for this class. */
private static final Log LOG = CmsLog.getLog(CmsUserSettings.class);
/** Default workplace search index name. */
private static final String SEARCH_INDEX_DEFAULT = "Offline project (VFS)";
/** Map used to store user-defined preferences. */
private Map m_additionalPreferences = new LinkedHashMap();
/** The direct publish setting. */
private boolean m_dialogDirectpublish;
/** The expand inherited permissions setting. */
private boolean m_dialogExpandInheritedPermissions;
/** The expand user permissions setting. */
private boolean m_dialogExpandUserPermissions;
/** The resource copy mode setting. */
private CmsResourceCopyMode m_dialogFileCopy;
/** The resource delete mode setting. */
private CmsResourceDeleteMode m_dialogFileDelete;
/** The folder copy mode setting. */
private CmsResourceCopyMode m_dialogFolderCopy;
/** The inherit permission on folder setting. */
private boolean m_dialogPermissionsInheritOnFolder;
/** The direct edit button setting. */
private int m_directeditButtonStyle;
/** The editor button style setting. */
private int m_editorButtonStyle;
/** The editor settings. */
private SortedMap m_editorSettings;
/** The explorer button style. */
private int m_explorerButtonStyle;
/** The explorer file entries setting. */
private int m_explorerFileEntries;
/** The list of numbers in the preferences dialog, how much entries shown on a page. */
private String m_explorerFileEntryOptions;
/** The explorer setting. */
private int m_explorerSettings;
/** Flag to determine if all projects should be list. */
private boolean m_listAllProjects;
/** The locale.*/
private Locale m_locale;
/** Controls if the "create index page" check box in the new folder dialog should be initially be checked or not. */
private Boolean m_newFolderCreateIndexPage;
/** Controls if the "edit properties" check box in the new folder dialog should be initially be checked or not. */
private Boolean m_newFolderEditProperties;
/** The project. */
private String m_project;
/** Controls appearance of the publish button. */
private String m_publishButtonAppearance;
/** The restricted explorer view setting. */
private boolean m_restrictExplorerView;
/** The show export setting. */
private boolean m_showExportSettings;
/** Flag that controls display of the file upload button. */
private boolean m_showFileUploadButton;
/** The show lock setting. */
private boolean m_showLock;
/** Flag to determine if the publish notifications should be shown. */
private boolean m_showPublishNotification;
/** Controls if the resource type dialog for uploaded resources (not the applet) is shown or not. */
private Boolean m_showUploadTypeDialog;
/** The start folder. */
private String m_startFolder;
/** Contains the key value entries with start setting for different gallery types. */
private SortedMap m_startGalleriesSettings;
/** The start site. */
private String m_startSite;
/** The synchronize settings. */
private CmsSynchronizeSettings m_synchronizeSettings;
/** The custom user surf time. */
private long m_timeWarp;
/** The path of the preselected folder for the upload applet on the client machine. */
private String m_uploadAppletClientFolder;
/** Stores the upload variant enum. */
private UploadVariant m_uploadVariant;
/** The user. */
private CmsUser m_user;
/** The view. */
private String m_view;
/** The workplace button style. */
private int m_workplaceButtonStyle;
/** The workplace report type. */
private String m_workplaceReportType;
/** The name of the search index to use in the workplace. */
private String m_workplaceSearchIndexName;
/** Workplace search result list view style. */
private CmsSearchResultStyle m_workplaceSearchViewStyle;
/**
* Creates an empty new user settings object.
*/
public CmsUserSettings() {
m_workplaceButtonStyle = CmsUserSettings.BUTTONSTYLE_DEFAULT;
m_workplaceReportType = I_CmsReport.REPORT_TYPE_SIMPLE;
m_explorerButtonStyle = CmsUserSettings.BUTTONSTYLE_DEFAULT;
m_explorerFileEntries = CmsUserSettings.ENTRYS_PER_PAGE_DEFAULT;
m_explorerSettings = CmsUserSettings.FILELIST_NAME;
m_editorSettings = new TreeMap();
m_startGalleriesSettings = new TreeMap();
m_showFileUploadButton = true;
m_showPublishNotification = false;
m_listAllProjects = false;
m_uploadVariant = UploadVariant.gwt;
m_publishButtonAppearance = CmsDefaultUserSettings.PUBLISHBUTTON_SHOW_ALWAYS;
m_newFolderCreateIndexPage = Boolean.TRUE;
m_newFolderEditProperties = Boolean.TRUE;
m_showUploadTypeDialog = Boolean.TRUE;
m_workplaceSearchIndexName = SEARCH_INDEX_DEFAULT;
m_workplaceSearchViewStyle = CmsSearchResultStyle.STYLE_EXPLORER;
}
/**
* Creates a user settings object with initialized settings of the current user.
*
* @param cms the OpenCms context
*/
public CmsUserSettings(CmsObject cms) {
this(cms.getRequestContext().getCurrentUser());
}
/**
* Creates a user settings object with initialized settings of the user.
*
* Some default settings will not be set, if no cms object is given.
*
* @param user the current CmsUser
*
* @see #CmsUserSettings(CmsObject)
*/
public CmsUserSettings(CmsUser user) {
init(user);
}
/**
* Gets a configured preference.
*
* @param cms the cms context
* @param key the settings key
* @param useDefault true if we want the default value if no value is configured
*
* @return the preference value
*/
public static String getAdditionalPreference(CmsObject cms, String key, boolean useDefault) {
CmsUser user = cms.getRequestContext().getCurrentUser();
CmsUserSettings settings = new CmsUserSettings(user);
return settings.getAdditionalPreference(key, useDefault);
}
/**
* Sets a configured preference.
*
* @param cms the Cms context
* @param key the setting name
* @param value the value
*/
public static void setAdditionalPreference(CmsObject cms, String key, String value) {
CmsUser user = cms.getRequestContext().getCurrentUser();
CmsUserSettings settings = new CmsUserSettings(user);
settings.setAdditionalPreference(key, value);
try {
settings.save(cms);
} catch (CmsException e) {
LOG.error("Could not store preference " + key + ": " + e.getLocalizedMessage(), e);
}
}
/**
* Gets the value for a user defined preference.
*
* @param name the name of the preference
* @param useDefault true if the default value should be returned in case the preference is not set
*
* @return the preference value
*/
public String getAdditionalPreference(String name, boolean useDefault) {
String value = m_additionalPreferences.get(name);
if ((value == null) && useDefault) {
I_CmsPreference pref = OpenCms.getWorkplaceManager().getDefaultUserSettings().getPreferences().get(name);
if (pref != null) {
value = pref.getDefaultValue();
}
}
return value;
}
/**
* Gets the default copy mode when copying a file of the user.
*
* @return the default copy mode when copying a file of the user
*/
public CmsResourceCopyMode getDialogCopyFileMode() {
return m_dialogFileCopy;
}
/**
* Gets the default copy mode when copying a folder of the user.
*
* @return the default copy mode when copying a folder of the user
*/
public CmsResourceCopyMode getDialogCopyFolderMode() {
return m_dialogFolderCopy;
}
/**
* Returns the default setting for file deletion.
*
* @return the default setting for file deletion
*/
public CmsResourceDeleteMode getDialogDeleteFileMode() {
return m_dialogFileDelete;
}
/**
* Returns the default setting for expanding inherited permissions in the dialog.
*
* @return true if inherited permissions should be expanded, otherwise false
*/
public boolean getDialogExpandInheritedPermissions() {
return m_dialogExpandInheritedPermissions;
}
/**
* Returns the default setting for expanding the users permissions in the dialog.
*
* @return true if the users permissions should be expanded, otherwise false
*/
public boolean getDialogExpandUserPermissions() {
return m_dialogExpandUserPermissions;
}
/**
* Returns the default setting for inheriting permissions on folders.
*
* @return true if permissions should be inherited on folders, otherwise false
*/
public boolean getDialogPermissionsInheritOnFolder() {
return m_dialogPermissionsInheritOnFolder;
}
/**
* Returns the default setting for direct publishing.
*
* @return the default setting for direct publishing: true if siblings should be published, otherwise false
*/
public boolean getDialogPublishSiblings() {
return m_dialogDirectpublish;
}
/**
* Determines if the export part of the secure/export dialog should be shown.
*
* @return true if the export dialog is shown, otherwise false
*/
public boolean getDialogShowExportSettings() {
return m_showExportSettings;
}
/**
* Determines if the lock dialog should be shown.
*
* @return true if the lock dialog is shown, otherwise false
*/
public boolean getDialogShowLock() {
return m_showLock;
}
/**
* Returns the style of the direct edit buttons of the user.
*
* @return the style of the direct edit buttons of the user
*/
public int getDirectEditButtonStyle() {
return m_directeditButtonStyle;
}
/**
* Returns the style of the editor buttons of the user.
*
* @return the style of the editor buttons of the user
*/
public int getEditorButtonStyle() {
return m_editorButtonStyle;
}
/**
* Returns the editor settings of the user.
*
* @return the editor settings of the user
*/
public Map getEditorSettings() {
return m_editorSettings;
}
/**
* Returns the style of the explorer buttons of the user.
*
* @return the style of the explorer buttons of the user
*/
public int getExplorerButtonStyle() {
return m_explorerButtonStyle;
}
/**
* Returns the number of displayed files per page of the user.
*
* @return the number of displayed files per page of the user
*/
public int getExplorerFileEntries() {
return m_explorerFileEntries;
}
/**
* Returns the explorerFileEntryOptions.
*
* @return the explorerFileEntryOptions
*/
public String getExplorerFileEntryOptions() {
return m_explorerFileEntryOptions;
}
/**
* Returns the explorer start settings.
*
* @return the explorer start settings
*/
public int getExplorerSettings() {
return m_explorerSettings;
}
/**
* Returns if all projects should be listed or only the ones in the current ou.
*
* @return true if all projects should be listed, otherwise false
*/
public boolean getListAllProjects() {
return m_listAllProjects;
}
/**
* Returns the locale of the user.
*
* @return the locale of the user
*/
public Locale getLocale() {
return m_locale;
}
/**
* Returns {@link Boolean#TRUE}
if the "create index page" check box in the new folder
* dialog should be initially be checked.
*
* @return {@link Boolean#TRUE}
if the "create index page" check box in the new folder
* dialog should be initially be checked.
*/
public Boolean getNewFolderCreateIndexPage() {
return m_newFolderCreateIndexPage;
}
/**
* Returns {@link Boolean#TRUE}
if the "edit properties" check box in the new folder
* dialog should be initially be checked.
*
* @return {@link Boolean#TRUE}
if the "edit properties" check box in the new folder
* dialog should be initially be checked.
*/
public Boolean getNewFolderEditProperties() {
return m_newFolderEditProperties;
}
/**
* Returns the preferred editor for the given resource type of the user.
*
* @param resourceType the resource type
* @return the preferred editor for the resource type or null, if not specified
*/
public String getPreferredEditor(String resourceType) {
return m_editorSettings.get(resourceType);
}
/**
* Returns the appearance of the "publish project" button.
*
* This can be either {@link CmsDefaultUserSettings#PUBLISHBUTTON_SHOW_ALWAYS},
* {@link CmsDefaultUserSettings#PUBLISHBUTTON_SHOW_AUTO} or
* {@link CmsDefaultUserSettings#PUBLISHBUTTON_SHOW_NEVER}.
*
* @return the appearance of the "publish project" button
*/
public String getPublishButtonAppearance() {
return m_publishButtonAppearance;
}
/**
* Sets if the explorer view is restricted to the defined site and folder.
*
* @return true if the explorer view is restricted, otherwise false
*/
public boolean getRestrictExplorerView() {
return m_restrictExplorerView;
}
/**
* Returns true
if the file upload button should be shown or false
otherwise.
*
* @return the showFileUpload
*/
public boolean getShowFileUploadButton() {
return m_showFileUploadButton;
}
/**
* Returns if the publish notifications should be shown or not.
*
* @return true if the publish notifications should be shown, otherwise false
*/
public boolean getShowPublishNotification() {
return m_showPublishNotification;
}
/**
* Returns {@link Boolean#TRUE}
if the resource type selection dialog should
* be shown in the file upload process (non - applet version).
*
* @return {@link Boolean#TRUE}
if the resource type selection dialog should
* be shown in the file upload process (non - applet version).
*/
public Boolean getShowUploadTypeDialog() {
return m_showUploadTypeDialog;
}
/**
* Returns the start folder of the user.
*
* @return the start folder of the user
*/
public String getStartFolder() {
return m_startFolder;
}
/**
* The start galleries settings of the user.
*
* @return the start galleries settings of the user
*/
public Map getStartGalleriesSettings() {
return m_startGalleriesSettings;
}
/**
* Returns the path to the start gallery of the user.
*
* @param galleryType the type of the gallery
* @return the path to the start gallery or null, if no key
*/
public String getStartGallery(String galleryType) {
return m_startGalleriesSettings.get(galleryType);
}
/**
* Returns the root site path to the start gallery of the user or the constant CmsPreferences.INPUT_DEFAULT.
*
* @param galleryType the type of the gallery
* @param cms Cms object
* @return the root site path to the start gallery or the default key, null if "not set"
*/
public String getStartGallery(String galleryType, CmsObject cms) {
String startGallerySetting = getStartGallery(galleryType);
String pathSetting = null;
// if a custom path to the gallery is selected
if ((startGallerySetting != null) && !startGallerySetting.equals(CmsWorkplace.INPUT_NONE)) {
String sitePath = cms.getRequestContext().removeSiteRoot(startGallerySetting);
if (cms.existsResource(sitePath)) {
pathSetting = startGallerySetting;
} else {
pathSetting = CmsWorkplace.INPUT_DEFAULT;
}
// global default settings
} else if (startGallerySetting == null) {
pathSetting = CmsWorkplace.INPUT_DEFAULT;
}
return pathSetting;
}
/**
* Returns the start project of the user.
*
* @return the start project of the user
*/
public String getStartProject() {
return m_project;
}
/**
* Returns the start site of the user.
*
* @return the start site of the user
*/
public String getStartSite() {
return m_startSite;
}
/**
* Returns the current start view of the user.
*
* @return the current start view of the user
*/
public String getStartView() {
return m_view;
}
/**
* Returns the (optional) workplace synchronize settings.
*
* @return the (optional) workplace synchronize settings
*/
public CmsSynchronizeSettings getSynchronizeSettings() {
return m_synchronizeSettings;
}
/**
* Returns the current users time warp time, or
* {@link org.opencms.main.CmsContextInfo#CURRENT_TIME} if this feature is disabled and the current time
* is used for each user request.
*
* @return the current users time warp time, or
* {@link org.opencms.main.CmsContextInfo#CURRENT_TIME} if this feature is disabled
*/
public long getTimeWarp() {
return m_timeWarp;
}
/**
* Returns the folder path of the upload applet on the client machine.
*
* @return the folder path of the upload applet on the client machine
*/
public String getUploadAppletClientFolder() {
return m_uploadAppletClientFolder;
}
/**
* Returns the uploadVariant.
*
* @return the uploadVariant
*/
public UploadVariant getUploadVariant() {
return m_uploadVariant;
}
/**
* Returns the current user for the settings.
*
* @return the CmsUser
*/
public CmsUser getUser() {
return m_user;
}
/**
* Returns the style of the workplace buttons of the user.
*
* @return the style of the workplace buttons of the user
*/
public int getWorkplaceButtonStyle() {
return m_workplaceButtonStyle;
}
/**
* Returns the type of the report (simple or extended) of the user.
*
* @return the type of the report (simple or extended) of the user
*/
public String getWorkplaceReportType() {
return m_workplaceReportType;
}
/**
* Returns the name of the search index to use in the workplace.
*
* @return the name of the search index to use in the workplace
*/
public String getWorkplaceSearchIndexName() {
return m_workplaceSearchIndexName;
}
/**
* Returns the workplace search result list view style.
*
* @return the workplace search result list view style
*/
public CmsSearchResultStyle getWorkplaceSearchViewStyle() {
return m_workplaceSearchViewStyle;
}
/**
* Initializes the user settings with the given users setting parameters.
*
* @param user the current CmsUser
*/
public void init(CmsUser user) {
m_user = user;
// try to initialize the User Settings with the values stored in the user object.
// if no values are found, the default user settings will be used.
// workplace button style
try {
m_workplaceButtonStyle = ((Integer)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_BUTTONSTYLE)).intValue();
} catch (Throwable t) {
m_workplaceButtonStyle = OpenCms.getWorkplaceManager().getDefaultUserSettings().getWorkplaceButtonStyle();
}
// workplace time warp setting
Object timeWarpObj = m_user.getAdditionalInfo(ADDITIONAL_INFO_TIMEWARP);
try {
m_timeWarp = ((Long)timeWarpObj).longValue();
} catch (ClassCastException e) {
try {
m_timeWarp = Long.parseLong((String)timeWarpObj);
if (m_timeWarp < 0) {
m_timeWarp = CmsContextInfo.CURRENT_TIME;
}
} catch (Throwable t) {
m_timeWarp = CmsContextInfo.CURRENT_TIME;
}
} catch (Throwable t) {
m_timeWarp = CmsContextInfo.CURRENT_TIME;
}
// workplace report type
m_workplaceReportType = (String)m_user.getAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS + CmsWorkplaceConfiguration.N_REPORTTYPE);
if (m_workplaceReportType == null) {
m_workplaceReportType = OpenCms.getWorkplaceManager().getDefaultUserSettings().getWorkplaceReportType();
}
// workplace list all projects
try {
m_listAllProjects = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_LISTALLPROJECTS)).booleanValue();
} catch (Throwable t) {
m_listAllProjects = OpenCms.getWorkplaceManager().getDefaultUserSettings().getListAllProjects();
}
// workplace show publish notification
try {
m_showPublishNotification = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_PUBLISHNOTIFICATION)).booleanValue();
} catch (Throwable t) {
m_showPublishNotification = OpenCms.getWorkplaceManager().getDefaultUserSettings().getShowPublishNotification();
}
// workplace upload applet mode
setUploadVariant(
String.valueOf(
m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_UPLOADAPPLET)));
// locale
Object obj = m_user.getAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS + CmsWorkplaceConfiguration.N_LOCALE);
if (obj == null) {
m_locale = null;
} else {
m_locale = CmsLocaleManager.getLocale(String.valueOf(obj));
}
if (m_locale == null) {
m_locale = OpenCms.getWorkplaceManager().getDefaultUserSettings().getLocale();
}
// start project
try {
m_project = (String)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_PROJECT);
} catch (Throwable t) {
m_project = null;
}
if (m_project == null) {
m_project = OpenCms.getWorkplaceManager().getDefaultUserSettings().getStartProject();
String ou = user.getOuFqn();
if (ou == null) {
ou = "";
}
m_project = user.getOuFqn() + m_project;
}
// start view
m_view = (String)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_WORKPLACEVIEW);
if (m_view == null) {
m_view = OpenCms.getWorkplaceManager().getDefaultUserSettings().getStartView();
}
// explorer button style
try {
m_explorerButtonStyle = ((Integer)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EXPLORERGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_BUTTONSTYLE)).intValue();
} catch (Throwable t) {
m_explorerButtonStyle = OpenCms.getWorkplaceManager().getDefaultUserSettings().getExplorerButtonStyle();
}
// explorer file entries
try {
m_explorerFileEntries = ((Integer)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EXPLORERGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_ENTRIES)).intValue();
} catch (Throwable t) {
m_explorerFileEntries = OpenCms.getWorkplaceManager().getDefaultUserSettings().getExplorerFileEntries();
}
// explorer settings
try {
m_explorerSettings = ((Integer)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EXPLORERGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_EXPLORERDISPLAYOPTIONS)).intValue();
} catch (Throwable t) {
m_explorerSettings = OpenCms.getWorkplaceManager().getDefaultUserSettings().getExplorerSettings();
}
// dialog file copy mode
try {
m_dialogFileCopy = CmsResourceCopyMode.valueOf(
((Integer)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_FILECOPY)).intValue());
} catch (Throwable t) {
m_dialogFileCopy = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogCopyFileMode();
}
// dialog folder copy mode
try {
m_dialogFolderCopy = CmsResourceCopyMode.valueOf(
((Integer)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_FOLDERCOPY)).intValue());
} catch (Throwable t) {
m_dialogFolderCopy = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogCopyFolderMode();
}
// dialog file delete mode
try {
m_dialogFileDelete = CmsResourceDeleteMode.valueOf(
((Integer)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_FILEDELETION)).intValue());
} catch (Throwable t) {
m_dialogFileDelete = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogDeleteFileMode();
}
// dialog direct publish mode
try {
m_dialogDirectpublish = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_DIRECTPUBLISH)).booleanValue();
} catch (Throwable t) {
m_dialogDirectpublish = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogPublishSiblings();
}
// dialog show lock mode
try {
m_showLock = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_SHOWLOCK)).booleanValue();
} catch (Throwable t) {
m_showLock = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogShowLock();
}
// dialog show export settings mode
try {
m_showExportSettings = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_SHOWEXPORTSETTINGS)).booleanValue();
} catch (Throwable t) {
m_showExportSettings = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogShowExportSettings();
}
// dialog permissions inheriting mode
try {
m_dialogPermissionsInheritOnFolder = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_PERMISSIONSINHERITONFOLDER)).booleanValue();
} catch (Throwable t) {
m_dialogPermissionsInheritOnFolder = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogPermissionsInheritOnFolder();
}
// dialog expand inherited permissions mode
try {
m_dialogExpandInheritedPermissions = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_EXPANDPERMISSIONSINHERITED)).booleanValue();
} catch (Throwable t) {
m_dialogExpandInheritedPermissions = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogExpandInheritedPermissions();
}
// dialog expand users permissions mode
try {
m_dialogExpandUserPermissions = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_EXPANDPERMISSIONSUSER)).booleanValue();
} catch (Throwable t) {
m_dialogExpandUserPermissions = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogExpandUserPermissions();
}
// editor button style
try {
m_editorButtonStyle = ((Integer)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EDITORGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_BUTTONSTYLE)).intValue();
} catch (Throwable t) {
m_editorButtonStyle = OpenCms.getWorkplaceManager().getDefaultUserSettings().getEditorButtonStyle();
}
// direct edit button style
try {
m_directeditButtonStyle = ((Integer)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EDITORGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_DIRECTEDITSTYLE)).intValue();
} catch (Throwable t) {
m_directeditButtonStyle = OpenCms.getWorkplaceManager().getDefaultUserSettings().getDirectEditButtonStyle();
}
// editor settings
m_editorSettings = new TreeMap();
Iterator itKeys = m_user.getAdditionalInfo().keySet().iterator();
while (itKeys.hasNext()) {
String key = itKeys.next();
if (key.startsWith(PREFERENCES + CmsWorkplaceConfiguration.N_EDITORPREFERREDEDITORS)) {
String editKey = key.substring(
(PREFERENCES + CmsWorkplaceConfiguration.N_EDITORPREFERREDEDITORS).length());
m_editorSettings.put(editKey, m_user.getAdditionalInfo(key).toString());
}
}
if (m_editorSettings.isEmpty()) {
m_editorSettings = new TreeMap(
OpenCms.getWorkplaceManager().getDefaultUserSettings().getEditorSettings());
}
// start gallery settings
m_startGalleriesSettings = new TreeMap();
Iterator gKeys = m_user.getAdditionalInfo().keySet().iterator();
while (gKeys.hasNext()) {
String key = gKeys.next();
if (key.startsWith(PREFERENCES + CmsWorkplaceConfiguration.N_STARTGALLERIES)) {
String editKey = key.substring((PREFERENCES + CmsWorkplaceConfiguration.N_STARTGALLERIES).length());
m_startGalleriesSettings.put(editKey, m_user.getAdditionalInfo(key).toString());
}
}
if (m_startGalleriesSettings.isEmpty()) {
m_startGalleriesSettings = new TreeMap(
OpenCms.getWorkplaceManager().getDefaultUserSettings().getStartGalleriesSettings());
}
// start site
m_startSite = (String)m_user.getAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS + I_CmsXmlConfiguration.N_SITE);
if (m_startSite == null) {
m_startSite = OpenCms.getWorkplaceManager().getDefaultUserSettings().getStartSite();
}
// start folder, we use the setter here for default logic in case of illegal folder string:
String startFolder = (String)m_user.getAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS + CmsWorkplaceConfiguration.N_FOLDER);
if (startFolder == null) {
startFolder = OpenCms.getWorkplaceManager().getDefaultUserSettings().getStartFolder();
}
setStartFolder(startFolder);
// restrict explorer folder view
try {
m_restrictExplorerView = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_RESTRICTEXPLORERVIEW)).booleanValue();
} catch (Throwable t) {
m_restrictExplorerView = OpenCms.getWorkplaceManager().getDefaultUserSettings().getRestrictExplorerView();
}
// workplace search
m_workplaceSearchIndexName = OpenCms.getWorkplaceManager().getDefaultUserSettings().getWorkplaceSearchIndexName();
m_workplaceSearchViewStyle = CmsSearchResultStyle.valueOf(
(String)m_user.getAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESEARCH
+ CmsWorkplaceConfiguration.N_SEARCHVIEWSTYLE));
if (m_workplaceSearchViewStyle == null) {
m_workplaceSearchViewStyle = OpenCms.getWorkplaceManager().getDefaultUserSettings().getWorkplaceSearchViewStyle();
}
// synchronize settings
try {
boolean enabled = ((Boolean)m_user.getAdditionalInfo(
PREFERENCES + SYNC_SETTINGS + SYNC_ENABLED)).booleanValue();
String destination = (String)m_user.getAdditionalInfo(PREFERENCES + SYNC_SETTINGS + SYNC_DESTINATION);
List vfsList = CmsStringUtil.splitAsList(
(String)m_user.getAdditionalInfo(PREFERENCES + SYNC_SETTINGS + SYNC_VFS_LIST),
'|');
m_synchronizeSettings = new CmsSynchronizeSettings();
m_synchronizeSettings.setEnabled(enabled);
m_synchronizeSettings.setDestinationPathInRfs(destination);
m_synchronizeSettings.setSourceListInVfs(vfsList);
} catch (Throwable t) {
// default is to disable the synchronize settings
m_synchronizeSettings = null;
}
// upload applet client folder path
m_uploadAppletClientFolder = (String)m_user.getAdditionalInfo(ADDITIONAL_INFO_UPLOADAPPLET_CLIENTFOLDER);
for (Map.Entry entry : m_user.getAdditionalInfo().entrySet()) {
String key = entry.getKey();
if (key.startsWith(CmsUserSettings.PREFERENCES_ADDITIONAL_PREFIX)) {
try {
String value = (String)entry.getValue();
m_additionalPreferences.put(
key.substring(CmsUserSettings.PREFERENCES_ADDITIONAL_PREFIX.length()),
value);
} catch (ClassCastException e) {
LOG.warn(e.getLocalizedMessage(), e);
}
}
}
try {
save(null);
} catch (CmsException e) {
// ignore
if (LOG.isWarnEnabled()) {
LOG.warn(e.getLocalizedMessage(), e);
}
}
}
/**
* Saves the changed settings of the user to the users {@link CmsUser#getAdditionalInfo()} map.
*
* If the given CmsObject is null
, the additional user infos are only updated in memory
* and not saved into the database.
*
* @param cms the CmsObject needed to write the user to the db
*
* @throws CmsException if user cannot be written to the db
*/
public void save(CmsObject cms) throws CmsException {
// only set those values that are different than the default values
// if the user info should be written to the database (if the CmsObject != null)
// all values that are equal to the default values must be deleted from the additional info
// user settings.
// workplace button style
if (getWorkplaceButtonStyle() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getWorkplaceButtonStyle()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_BUTTONSTYLE,
new Integer(getWorkplaceButtonStyle()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_BUTTONSTYLE);
}
// workplace report type
if (!getWorkplaceReportType().equals(
OpenCms.getWorkplaceManager().getDefaultUserSettings().getWorkplaceReportType())) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_REPORTTYPE,
getWorkplaceReportType());
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_REPORTTYPE);
}
// workplace upload applet
if (getUploadVariant() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getUploadVariant()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_UPLOADAPPLET,
getUploadVariant().name());
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_UPLOADAPPLET);
}
// list all projects
if (getListAllProjects() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getListAllProjects()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_LISTALLPROJECTS,
Boolean.valueOf(getListAllProjects()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_LISTALLPROJECTS);
}
// publish notification
if (getShowPublishNotification() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getShowPublishNotification()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_PUBLISHNOTIFICATION,
Boolean.valueOf(getShowPublishNotification()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACEGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_PUBLISHNOTIFICATION);
}
// locale
if (!getLocale().equals(OpenCms.getWorkplaceManager().getDefaultUserSettings().getLocale())) {
m_user.setAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS + CmsWorkplaceConfiguration.N_LOCALE,
getLocale().toString());
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_LOCALE);
}
// start project
if (!getStartProject().equals(OpenCms.getWorkplaceManager().getDefaultUserSettings().getStartProject())) {
try {
// be sure the project is valid
if (cms != null) {
cms.readProject(getStartProject());
}
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_PROJECT,
getStartProject());
} catch (Exception e) {
if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_PROJECT);
}
}
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_PROJECT);
}
// view
if (!getStartView().equals(OpenCms.getWorkplaceManager().getDefaultUserSettings().getStartView())) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_WORKPLACEVIEW,
getStartView());
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_WORKPLACEVIEW);
}
// start site
if (!getStartSite().equals(OpenCms.getWorkplaceManager().getDefaultUserSettings().getStartSite())) {
m_user.setAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS + I_CmsXmlConfiguration.N_SITE,
getStartSite());
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS + I_CmsXmlConfiguration.N_SITE);
}
// start folder
if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(getStartFolder())
&& !getStartFolder().equals(OpenCms.getWorkplaceManager().getDefaultUserSettings().getStartFolder())) {
m_user.setAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS + CmsWorkplaceConfiguration.N_FOLDER,
getStartFolder());
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_FOLDER);
}
// restrict explorer folder view
if (getRestrictExplorerView() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getRestrictExplorerView()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_RESTRICTEXPLORERVIEW,
Boolean.valueOf(getRestrictExplorerView()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_WORKPLACESTARTUPSETTINGS
+ CmsWorkplaceConfiguration.N_RESTRICTEXPLORERVIEW);
}
// explorer button style
if (getExplorerButtonStyle() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getExplorerButtonStyle()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EXPLORERGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_BUTTONSTYLE,
new Integer(getExplorerButtonStyle()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EXPLORERGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_BUTTONSTYLE);
}
// explorer file entries
if (getExplorerFileEntries() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getExplorerFileEntries()) {
m_user.setAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_EXPLORERGENERALOPTIONS + CmsWorkplaceConfiguration.N_ENTRIES,
new Integer(getExplorerFileEntries()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_EXPLORERGENERALOPTIONS + CmsWorkplaceConfiguration.N_ENTRIES);
}
// explorer settings
if (getExplorerSettings() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getExplorerSettings()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EXPLORERGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_EXPLORERDISPLAYOPTIONS,
new Integer(getExplorerSettings()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EXPLORERGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_EXPLORERDISPLAYOPTIONS);
}
// dialog file copy mode
if (getDialogCopyFileMode() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogCopyFileMode()) {
m_user.setAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS + CmsWorkplaceConfiguration.N_FILECOPY,
new Integer(getDialogCopyFileMode().getMode()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_FILECOPY);
}
// dialog folder copy mode
if (getDialogCopyFolderMode() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogCopyFolderMode()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_FOLDERCOPY,
new Integer(getDialogCopyFolderMode().getMode()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_FOLDERCOPY);
}
// dialog file delete mode
if (getDialogDeleteFileMode() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogDeleteFileMode()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_FILEDELETION,
new Integer(getDialogDeleteFileMode().getMode()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_FILEDELETION);
}
// dialog direct publish mode
if (getDialogPublishSiblings() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogPublishSiblings()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_DIRECTPUBLISH,
Boolean.valueOf(getDialogPublishSiblings()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_DIRECTPUBLISH);
}
// dialog show lock mode
if (getDialogShowLock() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogShowLock()) {
m_user.setAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS + CmsWorkplaceConfiguration.N_SHOWLOCK,
Boolean.valueOf(getDialogShowLock()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_SHOWLOCK);
}
// dialog permissions inheritation mode
if (getDialogPermissionsInheritOnFolder() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogPermissionsInheritOnFolder()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_PERMISSIONSINHERITONFOLDER,
Boolean.valueOf(getDialogPermissionsInheritOnFolder()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_PERMISSIONSINHERITONFOLDER);
}
// dialog expand inherited permissions mode
if (getDialogExpandInheritedPermissions() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogExpandInheritedPermissions()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_EXPANDPERMISSIONSINHERITED,
Boolean.valueOf(getDialogExpandInheritedPermissions()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_EXPANDPERMISSIONSINHERITED);
}
// dialog expand users permissions mode
if (getDialogExpandUserPermissions() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getDialogExpandUserPermissions()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_EXPANDPERMISSIONSUSER,
Boolean.valueOf(getDialogExpandUserPermissions()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_DIALOGSDEFAULTSETTINGS
+ CmsWorkplaceConfiguration.N_EXPANDPERMISSIONSUSER);
}
// editor button style
if (getEditorButtonStyle() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getEditorButtonStyle()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EDITORGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_BUTTONSTYLE,
new Integer(getEditorButtonStyle()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EDITORGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_BUTTONSTYLE);
}
// direct edit button style
if (getDirectEditButtonStyle() != OpenCms.getWorkplaceManager().getDefaultUserSettings().getDirectEditButtonStyle()) {
m_user.setAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EDITORGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_DIRECTEDITSTYLE,
new Integer(getDirectEditButtonStyle()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(
PREFERENCES
+ CmsWorkplaceConfiguration.N_EDITORGENERALOPTIONS
+ CmsWorkplaceConfiguration.N_DIRECTEDITSTYLE);
}
// editor settings
if (m_editorSettings.size() > 0) {
Iterator> itEntries = m_editorSettings.entrySet().iterator();
while (itEntries.hasNext()) {
Map.Entry entry = itEntries.next();
if (entry.getValue() != null) {
m_user.setAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_EDITORPREFERREDEDITORS + entry.getKey(),
entry.getValue());
} else {
m_user.deleteAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_EDITORPREFERREDEDITORS + entry.getKey());
}
}
} else if (cms != null) {
Iterator itKeys = m_user.getAdditionalInfo().keySet().iterator();
List keysToDelete = new ArrayList(3);
while (itKeys.hasNext()) {
String key = itKeys.next();
if (key.startsWith(PREFERENCES + CmsWorkplaceConfiguration.N_EDITORPREFERREDEDITORS)) {
keysToDelete.add(key);
}
}
for (String key : keysToDelete) {
m_user.deleteAdditionalInfo(key);
}
}
// start settings for galleries
if (m_startGalleriesSettings.size() > 0) {
Iterator> itEntries = m_startGalleriesSettings.entrySet().iterator();
while (itEntries.hasNext()) {
Map.Entry entry = itEntries.next();
if ((entry.getValue() != null) && !entry.getValue().equals(CmsWorkplace.INPUT_DEFAULT)) {
m_user.setAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_STARTGALLERIES + entry.getKey(),
entry.getValue());
} else {
// delete from user settings if value of the entry is null or "default"
m_user.deleteAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_STARTGALLERIES + entry.getKey());
}
}
} else if (cms != null) {
Iterator itKeys = m_user.getAdditionalInfo().keySet().iterator();
while (itKeys.hasNext()) {
String key = itKeys.next();
if (key.startsWith(PREFERENCES + CmsWorkplaceConfiguration.N_STARTGALLERIES)) {
m_user.deleteAdditionalInfo(key);
}
}
}
// workplace search
if (getWorkplaceSearchViewStyle() != null) {
m_user.setAdditionalInfo(
PREFERENCES + CmsWorkplaceConfiguration.N_WORKPLACESEARCH + CmsWorkplaceConfiguration.N_SEARCHVIEWSTYLE,
getWorkplaceSearchViewStyle().toString());
}
// synchronize settings
if (getSynchronizeSettings() != null) {
m_user.setAdditionalInfo(
PREFERENCES + SYNC_SETTINGS + SYNC_ENABLED,
Boolean.valueOf(getSynchronizeSettings().isEnabled()));
m_user.setAdditionalInfo(
PREFERENCES + SYNC_SETTINGS + SYNC_DESTINATION,
getSynchronizeSettings().getDestinationPathInRfs());
m_user.setAdditionalInfo(
PREFERENCES + SYNC_SETTINGS + SYNC_VFS_LIST,
CmsStringUtil.collectionAsString(getSynchronizeSettings().getSourceListInVfs(), "|"));
} else {
m_user.deleteAdditionalInfo(PREFERENCES + SYNC_SETTINGS + SYNC_ENABLED);
m_user.deleteAdditionalInfo(PREFERENCES + SYNC_SETTINGS + SYNC_DESTINATION);
m_user.deleteAdditionalInfo(PREFERENCES + SYNC_SETTINGS + SYNC_VFS_LIST);
}
// upload applet client folder path
if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(m_uploadAppletClientFolder)) {
m_user.setAdditionalInfo(ADDITIONAL_INFO_UPLOADAPPLET_CLIENTFOLDER, m_uploadAppletClientFolder);
} else {
m_user.deleteAdditionalInfo(ADDITIONAL_INFO_UPLOADAPPLET_CLIENTFOLDER);
}
// workplace user surf time (time warp)
if (getTimeWarp() != CmsContextInfo.CURRENT_TIME) {
m_user.setAdditionalInfo(ADDITIONAL_INFO_TIMEWARP, new Long(getTimeWarp()));
} else if (cms != null) {
m_user.deleteAdditionalInfo(ADDITIONAL_INFO_TIMEWARP);
}
Set additionalInfosToDelete = new HashSet();
for (String key : m_user.getAdditionalInfo().keySet()) {
if (key.startsWith(PREFERENCES_ADDITIONAL_PREFIX)
&& !m_additionalPreferences.containsKey(key.substring(PREFERENCES_ADDITIONAL_PREFIX.length()))) {
additionalInfosToDelete.add(key);
}
}
for (String key : additionalInfosToDelete) {
m_user.deleteAdditionalInfo(key);
}
for (Map.Entry entry : m_additionalPreferences.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
m_user.setAdditionalInfo(PREFERENCES_ADDITIONAL_PREFIX + key, value);
}
// only write the updated user to the DB if we have the cms object
if (cms != null) {
cms.writeUser(m_user);
}
}
/**
* Sets an additional preference value.
*
* @param name the additional preference name
* @param value the preference value
*/
public void setAdditionalPreference(String name, String value) {
if (value == null) {
m_additionalPreferences.remove(name);
} else {
m_additionalPreferences.put(name, value);
}
}
/**
* Sets this settings object's additional preferences to that of another one.
*
* @param userSettings the user settings
*/
public void setAdditionalPreferencesFrom(CmsUserSettings userSettings) {
m_additionalPreferences = Maps.newLinkedHashMap(userSettings.m_additionalPreferences);
}
/**
* Sets the default copy mode when copying a file of the user.
*
* @param mode the default copy mode when copying a file of the user
*/
public void setDialogCopyFileMode(CmsResourceCopyMode mode) {
m_dialogFileCopy = mode;
}
/**
* Sets the default copy mode when copying a folder of the user.
*
* @param mode the default copy mode when copying a folder of the user
*/
public void setDialogCopyFolderMode(CmsResourceCopyMode mode) {
m_dialogFolderCopy = mode;
}
/**
* Sets the default setting for file deletion.
*
* @param mode the default setting for file deletion
*/
public void setDialogDeleteFileMode(CmsResourceDeleteMode mode) {
m_dialogFileDelete = mode;
}
/**
* Sets the default setting for expanding inherited permissions in the dialog.
*
* @param dialogShowInheritedPermissions the default setting for expanding inherited permissions in the dialog
*/
public void setDialogExpandInheritedPermissions(boolean dialogShowInheritedPermissions) {
m_dialogExpandInheritedPermissions = dialogShowInheritedPermissions;
}
/**
* Sets the default setting for expanding the users permissions in the dialog.
*
* @param dialogShowUserPermissions the default setting for expanding the users permissions in the dialog
*/
public void setDialogExpandUserPermissions(boolean dialogShowUserPermissions) {
m_dialogExpandUserPermissions = dialogShowUserPermissions;
}
/**
* Sets the default setting for inheriting permissions on folders.
*
* @param dialogPermissionsInheritOnFolder the default setting for inheriting permissions on folders
*/
public void setDialogPermissionsInheritOnFolder(boolean dialogPermissionsInheritOnFolder) {
m_dialogPermissionsInheritOnFolder = dialogPermissionsInheritOnFolder;
}
/**
* Sets the default setting for direct publishing.
*
* @param publishSiblings the default setting for direct publishing: true if siblings should be published, otherwise false
*/
public void setDialogPublishSiblings(boolean publishSiblings) {
m_dialogDirectpublish = publishSiblings;
}
/**
* Sets if the export setting part of the secure/export dialog should be shown.
*
* @param show true if the export dialog should be shown, otherwise false
*/
public void setDialogShowExportSettings(boolean show) {
m_showExportSettings = show;
}
/**
* Sets if the lock dialog should be shown.
*
* @param show true if the lock dialog should be shown, otherwise false
*/
public void setDialogShowLock(boolean show) {
m_showLock = show;
}
/**
* Sets the style of the direct edit buttons of the user.
*
* @param style the style of the direct edit buttons of the user
*/
public void setDirectEditButtonStyle(int style) {
m_directeditButtonStyle = style;
}
/**
* Sets the style of the editor buttons of the user.
*
* @param style the style of the editor buttons of the user
*/
public void setEditorButtonStyle(int style) {
m_editorButtonStyle = style;
}
/**
* Sets the editor settings of the user.
*
* @param settings the editor settings of the user
*/
public void setEditorSettings(Map settings) {
m_editorSettings = new TreeMap(settings);
}
/**
* Sets the style of the explorer buttons of the user.
*
* @param style the style of the explorer buttons of the user
*/
public void setExplorerButtonStyle(int style) {
m_explorerButtonStyle = style;
}
/**
* Sets the number of displayed files per page of the user.
*
* @param entries the number of displayed files per page of the user
*/
public void setExplorerFileEntries(int entries) {
m_explorerFileEntries = entries;
}
/**
* Sets the explorerFileEntryOptions.
*
* @param explorerFileEntryOptions the explorerFileEntryOptions to set
*/
public void setExplorerFileEntryOptions(String explorerFileEntryOptions) {
m_explorerFileEntryOptions = explorerFileEntryOptions;
}
/**
* Sets the explorer start settings.
*
* @param settings explorer start settings to use
*/
public void setExplorerSettings(int settings) {
m_explorerSettings = settings;
}
/**
* Sets if all the projects should be shown or not.
*
* @param listAllProjects true if all the projects should be shown, otherwise false
*/
public void setListAllProjects(boolean listAllProjects) {
m_listAllProjects = listAllProjects;
}
/**
* Sets the locale of the user.
*
* @param locale the locale of the user
*/
public void setLocale(Locale locale) {
m_locale = locale;
}
/**
* Sets if the "create index page" check box in the new folder
* dialog should be initially be checked or not.
*
* @param setting if the "create index page" check box in the new folder
* dialog should be initially be checked or not.
*/
public void setNewFolderCreateIndexPage(Boolean setting) {
m_newFolderCreateIndexPage = setting;
}
/**
* Sets if the "edit properties" check box in the new folder
* dialog should be initially be checked or not.
*
* @param setting if the "edit properties" check box in the new folder
* dialog should be initially be checked or not.
*/
public void setNewFolderEditPropertes(Boolean setting) {
m_newFolderEditProperties = setting;
}
/**
* Sets the preferred editor for the given resource type of the user.
*
* @param resourceType the resource type
* @param editorUri the editor URI
*/
public void setPreferredEditor(String resourceType, String editorUri) {
if (editorUri == null) {
m_editorSettings.remove(resourceType);
} else {
m_editorSettings.put(resourceType, editorUri);
}
}
/**
* Sets the appearance of the "publish project" button.
*
* Allowed values are either {@link CmsDefaultUserSettings#PUBLISHBUTTON_SHOW_ALWAYS},
* {@link CmsDefaultUserSettings#PUBLISHBUTTON_SHOW_AUTO} or
* {@link CmsDefaultUserSettings#PUBLISHBUTTON_SHOW_NEVER}.
*
* @param publishButtonAppearance the appearance of the "publish project" button
*/
public void setPublishButtonAppearance(String publishButtonAppearance) {
String value = CmsDefaultUserSettings.PUBLISHBUTTON_SHOW_ALWAYS;
if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(publishButtonAppearance)) {
publishButtonAppearance = publishButtonAppearance.trim().toLowerCase();
if (CmsDefaultUserSettings.PUBLISHBUTTON_SHOW_AUTO.equals(publishButtonAppearance)) {
value = CmsDefaultUserSettings.PUBLISHBUTTON_SHOW_AUTO;
} else if (CmsDefaultUserSettings.PUBLISHBUTTON_SHOW_NEVER.equals(publishButtonAppearance)) {
value = CmsDefaultUserSettings.PUBLISHBUTTON_SHOW_NEVER;
}
}
m_publishButtonAppearance = value;
}
/**
* Sets if the explorer view is restricted to the defined site and folder.
*
* @param restrict true if the explorer view is restricted, otherwise false
*/
public void setRestrictExplorerView(boolean restrict) {
m_restrictExplorerView = restrict;
}
/**
* Sets if the file creation date should be shown in explorer view.
*
* @param show true if the file creation date should be shown, otherwise false
*/
public void setShowExplorerFileDateCreated(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_DATE_CREATED);
}
/**
* Sets if the file expire date should be shown in explorer view.
*
* @param show true if the file expire date should be shown, otherwise false
*/
public void setShowExplorerFileDateExpired(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_DATE_EXPIRED);
}
/**
* Sets if the file last modified date state should be shown in explorer view.
*
* @param show true if the file last modified date should be shown, otherwise false
*/
public void setShowExplorerFileDateLastModified(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_DATE_LASTMODIFIED);
}
/**
* Sets if the file release date should be shown in explorer view.
*
* @param show true if the file release date should be shown, otherwise false
*/
public void setShowExplorerFileDateReleased(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_DATE_RELEASED);
}
/**
* Sets if the file locked by should be shown in explorer view.
*
* @param show true if the file locked by should be shown, otherwise false
*/
public void setShowExplorerFileLockedBy(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_LOCKEDBY);
}
/**
* Sets if the file navtext should be shown in explorer view.
*
* @param show true if the file navtext should be shown, otherwise false
*/
public void setShowExplorerFileNavText(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_NAVTEXT);
}
/**
* Sets if the file permissions should be shown in explorer view.
*
* @param show true if the file permissions should be shown, otherwise false
*/
public void setShowExplorerFilePermissions(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_PERMISSIONS);
}
/**
* Sets if the file size should be shown in explorer view.
*
* @param show true if the file size should be shown, otherwise false
*/
public void setShowExplorerFileSize(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_SIZE);
}
/**
* Sets if the file state should be shown in explorer view.
*
* @param show true if the state size should be shown, otherwise false
*/
public void setShowExplorerFileState(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_STATE);
}
/**
* Sets if the file title should be shown in explorer view.
*
* @param show true if the file title should be shown, otherwise false
*/
public void setShowExplorerFileTitle(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_TITLE);
}
/**
* Sets if the file type should be shown in explorer view.
*
* @param show true if the file type should be shown, otherwise false
*/
public void setShowExplorerFileType(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_TYPE);
}
/**
* Sets if the file creator should be shown in explorer view.
*
* @param show true if the file creator should be shown, otherwise false
*/
public void setShowExplorerFileUserCreated(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_USER_CREATED);
}
/**
* Sets if the file last modified by should be shown in explorer view.
*
* @param show true if the file last modified by should be shown, otherwise false
*/
public void setShowExplorerFileUserLastModified(boolean show) {
setExplorerSetting(show, CmsUserSettings.FILELIST_USER_LASTMODIFIED);
}
/**
* Controls whether to display a file upload icon or not.
*
* @param flag true
or false
to flag the use of the file upload button
*/
public void setShowFileUploadButton(boolean flag) {
m_showFileUploadButton = flag;
}
/**
* Sets if the publish notifications should be shown or not.
*
* @param showPublishNotification true if the publish notifications should be shown, otherwise false
*/
public void setShowPublishNotification(boolean showPublishNotification) {
m_showPublishNotification = showPublishNotification;
}
/**
* Sets if the resource type selection dialog should
* be shown in the file upload process (non - applet version) or not.
*
* @param showUploadTypeDialog if the resource type selection dialog should
* be shown in the file upload process (non - applet version)
*/
public void setShowUploadTypeDialog(Boolean showUploadTypeDialog) {
m_showUploadTypeDialog = showUploadTypeDialog;
}
/**
* Sets the start folder of the user.
*
* @param folder the start folder of the user
*/
public void setStartFolder(String folder) {
if (!folder.startsWith("/")) {
folder = "/" + folder;
}
if (!folder.endsWith("/")) {
folder = folder + "/";
}
m_startFolder = folder;
}
/**
* Sets the start galleries settings of the user.
*
* @param settings the start galleries setting of the user
*/
public void setStartGalleriesSetting(Map settings) {
m_startGalleriesSettings = new TreeMap(settings);
}
/**
* Sets the path to the start gallery of the user or removes the entry from user settings if no path is null.
*
* @param galleryType the type of the gallery
* @param galleryUri the gallery URI
*/
public void setStartGallery(String galleryType, String galleryUri) {
if (galleryUri == null) {
m_startGalleriesSettings.remove(galleryType);
} else {
m_startGalleriesSettings.put(galleryType, galleryUri);
}
}
/**
* Sets the start project of the user.
*
* @param project the start project id of the user
*/
public void setStartProject(String project) {
m_project = project;
}
/**
* Sets the start site of the user.
*
* @param site the start site of the user
*/
public void setStartSite(String site) {
m_startSite = site;
}
/**
* Sets the current start view of the user.
*
* @param view the current start view of the user
*/
public void setStartView(String view) {
m_view = view;
}
/**
* Sets the (optional) workplace synchronize settings.
*
* @param synchronizeSettings the (optional) workplace synchronize settings to set
*/
public void setSynchronizeSettings(CmsSynchronizeSettings synchronizeSettings) {
m_synchronizeSettings = synchronizeSettings;
}
/**
* Sets the user specific custom "time warp" time.
*
* Use {@link org.opencms.main.CmsContextInfo#CURRENT_TIME} to disable this feature, ie. enable the
* current time for each new request.
*
* If this value is set, auto time warping will be disabled: Clicking on a resource that
* has not been released at the given time or is already expired at the given time will not
* be shown - an error message will pop up ("out of time window").
*
* @param timewarp the time warp time to set
*/
public void setTimeWarp(long timewarp) {
if (timewarp < 0) {
timewarp = CmsContextInfo.CURRENT_TIME; // other negative values will break the workplace
}
m_timeWarp = timewarp;
}
/**
* Sets the folder path of the upload applet on the client machine.
*
* @param uploadAppletClientFolder the folder path of the upload applet on the client machine
*/
public void setUploadAppletClientFolder(String uploadAppletClientFolder) {
m_uploadAppletClientFolder = uploadAppletClientFolder;
}
/**
* Sets the upload variant.
*
* @param uploadVariant the upload variant as String
*/
public void setUploadVariant(String uploadVariant) {
UploadVariant upload = null;
try {
upload = UploadVariant.valueOf(uploadVariant);
} catch (Exception e) {
// may happen, set default
if (upload == null) {
upload = OpenCms.getWorkplaceManager().getDefaultUserSettings().getUploadVariant();
}
if (upload == null) {
upload = UploadVariant.gwt;
}
}
setUploadVariant(upload);
}
/**
* Sets the upload variant.
*
* @param uploadVariant the upload variant
*/
public void setUploadVariant(UploadVariant uploadVariant) {
m_uploadVariant = uploadVariant;
}
/**
* Sets the current user for the settings.
*
* @param user the CmsUser
*/
public void setUser(CmsUser user) {
m_user = user;
}
/**
* Sets the style of the workplace buttons of the user.
*
* @param style the style of the workplace buttons of the user
*/
public void setWorkplaceButtonStyle(int style) {
m_workplaceButtonStyle = style;
}
/**
* Sets the type of the report (simple or extended) of the user.
*
* @param type the type of the report (simple or extended) of the user
*/
public void setWorkplaceReportType(String type) {
m_workplaceReportType = type;
}
/**
* Sets the name of the search index to use in the workplace.
*
* @param workplaceSearchIndexName the name of the search index to use in the workplace to set
*/
public void setWorkplaceSearchIndexName(String workplaceSearchIndexName) {
m_workplaceSearchIndexName = workplaceSearchIndexName;
}
/**
* Sets the workplace search result list view style.
*
* @param workplaceSearchViewStyle the workplace search result list view style to set
*/
public void setWorkplaceSearchViewStyle(CmsSearchResultStyle workplaceSearchViewStyle) {
m_workplaceSearchViewStyle = workplaceSearchViewStyle;
}
/**
* Determines if the file creation date should be shown in explorer view.
*
* @return true if the file creation date should be shown, otherwise false
*/
public boolean showExplorerFileDateCreated() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_DATE_CREATED) > 0);
}
/**
* Determines if the file date expired should be shown in explorer view.
*
* @return true if the file date expired should be shown, otherwise false
*/
public boolean showExplorerFileDateExpired() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_DATE_EXPIRED) > 0);
}
/**
* Determines if the file last modified date should be shown in explorer view.
*
* @return true if the file last modified date should be shown, otherwise false
*/
public boolean showExplorerFileDateLastModified() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_DATE_LASTMODIFIED) > 0);
}
/**
* Determines if the file date released should be shown in explorer view.
*
* @return true if the file date released should be shown, otherwise false
*/
public boolean showExplorerFileDateReleased() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_DATE_RELEASED) > 0);
}
/**
* Determines if the file locked by should be shown in explorer view.
*
* @return true if the file locked by should be shown, otherwise false
*/
public boolean showExplorerFileLockedBy() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_LOCKEDBY) > 0);
}
/**
* Determines if the file navigation text should be shown in explorer view.
*
* @return true if the file navigation text should be shown, otherwise false
*/
public boolean showExplorerFileNavText() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_NAVTEXT) > 0);
}
/**
* Determines if the file permissions should be shown in explorer view.
*
* @return true if the file permissions should be shown, otherwise false
*/
public boolean showExplorerFilePermissions() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_PERMISSIONS) > 0);
}
/**
* Determines if the file size should be shown in explorer view.
*
* @return true if the file size should be shown, otherwise false
*/
public boolean showExplorerFileSize() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_SIZE) > 0);
}
/**
* Determines if the file state should be shown in explorer view.
*
* @return true if the file state should be shown, otherwise false
*/
public boolean showExplorerFileState() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_STATE) > 0);
}
/**
* Determines if the file title should be shown in explorer view.
*
* @return true if the file title should be shown, otherwise false
*/
public boolean showExplorerFileTitle() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_TITLE) > 0);
}
/**
* Determines if the file type should be shown in explorer view.
*
* @return true if the file type should be shown, otherwise false
*/
public boolean showExplorerFileType() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_TYPE) > 0);
}
/**
* Determines if the file creator should be shown in explorer view.
*
* @return true if the file creator should be shown, otherwise false
*/
public boolean showExplorerFileUserCreated() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_USER_CREATED) > 0);
}
/**
* Determines if the file last modified by should be shown in explorer view.
*
* @return true if the file last modified by should be shown, otherwise false
*/
public boolean showExplorerFileUserLastModified() {
return ((m_explorerSettings & CmsUserSettings.FILELIST_USER_LASTMODIFIED) > 0);
}
/**
* Return true if user should start with new workplace.
*
* @return true if user should start with new workplace
*/
public boolean startWithNewWorkplace() {
return (CmsWorkplace.VIEW_WORKPLACE.equals(getStartView()) || CmsWorkplace.VIEW_ADMIN.equals(getStartView()))
&& usesNewWorkplace();
}
/**
* Return true if user uses new workplace.
*
* @return true if the user users the new workplace
*/
public boolean usesNewWorkplace() {
boolean traditionalWorkplaceExists = OpenCms.getModuleManager().hasModule("org.opencms.workplace.traditional");
if (!traditionalWorkplaceExists) {
return true;
} else {
return !(WORKPLACE_MODE_OLD.equals(getAdditionalPreference(PREF_WORKPLACE_MODE, true)));
}
}
/**
* Sets a specific explorer setting depending on the set parameter.
*
* @param set true if the setting should be set, otherwise false
* @param setting the settings constant value for the explorer settings
*/
private void setExplorerSetting(boolean set, int setting) {
if (set) {
m_explorerSettings |= setting;
} else {
m_explorerSettings &= ~setting;
}
}
}