📄 cmsnewresource.java
字号:
}
/**
* Returns the value for the Title property from the given resource name.<p>
*
* Additionally translates the new resource name according to the file translation rules.<p>
*
* @return the value for the Title property from the given resource name
*/
public String computeNewTitleProperty() {
String title = getParamResource();
int lastDot = title.lastIndexOf('.');
// check the mime type for the file extension
if ((lastDot > 0) && (lastDot < (title.length() - 1))) {
// remove suffix for Title and NavPos property
title = title.substring(0, lastDot);
}
// translate the resource name to a valid OpenCms VFS file name
String resName = CmsResource.getName(getParamResource().replace('\\', '/'));
setParamResource(getCms().getRequestContext().getFileTranslator().translateResource(resName));
return title;
}
/**
* Builds a button row with an optional "advanced", "next" and a "cancel" button.<p>
*
* @param advancedAttrs optional attributes for the advanced button
* @param nextAttrs optional attributes for the next button
* @param cancelAttrs optional attributes for the cancel button
* @return the button row
*/
public String dialogButtonsAdvancedNextCancel(String advancedAttrs, String nextAttrs, String cancelAttrs) {
if (m_limitedRestypes && getCms().hasRole(CmsRole.VFS_MANAGER)) {
return dialogButtons(new int[] {BUTTON_ADVANCED, BUTTON_NEXT, BUTTON_CANCEL}, new String[] {
advancedAttrs,
nextAttrs,
cancelAttrs});
} else {
return dialogButtons(new int[] {BUTTON_NEXT, BUTTON_CANCEL}, new String[] {nextAttrs, cancelAttrs});
}
}
/**
* Builds a button row with a "next" and a "cancel" button.<p>
*
* @param nextAttrs optional attributes for the next button
* @param cancelAttrs optional attributes for the cancel button
* @return the button row
*/
public String dialogButtonsNextCancel(String nextAttrs, String cancelAttrs) {
return dialogButtons(new int[] {BUTTON_NEXT, BUTTON_CANCEL}, new String[] {nextAttrs, cancelAttrs});
}
/**
* Returns the parameter to check if a ".html" suffix should be added to the new resource name.<p>
*
* @return the parameter to check if a ".html" suffix should be added to the new resource name
*/
public String getParamAppendSuffixHtml() {
return m_paramAppendSuffixHtml;
}
/**
* Returns the current folder set by the http request.<p>
*
* If the request parameter value is null/empty then returns the default computed folder.<p>
*
* @return the current folder set by the request param or the computed current folder
*/
public String getParamCurrentFolder() {
if (CmsStringUtil.isEmpty(m_paramCurrentFolder)) {
return computeCurrentFolder();
}
return m_paramCurrentFolder;
}
/**
* Returns the new resource edit properties flag parameter.<p>
*
* @return the new resource edit properties flag parameter
*/
public String getParamNewResourceEditProps() {
return m_paramNewResourceEditProps;
}
/**
* Returns the new resource type parameter.<p>
*
* @return the new resource type parameter
*/
public String getParamNewResourceType() {
return m_paramNewResourceType;
}
/**
* Returns the new resource URI parameter.<p>
*
* @return the new resource URI parameter
*/
public String getParamNewResourceUri() {
return m_paramNewResourceUri;
}
/**
* Returns the paramPage.<p>
*
* @return the paramPage
*/
public String getParamPage() {
return m_paramPage;
}
/**
* Returns true if the resource is created successfully; otherwise false.<p>
*
* @return true if the resource is created successfully; otherwise false
*/
public boolean isResourceCreated() {
return m_resourceCreated;
}
/**
* Sets the parameter to check if a ".html" suffix should be added to the new resource name.<p>
*
* @param paramAppendSuffixHtml the parameter to check if a ".html" suffix should be added to the new resource name
*/
public void setParamAppendSuffixHtml(String paramAppendSuffixHtml) {
m_paramAppendSuffixHtml = paramAppendSuffixHtml;
}
/**
* Sets the current folder.<p>
*
* @param paramCurrentFolder the current folder to set
*/
public void setParamCurrentFolder(String paramCurrentFolder) {
m_paramCurrentFolder = paramCurrentFolder;
}
/**
* Sets the new resource edit properties flag parameter.<p>
*
* @param newResourceEditProps the new resource edit properties flag parameter
*/
public void setParamNewResourceEditProps(String newResourceEditProps) {
m_paramNewResourceEditProps = newResourceEditProps;
}
/**
* Sets the new resource type parameter.<p>
*
* @param newResourceType the new resource type parameter
*/
public void setParamNewResourceType(String newResourceType) {
m_paramNewResourceType = newResourceType;
}
/**
* Sets the new resource URI parameter.<p>
*
* @param newResourceUri the new resource URI parameter
*/
public void setParamNewResourceUri(String newResourceUri) {
m_paramNewResourceUri = newResourceUri;
}
/**
* Sets the paramPage.<p>
*
* @param paramPage the paramPage to set
*/
public void setParamPage(String paramPage) {
m_paramPage = paramPage;
}
/**
* Sets the boolean flag successfullyCreated.<p>
*
* @param successfullyCreated a boolean flag that indicates if the create resource operation was successfull or not
*/
public void setResourceCreated(boolean successfullyCreated) {
m_resourceCreated = successfullyCreated;
}
/**
* Appends a ".html" suffix to the given resource name if no suffix is present and the append suffix option is checked.<p>
*
* @param resourceName the resource name to check
* @param forceSuffix if true, the suffix is appended overriding the append suffix option
* @return the reource name with ".html" suffix if no suffix was present and the append suffix option is checked
*/
protected String appendSuffixHtml(String resourceName, boolean forceSuffix) {
// append ".html" suffix to new file if not present
if ((forceSuffix || Boolean.valueOf(getParamAppendSuffixHtml()).booleanValue())
&& resourceName.indexOf('.') < 0) {
resourceName += ".html";
}
return resourceName;
}
/**
* Returns the full path of the current workplace folder.<p>
*
* @return the full path of the current workplace folder
*/
protected String computeCurrentFolder() {
String currentFolder = getSettings().getExplorerResource();
if (currentFolder == null) {
// set current folder to root folder
try {
currentFolder = getCms().getSitePath(getCms().readFolder("/", CmsResourceFilter.IGNORE_EXPIRATION));
} catch (CmsException e) {
// can usually be ignored
if (LOG.isInfoEnabled()) {
LOG.info(e);
}
currentFolder = "/";
}
}
if (!currentFolder.endsWith("/")) {
// add folder separator to currentFolder
currentFolder += "/";
}
return currentFolder;
}
/**
* Appends the full path to the new resource name given in the resource parameter.<p>
*
* @return the full path of the new resource
*/
protected String computeFullResourceName() {
// return the full resource name
// get the current folder
String currentFolder = getParamCurrentFolder();
if (CmsStringUtil.isEmpty(currentFolder)) {
currentFolder = computeCurrentFolder();
}
return currentFolder + getParamResource();
}
/**
* Creates a single property object and sets the value individual or shared depending on the OpenCms settings.<p>
*
* @param name the name of the property
* @param value the value to set
* @return an initialized property object
*/
protected CmsProperty createPropertyObject(String name, String value) {
CmsProperty prop = new CmsProperty();
prop.setAutoCreatePropertyDefinition(true);
prop.setName(name);
if (OpenCms.getWorkplaceManager().isDefaultPropertiesOnStructure()) {
prop.setValue(value, CmsProperty.TYPE_INDIVIDUAL);
} else {
prop.setValue(value, CmsProperty.TYPE_SHARED);
}
return prop;
}
/**
* Returns the properties to create automatically with the new VFS resource.<p>
*
* If configured, the Title and Navigation properties are set on resource creation.<p>
*
* @param resourceName the full resource name
* @param resTypeName the name of the resource type
* @param title the Title String to use for the property values
* @return the List of initialized property objects
*/
protected List createResourceProperties(String resourceName, String resTypeName, String title) {
// create property values
List properties = new ArrayList(3);
// get explorer type settings for the resource type
CmsExplorerTypeSettings settings = OpenCms.getWorkplaceManager().getExplorerTypeSetting(resTypeName);
if (settings.isAutoSetTitle()) {
// add the Title property
properties.add(createPropertyObject(CmsPropertyDefinition.PROPERTY_TITLE, title));
}
if (settings.isAutoSetNavigation()) {
// add the NavText property
properties.add(createPropertyObject(CmsPropertyDefinition.PROPERTY_NAVTEXT, title));
// calculate the new navigation position for the resource
List navList = CmsJspNavBuilder.getNavigationForFolder(getCms(), resourceName);
float navPos = 1;
if (navList.size() > 0) {
CmsJspNavElement nav = (CmsJspNavElement)navList.get(navList.size() - 1);
navPos = nav.getNavPosition() + 1;
}
// add the NavPos property
properties.add(createPropertyObject(CmsPropertyDefinition.PROPERTY_NAVPOS, String.valueOf(navPos)));
}
return properties;
}
/**
* @see org.opencms.workplace.CmsDialog#dialogButtonsHtml(java.lang.StringBuffer, int, java.lang.String)
*/
protected void dialogButtonsHtml(StringBuffer result, int button, String attribute) {
attribute = appendDelimiter(attribute);
switch (button) {
case BUTTON_NEXT:
result.append("<input name=\"next\" type=\"submit\" value=\"");
result.append(key(Messages.GUI_BUTTON_NEXTSCREEN_0));
result.append("\" class=\"dialogbutton\"");
result.append(attribute);
result.append(">\n");
break;
default:
super.dialogButtonsHtml(result, button, attribute);
}
}
/**
* @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);
if (CmsStringUtil.isNotEmpty(getParamPage())) {
m_page = getParamPage();
setParamAction(null);
setParamNewResourceUri(null);
setParamPage(null);
}
// set the action for the JSP switch
if (DIALOG_OK.equals(getParamAction())) {
setAction(ACTION_OK);
} else if (DIALOG_SUBMITFORM.equals(getParamAction())) {
setAction(ACTION_SUBMITFORM);
} else if (DIALOG_NEWFORM.equals(getParamAction())) {
setAction(ACTION_NEWFORM);
String title = CmsWorkplaceMessages.getNewResourceTitle(this, getParamNewResourceType());
setParamTitle(title);
} else if (DIALOG_CANCEL.equals(getParamAction())) {
setAction(ACTION_CANCEL);
} else {
setAction(ACTION_DEFAULT);
// build title for new resource dialog
setParamTitle(key(Messages.GUI_NEWRESOURCE_0));
if (!DIALOG_ADVANCED.equals(getParamAction()) && CmsStringUtil.isEmpty(m_page)) {
// check for presence of property limiting the new resource types to create
String newResTypesProperty = "";
try {
newResTypesProperty = getCms().readPropertyObject(
getParamCurrentFolder(),
CmsPropertyDefinition.PROPERTY_RESTYPES_AVAILABLE,
true).getValue();
} catch (CmsException e) {
// ignore this exception, this is a minor issue
}
if (CmsStringUtil.isNotEmpty(newResTypesProperty) && !newResTypesProperty.equals(VALUE_DEFAULT)) {
m_limitedRestypes = true;
m_availableResTypes = newResTypesProperty;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -