📄 cmsworkplaceconfiguration.java
字号:
public static final String N_ROOTS = "roots";
/** The name of the separator node. */
public static final String N_SEPARATOR = "separator";
/** The node name of the show lock node. */
public static final String N_SHOWEXPORTSETTINGS = "showexportsettings";
/** The node name of the show lock node. */
public static final String N_SHOWLOCK = "showlock";
/** The node name of the show messages node. */
public static final String N_SHOWMESSAGES = "showmessages";
/** The node name of the showprojects node. */
public static final String N_SHOWPROJECTS = "showprojects";
/** The node name of the size column node. */
public static final String N_SIZE = "show-size";
/** The node name of the startupfilter node. */
public static final String N_STARTUPFILTER = "startupfilter";
/** The node name of the state column node. */
public static final String N_STATE = "show-state";
/** The node name of the title column node. */
public static final String N_TITLE = "show-title";
/** The node name of the tool-manager node. */
public static final String N_TOOLMANAGER = "tool-manager";
/** The node name of the type column node. */
public static final String N_TYPE = "show-type";
/** The node name of the uploadapplet node. */
public static final String N_UPLOADAPPLET = "uploadapplet";
/** The node name of the uri node. */
public static final String N_URI = "uri";
/** The node name of the user created node. */
public static final String N_USERCREATED = "show-usercreated";
/** The node name of the user lastmodified node. */
public static final String N_USERLASTMODIFIED = "show-userlastmodified";
/** The subname of the rfsfilesettings/windowSize node. */
public static final String N_WINDOWSIZE = "windowSize";
/** The node name of the workflow node. */
public static final String N_WORKFLOW = "workflow";
/** The node name of the workflow default settings node. */
public static final String N_WORKFLOWDEFAULTSETTINGS = "workflow-defaultsettings";
/** The node name of the workflow general options node. */
public static final String N_WORKFLOWGENERALOPTIONS = "workflow-generaloptions";
/** The node name of the workflow preferences node. */
public static final String N_WORKFLOWPREFERENCES = "workflow-preferences";
/** The node name of the master workplace node. */
public static final String N_WORKPLACE = "workplace";
/** The node name of the workplace general options node. */
public static final String N_WORKPLACEGENERALOPTIONS = "workplace-generaloptions";
/** The node name of the workplace preferences node. */
public static final String N_WORKPLACEPREFERENCES = "workplace-preferences";
/** The node name of the workplace startup settings node. */
public static final String N_WORKPLACESTARTUPSETTINGS = "workplace-startupsettings";
/** The node name of the view node. */
public static final String N_WORKPLACEVIEW = "workplaceview";
/** The configured workplace manager. */
private CmsWorkplaceManager m_workplaceManager;
/**
* Public constructor, will be called by configuration manager.<p>
*/
public CmsWorkplaceConfiguration() {
setXmlFileName(DEFAULT_XML_FILE_NAME);
if (CmsLog.INIT.isInfoEnabled()) {
CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_WORKPLACE_INIT_0));
}
}
/**
* Adds the explorer type rules to the given digester.<p>
*
* @param digester the digester to add the rules to
*/
public static void addExplorerTypeXmlRules(Digester digester) {
// add explorer type settings
digester.addObjectCreate("*/" + N_EXPLORERTYPE, CmsExplorerTypeSettings.class);
digester.addSetNext("*/" + N_EXPLORERTYPE, "addExplorerTypeSetting");
digester.addCallMethod("*/" + N_EXPLORERTYPE, "setTypeAttributes", 4);
digester.addCallParam("*/" + N_EXPLORERTYPE, 0, A_NAME);
digester.addCallParam("*/" + N_EXPLORERTYPE, 1, A_KEY);
digester.addCallParam("*/" + N_EXPLORERTYPE, 2, A_ICON);
digester.addCallParam("*/" + N_EXPLORERTYPE, 3, A_REFERENCE);
digester.addCallMethod("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, "setNewResourceHandlerClassName", 1);
digester.addCallParam("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, 0, A_HANDLER);
digester.addCallMethod("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, "setNewResourceUri", 1);
digester.addCallParam("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, 0, A_URI);
digester.addCallMethod("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, "setNewResourceOrder", 1);
digester.addCallParam("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, 0, A_ORDER);
digester.addCallMethod("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, "setNewResourcePage", 1);
digester.addCallParam("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, 0, A_PAGE);
digester.addCallMethod("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, "setAutoSetNavigation", 1);
digester.addCallParam("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, 0, A_AUTOSETNAVIGATION);
digester.addCallMethod("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, "setAutoSetTitle", 1);
digester.addCallParam("*/" + N_EXPLORERTYPE + "/" + N_NEWRESOURCE, 0, A_AUTOSETTITLE);
digester.addObjectCreate("*/" + N_EXPLORERTYPE + "/" + N_ACCESSCONTROL, CmsExplorerTypeAccess.class);
digester.addSetNext("*/" + N_EXPLORERTYPE + "/" + N_ACCESSCONTROL, "setAccess");
digester.addCallMethod("*/" + N_EXPLORERTYPE + "/" + N_ACCESSCONTROL + "/" + N_ACCESSENTRY, "addAccessEntry", 2);
digester.addCallParam("*/" + N_EXPLORERTYPE + "/" + N_ACCESSCONTROL + "/" + N_ACCESSENTRY, 0, A_PRINCIPAL);
digester.addCallParam("*/" + N_EXPLORERTYPE + "/" + N_ACCESSCONTROL + "/" + N_ACCESSENTRY, 1, A_PERMISSIONS);
digester.addCallMethod(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_DEFAULTPROPERTIES,
"setPropertyDefaults",
2);
digester.addCallParam("*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_DEFAULTPROPERTIES, 0, A_ENABLED);
digester.addCallParam(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_DEFAULTPROPERTIES,
1,
A_SHOWNAVIGATION);
digester.addCallMethod("*/"
+ N_EXPLORERTYPE
+ "/"
+ N_EDITOPTIONS
+ "/"
+ N_DEFAULTPROPERTIES
+ "/"
+ N_PROPERTY, "addProperty", 1);
digester.addCallParam("*/"
+ N_EXPLORERTYPE
+ "/"
+ N_EDITOPTIONS
+ "/"
+ N_DEFAULTPROPERTIES
+ "/"
+ N_PROPERTY, 0, A_NAME);
digester.addCallMethod("*/"
+ N_EXPLORERTYPE
+ "/"
+ N_EDITOPTIONS
+ "/"
+ N_DEFAULTPROPERTIES
+ "/"
+ N_DEFAULTPROPERTY, "addProperty", 1);
digester.addCallParam("*/"
+ N_EXPLORERTYPE
+ "/"
+ N_EDITOPTIONS
+ "/"
+ N_DEFAULTPROPERTIES
+ "/"
+ N_DEFAULTPROPERTY, 0, A_NAME);
digester.addCallMethod(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_CONTEXTMENU + "/" + N_ENTRY,
"addContextMenuEntry",
5);
digester.addCallParam(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_CONTEXTMENU + "/" + N_ENTRY,
0,
A_KEY);
digester.addCallParam(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_CONTEXTMENU + "/" + N_ENTRY,
1,
A_URI);
digester.addCallParam(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_CONTEXTMENU + "/" + N_ENTRY,
2,
A_RULES);
digester.addCallParam(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_CONTEXTMENU + "/" + N_ENTRY,
3,
A_TARGET);
digester.addCallParam(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_CONTEXTMENU + "/" + N_ENTRY,
4,
A_ORDER);
digester.addCallMethod(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_CONTEXTMENU + "/" + N_SEPARATOR,
"addContextMenuSeparator",
1);
digester.addCallParam(
"*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_CONTEXTMENU + "/" + N_SEPARATOR,
0,
A_ORDER);
digester.addCallMethod("*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS + "/" + N_CONTEXTMENU, "createContextMenu");
digester.addCallMethod("*/" + N_EXPLORERTYPE + "/" + N_EDITOPTIONS, "setEditOptions");
}
/**
* Creates the xml output for explorer type nodes.<p>
*
* @param startNode the startnode to add all rescource types to
* @param explorerTypes the list of explorer types
* @param module true if the XML tree for the module config should be generated, false otherwise
*/
public static void generateExplorerTypesXml(Element startNode, List explorerTypes, boolean module) {
// we need the default access node later to check if the explorer type is an individual setting
CmsExplorerTypeAccess defaultAccess = null;
if (OpenCms.getWorkplaceManager() != null) {
defaultAccess = OpenCms.getWorkplaceManager().getDefaultAccess();
}
Iterator i = explorerTypes.iterator();
while (i.hasNext()) {
// create an explorer type node
CmsExplorerTypeSettings settings = (CmsExplorerTypeSettings)i.next();
if (settings.isAddititionalModuleExplorerType() == module) {
Element explorerTypeElement = startNode.addElement(N_EXPLORERTYPE);
explorerTypeElement.addAttribute(A_NAME, settings.getName());
explorerTypeElement.addAttribute(A_KEY, settings.getKey());
explorerTypeElement.addAttribute(A_ICON, settings.getIcon());
if (settings.getReference() != null) {
explorerTypeElement.addAttribute(A_REFERENCE, settings.getReference());
}
// create subnode <newresource>
Element newResElement = explorerTypeElement.addElement(N_NEWRESOURCE);
if (CmsStringUtil.isNotEmpty(settings.getNewResourcePage())) {
newResElement.addAttribute(A_PAGE, settings.getNewResourcePage());
}
newResElement.addAttribute(A_HANDLER, settings.getNewResourceHandlerClassName());
newResElement.addAttribute(A_URI, settings.getNewResourceUri());
newResElement.addAttribute(A_ORDER, settings.getNewResourceOrder());
newResElement.addAttribute(A_AUTOSETNAVIGATION, String.valueOf(settings.isAutoSetNavigation()));
newResElement.addAttribute(A_AUTOSETTITLE, String.valueOf(settings.isAutoSetTitle()));
// create subnode <accesscontrol>
CmsExplorerTypeAccess access = settings.getAccess();
if (access != defaultAccess) {
// don't output the node if this is in fact the default access settings
List accessEntries = new ArrayList(access.getAccessEntries().keySet());
// sort accessEntries
Collections.sort(accessEntries);
if (accessEntries.size() > 0) {
Element accessControlElement = explorerTypeElement.addElement(N_ACCESSCONTROL);
Iterator k = accessEntries.iterator();
while (k.hasNext()) {
String key = (String)k.next();
String value = (String)settings.getAccess().getAccessEntries().get(key);
Element accessEntryElement = accessControlElement.addElement(N_ACCESSENTRY);
accessEntryElement.addAttribute(A_PRINCIPAL, key);
accessEntryElement.addAttribute(A_PERMISSIONS, value);
}
}
}
// create subnode <editoptions>
if (settings.hasEditOptions()) {
Element editOptionsElement = explorerTypeElement.addElement(N_EDITOPTIONS);
Element defaultPropertiesElement = editOptionsElement.addElement(N_DEFAULTPROPERTIES);
defaultPropertiesElement.addAttribute(A_ENABLED, String.valueOf(settings.isPropertiesEnabled()));
defaultPropertiesElement.addAttribute(A_SHOWNAVIGATION, String.valueOf(settings.isShowNavigation()));
Iterator m = settings.getProperties().iterator();
String propNode = N_PROPERTY;
if (module) {
propNode = N_DEFAULTPROPERTY;
}
while (m.hasNext()) {
defaultPropertiesElement.addElement(propNode).addAttribute(A_NAME, (String)m.next());
}
Element contextMenuElement = editOptionsElement.addElement(N_CONTEXTMENU);
m = settings.getContextMenuEntries().iterator();
while (m.hasNext()) {
CmsExplorerContextMenuItem item = (CmsExplorerContextMenuItem)m.next();
Element itemElement;
if (CmsExplorerContextMenuItem.TYPE_ENTRY.equals(item.getType())) {
// create an <entry> node
itemElement = contextMenuElement.addElement(N_ENTRY);
itemElement.addAttribute(A_KEY, item.getKey());
itemElement.addAttribute(A_URI, item.getUri());
if (item.getTarget() != null) {
itemElement.addAttribute(A_TARGET, item.getTarget());
}
itemElement.addAttribute(A_RULES, item.getRules());
} else {
// create a <separator> node
itemElement = contextMenuElement.addElement(N_SEPARATOR);
}
itemElement.addAttribute(A_ORDER, "" + item.getOrder());
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -