📄 cmsworkplace.java
字号:
if (href != null && href.toLowerCase().startsWith("javascript:")) {
anchorStart = "<a href=\"#\" onclick=\"";
}
result.append("<td style=\"vertical-align: top;\">");
switch (type) {
case 1:
// image and text
if (href != null) {
result.append(anchorStart);
result.append(href);
result.append("\" class=\"button\"");
if (target != null) {
result.append(" target=\"");
result.append(target);
result.append("\"");
}
result.append(">");
}
result.append("<span unselectable=\"on\" ");
if (href != null) {
result.append("class=\"norm\" onmouseover=\"className='over'\" onmouseout=\"className='norm'\" onmousedown=\"className='push'\" onmouseup=\"className='over'\"");
} else {
result.append("class=\"disabled\"");
}
result.append("><span unselectable=\"on\" class=\"combobutton\" ");
result.append("style=\"background-image: url('");
result.append(imagePath);
result.append(image);
if (image != null && image.indexOf('.') == -1) {
// append default suffix for button images
result.append(".png");
}
result.append("');\">");
result.append(shortKey(label));
result.append("</span></span>");
if (href != null) {
result.append("</a>");
}
break;
case 2:
// text only
if (href != null) {
result.append(anchorStart);
result.append(href);
result.append("\" class=\"button\"");
if (target != null) {
result.append(" target=\"");
result.append(target);
result.append("\"");
}
result.append(">");
}
result.append("<span unselectable=\"on\" ");
if (href != null) {
result.append("class=\"norm\" onmouseover=\"className='over'\" onmouseout=\"className='norm'\" onmousedown=\"className='push'\" onmouseup=\"className='over'\"");
} else {
result.append("class=\"disabled\"");
}
result.append("><span unselectable=\"on\" class=\"txtbutton\">");
result.append(shortKey(label));
result.append("</span></span>");
if (href != null) {
result.append("</a>");
}
break;
default:
// only image
if (href != null) {
result.append(anchorStart);
result.append(href);
result.append("\" class=\"button\"");
if (target != null) {
result.append(" target=\"");
result.append(target);
result.append("\"");
}
result.append(" title=\"");
result.append(key(label));
result.append("\">");
}
result.append("<span unselectable=\"on\" ");
if (href != null) {
result.append("class=\"norm\" onmouseover=\"className='over'\" onmouseout=\"className='norm'\" onmousedown=\"className='push'\" onmouseup=\"className='over'\"");
} else {
result.append("class=\"disabled\"");
}
result.append("><img class=\"button\" src=\"");
result.append(imagePath);
result.append(image);
if (image != null && image.indexOf('.') == -1) {
// append default suffix for button images
result.append(".png");
}
result.append("\" alt=\"");
result.append(key(label));
result.append("\">");
result.append("</span>");
if (href != null) {
result.append("</a>");
}
break;
}
result.append("</td>\n");
return result.toString();
}
/**
* Returns the html for a button bar.<p>
*
* @param segment the HTML segment (START / END)
*
* @return a button bar html start / end segment
*/
public String buttonBar(int segment) {
return buttonBar(segment, null);
}
/**
* Returns the html for a button bar.<p>
*
* @param segment the HTML segment (START / END)
* @param attributes optional attributes for the table tag
*
* @return a button bar html start / end segment
*/
public String buttonBar(int segment, String attributes) {
if (segment == HTML_START) {
String result = "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"";
if (attributes != null) {
result += " " + attributes;
}
return result + "><tr>\n";
} else {
return "</tr></table>";
}
}
/**
* Generates a horizontal button bar separator line with maximum width.<p>
*
* @return a horizontal button bar separator line
*/
public String buttonBarHorizontalLine() {
StringBuffer result = new StringBuffer(256);
result.append("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"maxwidth\">\n");
result.append("<tr>\n");
result.append("\t<td class=\"horseparator\" ><img src=\"");
result.append(getSkinUri());
result.append("tree/empty.gif\" border=\"0\" width=\"1\" height=\"1\" alt=\"\"></td>\n");
result.append("</tr>\n");
result.append("</table>\n");
return result.toString();
}
/**
* Generates a button bar label.<p>
*
* @param label the label to show
*
* @return a button bar label
*/
public String buttonBarLabel(String label) {
return buttonBarLabel(label, "norm");
}
/**
* Generates a button bar label.<p>
*
* @param label the label to show
* @param className the css class name for the formatting
*
* @return a button bar label
*/
public String buttonBarLabel(String label, String className) {
StringBuffer result = new StringBuffer(128);
result.append("<td><span class=\"");
result.append(className);
result.append("\"><span unselectable=\"on\" class=\"txtbutton\">");
result.append(key(label));
result.append("</span></span></td>\n");
return result.toString();
}
/**
* Generates a variable button bar separator line.<p>
*
* @param leftPixel the amount of pixel left to the line
* @param rightPixel the amount of pixel right to the line
* @param className the css class name for the formatting
*
* @return a variable button bar separator line
*/
public String buttonBarLine(int leftPixel, int rightPixel, String className) {
StringBuffer result = new StringBuffer(512);
if (leftPixel > 0) {
result.append(buttonBarLineSpacer(leftPixel));
}
result.append("<td><span class=\"");
result.append(className);
result.append("\"></span></td>\n");
if (rightPixel > 0) {
result.append(buttonBarLineSpacer(rightPixel));
}
return result.toString();
}
/**
* Generates a variable button bar separator line spacer.<p>
*
* @param pixel the amount of pixel space
*
* @return a variable button bar separator line spacer
*/
public String buttonBarLineSpacer(int pixel) {
StringBuffer result = new StringBuffer(128);
result.append("<td><span class=\"norm\"><span unselectable=\"on\" class=\"txtbutton\" style=\"padding-right: 0px; padding-left: ");
result.append(pixel);
result.append("px;\"></span></span></td>\n");
return result.toString();
}
/**
* Generates a button bar separator.<p>
*
* @param leftPixel the amount of pixel left to the separator
* @param rightPixel the amount of pixel right to the separator
*
* @return a button bar separator
*/
public String buttonBarSeparator(int leftPixel, int rightPixel) {
return buttonBarLine(leftPixel, rightPixel, "separator");
}
/**
* Returns the html for an invisible spacer between button bar contents like buttons, labels, etc.<p>
*
* @param width the width of the invisible spacer
* @return the html for the invisible spacer
*/
public String buttonBarSpacer(int width) {
StringBuffer result = new StringBuffer(128);
result.append("<td><span class=\"norm\"><span unselectable=\"on\" class=\"txtbutton\" style=\"width: ");
result.append(width);
result.append("px;\"></span></span></td>\n");
return result.toString();
}
/**
* Generates a button bar starter tab.<p>
*
* @param leftPixel the amount of pixel left to the starter
* @param rightPixel the amount of pixel right to the starter
*
* @return a button bar starter tab
*/
public String buttonBarStartTab(int leftPixel, int rightPixel) {
StringBuffer result = new StringBuffer(512);
result.append(buttonBarLineSpacer(leftPixel));
result.append("<td><span class=\"starttab\"><span style=\"width:1px; height:1px\"></span></span></td>\n");
result.append(buttonBarLineSpacer(rightPixel));
return result.toString();
}
/**
* Checks the lock state of the resource and locks it if the autolock feature is enabled.<p>
*
* @param resource the resource name which is checked
* @throws CmsException if reading or locking the resource fails
*/
public void checkLock(String resource) throws CmsException {
checkLock(resource, org.opencms.lock.CmsLock.COMMON);
}
/**
* Checks the lock state of the resource and locks it if the autolock feature is enabled.<p>
*
* @param resource the resource name which is checked
* @param mode flag indicating the mode (temporary or common) of a lock
* @throws CmsException if reading or locking the resource fails
*/
public void checkLock(String resource, int mode) throws CmsException {
CmsResource res = getCms().readResource(resource, CmsResourceFilter.ALL);
CmsLock lock = getCms().getLock(res);
if (OpenCms.getWorkplaceManager().autoLockResources()) {
// autolock is enabled, check the lock state of the resource
if (lock.isNullLock()) {
// resource is not locked, lock it automatically
getCms().lockResource(resource, mode);
} else if (!lock.getUserId().equals(getCms().getRequestContext().currentUser().getId())) {
throw new CmsException(Messages.get().container(Messages.ERR_WORKPLACE_LOCK_RESOURCE_1, resource));
}
} else {
if (lock.isNullLock()
|| (!lock.isNullLock() && !lock.getUserId().equals(getCms().getRequestContext().currentUser().getId()))) {
throw new CmsException(Messages.get().container(Messages.ERR_WORKPLACE_LOCK_RESOURCE_1, resource));
}
}
}
/**
* First sets site and project in the workplace settings, then fills all class parameter values from the data
* provided in the current request.<p>
*
* @param settings the workplace settings
* @param request the current request
*/
public void fillParamValues(CmsWorkplaceSettings settings, HttpServletRequest request) {
initSettings(settings, request);
fillParamValues(request);
}
/**
* Fills all class parameter values from the data provided in the current request.<p>
*
* 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.<p>
*
* @param request the current JSP request
*/
public void fillParamValues(HttpServletRequest request) {
m_parameterMap = null;
// ensure a multipart request is pared only once (for "forward" screnarios with reports)
if (null == request.getAttribute(REQUEST_ATTRIBUTE_MULTIPART)) {
// check if this is a multipart request
m_multiPartFileItems = CmsRequestUtil.readMultipartFileItems(request);
if (m_multiPartFileItems != null) {
// this was indeed a multipart form request
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -