📄 cmstooldialog.java
字号:
/*
* File : $Source: /usr/local/cvs/opencms/src/org/opencms/workplace/tools/CmsToolDialog.java,v $
* Date : $Date: 2006/10/06 14:02:20 $
* Version: $Revision: 1.36 $
*
* This library is part of OpenCms -
* the Open Source Content Mananagement System
*
* Copyright (c) 2005 Alkacon Software GmbH (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, 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.workplace.tools;
import org.opencms.jsp.CmsJspActionElement;
import org.opencms.main.OpenCms;
import org.opencms.security.CmsRoleViolationException;
import org.opencms.util.CmsStringUtil;
import org.opencms.workplace.CmsDialog;
import org.opencms.workplace.CmsWorkplace;
import org.opencms.workplace.CmsWorkplaceSettings;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
/**
* Helper class that encapsulates all the code for the "new"
* style of the administration dialogs.<p>
*
* @author Michael Moossen
*
* @version $Revision: 1.36 $
*
* @since 6.0.0
*/
public class CmsToolDialog extends CmsWorkplace {
/** Request parameter name for the base tool path in the navegation, should be a parent tool of path. */
public static final String PARAM_BASE = "base";
/** Request parameter name for the tool path, should be an accesible tool under the given root. */
public static final String PARAM_PATH = "path";
/** Request parameter name for the root tool path. */
public static final String PARAM_ROOT = "root";
/** Request parameter name for the style type. */
public static final String PARAM_STYLE = "style";
/** Request parameter value for the 'new' dialog style. */
public static final String STYLE_NEW = "new";
/** Base parameter value. */
private String m_paramBase;
/** Path parameter value. */
private String m_paramPath;
/** Root parameter value. */
private String m_paramRoot;
/** Style parameter value. */
private String m_paramStyle;
/**
* Default Constructor.<p>
*
* @param jsp the jsp action element
*/
public CmsToolDialog(CmsJspActionElement jsp) {
super(jsp);
}
/**
* Builds the standard javascript for submitting the dialog.<p>
*
* Should only be used by the <code>{@link CmsDialog#dialogScriptSubmit()}</code> method.<p>
*
* @return the standard javascript for submitting the dialog
*/
public String dialogScriptSubmit() {
StringBuffer html = new StringBuffer(512);
html.append("function submitAction(actionValue, theForm, formName) {\n");
html.append("\tif (theForm == null) {\n");
html.append("\t\ttheForm = document.forms[formName];\n");
html.append("\t}\n");
html.append("\ttry {\n");
html.append("\t\ttheForm.").append(CmsDialog.PARAM_FRAMENAME).append(".value = window.name;\n");
html.append("\t} catch (e) {}\n");
html.append("\tif (actionValue == '" + CmsDialog.DIALOG_OK + "') {\n");
html.append("\t\tloadingOn();\n");
html.append("\t\treturn true;\n");
html.append("\t}\n");
html.append("\ttheForm." + CmsDialog.PARAM_ACTION + ".value = actionValue;\n");
html.append("\tsubmitForm(theForm);\n");
html.append("\treturn true;\n");
html.append("}\n");
return html.toString();
}
/**
* Generates the standard new style dialog title row, and tool grouping.<p>
*
* It is called by the <code>{@link org.opencms.workplace.CmsDialog#dialog(int, String)}</code> method.<p>
*
* @return a dialog window start / end segment
*/
public String dialogTitle() {
StringBuffer html = new StringBuffer(512);
String toolPath = getCurrentToolPath();
String parentPath = getParentPath();
String rootKey = getToolManager().getCurrentRoot(this).getKey();
CmsTool parentTool = getToolManager().resolveAdminTool(rootKey, parentPath);
String upLevelLink = CmsToolManager.linkForToolPath(
getJsp(),
parentPath,
parentTool.getHandler().getParameters(this));
String parentName = getToolManager().resolveAdminTool(rootKey, parentPath).getHandler().getName();
html.append(getToolManager().generateNavBar(toolPath, this));
// build title
html.append("<div class='screenTitle'>\n");
html.append("\t<table width='100%' cellspacing='0'>\n");
html.append("\t\t<tr>\n");
html.append("\t\t\t<td>\n");
html.append(getAdminTool().getHandler().getName());
html.append("\n\t\t\t</td>");
// uplevel button only if needed
if (getParentPath() != toolPath) {
html.append("\t\t\t<td class='uplevel'>\n\t\t\t\t");
html.append(A_CmsHtmlIconButton.defaultButtonHtml(
getJsp(),
CmsHtmlIconButtonStyleEnum.SMALL_ICON_TEXT,
"id-up-level",
Messages.get().getBundle(getLocale()).key(Messages.GUI_ADMIN_VIEW_UPLEVEL_0),
parentName,
true,
"admin/images/up.png",
null,
"openPage('" + upLevelLink + "');"));
html.append("\n\t\t\t</td>\n");
}
html.append("\t\t</tr>\n");
html.append("\t</table>\n");
html.append("</div>\n");
return CmsToolMacroResolver.resolveMacros(html.toString(), this);
}
/**
* Returns the admin tool.<p>
*
* @return the admin tool
*/
public CmsTool getAdminTool() {
return getToolManager().getCurrentTool(this);
}
/**
* Returns the current tool path.<p>
*
* @return the current tool path
*/
public String getCurrentToolPath() {
return getToolManager().getCurrentToolPath(this);
}
/**
* Returns the value for the base parameter.<p>
*
* @return the value for the base parameter
*/
public String getParamBase() {
return m_paramBase;
}
/**
* Returns the path parameter value.<p>
*
* @return the path parameter value
*/
public String getParamPath() {
return m_paramPath;
}
/**
* Returns the root parameter value.<p>
*
* @return the root parameter value
*/
public String getParamRoot() {
return m_paramRoot;
}
/**
* Returns the style parameter value.<p>
*
* @return the style parameter value
*/
public String getParamStyle() {
return m_paramStyle;
}
/**
* Returns the path to the parent tool.<p>
*
* @return tha path to the parent tool
*/
public String getParentPath() {
return getToolManager().getParent(this, getCurrentToolPath());
}
/**
* Returns the tool manager.<p>
*
* @return the tool manager
*/
public CmsToolManager getToolManager() {
return OpenCms.getWorkplaceManager().getToolManager();
}
/**
* Builds an block area for icons.<p>
*
* @param segment the HTML segment (START / END)
* @param headline the headline String for the block
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -