⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmsnewresourcefolder.java

📁 内容管理
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        // 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 + -