📄 cmsworkplacemanager.java
字号:
public void setDirectEditProvider(I_CmsDirectEditProvider clazz) {
m_directEditProvider = clazz;
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_DIRECT_EDIT_PROVIDER_1,
m_directEditProvider.getClass().getName()));
}
}
/**
* Sets the editor action class.<p>
*
* @param clazz the editor action class to set
*/
public void setEditorAction(I_CmsEditorActionHandler clazz) {
m_editorAction = clazz;
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_EDITOR_ACTION_CLASS_1,
m_editorAction.getClass().getName()));
}
}
/**
* Sets the editor display option class.<p>
*
* @param clazz the editor display option class to set
*/
public void setEditorDisplayOptions(CmsEditorDisplayOptions clazz) {
m_editorDisplayOptions = clazz;
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_EDITOR_DISPLAY_OPTS_1,
m_editorAction.getClass().getName()));
}
}
/**
* Sets the editor handler class.<p>
*
* @param clazz the editor handler class to set
*/
public void setEditorHandler(I_CmsEditorHandler clazz) {
m_editorHandler = clazz;
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_EDITOR_HANDLER_CLASS_1,
m_editorHandler.getClass().getName()));
}
}
/**
* Sets if tabs in the advanced property dialog are enabled.<p>
*
* @param enableAdvancedPropertyTabs true if tabs should be enabled, otherwise false
*/
public void setEnableAdvancedPropertyTabs(String enableAdvancedPropertyTabs) {
m_enableAdvancedPropertyTabs = Boolean.valueOf(enableAdvancedPropertyTabs).booleanValue();
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(
m_enableAdvancedPropertyTabs ? Messages.INIT_ADV_PROP_DIALOG_SHOW_TABS_0
: Messages.INIT_ADV_PROP_DIALOG_HIDE_TABS_0));
}
}
/**
* Sets the value (in kb) for the maximum file upload size.<p>
*
* @param value the value (in kb) for the maximum file upload size
*/
public void setFileMaxUploadSize(String value) {
try {
m_fileMaxUploadSize = Integer.valueOf(value).intValue();
} catch (NumberFormatException e) {
// can usually be ignored
if (LOG.isInfoEnabled()) {
LOG.info(e.getLocalizedMessage());
}
m_fileMaxUploadSize = -1;
}
if (CmsLog.INIT.isInfoEnabled()) {
if (m_fileMaxUploadSize > 0) {
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_MAX_FILE_UPLOAD_SIZE_1,
new Integer(m_fileMaxUploadSize)));
} else {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_MAX_FILE_UPLOAD_SIZE_UNLIMITED_0));
}
}
}
/**
* Sets the system-wide file view settings for the workplace.<p>
*
* @param cms the CmsObject for ensuring security constraints.
*
* @param fileViewSettings the system-wide file view settings for the workplace to set
* @throws CmsRoleViolationException if the current user does not own the administrator role ({@link CmsRole#ADMINISTRATOR})
* */
public void setFileViewSettings(CmsObject cms, CmsRfsFileViewer fileViewSettings) throws CmsRoleViolationException {
if (OpenCms.getRunLevel() > OpenCms.RUNLEVEL_2_INITIALIZING) {
cms.checkRole(CmsRole.ADMINISTRATOR);
}
m_fileViewSettings = fileViewSettings;
// disallow modifications of this "new original"
m_fileViewSettings.setFrozen(true);
}
/**
* Sets the configured multi context menu to use in the Explorer view.<p>
*
* @param multiContextMenu the configured multi context menu to use in the Explorer view
*/
public void setMultiContextMenu(CmsExplorerContextMenu multiContextMenu) {
multiContextMenu.setMultiMenu(true);
m_multiContextMenu = multiContextMenu;
}
/**
* Sets the tool Manager object.<p>
*
* @param toolManager the tool Manager object to set
*/
public void setToolManager(CmsToolManager toolManager) {
m_toolManager = toolManager;
}
/**
* Controls if the user/group icon in the administration view should be shown.<p>
*
* @param value <code>"true"</code> if the user/group icon in the administration view should be shown, otherwise false
*/
public void setUserManagementEnabled(String value) {
m_showUserGroupIcon = Boolean.valueOf(value).booleanValue();
if (CmsLog.INIT.isInfoEnabled()) {
if (m_showUserGroupIcon) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_USER_MANAGEMENT_ICON_ENABLED_0));
} else {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_USER_MANAGEMENT_ICON_DISABLED_0));
}
}
}
/**
* Sets if workflow message emails contain the message text.<p>
*
* @param workflowMessage true if messages should be includes, otherwise false
*/
public void setWorkflowMessage(String workflowMessage) {
m_workflowMessage = Boolean.valueOf(workflowMessage).booleanValue();
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(
m_workflowMessage ? Messages.INIT_WORKFLOW_MESSAGES_SHOW_MESSAGE_0
: Messages.INIT_WORKFLOW_MESSAGES_HIDE_MESSAGE_0));
}
}
/**
* Returns if the user/group icon in the administration view should be shown.<p>
*
* @return true if the user/group icon in the administration view should be shown, otherwise false
*/
public boolean showUserGroupIcon() {
return m_showUserGroupIcon;
}
/**
* Inintializes the configured explorer type settings.<p>
*/
private synchronized void initExplorerTypeSettings() {
Map explorerTypeSettingsMap = new HashMap();
List explorerTypeSettings = new ArrayList();
explorerTypeSettings.addAll(m_explorerTypeSettingsFromXml);
explorerTypeSettings.addAll(m_explorerTypeSettingsFromModules);
for (int i = 0; i < explorerTypeSettings.size(); i++) {
CmsExplorerTypeSettings settings = (CmsExplorerTypeSettings)explorerTypeSettings.get(i);
// put the settings in the lookup map
explorerTypeSettingsMap.put(settings.getName(), settings);
try {
// initialize the access control configuration of the explorer type
settings.getAccess().createAccessControlList();
} catch (CmsException e) {
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(
Messages.INIT_ADD_TYPE_SETTING_FAILED_1,
settings.getName()), e);
}
}
}
// sort the explorer type settings
Collections.sort(explorerTypeSettings);
// make the settings unmodifiable and store them in the golbal variables
m_explorerTypeSettings = Collections.unmodifiableList(explorerTypeSettings);
m_explorerTypeSettingsMap = Collections.unmodifiableMap(explorerTypeSettingsMap);
}
/**
* Initializes the workplace locale set.<p>
*
* Currently, this is defined by the existence of a special folder
* <code>/system/workplace/locales/{locale-name}/</code>.
* This is likely to change in future implementations.<p>
*
* @param cms an OpenCms context object that must have been initialized with "Admin" permissions
* @return the workplace locale set
*/
private List initWorkplaceLocales(CmsObject cms) {
Set locales = new HashSet();
List localeFolders;
try {
localeFolders = cms.getSubFolders(CmsWorkplace.VFS_PATH_LOCALES);
} catch (CmsException e) {
LOG.error(Messages.get().getBundle().key(
Messages.LOG_WORKPLACE_INIT_NO_LOCALES_1,
CmsWorkplace.VFS_PATH_LOCALES));
// can not throw exception here since then OpenCms would not even start in shell mode (runlevel 2)
localeFolders = new ArrayList();
}
Iterator i = localeFolders.iterator();
while (i.hasNext()) {
CmsFolder folder = (CmsFolder)i.next();
Locale locale = CmsLocaleManager.getLocale(folder.getName());
// add locale
locales.add(locale);
// add less specialized locale
locales.add(new Locale(locale.getLanguage(), locale.getCountry()));
// add even less specialized locale
locales.add(new Locale(locale.getLanguage()));
}
// sort the result
ArrayList result = new ArrayList();
result.addAll(locales);
Collections.sort(result, CmsLocaleComparator.getComparator());
return result;
}
/**
* Initializes the available workplace views.<p>
*
* Currently, this is defined by iterating the subfolder of the folder
* <code>/system/workplace/views/</code>.
* These subfolders must have the properties NavPos, NavText and default-file set.<p>
*
* @param cms an OpenCms context object that must have been initialized with "Admin" permissions
* @return the available workplace views
*/
private List initWorkplaceViews(CmsObject cms) {
List viewFolders = new ArrayList();
try {
// get the subfolders of the "views" folder
viewFolders = cms.getSubFolders(CmsWorkplace.VFS_PATH_VIEWS);
} catch (CmsException e) {
if (OpenCms.getRunLevel() > OpenCms.RUNLEVEL_2_INITIALIZING && LOG.isErrorEnabled()) {
LOG.error(Messages.get().getBundle().key(
Messages.LOG_WORKPLACE_INIT_NO_VIEWS_1,
CmsWorkplace.VFS_PATH_VIEWS), e);
}
// can not throw exception here since then OpenCms would not even start in shell mode (runlevel 2)
viewFolders = new ArrayList();
}
m_views = new ArrayList(viewFolders.size());
for (int i = 0; i < viewFolders.size(); i++) {
// loop through all view folders
CmsFolder folder = (CmsFolder)viewFolders.get(i);
String folderPath = cms.getSitePath(folder);
try {
// get view information from folder properties
String order = cms.readPropertyObject(folderPath, CmsPropertyDefinition.PROPERTY_NAVPOS, false).getValue();
String key = cms.readPropertyObject(folderPath, CmsPropertyDefinition.PROPERTY_NAVTEXT, false).getValue();
String viewUri = cms.readPropertyObject(folderPath, CmsPropertyDefinition.PROPERTY_DEFAULT_FILE, false).getValue();
if (viewUri == null) {
// no view URI found
viewUri = folderPath;
} else if (!viewUri.startsWith("/")) {
// default file is in current view folder, create absolute path to view URI
viewUri = folderPath + viewUri;
}
if (order == null) {
// no valid NavPos property value found, use loop count as order value
order = "" + i;
}
Float orderValue;
try {
// create Float order object
orderValue = Float.valueOf(order);
} catch (NumberFormatException e) {
// String was not formatted correctly, use loop counter
orderValue = Float.valueOf("" + i);
}
if (key == null) {
// no language key found, use default String to avoid NullPointerException
key = "View " + i;
// if no navtext is given do not display the view
continue;
}
// create new view object
CmsWorkplaceView view = new CmsWorkplaceView(key, viewUri, orderValue);
m_views.add(view);
// log the view
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_WORKPLACE_VIEW_1, view.getUri()));
}
} catch (CmsException e) {
// should usually never happen
LOG.error(Messages.get().getBundle().key(Messages.LOG_READING_VIEW_FOLDER_FAILED_1, folderPath), e);
}
}
// sort the views by their order number
Collections.sort(m_views);
return m_views;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -