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

📄 uploadpanel.java

📁 该系统是一个基于p2p的即时聊天系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * @(#) UploadPanel.java * Copyright 2004 HWStudio. All rights reserved. */package hws.item.smart.panel.function.share;//导入核心Java类库import java.io.File;import java.io.IOException;import java.io.StringReader;import java.awt.Insets;import java.awt.Component;import java.awt.FlowLayout;import java.awt.GridBagLayout;import java.awt.GridBagConstraints;import java.net.MalformedURLException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.util.Vector;import java.util.ArrayList;import java.util.StringTokenizer;import java.util.zip.ZipEntry;import javax.swing.JTree;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JButton;import javax.swing.JTextArea;import javax.swing.JSplitPane;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.tree.TreePath;import javax.swing.tree.DefaultTreeModel;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.tree.DefaultTreeCellRenderer;import javax.swing.tree.DefaultTreeSelectionModel;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;//导入自定义Java类库import hws.item.smart.Smart;import hws.item.smart.misc.ImageShop;import hws.item.smart.misc.SBChanger;import hws.item.smart.misc.XMLConfig;import hws.item.smart.misc.StringShop;import hws.item.smart.misc.ActionCenter;import hws.item.smart.panel.function.chat.ViewPanel;import hws.item.smart.action.share.upload.RenameAction;import hws.item.smart.action.share.upload.AddFileAction;import hws.item.smart.action.share.upload.SetShareAction;import hws.item.smart.action.share.upload.DeleteFileAction;import hws.item.smart.action.share.upload.ExtractFileAction;import hws.item.smart.action.share.upload.NewDirectoryAction;import hws.item.smart.utility.share.ZipToolkit;//导入第三方Java类库import org.jdom.Element;import org.jdom.Document;import org.jdom.JDOMException;import org.jdom.input.SAXBuilder;import org.jdom.output.XMLOutputter;import org.apache.xmlrpc.XmlRpc;import org.apache.xmlrpc.XmlRpcClient;import org.apache.xmlrpc.XmlRpcRequest;import org.apache.xmlrpc.XmlRpcException;/** * 上传文件面板 * * @version 0.1 2005-08-29 * @author Hwerz */public class UploadPanel extends JPanel {    /*------------------------------------------------------------------------*     *                                属性定义                                *     *------------------------------------------------------------------------*/    /**     * 分隔符     */    private static final String DELIMITER = "/";    /**     * 文件系统树根节点     */    private static final DefaultMutableTreeNode FILE_ROOT =        new DefaultMutableTreeNode("上传文件");    /**     * 用户系统树根节点     */    private static final DefaultMutableTreeNode USER_ROOT =        new DefaultMutableTreeNode("共享好友");    /**     * 该类自身的一个静态引用     */    private static UploadPanel panel;    /**     * 文件系统树视图     */    private JTree fileSystemTree;    /**     * 文件系统树模型     */    private DefaultTreeModel fileSystemModel;    /**     * 用户系统树视图     */    private JTree userSystemTree;    /**     * 用户系统树模型     */    private DefaultTreeModel userSystemModel;    /**     * 用户信息文本域     */    private JTextArea userInfoTextArea;    /**     * Zip文件工具箱     */    private ZipToolkit toolkit;    /*------------------------------------------------------------------------*     *                                构造函数                                *     *------------------------------------------------------------------------*/    /**     * 构造函数为私有,这样在整个运行过程中该类就只能有一个实例     */    private UploadPanel() {        super(new GridBagLayout());        toolkit = ZipToolkit.getInstance();        //工具栏面板        GridBagConstraints constraints = new GridBagConstraints(            //gridx, gridy            0, 0,            //gridwidth, gridheight            1, 1,            //weightx, weighty            1.0, 0.0,            //anchor            GridBagConstraints.NORTH,            //fill            GridBagConstraints.HORIZONTAL,            //insets            new Insets(5, 0, 0, 0),            //ipadx, ipady            0, 0);        add(new Toolbar(), constraints);        //分割条面板        JSplitPane spliter = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false,            new FileViewPanel(), new UserViewPanel());        spliter.setOneTouchExpandable(true);        spliter.setDividerLocation(300);        constraints.gridy = 1;        constraints.weighty = 1.0;        constraints.fill = GridBagConstraints.BOTH;        constraints.insets = new Insets(5, 5, 5, 5);        add(spliter, constraints);    }    /*------------------------------------------------------------------------*     *                                公共方法                                *     *------------------------------------------------------------------------*/    /**     * 对该类提供的一个全局访问点,用来实例化该对象     *     * @return 该类唯一的一个实例     */    public static UploadPanel getInstance() {        if (panel == null) {            panel = new UploadPanel();        }        return panel;    }    /**     * 返回文件系统树的选中目录或者文件节点     *     * @return 文件系统树的选中目录或者文件节点     */    public DefaultMutableTreeNode getSelectedNode() {        DefaultMutableTreeNode node = null;        TreePath path = fileSystemTree.getSelectionPath();        if (path != null) {            node = (DefaultMutableTreeNode) path.getLastPathComponent();        }        return node;    }    /**     * 返回文件系统树的选中目录或者文件节点的文件名     *     * @return 文件系统树的选中目录或者文件节点的文件名     */    public String getSelectedFile() {        String file = null;        DefaultMutableTreeNode node = getSelectedNode();        if (node != null) {            StringBuffer buffer = new StringBuffer();            buffer.append(DELIMITER);            if (node != FILE_ROOT) {                buffer.append(node.toString());            }            file = buffer.toString();        }        return file;    }    /**     * 返回选中文件的共享好友     *     * @return 选中文件的共享好友     */    public List getAllShareFriends() {        List friends = new ArrayList();        for (int i = 0; i < USER_ROOT.getChildCount(); i++) {            friends.add(USER_ROOT.getChildAt(i).toString());        }        return friends;    }    /**     * 在选中的目录中添加子目录     *     * @param name 待添加子目录的名称     */    public void newDirectory(String name) {        DefaultMutableTreeNode parent = getSelectedNode();        String parentName = "";        if (parent == FILE_ROOT) {            toolkit.newDirectory(null, name);        } else {            ZipEntry entry = (ZipEntry) parent.getUserObject();            toolkit.newDirectory(entry, name);            parentName = entry.getName();        }        reloadEntries();        parent = getNode(parentName);        fileSystemTree.expandPath(new TreePath(parent.getPath()));        for (int i = 0; i < parent.getChildCount(); i++) {            DefaultMutableTreeNode child = (DefaultMutableTreeNode) parent                .getChildAt(i);            ZipEntry entry2 = (ZipEntry) child.getUserObject();            if (entry2.isDirectory() == true) {                if (toolkit.getShortName(entry2).equals(name) == true) {                    fileSystemTree                        .setSelectionPath(new TreePath(child.getPath()));                    break;                }            }        }    }    /**     * 向选中的目录中添加文件     *     * @param file 待添加的文件     */    public void addFile(File file) {        DefaultMutableTreeNode parent = getSelectedNode();        String parentName = "";        if (parent == FILE_ROOT) {            toolkit.addFile(null, file);        } else {            ZipEntry entry = (ZipEntry) parent.getUserObject();            toolkit.addFile(entry, file);            parentName = entry.getName();        }        reloadEntries();        parent = getNode(parentName);        fileSystemTree.expandPath(new TreePath(parent.getPath()));        for (int i = 0; i < parent.getChildCount(); i++) {            DefaultMutableTreeNode child = (DefaultMutableTreeNode) parent                .getChildAt(i);            ZipEntry entry2 = (ZipEntry) child.getUserObject();            if (entry2.isDirectory() == false) {                if (toolkit.getShortName(entry2).equals(file.getName())) {                    fileSystemTree                        .setSelectionPath(new TreePath(child.getPath()));                    break;                }            }        }    }    /**     * 删除选中的文件或者目录     */    public void deleteFile() {        DefaultMutableTreeNode node = getSelectedNode();        if (node != FILE_ROOT) {            ZipEntry entry = (ZipEntry) node.getUserObject();            toolkit.deleteFile(entry);            int row = fileSystemTree                .getRowForPath(fileSystemTree.getSelectionPath());            fileSystemModel.removeNodeFromParent(node);            fileSystemTree.setSelectionRow(row - 1);        }    }    /**

⌨️ 快捷键说明

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