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

📄 file_field.java

📁 java 写的一个新闻发布系统
💻 JAVA
字号:
////                                   ____.//                       __/\ ______|    |__/\.     _______//            __   .____|    |       \   |    +----+       \//    _______|  /--|    |    |    -   \  _    |    :    -   \_________//   \\______: :---|    :    :           |    :    |         \________>//           |__\---\_____________:______:    :____|____:_____\//                                      /_____|////                 . . . i n   j a h i a   w e   t r u s t . . .//////  File_Field//  21.01.2001 NK//  09.05.2001 NK Synchronize with rigth, logs screen////  handleField( mode, jParams )//package org.jahia.engines.shared;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import org.jahia.tools.files.*;                       // FileUploadimport org.jahia.exceptions.*;                  // JahiaExceptionimport org.jahia.utils.*;                       // JahiaConsoleimport org.jahia.data.*;                        // JahiaData, ConnectionTypesimport org.jahia.params.*;                      // ParamBeanimport org.jahia.engines.*;                     // JahiaEngine interfaceimport org.jahia.engines.filemanager.*;         // Filemanager_Engineimport org.jahia.services.filemanager.*;        // Filemanager, Folderimport org.jahia.data.fields.*;                 // JahiaField, FieldTypesimport org.jahia.data.files.*;                  // JahiaFile, JahiaFileFieldimport org.jahia.registries.*;                  // ServicesRegistryimport org.jahia.data.containers.*;import org.jahia.services.acl.*;public class File_Field{    private static          File_Field theObject   = null;    private static final    String          JSP_FILE    = "/jsp/jahia/engines/shared/file_field.jsp";    public  static final    String  READONLY_JSP  		= "/jsp/jahia/engines/shared/readonly_file_field.jsp";   /***    * getInstance     * NK    21.01.2001    *    */    public static synchronized File_Field getInstance()    {        if (theObject == null) {            theObject = new File_Field();        }        return theObject;    } // end getInstance    /***        * handles the field actions        *        * @param        jParams             a ParamBean object        * @param        mode                the mode, according to JahiaEngine        * @return       true if everything went okay, false if not        * @see          org.jahia.engines.JahiaEngine        *        */    public boolean handleField( ParamBean jParams, Integer modeInt, HashMap engineMap )    throws JahiaException    {        int mode = modeInt.intValue();        JahiaField theField = (JahiaField) engineMap.get( "theField" );        //JahiaConsole.println("File_Field::handleField() ", theField.getID() );        //JahiaConsole.println("File_Field::handleField() ", "mode is " + mode );        if ( mode != JahiaEngine.SAVE_MODE ){            String theScreen = jParams.getRequest().getParameter ("screen");            String lastScreen = jParams.getRequest().getParameter ("lastscreen");            if ( theScreen == null || lastScreen == null ){                mode = JahiaEngine.LOAD_MODE;            }        }        switch (mode)        {            case (JahiaEngine.LOAD_MODE)            :   return composeEngineMap( jParams, engineMap, theField );            case (JahiaEngine.UPDATE_MODE)          :   return getFormData( jParams, engineMap, theField );            case (JahiaEngine.SAVE_MODE)            :   return saveData( jParams, engineMap, theField );        }        return false;    } // end handleField    /***        * gets POST data from the form and saves it in session        *        * @param        jParams             a ParamBean object        * @param        engineMap           the engine hashmap        * @param        theField            the field we are working on        * @return       true if everything went okay, false if not        *        */    private boolean getFormData( ParamBean jParams, HashMap engineMap, JahiaField theField )    throws JahiaException    {        boolean out             = true;        //JahiaConsole.println("File_Field.getFormData","started");        JahiaFileField fField 	= composeFileField(jParams,engineMap,theField);        String fileTitle		= jParams.getRequest().getParameter("file_title");        if ( fileTitle == null ){            fileTitle = "";        }        Integer fileID;        try {            fileID = new Integer( jParams.getRequest().getParameter("file_id") );        } catch (NumberFormatException nfe) {            fileID = new Integer(-1);        }        if ( fField != null ){           fField.setFileID(fileID.intValue());           fField.setFileFieldTitle(fileTitle);        }        theField.setObject(fField);        Integer activeFolderID;        try {            activeFolderID = new Integer( jParams.getRequest().getParameter("active_folder_id") );        } catch (NumberFormatException nfe) {            activeFolderID = new Integer(-1);        }        //JahiaConsole.println("File_Field.getFormData","activefolderID=" + activeFolderID );        if ( activeFolderID == null || activeFolderID.intValue()==-1 ){            Folder activeFolder = ServicesRegistry.getInstance().getJahiaFilemanagerService().getFolderByFile( fileID.intValue() );            if ( activeFolder == null ){               Filemanager fmng = ServicesRegistry.getInstance().getJahiaFilemanagerService().getFilemanagerByOwner(jParams.getJahiaID());               if ( fmng == null ){                    // throws exception               }               activeFolder = fmng.getRootFolder();            }            activeFolderID = new Integer(activeFolder.getFolderID());            //JahiaConsole.println("File_Field.getFormData"," activeFolder name is " + activeFolder.getFolderName() );        }        engineMap.put( "fileID", fileID );        engineMap.put( "activeFolderID", activeFolderID );        engineMap.put("fileTitle",fileTitle);        //JahiaConsole.println("File_Field.getFormData","getFormData for " +  jParams.getEngine() + " fileTitle is " + fileTitle);        return out;    } // end getFormData    /***     * saves data in datasource     *     * @param        jParams             a ParamBean object     * @param        engineMap           the engine hashmap     * @param        theField            the field we are working on     * @return       true if everything went okay, false if not     *     */    private boolean saveData( ParamBean jParams, HashMap engineMap, JahiaField theField )    throws JahiaException    {        //JahiaConsole.println("File_Field.saveData","started ");        theField.setValue( FormDataManager.getInstance().encode( theField.getValue() ) );        JahiaFileField fField = (JahiaFileField)theField.getObject();        if ( fField != null ){            //fField.setFileFieldTitle(fileTitle);            //fField.setFileID(fileID);            //theField.setObject(fField);            // 0 for parentAclID in saveField, because field already exists            //  -> field already has an aclID            //  -> no need to create a new one            //JahiaConsole.println("File_Field.saveData","fieldID= " + theField.getID());            fField.setFieldID(theField.getID());            ServicesRegistry.getInstance().getJahiaFieldService().saveField( theField, 0, jParams );        }        engineMap.put( "engineOutputFile", JahiaEngine.CLOSE_JSP );        return true;    } // end saveData    /***        * composes engine hash map        *        * @param        jParams             a ParamBean object        * @param        engineMap           the engine hashmap        * @param        theField            the field we are working on        * @return       true if everything went okay, false if not        *        */    private boolean composeEngineMap( ParamBean jParams, HashMap engineMap, JahiaField theField )    throws JahiaException    {        boolean editable = false;        JahiaContainer theContainer = (JahiaContainer)engineMap.get("theContainer");        if ( theContainer == null ){            // in case of a field , not a field in a container            editable = true;        } else if ( theContainer.getListID()!=0 ){            JahiaBaseACL acl = JahiaEngineTools.getCtnListFieldACL((HashMap)engineMap.get("ctnListFieldAcls"), theField.getID());            if ( acl != null ){                editable = acl.getPermission(jParams.getUser(),JahiaBaseACL.WRITE_RIGHTS, jParams.getSiteID());            }        } else {            editable = true;        }        String output = "";        //JahiaConsole.println("File_Field.composeEngineMap","composeEngineMap for " +  jParams.getEngine() );        JahiaFileField fField = composeFileField(jParams,engineMap,theField);        // set the object        theField.setObject(fField);        if ( editable ){            // the files list for a gived page and all files made public            Vector v = ServicesRegistry.getInstance()                                                .getJahiaFilemanagerService()                                                .getFilesByPage(jParams.getSiteID(),jParams.getPageID(),true);            Vector filesList = new Vector();            if ( jParams.getUser().isAdminMember(jParams.getSiteID()) ){                filesList = v;            } else {                int size = v.size();                JahiaFile jf = null;                for (int i=0 ; i<size ; i++){                    jf = (JahiaFile)v.get(i);                    if ( (jf.getPublic()>0) || jf.getUploadUser().equals(jParams.getUser().getName()) ){                        filesList.add(jf);                    }                }            }            engineMap.put( "filesList", filesList.elements() );            // the filemanager engine url            Vector datas = new Vector();            datas.add(""); // action            datas.add(theField);            engineMap.put( "filemanagerUrl", Filemanager_Engine.getInstance().renderLink( jParams, datas ) );            theField.setValue( FormDataManager.getInstance().formDecode(theField.getValue()) );            output = ServicesRegistry.getInstance().getJahiaFetcherService().fetchServlet( jParams, JSP_FILE );            theField.setValue( FormDataManager.getInstance().decode(theField.getValue()) );        } else {            output = ServicesRegistry.getInstance().getJahiaFetcherService().fetchServlet( jParams, READONLY_JSP );        }        engineMap.put( "fieldForm", output );        return true;    } // end composeEngineMap    /***        * composes JahiaFileField object        *        * @param        jParams             a ParamBean object        * @param        engineMap           the engine hashmap        * @param        theField            the field we are working on        * @return       the page object        *        */    private JahiaFileField composeFileField( ParamBean jParams, HashMap engineMap, JahiaField theField )    throws JahiaException    {        JahiaFileField fField = null;        if (theField.getObject() == null) {            // get the active folder            Folder activeFolder = null;            Integer activeFolderID = null;            Filemanager fmng = null;            // set to root folder            fmng = ServicesRegistry.getInstance().getJahiaFilemanagerService().getFilemanagerByOwner(jParams.getJahiaID());            if ( fmng == null ){                // throws exception            } else {                activeFolder = fmng.getRootFolder();            }            activeFolderID = new Integer(activeFolder.getFolderID());            String fileTitle = "";            //JahiaConsole.println("File_Field.composeFileField","activefolderID=" + activeFolderID );            //JahiaConsole.println("File_Field.composeFileField","fileTitle=" + fileTitle );            engineMap.put( "fileID", new Integer(-1) );            engineMap.put( "activeFolderID", activeFolderID );            engineMap.put( "fileTitle", fileTitle );            fField = new JahiaFileField(	theField.getID(),                                            fmng.getFilemanagerID(),                                            activeFolder.getFolderID(),                                            "", 		// upload user                                            "", 		// realname                                            "",			// storage name                                            0,			// modif date                                            0,			// size                                            "",			// type                                            "",			// title                                            ""	);		// descr            fField.setFileID(-1);        } else {            fField = (JahiaFileField)theField.getObject();            //System.out.println(" composeFileField(), getObject not null and fField.getFieldID()=" + fField.getFieldID());            int fileID = fField.getFileID();            JahiaFile fileItem  = ServicesRegistry.getInstance().getJahiaFilemanagerService().getFileDB(fileID);            // get the active folder            Folder activeFolder = null;            Integer activeFolderID = null;            if ( fileItem != null ) {                // the active folder                activeFolder = ServicesRegistry.getInstance().getJahiaFilemanagerService().getFolderByFile(fileItem.getFileID());            } else {                // set to root folder                Filemanager fmng = ServicesRegistry.getInstance().getJahiaFilemanagerService().getFilemanagerByOwner(jParams.getJahiaID());                if ( fmng == null ){                    // throws exception                }                activeFolder = fmng.getRootFolder();            }            activeFolderID = new Integer(activeFolder.getFolderID());            engineMap.put( "fileID", new Integer(fField.getFileID()) );            engineMap.put( "activeFolderID", activeFolderID );            engineMap.put( "fileTitle", fField.getFileFieldTitle() );        }        return fField;    } // end composePage} // end File_Field

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -