📄 xplugindefaultserializer.java
字号:
/****************************************************************
* XBrowser - eXtended web Browser *
* *
* Copyright (c) 2000-2001 Armond Avanes *
* Refer to ReadMe & License files for more information *
* *
* *
* By: Armond Avanes *
* Armond555@yahoo.com & Armond333@yahoo.com *
* http://xbrowser.sourceforge.net/ *
*****************************************************************/
package xbrowser.plugin.io;
import java.io.*;
import java.net.*;
import java.util.*;
import xbrowser.*;
import xbrowser.util.*;
import xbrowser.plugin.*;
import org.w3c.dom.*;
public class XPluginDefaultSerializer implements XPluginSerializer
{
public XPluginDefaultSerializer()
{
}
public void importPlugins(String file_name, XPluginManager plugin_manager) throws Exception
{
URL dtd_url = XRepository.getResourceManager().getResourceURL(DTD_URL);
Document doc = XMLManager.readFileDocument(file_name, DTD_SYMBOL, dtd_url);
Node node = XMLManager.findNode(doc,"xplugins").getNextSibling().getFirstChild();
while( node!=null )
{
if( node instanceof Element )
{
if( node.getNodeName().equals("xplugin") )
loadPlugin(node, plugin_manager);
}
node = node.getNextSibling();
}
}
private void loadPlugin(Node node, XPluginManager plugin_manager) throws DOMException
{
String dock_str = XMLManager.getNodeAttribute(node, "dock");
boolean auto_start = XMLManager.getNodeAttribute(node, "autostart").equals("true");
XPluginObject plugin = new XPluginObject( XMLManager.getNodeAttribute(node, "resource") );
plugin.setAutoStart(auto_start);
if( dock_str.equals("floatable") )
plugin.setDock( XProjectConstants.PLUGIN_DOCK_FLOATABLE );
else if( dock_str.equals("dockable") )
plugin.setDock( XProjectConstants.PLUGIN_DOCK_DOCKABLE );
plugin_manager.addPlugin(plugin);
}
public void exportPlugins(String file_name, XPluginManager plugin_manager) throws Exception
{
Document doc = XMLManager.newDocument();
Element root = (Element)doc.createElement("xplugins");
doc.appendChild(root);
//// Saving Plugins
Iterator plugins = plugin_manager.getPlugins();
while( plugins.hasNext() )
savePlugin( (XPluginObject)plugins.next(), doc, root);
//// Plugins Saved
root.normalize();
XMLManager.writeDocument(file_name, doc, null, DTD_SYMBOL, null);
}
private void savePlugin(XPluginObject plugin, Document doc, Element parent_node)
{
Element node = (Element)doc.createElement("xplugin");
node.setAttribute("resource", plugin.getResource());
if( plugin.getDock()==XProjectConstants.PLUGIN_DOCK_FLOATABLE )
node.setAttribute("dock", "floatable");
else if( plugin.getDock()==XProjectConstants.PLUGIN_DOCK_DOCKABLE )
node.setAttribute("dock", "dockable");
node.setAttribute("autostart", ""+plugin.isAutoStart());
parent_node.appendChild(node);
}
// Attributes:
private final String DTD_SYMBOL = "xbrowser:default:plugin";
private final String DTD_URL = XProjectConstants.DTD_DIR+"XPlugin.dtd";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -