org.opencms.workplace
Class CmsWorkplace

java.lang.Object
  extended byorg.opencms.workplace.CmsWorkplace
Direct Known Subclasses:
CmsExplorer, CmsExplorerContextMenuBuilder, CmsExplorerInit, CmsFrameset, CmsLoginHelper, CmsToolDialog, CmsTree

public abstract class CmsWorkplace
extends java.lang.Object

Master class for the JSP based workplace which provides default methods and session handling for all JSP workplace classes.

Since:
6.0.0
Version:
$Revision: 1.175 $
Author:
Alexander Kandzior

Field Summary
static boolean DEBUG
          The debug flag.
static java.lang.String DEFAULT_LANGUAGE
          Parameter for the default language.
static java.util.Locale DEFAULT_LOCALE
          Parameter for the default locale.
static java.lang.String DIALOG_PATH_COMMON
          Constant for the JSP common files (e.g. error page) path.
static java.lang.String FILE_DIALOG_CLOSE
          Constant for the JSP common close dialog page.
static java.lang.String FILE_DIALOG_SCREEN_CONFIRM
          Constant for the JSP common confirmation dialog.
static java.lang.String FILE_DIALOG_SCREEN_ERROR
          Constant for the JSP common error dialog.
static java.lang.String FILE_DIALOG_SCREEN_ERRORPAGE
          Constant for the JSP common error dialog.
static java.lang.String FILE_DIALOG_SCREEN_WAIT
          Constant for the JSP common wait screen.
static java.lang.String FILE_EXPLORER_FILELIST
          Constant for the JSP explorer filelist file.
static java.lang.String FILE_REPORT_OUTPUT
          Constant for the JSP common report page.
static int HTML_END
          Helper variable to deliver the html end part.
static int HTML_START
          Helper variable to deliver the html start part.
static java.lang.String PARAM_WP_EXPLORER_RESOURCE
          The request parameter for the workplace project selection.
static java.lang.String PARAM_WP_PROJECT
          The request parameter for the workplace project selection.
static java.lang.String PARAM_WP_SITE
          The request parameter for the workplace site selection.
static java.lang.String PATH_DIALOGS
          Constant for the JSP dialogs path.
static java.lang.String PATH_WORKPLACE
          Constant for the JSP workplace path.
protected static java.lang.String REQUEST_ATTRIBUTE_MULTIPART
          Key name for the request attribute to indicate a multipart request was already parsed.
protected static java.lang.String REQUEST_ATTRIBUTE_RELOADTREE
          Key name for the request attribute to reload the folder tree view.
static java.lang.String RFS_PATH_RESOURCES
          Path to exported system image folder.
protected static java.lang.String SESSION_WORKPLACE_CLASS
          Key name for the session workplace class.
static java.lang.String TEMP_FILE_PREFIX
          Prefix for temporary files in the VFS.
static java.lang.String VFS_DIR_DEFAULTBODIES
          Directory name of content default_bodies folder.
static java.lang.String VFS_DIR_TEMPLATES
          Directory name of content templates folder.
static java.lang.String VFS_PATH_COMMONS
          Path to commons.
static java.lang.String VFS_PATH_EDITORS
          Path to the workplace editors.
static java.lang.String VFS_PATH_GALLERIES
          Path to the galleries.
static java.lang.String VFS_PATH_LOCALES
          Path to locales.
static java.lang.String VFS_PATH_MODULES
          Path to modules folder.
static java.lang.String VFS_PATH_RESOURCES
          Path to system image folder.
static java.lang.String VFS_PATH_SYSTEM
          Path to system folder.
static java.lang.String VFS_PATH_VIEWS
          Path to workplace views.
static java.lang.String VFS_PATH_WORKPLACE
          Path to the workplace.
 
Constructor Summary
CmsWorkplace(CmsJspActionElement jsp)
          Public constructor.
CmsWorkplace(javax.servlet.jsp.PageContext context, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
          Public constructor with JSP variables.
 
Method Summary
protected  void addMessages(CmsMessages messages)
          Auxiliary method for initialization of messages.
protected  void addMessages(java.lang.String bundleName)
          Auxiliary method for initialization of messages.
 java.lang.String allParamsAsHidden()
          Returns all parameters of the current workplace class as hidden field tags that can be inserted in a form.
 java.lang.String allParamsAsRequest()
          Returns all present request parameters as String.
protected  java.util.Map allParamValues()
          Returns the values of all parameter methods of this workplace class instance.
 java.lang.String bodyEnd()
          Builds the end html of the body.
 java.lang.String bodyStart(java.lang.String className)
          Builds the start html of the body.
 java.lang.String bodyStart(java.lang.String className, java.lang.String parameters)
          Builds the start html of the body.
 java.lang.String buildSelect(java.lang.String parameters, java.util.List options, java.util.List values, int selected)
          Generates a html select box out of the provided values.
static java.lang.String buildSelect(java.lang.String parameters, java.util.List options, java.util.List values, int selected, boolean useLineFeed)
          Generates a html select box out of the provided values.
 java.lang.String button(java.lang.String href, java.lang.String target, java.lang.String image, java.lang.String label, int type)
          Generates a button for the OpenCms workplace.
 java.lang.String button(java.lang.String href, java.lang.String target, java.lang.String image, java.lang.String label, int type, java.lang.String imagePath)
          Generates a button for the OpenCms workplace.
 java.lang.String buttonBar(int segment)
          Returns the html for a button bar.
 java.lang.String buttonBar(int segment, java.lang.String attributes)
          Returns the html for a button bar.
 java.lang.String buttonBarHorizontalLine()
          Generates a horizontal button bar separator line with maximum width.
 java.lang.String buttonBarLabel(java.lang.String label)
          Generates a button bar label.
 java.lang.String buttonBarLabel(java.lang.String label, java.lang.String className)
          Generates a button bar label.
 java.lang.String buttonBarLine(int leftPixel, int rightPixel, java.lang.String className)
          Generates a variable button bar separator line.
 java.lang.String buttonBarLineSpacer(int pixel)
          Generates a variable button bar separator line spacer.
 java.lang.String buttonBarSeparator(int leftPixel, int rightPixel)
          Generates a button bar separator.
 java.lang.String buttonBarSpacer(int width)
          Returns the html for an invisible spacer between button bar contents like buttons, labels, etc.
 java.lang.String buttonBarStartTab(int leftPixel, int rightPixel)
          Generates a button bar starter tab.
 void checkLock(java.lang.String resource)
          Checks the lock state of the resource and locks it if the autolock feature is enabled.
 void checkLock(java.lang.String resource, CmsLockType type)
          Checks the lock state of the resource and locks it if the autolock feature is enabled.
protected  void checkRole()
          Checks that the current user is a workplace user.
protected  java.lang.String decodeParamValue(java.lang.String paramName, java.lang.String paramValue)
          Decodes an individual parameter value.
 void fillParamValues(CmsWorkplaceSettings settings, javax.servlet.http.HttpServletRequest request)
          First sets site and project in the workplace settings, then fills all class parameter values from the data provided in the current request.
 void fillParamValues(javax.servlet.http.HttpServletRequest request)
          Fills all class parameter values from the data provided in the current request.
 java.lang.String getBroadcastMessageString()
          Returns the message String for the broadcast message alert of the workplace.
 CmsObject getCms()
          Returns the initialized cms object for the current user.
 java.lang.String getEncoding()
          Returns the current workplace encoding.
 java.lang.String getExplorerFileListFullUri()
          Returns the uri (including context path) to the explorer file list.
 java.lang.String getFrameSource(java.lang.String frameName, java.lang.String uri)
          Returns the html for the frame name and source and stores this information in the workplace settings.
 CmsJspActionElement getJsp()
          Returns the JSP action element.
 java.util.Locale getLocale()
          Returns the current users workplace locale settings.
 CmsMacroResolver getMacroResolver()
          Returns the current used macro resolver instance.
 CmsMessages getMessages()
          Returns the current used message object.
 java.util.List getMultiPartFileItems()
          Returns a list of FileItem instances parsed from the request, in the order that they were transmitted.
protected  java.util.Map getParameterMap()
          Returns the map of parameters read from the current request.
 java.lang.String getResourceUri()
          Returns the path to the workplace static resources.
static java.lang.String getResourceUri(java.lang.String resourceName)
          Returns the full Workplace resource path to the selected resource.
 javax.servlet.http.HttpSession getSession()
          Returns the current user http session.
 CmsWorkplaceSettings getSettings()
          Returns the current users workplace settings.
static java.lang.String getSkinUri()
          Returns the path to the skin resources.
static java.lang.String getStyleUri(CmsJspActionElement jsp)
          Returns the path to the cascading stylesheets.
static java.lang.String getStyleUri(CmsJspActionElement jsp, java.lang.String filename)
          Returns the path to the cascading stylesheets.
 java.lang.String getStyleUri(java.lang.String filename)
          Returns the path to the cascading stylesheets.
static java.lang.String getTemporaryFileName(java.lang.String resourceName)
          Returns the temporary file name for the given resource name.
 java.lang.String htmlEnd()
          Builds the end html of the page.
 java.lang.String htmlStart(java.lang.String title)
          Builds the start html of the page, including setting of DOCTYPE and inserting a header with the content-type.
protected  void initMessages()
          Initializes the message object.
 boolean initSettings(CmsWorkplaceSettings settings, javax.servlet.http.HttpServletRequest request)
          Sets site and project in the workplace settings with the request values of parameters PARAM_WP_SITE and PARAM_WP_PROJECT.
protected  void initTimeWarp(CmsUserSettings settings, javax.servlet.http.HttpSession session)
          Sets the users time warp if configured and if the current timewarp setting is different or clears the current time warp setting if the user has no configured timewarp.
static CmsWorkplaceSettings initUserSettings(CmsObject cms, CmsWorkplaceSettings settings, boolean update)
          Updates the user settings in the given workplace settings for the current user, reading the user settings from the database if required.
protected  void initWorkplaceMembers(CmsJspActionElement jsp)
          Initializes this workplace class instance.
protected abstract  void initWorkplaceRequestValues(CmsWorkplaceSettings settings, javax.servlet.http.HttpServletRequest request)
          Analyzes the request for workplace parameters and adjusts the workplace settings accordingly.
static CmsWorkplaceSettings initWorkplaceSettings(CmsObject cms, CmsWorkplaceSettings settings, boolean update)
          Updates the given workplace settings, also re-initializing the state of the Workplace to the users preferences (for example setting the startup site and project).
 boolean isForwarded()
          Returns the forwarded flag.
 boolean isHelpEnabled()
          Returns true if the online help for the users current workplace language is installed.
 boolean isSubElement()
          Returns true if the currently processed element is an included sub element.
static boolean isTemporaryFile(CmsResource resource)
          Returns true if the given resource is a temporary file.
static boolean isTemporaryFileName(java.lang.String resourceName)
          Returns true if the given resource name is a temporary file name.
 java.lang.String key(java.lang.String keyName)
          Returns the localized resource string for a given message key, checking the workplace default resources and all module bundles.
 java.lang.String key(java.lang.String keyName, java.lang.Object[] params)
          Returns the localized resource string for a given message key, with the provided replacement parameters.
 java.lang.String keyDefault(java.lang.String keyName, java.lang.String defaultValue)
          Returns the localized resource string for the given message key, checking the workplace default resources and all module bundles.
 java.lang.String nullToEmpty(java.lang.String value)
          Returns the empty String "" if the provided value is null, otherwise just returns the provided value.
 java.lang.String pageBody(int segment, java.lang.String className, java.lang.String parameters)
          Builds the html of the body.
 java.lang.String pageHtml(int segment, java.lang.String title)
          Returns the default html for a workplace page, including setting of DOCTYPE and inserting a header with the content-type.
 java.lang.String pageHtmlStyle(int segment, java.lang.String title, java.lang.String stylesheet)
          Returns the default html for a workplace page, including setting of DOCTYPE and inserting a header with the content-type, allowing the selection of an individual style sheet.
 java.lang.String paramsAsHidden()
          Returns all initialized parameters of the current workplace class as hidden field tags that can be inserted in a form.
 java.lang.String paramsAsHidden(java.util.Collection excludes)
          Returns all initialized parameters of the current workplace class that are not in the given exclusion list as hidden field tags that can be inserted in a form.
 java.util.Map paramsAsParameterMap()
          Returns all initialized parameters of the current workplace class in the form of a parameter map, i.e. the values are arrays.
 java.lang.String paramsAsRequest()
          Returns all initialized parameters of the current workplace class as request parameters, i.e. in the form key1=value1&key2=value2 etc.
protected  java.util.Map paramValues()
          Returns the values of all parameter methods of this workplace class instance.
 java.lang.String resolveMacros(java.lang.String input)
          Resolves the macros in the given String and replaces them by their localized keys.
 void sendCmsRedirect(java.lang.String location)
          Sends a http redirect to the specified URI in the OpenCms VFS.
 void sendForward(java.lang.String location, java.util.Map params)
          Forwards to the specified location in the OpenCms VFS.
 void setForwarded(boolean forwarded)
          Sets the forwarded flag.
 java.lang.String shortKey(java.lang.String keyName)
          Get a localized short key value for the workplace.
protected  void switchToCurrentProject()
          Helper method to change back from the temporary project to the current project.
protected  CmsUUID switchToTempProject()
          Helper method to change the current project to the temporary file project.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static final boolean DEBUG
The debug flag.

See Also:
Constant Field Values

DEFAULT_LOCALE

public static final java.util.Locale DEFAULT_LOCALE
Parameter for the default locale.


DEFAULT_LANGUAGE

public static final java.lang.String DEFAULT_LANGUAGE
Parameter for the default language.


FILE_EXPLORER_FILELIST

public static final java.lang.String FILE_EXPLORER_FILELIST
Constant for the JSP explorer filelist file.

See Also:
Constant Field Values

HTML_END

public static final int HTML_END
Helper variable to deliver the html end part.

See Also:
Constant Field Values

HTML_START

public static final int HTML_START
Helper variable to deliver the html start part.

See Also:
Constant Field Values

PARAM_WP_EXPLORER_RESOURCE

public static final java.lang.String PARAM_WP_EXPLORER_RESOURCE
The request parameter for the workplace project selection.

See Also:
Constant Field Values

PARAM_WP_PROJECT

public static final java.lang.String PARAM_WP_PROJECT
The request parameter for the workplace project selection.

See Also:
Constant Field Values

PARAM_WP_SITE

public static final java.lang.String PARAM_WP_SITE
The request parameter for the workplace site selection.

See Also:
Constant Field Values

VFS_PATH_SYSTEM

public static final java.lang.String VFS_PATH_SYSTEM
Path to system folder.

See Also:
Constant Field Values

VFS_PATH_WORKPLACE

public static final java.lang.String VFS_PATH_WORKPLACE
Path to the workplace.

See Also:
Constant Field Values

PATH_DIALOGS

public static final java.lang.String PATH_DIALOGS
Constant for the JSP dialogs path.

See Also:
Constant Field Values

PATH_WORKPLACE

public static final java.lang.String PATH_WORKPLACE
Constant for the JSP workplace path.

See Also:
Constant Field Values

RFS_PATH_RESOURCES

public static final java.lang.String RFS_PATH_RESOURCES
Path to exported system image folder.

See Also:
Constant Field Values

TEMP_FILE_PREFIX

public static final java.lang.String TEMP_FILE_PREFIX
Prefix for temporary files in the VFS.

See Also:
isTemporaryFile(CmsResource), isTemporaryFileName(String), getTemporaryFileName(String), Constant Field Values

VFS_DIR_DEFAULTBODIES

public static final java.lang.String VFS_DIR_DEFAULTBODIES
Directory name of content default_bodies folder.

See Also:
Constant Field Values

VFS_DIR_TEMPLATES

public static final java.lang.String VFS_DIR_TEMPLATES
Directory name of content templates folder.

See Also:
Constant Field Values

VFS_PATH_COMMONS

public static final java.lang.String VFS_PATH_COMMONS
Path to commons.

See Also:
Constant Field Values

VFS_PATH_EDITORS

public static final java.lang.String VFS_PATH_EDITORS
Path to the workplace editors.

See Also:
Constant Field Values

VFS_PATH_GALLERIES

public static final java.lang.String VFS_PATH_GALLERIES
Path to the galleries.

See Also:
Constant Field Values

VFS_PATH_LOCALES

public static final java.lang.String VFS_PATH_LOCALES
Path to locales.

See Also:
Constant Field Values

VFS_PATH_MODULES

public static final java.lang.String VFS_PATH_MODULES
Path to modules folder.

See Also:
Constant Field Values

VFS_PATH_RESOURCES

public static final java.lang.String VFS_PATH_RESOURCES
Path to system image folder.

See Also:
Constant Field Values

VFS_PATH_VIEWS

public static final java.lang.String VFS_PATH_VIEWS
Path to workplace views.

See Also:
Constant Field Values

DIALOG_PATH_COMMON

public static final java.lang.String DIALOG_PATH_COMMON
Constant for the JSP common files (e.g. error page) path.

See Also:
Constant Field Values

FILE_DIALOG_CLOSE

public static final java.lang.String FILE_DIALOG_CLOSE
Constant for the JSP common close dialog page.

See Also:
Constant Field Values

FILE_DIALOG_SCREEN_CONFIRM

public static final java.lang.String FILE_DIALOG_SCREEN_CONFIRM
Constant for the JSP common confirmation dialog.

See Also:
Constant Field Values

FILE_DIALOG_SCREEN_ERROR

public static final java.lang.String FILE_DIALOG_SCREEN_ERROR
Constant for the JSP common error dialog.

See Also:
Constant Field Values

FILE_DIALOG_SCREEN_ERRORPAGE

public static final java.lang.String FILE_DIALOG_SCREEN_ERRORPAGE
Constant for the JSP common error dialog.

See Also:
Constant Field Values

FILE_DIALOG_SCREEN_WAIT

public static final java.lang.String FILE_DIALOG_SCREEN_WAIT
Constant for the JSP common wait screen.

See Also:
Constant Field Values

FILE_REPORT_OUTPUT

public static final java.lang.String FILE_REPORT_OUTPUT
Constant for the JSP common report page.

See Also:
Constant Field Values

REQUEST_ATTRIBUTE_MULTIPART

protected static final java.lang.String REQUEST_ATTRIBUTE_MULTIPART
Key name for the request attribute to indicate a multipart request was already parsed.

See Also:
Constant Field Values

REQUEST_ATTRIBUTE_RELOADTREE

protected static final java.lang.String REQUEST_ATTRIBUTE_RELOADTREE
Key name for the request attribute to reload the folder tree view.

See Also:
Constant Field Values

SESSION_WORKPLACE_CLASS

protected static final java.lang.String SESSION_WORKPLACE_CLASS
Key name for the session workplace class.

See Also:
Constant Field Values
Constructor Detail

CmsWorkplace

public CmsWorkplace(CmsJspActionElement jsp)
Public constructor.

Parameters:
jsp - the initialized JSP context

CmsWorkplace

public CmsWorkplace(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 Detail

buildSelect

public static java.lang.String buildSelect(java.lang.String parameters,
                                           java.util.List options,
                                           java.util.List values,
                                           int selected,
                                           boolean useLineFeed)
Generates a html select box out of the provided values.

Parameters:
parameters - a string that will be inserted into the initial select tag, if null no parameters will be inserted
options - the options
values - the option values, if null the select will have no value attributes
selected - the index of the pre-selected option, if -1 no option is pre-selected
useLineFeed - if true, adds some formatting "\n" to the output String
Returns:
a String representing a html select box

getResourceUri

public static java.lang.String getResourceUri(java.lang.String resourceName)
Returns the full Workplace resource path to the selected resource.

Parameters:
resourceName - the name of the resource to get the resource path for
Returns:
the full Workplace resource path to the selected resource

getSkinUri

public static java.lang.String getSkinUri()
Returns the path to the skin resources.

Returns:
the path to the skin resources

getStyleUri

public static java.lang.String getStyleUri(CmsJspActionElement jsp)
Returns the path to the cascading stylesheets.

Parameters:
jsp - the JSP context
Returns:
the path to the cascading stylesheets

getStyleUri

public static java.lang.String getStyleUri(CmsJspActionElement jsp,
                                           java.lang.String filename)
Returns the path to the cascading stylesheets.

Parameters:
jsp - the JSP context
filename - the name of the stylesheet
Returns:
the path to the cascading stylesheets

getTemporaryFileName

public static java.lang.String getTemporaryFileName(java.lang.String resourceName)
Returns the temporary file name for the given resource name.

To create a temporary file name of a resource name, the prefix char '~' (tilde) is added to the file name after all parent folder names have been removed.

Parameters:
resourceName - the resource name to return the temporary file name for
Returns:
the temporary file name for the given resource name
See Also:
isTemporaryFileName(String), isTemporaryFile(CmsResource)

initUserSettings

public static CmsWorkplaceSettings initUserSettings(CmsObject cms,
                                                    CmsWorkplaceSettings settings,
                                                    boolean update)
Updates the user settings in the given workplace settings for the current user, reading the user settings from the database if required.

Parameters:
cms - the cms object for the current user
settings - the workplace settings to update (if null a new instance is created)
update - flag indicating if settings are only updated (user preferences)
Returns:
the current users workplace settings
See Also:
initWorkplaceSettings(CmsObject, CmsWorkplaceSettings, boolean)

initWorkplaceSettings

public static CmsWorkplaceSettings initWorkplaceSettings(CmsObject cms,
                                                         CmsWorkplaceSettings settings,
                                                         boolean update)
Updates the given workplace settings, also re-initializing the state of the Workplace to the users preferences (for example setting the startup site and project). The user settings will also be updated by calling initUserSettings(CmsObject, CmsWorkplaceSettings, boolean) before updating the workplace project, selected site etc.

Parameters:
cms - the cms object for the current user
settings - the workplace settings to update (if null a new instance is created)
update - flag indicating if settings are only updated (user preferences)
Returns:
the current users initialized workplace settings
See Also:
initUserSettings(CmsObject, CmsWorkplaceSettings, boolean)

isTemporaryFile

public static boolean isTemporaryFile(CmsResource resource)
Returns true if the given resource is a temporary file.

A resource is considered a temporary file it is a file where the CmsResource.FLAG_TEMPFILE flag has been set, or if the file name (without parent folders) starts with the prefix char '~' (tilde).

Parameters:
resource - the resource name to check
Returns:
true if the given resource name is a temporary file
See Also:
getTemporaryFileName(String), isTemporaryFileName(String)

isTemporaryFileName

public static boolean isTemporaryFileName(java.lang.String resourceName)
Returns true if the given resource name is a temporary file name.

A resource name is considered a temporary file name if the name of the file (without parent folders) starts with the prefix char '~' (tilde).

Parameters:
resourceName - the resource name to check
Returns:
true if the given resource name is a temporary file name
See Also:
getTemporaryFileName(String), isTemporaryFile(CmsResource)

allParamsAsHidden

public java.lang.String allParamsAsHidden()
Returns all parameters of the current workplace class as hidden field tags that can be inserted in a form.

Returns:
all parameters of the current workplace class as hidden field tags that can be inserted in a html form

allParamsAsRequest

public java.lang.String allParamsAsRequest()
Returns all present request parameters as String.

The String is formatted as a parameter String (param1=val1&param2=val2) with UTF-8 encoded values.

Returns:
all present request parameters as String

bodyEnd

public java.lang.String bodyEnd()
Builds the end html of the body.

Returns:
the end html of the body

bodyStart

public java.lang.String bodyStart(java.lang.String className)
Builds the start html of the body.

Parameters:
className - optional class attribute to add to the body tag
Returns:
the start html of the body

bodyStart

public java.lang.String bodyStart(java.lang.String className,
                                  java.lang.String parameters)
Builds the start html of the body.

Parameters:
className - optional class attribute to add to the body tag
parameters - optional parameters to add to the body tag
Returns:
the start html of the body

buildSelect

public java.lang.String buildSelect(java.lang.String parameters,
                                    java.util.List options,
                                    java.util.List values,
                                    int selected)
Generates a html select box out of the provided values.

Parameters:
parameters - a string that will be inserted into the initial select tag, if null no parameters will be inserted
options - the options
values - the option values, if null the select will have no value attributes
selected - the index of the pre-selected option, if -1 no option is pre-selected
Returns:
a formatted html String representing a html select box

button

public java.lang.String button(java.lang.String href,
                               java.lang.String target,
                               java.lang.String image,
                               java.lang.String label,
                               int type)
Generates a button for the OpenCms workplace.

Parameters:
href - the href link for the button, if none is given the button will be disabled
target - the href link target for the button, if none is given the target will be same window
image - the image name for the button, skin path will be automattically added as prefix
label - the label for the text of the button
type - 0: image only (default), 1: image and text, 2: text only
Returns:
a button for the OpenCms workplace

button

public java.lang.String button(java.lang.String href,
                               java.lang.String target,
                               java.lang.String image,
                               java.lang.String label,
                               int type,
                               java.lang.String imagePath)
Generates a button for the OpenCms workplace.

Parameters:
href - the href link for the button, if none is given the button will be disabled
target - the href link target for the button, if none is given the target will be same window
image - the image name for the button, skin path will be automattically added as prefix
label - the label for the text of the button
type - 0: image only (default), 1: image and text, 2: text only
imagePath - the path to the image
Returns:
a button for the OpenCms workplace

buttonBar

public java.lang.String buttonBar(int segment)
Returns the html for a button bar.

Parameters:
segment - the HTML segment (START / END)
Returns:
a button bar html start / end segment

buttonBar

public java.lang.String buttonBar(int segment,
                                  java.lang.String attributes)
Returns the html for a button bar.

Parameters:
segment - the HTML segment (START / END)
attributes - optional attributes for the table tag
Returns:
a button bar html start / end segment

buttonBarHorizontalLine

public java.lang.String buttonBarHorizontalLine()
Generates a horizontal button bar separator line with maximum width.

Returns:
a horizontal button bar separator line

buttonBarLabel

public java.lang.String buttonBarLabel(java.lang.String label)
Generates a button bar label.

Parameters:
label - the label to show
Returns:
a button bar label

buttonBarLabel

public java.lang.String buttonBarLabel(java.lang.String label,
                                       java.lang.String className)
Generates a button bar label.

Parameters:
label - the label to show
className - the css class name for the formatting
Returns:
a button bar label

buttonBarLine

public java.lang.String buttonBarLine(int leftPixel,
                                      int rightPixel,
                                      java.lang.String className)
Generates a variable button bar separator line.

Parameters:
leftPixel - the amount of pixel left to the line
rightPixel - the amount of pixel right to the line
className - the css class name for the formatting
Returns:
a variable button bar separator line

buttonBarLineSpacer

public java.lang.String buttonBarLineSpacer(int pixel)
Generates a variable button bar separator line spacer.

Parameters:
pixel - the amount of pixel space
Returns:
a variable button bar separator line spacer

buttonBarSeparator

public java.lang.String buttonBarSeparator(int leftPixel,
                                           int rightPixel)
Generates a button bar separator.

Parameters:
leftPixel - the amount of pixel left to the separator
rightPixel - the amount of pixel right to the separator
Returns:
a button bar separator

buttonBarSpacer

public java.lang.String buttonBarSpacer(int width)
Returns the html for an invisible spacer between button bar contents like buttons, labels, etc.

Parameters:
width - the width of the invisible spacer
Returns:
the html for the invisible spacer

buttonBarStartTab

public java.lang.String buttonBarStartTab(int leftPixel,
                                          int rightPixel)
Generates a button bar starter tab.

Parameters:
leftPixel - the amount of pixel left to the starter
rightPixel - the amount of pixel right to the starter
Returns:
a button bar starter tab

checkLock

public void checkLock(java.lang.String resource)
               throws CmsException
Checks the lock state of the resource and locks it if the autolock feature is enabled.

Parameters:
resource - the resource name which is checked
Throws:
CmsException - if reading or locking the resource fails

checkLock

public void checkLock(java.lang.String resource,
                      CmsLockType type)
               throws CmsException
Checks the lock state of the resource and locks it if the autolock feature is enabled.

Parameters:
resource - the resource name which is checked
type - indicates the mode CmsLockType.EXCLUSIVE or CmsLockType.TEMPORARY
Throws:
CmsException - if reading or locking the resource fails

fillParamValues

public void fillParamValues(CmsWorkplaceSettings settings,
                            javax.servlet.http.HttpServletRequest request)
First sets site and project in the workplace settings, then fills all class parameter values from the data provided in the current request.

Parameters:
settings - the workplace settings
request - the current request

fillParamValues

public void fillParamValues(javax.servlet.http.HttpServletRequest request)
Fills all class parameter values from the data provided in the current request.

All methods that start with "setParam" are possible candidates to be automatically filled. The remaining part of the method name is converted to lower case. Then a parameter of this name is searched in the request parameters. If the parameter is found, the "setParam" method is automatically invoked by reflection with the value of the parameter.

Parameters:
request - the current JSP request

getBroadcastMessageString

public java.lang.String getBroadcastMessageString()
Returns the message String for the broadcast message alert of the workplace.

Caution: returns the pure message String (not escaped) or null, if no message is pending.

Returns:
the message String for the broadcast message alert of the workplace

getCms

public CmsObject getCms()
Returns the initialized cms object for the current user.

Returns:
the initialized cms object for the current user

getEncoding

public java.lang.String getEncoding()
Returns the current workplace encoding.

Returns:
the current workplace encoding

getExplorerFileListFullUri

public java.lang.String getExplorerFileListFullUri()
Returns the uri (including context path) to the explorer file list.

Returns:
the uri (including context path) to the explorer file list

getFrameSource

public java.lang.String getFrameSource(java.lang.String frameName,
                                       java.lang.String uri)
Returns the html for the frame name and source and stores this information in the workplace settings.

Parameters:
frameName - the name of the frame
uri - the absolute path of the frame
Returns:
the html for the frame name and source

getJsp

public CmsJspActionElement getJsp()
Returns the JSP action element.

Returns:
the JSP action element

getLocale

public java.util.Locale getLocale()
Returns the current users workplace locale settings.

Returns:
the current users workplace locale setting

getMacroResolver

public CmsMacroResolver getMacroResolver()
Returns the current used macro resolver instance.

Returns:
the macro resolver

getMessages

public CmsMessages getMessages()
Returns the current used message object.

Returns:
the current used message object

getMultiPartFileItems

public java.util.List getMultiPartFileItems()
Returns a list of FileItem instances parsed from the request, in the order that they were transmitted.

This list is automatically initialized from the createParameterMapFromMultiPart(HttpServletRequest) method.

Returns:
list of FileItem instances parsed from the request, in the order that they were transmitted

getResourceUri

public java.lang.String getResourceUri()
Returns the path to the workplace static resources.

Workplaces static resources are images, css files etc. These are exported during the installation of OpenCms, and are usually only read from this exported location to avoid the overhaead of accessing the database later.

Returns:
the path to the workplace static resources

getSession

public javax.servlet.http.HttpSession getSession()
Returns the current user http session.

Returns:
the current user http session

getSettings

public CmsWorkplaceSettings getSettings()
Returns the current users workplace settings.

Returns:
the current users workplace settings

getStyleUri

public java.lang.String getStyleUri(java.lang.String filename)
Returns the path to the cascading stylesheets.

Parameters:
filename - the name of the stylesheet
Returns:
the path to the cascading stylesheets

htmlEnd

public java.lang.String htmlEnd()
Builds the end html of the page.

Returns:
the end html of the page

htmlStart

public java.lang.String htmlStart(java.lang.String title)
Builds the start html of the page, including setting of DOCTYPE and inserting a header with the content-type.

Parameters:
title - the content for the title tag
Returns:
the start html of the page

initSettings

public boolean initSettings(CmsWorkplaceSettings settings,
                            javax.servlet.http.HttpServletRequest request)
Sets site and project in the workplace settings with the request values of parameters PARAM_WP_SITE and PARAM_WP_PROJECT.

Parameters:
settings - the workplace settings
request - the current request
Returns:
true, if a reload of the main body frame is required

isForwarded

public boolean isForwarded()
Returns the forwarded flag.

Returns:
the forwarded flag

isHelpEnabled

public boolean isHelpEnabled()
Returns true if the online help for the users current workplace language is installed.

Returns:
true if the online help for the users current workplace language is installed

isSubElement

public boolean isSubElement()
Returns true if the currently processed element is an included sub element.

Returns:
true if the currently processed element is an included sub element

key

public java.lang.String key(java.lang.String keyName)
Returns the localized resource string for a given message key, checking the workplace default resources and all module bundles.

If the key was not found, the return value is "??? " + keyName + " ???".

If the key starts with "help." and is not found, the value "index.html" is returned.

Parameters:
keyName - the key for the desired string
Returns:
the resource string for the given key
See Also:
CmsMessages.key(String)

key

public java.lang.String key(java.lang.String keyName,
                            java.lang.Object[] params)
Returns the localized resource string for a given message key, with the provided replacement parameters.

If the key was found in the bundle, it will be formatted using a MessageFormat using the provided parameters.

If the key was not found in the bundle, the return value is "??? " + keyName + " ???". This will also be returned if the bundle was not properly initialized first.

Parameters:
keyName - the key for the desired string
params - the parameters to use for formatting
Returns:
the resource string for the given key
See Also:
CmsMessages.key(String)

keyDefault

public java.lang.String keyDefault(java.lang.String keyName,
                                   java.lang.String defaultValue)
Returns the localized resource string for the given message key, checking the workplace default resources and all module bundles.

If the key was not found, the provided default value is returned.

Parameters:
keyName - the key for the desired string
defaultValue - the default value in case the key does not exist in the bundle
Returns:
the resource string for the given key it it exists, or the given default if not
See Also:
CmsMessages.keyDefault(String, String)

nullToEmpty

public java.lang.String nullToEmpty(java.lang.String value)
Returns the empty String "" if the provided value is null, otherwise just returns the provided value.

Use this method in forms if a getParamXXX method is used, but a String (not null) is required.

Parameters:
value - the String to check
Returns:
the empty String "" if the provided value is null, otherwise just returns the provided value

pageBody

public java.lang.String pageBody(int segment,
                                 java.lang.String className,
                                 java.lang.String parameters)
Builds the html of the body.

Parameters:
segment - the HTML segment (START / END)
className - optional class attribute to add to the body tag
parameters - optional parameters to add to the body tag
Returns:
the html of the body

pageHtml

public java.lang.String pageHtml(int segment,
                                 java.lang.String title)
Returns the default html for a workplace page, including setting of DOCTYPE and inserting a header with the content-type.

Parameters:
segment - the HTML segment (START / END)
title - the title of the page, if null no title tag is inserted
Returns:
the default html for a workplace page

pageHtmlStyle

public java.lang.String pageHtmlStyle(int segment,
                                      java.lang.String title,
                                      java.lang.String stylesheet)
Returns the default html for a workplace page, including setting of DOCTYPE and inserting a header with the content-type, allowing the selection of an individual style sheet.

Parameters:
segment - the HTML segment (START / END)
title - the title of the page, if null no title tag is inserted
stylesheet - the used style sheet, if null the default stylesheet 'workplace.css' is inserted
Returns:
the default html for a workplace page

paramsAsHidden

public java.lang.String paramsAsHidden()
Returns all initialized parameters of the current workplace class as hidden field tags that can be inserted in a form.

Returns:
all initialized parameters of the current workplace class as hidden field tags that can be inserted in a html form

paramsAsHidden

public java.lang.String paramsAsHidden(java.util.Collection excludes)
Returns all initialized parameters of the current workplace class that are not in the given exclusion list as hidden field tags that can be inserted in a form.

Parameters:
excludes - the parameters to exclude
Returns:
all initialized parameters of the current workplace class that are not in the given exclusion list as hidden field tags that can be inserted in a form

paramsAsParameterMap

public java.util.Map paramsAsParameterMap()
Returns all initialized parameters of the current workplace class in the form of a parameter map, i.e. the values are arrays.

Returns:
all initialized parameters of the current workplace class in the form of a parameter map

paramsAsRequest

public java.lang.String paramsAsRequest()
Returns all initialized parameters of the current workplace class as request parameters, i.e. in the form key1=value1&key2=value2 etc.

Returns:
all initialized parameters of the current workplace class as request parameters

resolveMacros

public java.lang.String resolveMacros(java.lang.String input)
Resolves the macros in the given String and replaces them by their localized keys.

The following macro contexts are available in the Workplace:

Parameters:
input - the input String containing the macros
Returns:
the resolved String
See Also:
CmsMacroResolver.resolveMacros(String)

sendCmsRedirect

public void sendCmsRedirect(java.lang.String location)
                     throws java.io.IOException
Sends a http redirect to the specified URI in the OpenCms VFS.

Parameters:
location - the location the response is redirected to
Throws:
java.io.IOException - in case redirection fails

sendForward

public void sendForward(java.lang.String location,
                        java.util.Map params)
                 throws java.io.IOException,
                        javax.servlet.ServletException
Forwards to the specified location in the OpenCms VFS.

Parameters:
location - the location the response is redirected to
params - the map of parameters to use for the forwarded request
Throws:
java.io.IOException - in case the forward fails
javax.servlet.ServletException - in case the forward fails

setForwarded

public void setForwarded(boolean forwarded)
Sets the forwarded flag.

Parameters:
forwarded - the forwarded flag to set

shortKey

public java.lang.String shortKey(java.lang.String keyName)
Get a localized short key value for the workplace.

Parameters:
keyName - name of the key
Returns:
a localized short key value

addMessages

protected void addMessages(CmsMessages messages)
Auxiliary method for initialization of messages.

Parameters:
messages - the CmsMessages to add

addMessages

protected void addMessages(java.lang.String bundleName)
Auxiliary method for initialization of messages.

Parameters:
bundleName - the resource bundle name to add

allParamValues

protected java.util.Map allParamValues()
Returns the values of all parameter methods of this workplace class instance.

Returns:
the values of all parameter methods of this workplace class instance

checkRole

protected void checkRole()
                  throws CmsRoleViolationException
Checks that the current user is a workplace user.

Throws:
CmsRoleViolationException - if the user does not have the required role

decodeParamValue

protected java.lang.String decodeParamValue(java.lang.String paramName,
                                            java.lang.String paramValue)
Decodes an individual parameter value.

In special cases some parameters might require a different-from-default encoding. This is the case if the content of the parameter was encoded using the JavaScript encodeURIComponent() method on the client, which always encodes in UTF-8.

Parameters:
paramName - the name of the parameter
paramValue - the unencoded value of the parameter
Returns:
the encoded value of the parameter

getParameterMap

protected java.util.Map getParameterMap()
Returns the map of parameters read from the current request.

This method will also handle parameters from forms of type multipart/form-data.

Returns:
the map of parameters read from the current request

initMessages

protected void initMessages()
Initializes the message object.

By default the CmsWorkplaceMessages are initialized.

You SHOULD override this method for setting the bundles you really need, using the addMessages(CmsMessages) or addMessages(String) method.


initTimeWarp

protected void initTimeWarp(CmsUserSettings settings,
                            javax.servlet.http.HttpSession session)
Sets the users time warp if configured and if the current timewarp setting is different or clears the current time warp setting if the user has no configured timewarp.

Timwarping is controlled by the session attribute CmsContextInfo.ATTRIBUTE_REQUEST_TIME with a value of type Long.

Parameters:
settings - the user settings which are configured via the preferences dialog
session - the session of the user

initWorkplaceMembers

protected void initWorkplaceMembers(CmsJspActionElement jsp)
Initializes this workplace class instance.

This method can be used in case there a workplace class was generated using Class.forName(java.lang.String) to initialize the class members.

Parameters:
jsp - the initialized JSP context

initWorkplaceRequestValues

protected abstract void initWorkplaceRequestValues(CmsWorkplaceSettings settings,
                                                   javax.servlet.http.HttpServletRequest request)
Analyzes the request for workplace parameters and adjusts the workplace settings accordingly.

Parameters:
settings - the workplace settings
request - the current request

paramValues

protected java.util.Map paramValues()
Returns the values of all parameter methods of this workplace class instance.

Returns:
the values of all parameter methods of this workplace class instance

switchToCurrentProject

protected void switchToCurrentProject()
                               throws CmsException
Helper method to change back from the temporary project to the current project.

Throws:
CmsException - if switching back fails

switchToTempProject

protected CmsUUID switchToTempProject()
                               throws CmsException
Helper method to change the current project to the temporary file project.

The id of the old project is stored in a member variable to switch back.

Returns:
the id of the tempfileproject
Throws:
CmsException - if getting the tempfileproject id fails