Class CmsMultiDialog
- java.lang.Object
-
- org.opencms.workplace.CmsWorkplace
-
- org.opencms.workplace.tools.CmsToolDialog
-
- org.opencms.workplace.CmsDialog
-
- org.opencms.workplace.CmsMultiDialog
-
- Direct Known Subclasses:
CmsAvailability
,CmsCopy
,CmsDelete
,CmsLock
,CmsMove
,CmsPublishProject
,CmsReport
,CmsTouch
,CmsUndelete
,CmsUndoChanges
public abstract class CmsMultiDialog extends org.opencms.workplace.CmsDialog
The base class to build a dialog capable of multiple file operations.Extend this class for workplace dialogs that can perform operations on more than one VFS resource like copy, move, touch etc.
Provides methods to determine if a multi-resource operation has to be done and helper methods, e.g. to get the list of resources to work with.
- Since:
- 6.2.0
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
DELIMITER_RESOURCES
The delimiter that is used in the resource list request parameter.-
Fields inherited from class org.opencms.workplace.CmsDialog
ACTION_CANCEL, ACTION_CLOSEPOPUP, ACTION_CLOSEPOPUP_SAVE, ACTION_CONFIRMED, ACTION_CONTINUE, ACTION_DEFAULT, ACTION_LOCKS_CONFIRMED, ACTION_OK, ACTION_REPORT_BEGIN, ACTION_REPORT_END, ACTION_REPORT_UPDATE, ACTION_SET, ACTION_WAIT, ATTRIBUTE_THROWABLE, BUTTON_ADVANCED, BUTTON_BACK, BUTTON_CANCEL, BUTTON_CLOSE, BUTTON_CONTINUE, BUTTON_DETAILS, BUTTON_DISCARD, BUTTON_EDIT, BUTTON_OK, BUTTON_OK_NO_SUBMIT, BUTTON_SET, DIALOG_BACK, DIALOG_CANCEL, DIALOG_CONFIRMED, DIALOG_CONTINUE, DIALOG_INITIAL, DIALOG_LOCKS_CONFIRMED, DIALOG_OK, DIALOG_SET, DIALOG_WAIT, PARAM_ACTION, PARAM_ACTION_VALUE_FOR_CHANGED_INDEX, PARAM_CLOSELINK, PARAM_DIALOGTYPE, PARAM_ERRORSTACK, PARAM_FILE, PARAM_FRAMENAME, PARAM_ISPOPUP, PARAM_LOCK, PARAM_MESSAGE, PARAM_ORIGINALPARAMS, PARAM_PREACTIONDONE, PARAM_REDIRECT, PARAM_RESOURCE, PARAM_TARGET, PARAM_THREAD, PARAM_THREAD_HASNEXT, PARAM_TITLE, REPORT_BEGIN, REPORT_END, REPORT_UPDATE
-
Fields inherited from class org.opencms.workplace.tools.CmsToolDialog
PARAM_ADMIN_PROJECT, PARAM_BASE, PARAM_FORCE, PARAM_PATH, PARAM_ROOT, PARAM_STYLE, STYLE_NEW
-
Fields inherited from class org.opencms.workplace.CmsWorkplace
DEBUG, DEFAULT_DATE_STRING, DEFAULT_LANGUAGE, DEFAULT_LOCALE, DIALOG_PATH_COMMON, FILE_DIALOG_CLOSE, FILE_DIALOG_SCREEN_CONFIRM, FILE_DIALOG_SCREEN_ERROR, FILE_DIALOG_SCREEN_ERRORPAGE, FILE_DIALOG_SCREEN_WAIT, FILE_EXPLORER_FILELIST, FILE_REPORT_OUTPUT, HTML_END, HTML_START, INPUT_DEFAULT, INPUT_NONE, JSP_WORKPLACE_URI, PARAM_DIRECTPUBLISH, PARAM_MODELFILE, PARAM_NEWRESOURCETYPE, PARAM_PUBLISHSIBLINGS, PARAM_RELATEDRESOURCES, PARAM_RESOURCELIST, PARAM_SUBRESOURCES, PARAM_WP_EXPLORER_RESOURCE, PARAM_WP_PROJECT, PARAM_WP_SITE, PARAM_WP_START, PARAM_WP_VIEW, PATH_DIALOGS, PATH_WORKPLACE, REQUEST_ATTRIBUTE_MULTIPART, REQUEST_ATTRIBUTE_RELOADTREE, RES_PATH_FILETYPES, RFS_PATH_RESOURCES, SESSION_WORKPLACE_CLASS, VFS_DIR_DEFAULTBODIES, VFS_DIR_TEMPLATES, VFS_PATH_COMMONS, VFS_PATH_EDITORS, VFS_PATH_GALLERIES, VFS_PATH_LOCALES, VFS_PATH_MODELDIALOG, VFS_PATH_MODULES, VFS_PATH_NEWRESOURCEDIALOG, VFS_PATH_RESOURCES, VFS_PATH_SITES, VFS_PATH_SYSTEM, VFS_PATH_VIEWS, VFS_PATH_WORKPLACE, VIEW_ADMIN, VIEW_DIRECT_EDIT, VIEW_EXPLORER, VIEW_GALLERY, VIEW_LIST, VIEW_WORKPLACE
-
-
Constructor Summary
Constructors Constructor Description CmsMultiDialog(javax.servlet.jsp.PageContext context, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
Public constructor with JSP variables.CmsMultiDialog(org.opencms.jsp.CmsJspActionElement jsp)
Public constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addMultiOperationException(org.opencms.main.CmsException exc)
Adds an exception thrown during a multi resource operation to the multi exception.java.lang.String
buildLockHeaderBox()
java.lang.String
buildResourceList()
Builds the HTML for the resource list that is affected by the multi operation.void
checkMultiOperationException(org.opencms.i18n.I_CmsMessageBundle messages, java.lang.String key)
Checks if an exception occurred during a multi resource operation, and throws a new exception if necessary.protected boolean
checkResourcePermissions(org.opencms.security.CmsPermissionSet required, boolean neededForFolder)
Checks if the permissions of the current user on the single resource to use in the dialog are sufficient.java.lang.String
getParamResourcelist()
Returns the value of the resource list parameter, or null if the parameter is not provided.java.util.List<java.lang.String>
getResourceList()
Returns the resources that are defined for the dialog operation.java.lang.String
getResourceListAsParam()
Returns the value of the resourcelist parameter in form of a String separated withDELIMITER_RESOURCES
, or the value of the resource parameter if the first parameter is not provided (no multiple choice has been done.boolean
isMultiOperation()
Returns true if the dialog operation has to be performed on multiple resources.protected boolean
isOperationOnFolder()
Checks if the resource operation is an operation on at least one folder.protected abstract boolean
performDialogOperation()
Performs the dialog operation for the selected resources.void
setDialogTitle(java.lang.String singleKey, java.lang.String multiKey)
Sets the title of the dialog depending on the operation type, multiple or single operation.void
setParamResource(java.lang.String value)
void
setParamResourcelist(java.lang.String paramResourcelist)
Sets the value of the resourcelist parameter.-
Methods inherited from class org.opencms.workplace.CmsDialog
actionCloseDialog, appendDelimiter, buildAjaxResultContainer, buildAjaxWaitMessage, buildLockAdditionalOptions, buildLockConfirmationMessageJS, checkResourcePermissions, computeCurrentFolder, dialog, dialogBlock, dialogBlockEnd, dialogBlockStart, dialogButtonRow, dialogButtonRowEnd, dialogButtonRowStart, dialogButtons, dialogButtonsClose, dialogButtonsClose, dialogButtonsCloseDetails, dialogButtonsHtml, dialogButtonsOk, dialogButtonsOk, dialogButtonsOkCancel, dialogButtonsOkCancel, dialogButtonsOkCancelAdvanced, dialogButtonsSetOkCancel, dialogContent, dialogContentEnd, dialogContentStart, dialogEnd, dialogHead, dialogHorizontalSpacer, dialogLockButtons, dialogRow, dialogRowEnd, dialogRowStart, dialogScriptSubmit, dialogSeparator, dialogSpacer, dialogStart, dialogStart, dialogSubheadline, dialogToggleStart, dialogWhiteBox, dialogWhiteBoxEnd, dialogWhiteBoxStart, getAction, getAdministrationBackLink, getCancelAction, getDialogRealUri, getDialogUri, getOnlineHelpUriCustom, getParamAction, getParamCloseLink, getParamDialogtype, getParamFramename, getParamIsPopup, getParamMessage, getParamOriginalParams, getParamPreActionDone, getParamRedirect, getParamResource, getParamTitle, getState, hasCorrectLockstate, hasSiblings, htmlStart, htmlStart, htmlStart, htmlStartStyle, includeErrorpage, initCmsDialog, initWorkplaceRequestValues, isPopup, isPreEditor, openLaunchpad, openWorkplaceLink, pageHtml, pageHtml, setAction, setOnlineHelpUriCustom, setParamAction, setParamCloseLink, setParamDialogtype, setParamFramename, setParamIsPopup, setParamMessage, setParamOriginalParams, setParamPreActionDone, setParamRedirect, setParamTitle
-
Methods inherited from class org.opencms.workplace.tools.CmsToolDialog
computeUpLevelLink, dialogTitle, getAdminTool, getCurrentToolPath, getParamBase, getParamForce, getParamPath, getParamRoot, getParamStyle, getParentPath, getToolManager, iconsBlockArea, iconsBlockAreaEnd, iconsBlockAreaStart, initAdminTool, pageBody, pageHtmlStyle, setParamBase, setParamForce, setParamPath, setParamRoot, setParamStyle, useNewStyle
-
Methods inherited from class org.opencms.workplace.CmsWorkplace
addMessages, addMessages, allParamsAsHidden, allParamsAsRequest, allParamValues, bodyEnd, bodyStart, bodyStart, buildSelect, buildSelect, button, button, buttonBar, buttonBar, buttonBarHorizontalLine, buttonBarLabel, buttonBarLabel, buttonBarLine, buttonBarLineSpacer, buttonBarSeparator, buttonBarSpacer, buttonBarStartTab, canEditPermissionsForRoles, checkLock, checkLock, checkRole, decodeParamValue, fillParamValues, fillParamValues, generateCssStyle, generatePageEndExtended, generatePageEndSimple, generatePageStartExtended, generatePageStartSimple, getBroadcastMessageString, getCms, getEncoding, getExplorerFileListFullUri, getFrameSource, getJsp, getLocale, getMacroResolver, getMessages, getMultiPartFileItems, getParameterMap, getResourceUri, getResourceUri, getSession, getSettings, getSkinUri, getStartSiteRoot, getStartSiteRoot, getStaticResourceUri, getStaticResourceUri, getStyleUri, getStyleUri, getStyleUri, getTemporaryFileName, getWorkplaceExplorerLink, getWorkplaceExplorerLink, getWorkplaceSettings, htmlEnd, initMessages, initSettings, initTimeWarp, initUserSettings, initWorkplaceMembers, initWorkplaceMembers, initWorkplaceSettings, isForwarded, isHelpEnabled, isSubElement, isTemporaryFile, key, key, keyDefault, nullToEmpty, paramsAsHidden, paramsAsHidden, paramsAsParameterMap, paramsAsRequest, paramValues, resolveMacros, sendCmsRedirect, sendForward, setForwarded, shortKey, substituteSiteTitle, substituteSiteTitleStatic, switchToCurrentProject, switchToTempProject, updateUserPreferences
-
-
-
-
Field Detail
-
DELIMITER_RESOURCES
public static final java.lang.String DELIMITER_RESOURCES
The delimiter that is used in the resource list request parameter.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CmsMultiDialog
public CmsMultiDialog(org.opencms.jsp.CmsJspActionElement jsp)
Public constructor.- Parameters:
jsp
- an initialized JSP action element
-
CmsMultiDialog
public CmsMultiDialog(javax.servlet.jsp.PageContext context, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
Public constructor with JSP variables.- Parameters:
context
- the JSP page contextreq
- the JSP requestres
- the JSP response
-
-
Method Detail
-
addMultiOperationException
public void addMultiOperationException(org.opencms.main.CmsException exc)
Adds an exception thrown during a multi resource operation to the multi exception.After iterating the dialog resources, use
checkMultiOperationException(I_CmsMessageBundle, String)
to display the multi exception depending on collected exceptions.- Parameters:
exc
- the exception that was thrown
-
buildLockHeaderBox
public java.lang.String buildLockHeaderBox() throws org.opencms.main.CmsException
- Overrides:
buildLockHeaderBox
in classorg.opencms.workplace.CmsDialog
- Throws:
org.opencms.main.CmsException
- See Also:
CmsDialog.buildLockHeaderBox()
-
buildResourceList
public java.lang.String buildResourceList()
Builds the HTML for the resource list that is affected by the multi operation.- Returns:
- the HTML for the resource list that is affected by the multi operation
-
checkMultiOperationException
public void checkMultiOperationException(org.opencms.i18n.I_CmsMessageBundle messages, java.lang.String key) throws org.opencms.main.CmsException
Checks if an exception occurred during a multi resource operation, and throws a new exception if necessary.- Parameters:
messages
- the message bundle to use for the exception message generationkey
- the key for the exception to throw with one parameter- Throws:
org.opencms.main.CmsException
- the exception that is thrown when the multi operation was not successful
-
getParamResourcelist
public java.lang.String getParamResourcelist()
Returns the value of the resource list parameter, or null if the parameter is not provided.This parameter selects the resources to perform operations on.
- Returns:
- the value of the resource list parameter or null, if the parameter is not provided
-
getResourceList
public java.util.List<java.lang.String> getResourceList()
Returns the resources that are defined for the dialog operation.For single resource operations, the list contains one item: the resource name found in the request parameter value of the "resource" parameter.
- Returns:
- the resources that are defined for the dialog operation
-
getResourceListAsParam
public java.lang.String getResourceListAsParam()
Returns the value of the resourcelist parameter in form of a String separated withDELIMITER_RESOURCES
, or the value of the resource parameter if the first parameter is not provided (no multiple choice has been done.This may be used for jsps as value for the parameter for resources
CmsWorkplace.PARAM_RESOURCELIST
.- Returns:
- the value of the resourcelist parameter or null, if the parameter is not provided
-
isMultiOperation
public boolean isMultiOperation()
Returns true if the dialog operation has to be performed on multiple resources.- Returns:
- true if the dialog operation has to be performed on multiple resources, otherwise false
-
setDialogTitle
public void setDialogTitle(java.lang.String singleKey, java.lang.String multiKey)
Sets the title of the dialog depending on the operation type, multiple or single operation.- Parameters:
singleKey
- the key for the single operationmultiKey
- the key for the multiple operation
-
setParamResource
public void setParamResource(java.lang.String value)
- Overrides:
setParamResource
in classorg.opencms.workplace.CmsDialog
- See Also:
CmsDialog.setParamResource(java.lang.String)
-
setParamResourcelist
public void setParamResourcelist(java.lang.String paramResourcelist)
Sets the value of the resourcelist parameter.- Parameters:
paramResourcelist
- the value of the resourcelist parameter
-
checkResourcePermissions
protected boolean checkResourcePermissions(org.opencms.security.CmsPermissionSet required, boolean neededForFolder)
Checks if the permissions of the current user on the single resource to use in the dialog are sufficient.For a multi resource operation, this returns always true, checks only for single resource operations.
- Overrides:
checkResourcePermissions
in classorg.opencms.workplace.CmsDialog
- Parameters:
required
- the required permissions for the dialogneededForFolder
- if true, the permissions are required for the parent folder of the resource (e.g. for editors)- Returns:
- true if the permissions are sufficient, otherwise false
- See Also:
CmsDialog.checkResourcePermissions(CmsPermissionSet, boolean)
-
isOperationOnFolder
protected boolean isOperationOnFolder()
Checks if the resource operation is an operation on at least one folder.- Returns:
- true if the operation an operation on at least one folder, otherwise false
-
performDialogOperation
protected abstract boolean performDialogOperation() throws org.opencms.main.CmsException
Performs the dialog operation for the selected resources.- Returns:
- true, if the operation was successful, otherwise false
- Throws:
org.opencms.main.CmsException
- if operation was not successful
-
-