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 final String
    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

    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.
     
    Builds the HTML for the resource list that is affected by the multi operation.
    void
    checkMultiOperationException(org.opencms.i18n.I_CmsMessageBundle messages, 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.
    Returns the value of the resource list parameter, or null if the parameter is not provided.
    Returns the resources that are defined for the dialog operation.
    Returns the value of the resourcelist parameter in form of a String separated with DELIMITER_RESOURCES, or the value of the resource parameter if the first parameter is not provided (no multiple choice has been done.
    boolean
    Returns true if the dialog operation has to be performed on multiple resources.
    protected boolean
    Checks if the resource operation is an operation on at least one folder.
    protected abstract boolean
    Performs the dialog operation for the selected resources.
    void
    setDialogTitle(String singleKey, String multiKey)
    Sets the title of the dialog depending on the operation type, multiple or single operation.
    void
     
    void
    setParamResourcelist(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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • 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 context
      req - the JSP request
      res - the JSP response
  • Method Details

    • 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 String buildLockHeaderBox() throws org.opencms.main.CmsException
      Overrides:
      buildLockHeaderBox in class org.opencms.workplace.CmsDialog
      Throws:
      org.opencms.main.CmsException
      See Also:
      • CmsDialog.buildLockHeaderBox()
    • 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, 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 generation
      key - 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

      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

      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

      Returns the value of the resourcelist parameter in form of a String separated with DELIMITER_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(String singleKey, String multiKey)
      Sets the title of the dialog depending on the operation type, multiple or single operation.

      Parameters:
      singleKey - the key for the single operation
      multiKey - the key for the multiple operation
    • setParamResource

      public void setParamResource(String value)
      Overrides:
      setParamResource in class org.opencms.workplace.CmsDialog
      See Also:
      • CmsDialog.setParamResource(java.lang.String)
    • setParamResourcelist

      public void setParamResourcelist(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 class org.opencms.workplace.CmsDialog
      Parameters:
      required - the required permissions for the dialog
      neededForFolder - 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