📄 cmsdialogelements.java
字号:
*/
public void actionUpdateElements() throws JspException {
try {
List elementList = computeElements();
CmsFile file = getCms().readFile(getParamTempfile(), CmsResourceFilter.IGNORE_EXPIRATION);
CmsXmlPage page = CmsXmlPageFactory.unmarshal(getCms(), file);
boolean foundMandatory = false;
m_changeElement = "";
Iterator i = elementList.iterator();
while (i.hasNext()) {
// get the current list element
CmsDialogElement element = (CmsDialogElement)i.next();
if (element.isMandantory()
|| element.getName().equals(getParamElementname())
|| Boolean.valueOf(getJsp().getRequest().getParameter(PREFIX_PARAM_BODY + element.getName())).booleanValue()) {
if (!element.isExisting()) {
// create element in order to enable it properly
page.addValue(element.getName(), getElementLocale());
}
page.setEnabled(element.getName(), getElementLocale(), true);
if (element.isMandantory() && !foundMandatory) {
m_changeElement = element.getName();
foundMandatory = true;
}
} else {
if (element.isExisting()) {
// remove element if it is already existing
page.removeValue(element.getName(), getElementLocale());
}
}
}
// write the temporary file
file.setContents(page.marshal());
getCms().writeFile(file);
// set the javascript functions which should be executed
if (page.isEnabled(getParamElementname(), getElementLocale())) {
m_changeElement = getParamElementname();
} else if (!foundMandatory) {
if (elementList.size() > 0) {
m_changeElement = ((CmsDialogElement)elementList.get(0)).getName();
}
}
} catch (Throwable e) {
// show error dialog
setParamMessage(Messages.get().getBundle(getLocale()).key(Messages.ERR_UPDATE_ELEMENTS_0));
includeErrorpage(this, e);
}
}
/**
* Builds the html String for a form list of all possible page elements.<p>
*
* @return the html String for a form list
*/
public String buildElementList() {
StringBuffer retValue = new StringBuffer(512);
retValue.append("<table border=\"0\">\n");
retValue.append("<tr>\n");
retValue.append("\t<td class=\"textbold\" unselectable=\"on\">"
+ key(Messages.GUI_EDITOR_DIALOG_ELEMENTS_PAGEELEMENT_0)
+ "</td>\n");
retValue.append("\t<td class=\"textbold\" unselectable=\"on\"> "
+ key(Messages.GUI_EDITOR_DIALOG_ELEMENTS_ENABLED_0)
+ " </td>\n");
retValue.append("</tr>\n");
retValue.append("<tr><td colspan=\"2\"><span style=\"height: 6px;\"></span></td></tr>\n");
try {
// get the list of all possible elements
List elementList = computeElements();
// get all present bodies from the temporary file
CmsFile file = getCms().readFile(this.getParamTempfile(), CmsResourceFilter.IGNORE_EXPIRATION);
CmsXmlPage page = CmsXmlPageFactory.unmarshal(getCms(), file);
// show all possible elements
Iterator i = elementList.iterator();
while (i.hasNext()) {
// get the current list element
CmsDialogElement element = (CmsDialogElement)i.next();
// build an element row
retValue.append("<tr>\n");
retValue.append("\t<td style=\"white-space: nowrap;\" unselectable=\"on\">" + element.getNiceName());
retValue.append("</td>\n");
retValue.append("\t<td class=\"textcenter\" unselectable=\"on\"><input type=\"checkbox\" name=\"");
retValue.append(PREFIX_PARAM_BODY);
retValue.append(element.getName());
retValue.append("\" value=\"true\"");
if ((!page.hasValue(element.getName(), getElementLocale()) && element.isMandantory())
|| page.isEnabled(element.getName(), getElementLocale())) {
retValue.append(" checked=\"checked\"");
}
if (element.isMandantory() || element.getName().equals(getParamElementname())) {
retValue.append(" disabled=\"disabled\"");
}
retValue.append(">");
retValue.append("<script type=\"text/javascript\">registerElement(\"");
retValue.append(element.getName());
retValue.append("\", ");
retValue.append(page.isEnabled(element.getName(), getElementLocale()));
retValue.append(");</script>");
retValue.append("</td>\n");
retValue.append("</tr>\n");
}
} catch (CmsException e) {
// should usually never happen
if (LOG.isInfoEnabled()) {
LOG.info(e);
}
}
retValue.append("</table>\n");
return retValue.toString();
}
/**
* Creates a list of possible elements of a template from the template property "template-elements".<p>
*
* @return the list of elements in a String array with element name, nice name (if present) and mandatory flag
*/
public List computeElements() {
if (m_elementList == null) {
m_elementList = computeElements(getCms(), getParamTempfile(), getElementLocale());
}
return m_elementList;
}
/**
* Returns the element name that has to be changed.<p>
*
* @return the element name that has to be changed
*/
public String getChangeElement() {
return m_changeElement;
}
/**
* Returns the current element locale.<p>
*
* @return the current element locale
*/
public Locale getElementLocale() {
if (m_elementLocale == null) {
m_elementLocale = CmsLocaleManager.getLocale(getParamElementlanguage());
}
return m_elementLocale;
}
/**
* Returns the current element language.<p>
*
* @return the current element language
*/
public String getParamElementlanguage() {
return m_paramElementlanguage;
}
/**
* Returns the current element name.<p>
*
* @return the current element name
*/
public String getParamElementname() {
return m_paramElementname;
}
/**
* Returns the name of the temporary file.<p>
*
* @return the name of the temporary file
*/
public String getParamTempfile() {
return m_paramTempFile;
}
/**
* Sets the current element language.<p>
*
* @param elementLanguage the current element language
*/
public void setParamElementlanguage(String elementLanguage) {
m_paramElementlanguage = elementLanguage;
}
/**
* Sets the current element name.<p>
*
* @param elementName the current element name
*/
public void setParamElementname(String elementName) {
m_paramElementname = elementName;
}
/**
* Sets the name of the temporary file.<p>
*
* @param fileName the name of the temporary file
*/
public void setParamTempfile(String fileName) {
m_paramTempFile = fileName;
}
/**
* @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);
// set the dialog type
setParamDialogtype(DIALOG_TYPE);
// set the action for the JSP switch
if (DIALOG_UPDATE_ELEMENTS.equals(getParamAction())) {
setAction(ACTION_UPDATE_ELEMENTS);
} else {
setAction(ACTION_DEFAULT);
// build title for delete dialog
setParamTitle(key(
Messages.GUI_EDITOR_DIALOG_ELEMENTS_TITLE_1,
new Object[] {CmsResource.getName(getParamResource())}));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -