📄 cmsnewresourcefolder.java
字号:
// Sorting algorithm
// This method uses an bubble sort, so replace this with something more
// efficient
for(int i = max - 1;i > 1;i--) {
for(int j = 1;j < i;j++) {
float a = new Float(positions[j]).floatValue();
float b = new Float(positions[j + 1]).floatValue();
if(a > b) {
String tempfilename = filenames[j];
String tempnicename = nicenames[j];
String tempposition = positions[j];
filenames[j] = filenames[j + 1];
nicenames[j] = nicenames[j + 1];
positions[j] = positions[j + 1];
filenames[j + 1] = tempfilename;
nicenames[j + 1] = tempnicename;
positions[j + 1] = tempposition;
}
}
}
}
/**
* Updates the navigation position of all resources in the actual folder.
* @param cms The CmsObject.
* @param newfile The new file added to the nav.
* @param navpos The file after which the new entry is sorted.
*/
private void updateNavPos(CmsObject cms, CmsFolder newfolder, String newpos) throws CmsException {
float newPos = 0;
// get the nav information
Hashtable storage = getNavData(cms);
if(storage.size() > 0) {
String[] nicenames = (String[])storage.get("NICENAMES");
String[] positions = (String[])storage.get("POSITIONS");
int count = ((Integer)storage.get("COUNT")).intValue();
// now find the file after which the new file is sorted
int pos = 0;
for(int i = 0;i < nicenames.length;i++) {
if(newpos.equals((String)nicenames[i])) {
pos = i;
}
}
if(pos < count) {
float low = new Float(positions[pos]).floatValue();
float high = new Float(positions[pos + 1]).floatValue();
newPos = (high + low) / 2;
}
else {
newPos = new Float(positions[pos]).floatValue() + 1;
}
}
else {
newPos = 1;
}
cms.writeProperty(newfolder.getAbsolutePath(), C_PROPERTY_NAVPOS, new Float(newPos).toString());
}
/**
* removes all session parameters used by this class.
* @param session The session.
*/
private void clearSession(I_CmsSession session){
session.removeValue(C_SESSIONHEADER + C_PARA_NEWFOLDER);
session.removeValue(C_SESSIONHEADER + C_PARA_TITLE);
session.removeValue(C_SESSIONHEADER + C_PARA_NAVTEXT);
session.removeValue(C_SESSIONHEADER + C_PARA_NAVPOS);
session.removeValue(C_SESSIONHEADER + "extendedProperties");
}
/**
* Enters a value in a Hashtable if it is not null.
* @param properties The Hashtable to be filled.
* @param key The key for the entry.
* @param value The entryvalue.
*/
private void insertProperty(Hashtable properties, String key, String value){
if(value != null){
properties.put(key, value);
}
}
/**
* Fills the needed parameters in the properties hashtable.
* @param properties The Hashtable to be filled.
* @param parameters From here we get the values.
*/
private void fillProperties(Hashtable properties, Hashtable parameters){
insertProperty(properties, "Verzeichnislogo_img", (String)parameters.get("flogopic"));
insertProperty(properties, "Verzeichnislogo_target", (String)parameters.get("flogolink"));
insertProperty(properties, "Hauptlogo_img", (String)parameters.get("mlogopic"));
insertProperty(properties, "Hauptlogo_target", (String)parameters.get("mlogolink"));
insertProperty(properties, "Sektionslogo_img", (String)parameters.get("slogopic"));
insertProperty(properties, "Sektionslogo_target", (String)parameters.get("slogolink"));
//set properties for FreierLink only when the entry is not empty
if (!((String)parameters.get("statnav")).equals("") && !((String)parameters.get("statlink")).equals("")){
insertProperty(properties, "FreierLink_navtext", (String)parameters.get("statnav"));
insertProperty(properties, "FreierLink_target", (String)parameters.get("statlink"));
}
insertProperty(properties, "Templ_bgcolor", (String)parameters.get("bcoldyn"));
insertProperty(properties, "Templ_fontcolor", (String)parameters.get("tcoldyn"));
//insertProperty(properties, "FreierLink_bgcolor", (String)parameters.get("bcollink"));
insertProperty(properties, "Templ_fontcolor_hover", (String)parameters.get("tcollink"));
insertProperty(properties, "Templ_bordercolor", (String)parameters.get("bcolemail"));
//insertProperty(properties, "Email_fontcolor", (String)parameters.get("tcolemail"));
insertProperty(properties, "Templ_leadcolor", (String)parameters.get("bcolsearch"));
//insertProperty(properties, "Suche_fontcolor", (String)parameters.get("tcolsearch"));
}
/**
* Checks if all properties are correct. if not it returns the nummber so the
* rigth errortemplate can be displayed.
*
* @param cms The cmsObject
* @param properties The Hashtable with the properties to be checked.
* @param checkFolderLogo Indicates if the FolderLogo should be checked too.
* @return int the error nummber.
*/
private int checkProperties (CmsObject cms, Hashtable properties, boolean checkFolderLogo){
// serch for error 1 (the Hauptlogo must be a OpenCms resource from type image)
try{
String logo = (String)properties.get("Hauptlogo_img");
if(logo == null || "".equals(logo)){
properties.remove("Hauptlogo_img");
}else{
CmsResource pic = cms.readFileHeader(logo);
if(!(cms.getResourceType(pic.getType()).getResourceTypeName()).equals(CmsObject.C_TYPE_IMAGE_NAME)){
return 1;
}
}
}catch(CmsException e){
return 1;
}
if(checkFolderLogo){
// serch for error 1 (the Folderlogo must be a OpenCms resource from type image)
try{
String logo = (String)properties.get("Verzeichnislogo_img");
if(logo == null || "".equals(logo)){
properties.remove("Verzeichnislogo_img");
}else{
CmsResource pic = cms.readFileHeader(logo);
if(!(cms.getResourceType(pic.getType()).getResourceTypeName()).equals(CmsObject.C_TYPE_IMAGE_NAME)){
return 1;
}
}
}catch(CmsException e){
return 1;
}
}
// serch for error 2 (FreierLink_navtext and FreierLink_target: both or none)
String text = (String)properties.get("FreierLink_navtext");
String target = (String)properties.get("FreierLink_target");
if ((text == null || "".equals(text)) != (target == null || "".equals(target))){
return 2;
}
// serch for error3 ( the colors must have the form #xxxxxx with 0<= x <= F )
String[] propsToCheck = {"Templ_bgcolor",
"Templ_fontcolor",
"Templ_fontcolor_hover",
"Templ_bordercolor",
"Templ_leadcolor"};
for (int i=0; i < propsToCheck.length; i++){
String test = (String)properties.get(propsToCheck[i]);
if ((test.length() != 7) || test.charAt(0) != '#'){
return 3;
}
String valid = "0123456789ABCDEF";
for (int j=1; j<7; j++){
if( valid.indexOf(test.charAt(j)) < 0){
return 3;
}
}
}
// no errors found
return 0;
}
/**
* sets the given or the default (when parameters is null) values in the
* template for the extended navigation
*
* @param xmlTemplateDoc The xmlTemplateDoc to be filled.
* @param parameters From here we get the values.
* @param folder The name of the folder (needed for the Sectionlogo)
*/
private void setNavDefault(CmsXmlWpTemplateFile xmlTemplateDoc, Hashtable parameters, String name){
if(parameters == null){
// set the default values for the first time it is shown
xmlTemplateDoc.setData("flogopic", "");
xmlTemplateDoc.setData("flogolink", "");
xmlTemplateDoc.setData("mlogopic", "");
xmlTemplateDoc.setData("mlogolink", "/index.html");
xmlTemplateDoc.setData("slogopic", "");
xmlTemplateDoc.setData("slogolink", "/"+ name +"/index.html");
xmlTemplateDoc.setData("statnav", "AKTUELL");
xmlTemplateDoc.setData("statlink", "");
xmlTemplateDoc.setData("bcoldyn", "#DDDDDD");
xmlTemplateDoc.setData("tcoldyn", "#333333");
//xmlTemplateDoc.setData("bcollink", "#CCCCCC");
xmlTemplateDoc.setData("tcollink", "#FF3300");
xmlTemplateDoc.setData("bcolemail", "#000099");
//xmlTemplateDoc.setData("tcolemail", "#000099");
xmlTemplateDoc.setData("bcolsearch", "#999999");
//xmlTemplateDoc.setData("tcolsearch", "#000099");
}else{
// set the values which the user entered before he pressed the backbutton
xmlTemplateDoc.setData("flogopic", getStringValue((String)parameters.get("Verzeichnislogo_img")));
xmlTemplateDoc.setData("flogolink", getStringValue((String)parameters.get("Verzeichnislogo_target")));
xmlTemplateDoc.setData("mlogopic", getStringValue((String)parameters.get("Hauptlogo_img")));
xmlTemplateDoc.setData("mlogolink", getStringValue((String)parameters.get("Hauptlogo_target")));
xmlTemplateDoc.setData("slogopic", getStringValue((String)parameters.get("Sektionslogo_img")));
xmlTemplateDoc.setData("slogolink", getStringValue((String)parameters.get("Sektionslogo_target")));
xmlTemplateDoc.setData("statnav", getStringValue((String)parameters.get("FreierLink_navtext")));
xmlTemplateDoc.setData("statlink", getStringValue((String)parameters.get("FreierLink_target")));
xmlTemplateDoc.setData("bcoldyn", getStringValue((String)parameters.get("Templ_bgcolor")));
xmlTemplateDoc.setData("tcoldyn", getStringValue((String)parameters.get("Templ_fontcolor")));
//xmlTemplateDoc.setData("bcollink", getStringValue((String)parameters.get("FreierLink_bgcolor")));
xmlTemplateDoc.setData("tcollink", getStringValue((String)parameters.get("Templ_fontcolor_hover")));
xmlTemplateDoc.setData("bcolemail", getStringValue((String)parameters.get("Templ_bordercolor")));
//xmlTemplateDoc.setData("tcolemail", getStringValue((String)parameters.get("Email_fontcolor")));
xmlTemplateDoc.setData("bcolsearch", getStringValue((String)parameters.get("Templ_leadcolor")));
//xmlTemplateDoc.setData("tcolsearch", getStringValue((String)parameters.get("Suche_fontcolor")));
}
}
/**
* returns the String or "" if it is null.
* @return java.lang.String
* @param param java.lang.String
*/
private String getStringValue(String param) {
if(param == null) {
return "";
}
return param;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -