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

📄 xmlportlets.java

📁 java 写的一个新闻发布系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
////                                   ____.//                       __/\ ______|    |__/\.     _______//            __   .____|    |       \   |    +----+       \//    _______|  /--|    |    |    -   \  _    |    :    -   \_________//   \\______: :---|    :    :           |    :    |         \________>//           |__\---\_____________:______:    :____|____:_____\//                                      /_____|////                 . . . i n   j a h i a   w e   t r u s t . . .////---------------------------------------// XMLPortlets//---------------------------------------// Serge Huber & Jerome Bedat 12.01.2001// ... little hack made by Fulco ;)//---------------------------------------// NK 25.04.2001// Ported to jaxp-1.1//---------------------------------------/** * @todo: this class should probably be renamed to XMLPortletsPersistanceManager, * or even PersonalizedPortletsPersistanceManager */package jahiatemplates.org.jahia.portlets_api;import java.io.*;import java.util.*;import javax.xml.parsers.*;import javax.xml.transform.*;import javax.xml.transform.dom.*;import javax.xml.transform.stream.*;import org.jahia.exceptions.*;			// JahiaExceptionsimport org.jahia.registries.*;          // ServicesRegistryimport org.jahia.utils.*;               // JahiaConsoleimport org.w3c.dom.*;import org.xml.sax.*;/** * This class is responsible for loading up data from an XML file that contains * the portlet configuration of a specific user. * * Format of XML document is as follows: *   <?xml version="1.0" encoding="ISO-8859-1"?> *   <plml> *     <portletgroup id=""> *       <parameter name="page_number">1</parameter> *       <portlet id=""> *         <parameter name="active">1</parameter> *         <parameter name="title">First Portlet</parameter> *         <parameter name="source_id">12</parameter> *         <parameter name="icon_url">http://</parameter> *         <parameter name="bgcolor">#FFFFFF</parameter> *         <parameter name="bgimage_url">http://</parameter> *         <parameter name="font">arial, helvetica, sans-serif</parameter> *     	   <parameter name="fontsize">1</parameter> *         <parameter name="fontcolor">#000000</parameter> *         <parameter name="innerspace">10</parameter> *         <parameter name="column_position">1</parameter> *         <parameter name="row_position">1</parameter> *         other parameters... *       </portlet> *       other portlets *     </portletgroup> *     other portlet lists (also known as pages) *   </plml> * * @author Serge Huber * */public class XMLPortlets {    private static final String CANT_READ_PORTLET_XML_MSG = "Can't read portlet XML file";    private static final String ERROR_READING_PLML_FILE_MSG = "Error reading PLML file";    private static final String PLML_TAG = "PLML";    private static final String PARAMETER_TAG = "PARAMETER";    private static final String PARAMETER_TAG_NAME_ATTRIBUTE = "name";    private static final String PARAMETER_TAG_ID_ATTRIBUTE = "id";    private static final String PORTLETLIST_TAG = "PORTLETGROUP";    private static final String PORTLET_TAG = "PORTLET";    private static final String XML_ENCODING = "ISO-8859-1";    private Document xmlDocument = null;    private boolean addPortletGroup = false;    private File theFile;    private String theXMLfile;    private String theDefaultXMLfile;    private String paramAttrNode;    private Text theTextNode;    private Node portletgroupNode;    private Node plmlNode;    private Vector thePortletList;    private int thePageID;    private int MaxColumn = 0;    //--------------------------------------------------------------------------    /**     * Constructor is initialized with the path to the Portlets XML file Descriptor     */    XMLPortlets(String theTemplatesPathDirectory, String thefilename, String theDefaultfilename, int thePageID) throws JahiaException {        File thePortletsAPIDirectory  = new File( theTemplatesPathDirectory + File.separator + "portlets_api" + File.separator );        if(!thePortletsAPIDirectory.exists()) {            thePortletsAPIDirectory.mkdirs();        }        String thePath = theTemplatesPathDirectory + File.separator + "portlets_api" + File.separator;        this.addPortletGroup = false;        this.theFile = new File( thePath + thefilename);        this.theXMLfile = thePath + thefilename;        this.theDefaultXMLfile = thePath + theDefaultfilename;        this.thePageID = thePageID;        if (!theFile.exists()) {            try {                JahiaConsole.println("XMLPortlets constructor", "Creating file " + theXMLfile + "...");                Document xmlDoc = null;                try {                    DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();                    //dfactory.setValidating(true); // create only parsers that are validating                    DocumentBuilder docBuilder = dfactory.newDocumentBuilder();                    xmlDoc = docBuilder.newDocument();                } catch ( Throwable t ){                    throw new JahiaException(  "XMLPortlets",                                        "Exception " + t.getMessage(),                                        JahiaException.ERROR,                                        JahiaException.SERVICE_ERROR);                }                Element newPlmlNode = (Element) xmlDoc.createElement(PLML_TAG);                if ( newPlmlNode == null ){                    JahiaConsole.println("XMLPortlets constructor", "newPlmlNode is null");                }                //newPlmlNode.normalize();                xmlDoc.appendChild(newPlmlNode);                theFile.createNewFile();                if (theXMLfile.equals(theDefaultXMLfile)) {                    JahiaConsole.println("XMLPortlets constructor", "Creating default file with user guest !");                    Integer thePGID = new Integer(update_count("portletgroup"));                    Element newPortletGroupNode = (Element) xmlDoc.createElement(PORTLETLIST_TAG);                    newPortletGroupNode.setAttribute(PARAMETER_TAG_ID_ATTRIBUTE, thePGID.toString());                    newPlmlNode.appendChild(newPortletGroupNode);                    Integer thePID = new Integer(thePageID);                    Element paramNode = (Element) xmlDoc.createElement(PARAMETER_TAG);                    paramNode.setAttribute(PARAMETER_TAG_NAME_ATTRIBUTE, "page_id");                    Text theTextNode = xmlDoc.createTextNode(thePID.toString());                    paramNode.appendChild(theTextNode);                    newPortletGroupNode.appendChild(paramNode);                    saveFile(xmlDoc,theFile.getAbsolutePath());                    xmlDocument = loadFile("file:" + theXMLfile);                } else {                    saveFile(xmlDoc,theFile.getAbsolutePath());                    xmlDocument = loadFile("file:" + theXMLfile);                    addPortletGroup();                }                addPortletGroup = true;            } catch (IOException ioe) {                throw new JahiaException(CANT_READ_PORTLET_XML_MSG,                                        "IOException in XML file writing : " + ioe.toString(),                                        JahiaException.CRITICAL,                                        JahiaException.CONFIG_ERROR);            }        } else {            JahiaConsole.println("XMLPortlets constructor", "Loading file " + theXMLfile + "...");            xmlDocument = loadFile("file:" + theXMLfile);        }        portletgroupNode = getPortletGroupNode();        plmlNode = getPlmlNode();    } // end Constructor    //--------------------------------------------------------------------------    private Document loadFile(String sourceFileName)    throws JahiaException {        Document xmlDoc = null;        try {            DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();            //dfactory.setValidating(true); // create only parsers that are validating            DocumentBuilder docBuilder = dfactory.newDocumentBuilder();            //docBuilder.setEntityResolver();            FileInputStream sourceStream = new FileInputStream(sourceFileName);            xmlDoc = docBuilder.parse(new InputSource(sourceStream));            xmlDoc.normalize(); // clean up DOM tree a little            Element docEl = (Element)xmlDoc.getDocumentElement();        } catch ( Throwable t ){            throw new JahiaException(  "XMLPortlets",                                        "Exception " + t.getMessage(),                                        JahiaException.ERROR,                                        JahiaException.SERVICE_ERROR);        }        return xmlDoc;    }    //--------------------------------------------------------------------------    private void saveFile(Document xmlDoc, String destinationFileName)    throws JahiaException {        try {            xmlDoc.normalize(); // cleanup DOM tree a little            TransformerFactory tfactory = TransformerFactory.newInstance();            // This creates a transformer that does a simple identity transform,            // and thus can be used for all intents and purposes as a serializer.            Transformer serializer = tfactory.newTransformer();

⌨️ 快捷键说明

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