cmstouch.java
来自「找了很久才找到到源代码」· Java 代码 · 共 455 行 · 第 1/2 页
JAVA
455 行
/**
* Returns the current date and time as String formatted in localized pattern.<p>
*
* @return the current date and time as String formatted in localized pattern
*/
public String getCurrentDateTime() {
// get the current date & time
return CmsCalendarWidget.getCalendarLocalizedTime(getLocale(), getMessages(), System.currentTimeMillis());
}
/**
* Returns the value of the content parameter,
* or null if this parameter was not provided.<p>
*
* The content parameter on files decides if also the content is rewritten.<p>
*
* @return the value of the content parameter
*/
public String getParamContent() {
return m_paramContent;
}
/**
* Returns the value of the new timestamp parameter,
* or null if this parameter was not provided.<p>
*
* The timestamp parameter stores the new timestamp as String.<p>
*
* @return the value of the new timestamp parameter
*/
public String getParamNewtimestamp() {
return m_paramNewtimestamp;
}
/**
* Returns the value of the recursive parameter,
* or null if this parameter was not provided.<p>
*
* The recursive parameter on folders decides if all subresources
* of the folder should be touched, too.<p>
*
* @return the value of the recursive parameter
*/
public String getParamRecursive() {
return m_paramRecursive;
}
/**
* Sets the value of the content parameter.<p>
*
* @param value the value to set
*/
public void setParamContent(String value) {
m_paramContent = value;
}
/**
* Sets the value of the new timestamp parameter.<p>
*
* @param value the value to set
*/
public void setParamNewtimestamp(String value) {
m_paramNewtimestamp = value;
}
/**
* Sets the value of the recursive parameter.<p>
*
* @param value the value to set
*/
public void setParamRecursive(String value) {
m_paramRecursive = value;
}
/**
* @see org.opencms.workplace.CmsWorkplace#initWorkplaceRequestValues(org.opencms.workplace.CmsWorkplaceSettings, javax.servlet.http.HttpServletRequest)
*/
protected void initWorkplaceRequestValues(CmsWorkplaceSettings settings, HttpServletRequest request) {
// fill the parameter values in the get/set methods
fillParamValues(request);
// check the required permissions to touch the resource
if (!checkResourcePermissions(CmsPermissionSet.ACCESS_WRITE, false)) {
// no write permissions for the resource, set cancel action to close dialog
setParamAction(DIALOG_CANCEL);
}
// set the dialog type
setParamDialogtype(DIALOG_TYPE);
// set the action for the JSP switch
if (DIALOG_TYPE.equals(getParamAction())) {
setAction(ACTION_TOUCH);
} else if (DIALOG_WAIT.equals(getParamAction())) {
setAction(ACTION_WAIT);
} else if (DIALOG_CANCEL.equals(getParamAction())) {
setAction(ACTION_CANCEL);
} else if (DIALOG_LOCKS_CONFIRMED.equals(getParamAction())) {
setAction(ACTION_LOCKS_CONFIRMED);
} else {
setAction(ACTION_DEFAULT);
// build title for touch dialog
setDialogTitle(Messages.GUI_TOUCH_RESOURCE_1, Messages.GUI_TOUCH_MULTI_2);
}
}
/**
* Performs the resource touching.<p>
*
* @return true, if the resource was touched, otherwise false
* @throws CmsException if touching is not successful
*/
protected boolean performDialogOperation() throws CmsException {
// on folder touch or multi resource operation display "please wait" screen, not for simple file copy
if (!DIALOG_WAIT.equals(getParamAction())) {
// check if the "please wait" screen has to be shown
if (isMultiOperation()) {
// show please wait for every multi resource operation
return false;
} else {
// check if the single resource is a folder
CmsResource sourceRes = getCms().readResource(getParamResource(), CmsResourceFilter.ALL);
if (sourceRes.isFolder()) {
return false;
}
}
}
// get the new timestamp for the resource(s) from request parameter
long timeStamp = 0;
boolean correctDate = false;
try {
if (CmsStringUtil.isNotEmpty(getParamNewtimestamp())) {
timeStamp = CmsCalendarWidget.getCalendarDate(getMessages(), getParamNewtimestamp(), true);
correctDate = true;
}
} catch (ParseException e) {
throw new CmsException(Messages.get().container(Messages.ERR_PARSE_TIMESTAMP_1, getParamNewtimestamp()), e);
}
// get the flag if the touch is recursive from request parameter
boolean touchRecursive = Boolean.valueOf(getParamRecursive()).booleanValue();
// get the flag to the touch the content from request parameter
boolean touchContent = Boolean.valueOf(getParamContent()).booleanValue();
// now touch the resource(s)
Iterator i = getResourceList().iterator();
while (i.hasNext()) {
String resName = (String)i.next();
try {
touchSingleResource(resName, timeStamp, touchRecursive, correctDate, touchContent);
} catch (CmsException e) {
// collect exceptions to create a detailed output
addMultiOperationException(e);
}
}
checkMultiOperationException(Messages.get(), Messages.ERR_TOUCH_MULTI_0);
return true;
}
/**
* Performs a touch operation for a single resource.<p>
*
* @param resourceName the resource name of the resource to touch
* @param timeStamp the new time stamp
* @param recursive the flag if the touch operation is recursive
* @param correctDate the flag if the new time stamp is a correct date
* @param touchContent if the content has to be rewritten
*
* @throws CmsException if touching the resource fails
*/
protected void touchSingleResource(
String resourceName,
long timeStamp,
boolean recursive,
boolean correctDate,
boolean touchContent) throws CmsException {
// lock resource if autolock is enabled
checkLock(resourceName);
CmsResource sourceRes = getCms().readResource(resourceName, CmsResourceFilter.ALL);
if (!correctDate) {
// no date value entered, use current resource modification date
timeStamp = sourceRes.getDateLastModified();
}
getCms().setDateLastModified(resourceName, timeStamp, recursive);
if (touchContent) {
if (sourceRes.isFile()) {
hardTouch(sourceRes);
} else if (recursive) {
Iterator it = getCms().readResources(resourceName, CmsResourceFilter.ALL, true).iterator();
while (it.hasNext()) {
CmsResource subRes = (CmsResource)it.next();
if (subRes.isFile()) {
hardTouch(subRes);
}
}
}
}
}
/**
* Rewrites the content of the given file.<p>
*
* @param resource the resource to rewrite the content for
*
* @throws CmsException if something goes wrong
*/
private void hardTouch(CmsResource resource) throws CmsException {
CmsFile file = getCms().readFile(resource);
file.setContents(file.getContents());
getCms().writeFile(file);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?