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

📄 renameaction.java

📁 该系统是一个基于p2p的即时聊天系统
💻 JAVA
字号:
/* * @(#) RenameAction.java * Copyright 2004 HWStudio. All rights reserved. */package hws.item.smart.action.share.upload;//导入核心Java类库import java.awt.event.ActionEvent;import java.util.List;import java.util.zip.ZipEntry;import javax.swing.JOptionPane;import javax.swing.tree.DefaultMutableTreeNode;//导入自定义Java类库import hws.item.smart.Smart;import hws.item.smart.misc.PopToolkit;import hws.item.smart.misc.StringShop;import hws.item.smart.panel.function.chat.ViewPanel;import hws.item.smart.panel.function.share.UploadPanel;import hws.item.smart.action.BaseAction;import hws.item.smart.utility.chat.UserInfo;/** * 对文件或者目录重新命名 * * @version 0.1 2005-08-29 * @author Hwerz */public class RenameAction extends BaseAction {    /*------------------------------------------------------------------------*     *                                属性定义                                *     *------------------------------------------------------------------------*/    /**     * 该类自身的一个静态引用     */    private static RenameAction action;    /*------------------------------------------------------------------------*     *                                构造函数                                *     *------------------------------------------------------------------------*/    /**     * 构造函数为私有,这样在整个运行过程中该类就只能有一个实例     */    private RenameAction() {        super("重命名");        setHintInfo("对文件或者目录重新命名");        setEnabled(false);    }    /*------------------------------------------------------------------------*     *                                公共方法                                *     *------------------------------------------------------------------------*/    /**     * 对该类提供的一个全局访问点,用来实例化该对象     *     * @return 该类唯一的一个实例     */    public static RenameAction getInstance() {        if (action == null) {            action = new RenameAction();        }        return action;    }    /*------------------------------------------------------------------------*     *                                私有方法                                *     *------------------------------------------------------------------------*/    /**     * 重命名     */    private void rename() {        DefaultMutableTreeNode n = UploadPanel.getInstance().getSelectedNode();        ZipEntry entry = (ZipEntry) n.getUserObject();        String oldName = entry.getName();        if (entry.isDirectory() == true) {            oldName = oldName.substring(0, oldName.length() - 1);            int index = oldName.lastIndexOf("/");            oldName = oldName.substring(index + 1, oldName.length());        } else {            int index = oldName.lastIndexOf("/");            oldName = oldName.substring(index + 1, oldName.length());        }        boolean flag = true;        do {            String newName = (String) JOptionPane.showInputDialog(                Smart.getInstance(), "请输入合法的文件名:", "重命名",                JOptionPane.PLAIN_MESSAGE, null, null, oldName);            if (newName != null) {                newName = newName.trim();                if (PopToolkit.checkFileName(newName)) {                    if (newName.equals(oldName) == false) {                        UploadPanel.getInstance().rename(newName);                    }                    flag = false;                } else {                    int option = JOptionPane.showConfirmDialog(                        Smart.getInstance(), "您输入的文件名不合法,要重新输入吗?",                        StringShop.HINT_TITLE, JOptionPane.YES_NO_OPTION,                        JOptionPane.QUESTION_MESSAGE);                    if (option == JOptionPane.NO_OPTION) {                        flag = false;                    }                }            } else {                flag = false;            }        } while (flag);    }    /*------------------------------------------------------------------------*     *                                覆盖方法                                *     *------------------------------------------------------------------------*/    /**     * 覆盖超类Action的方法     *     * @param event ActionEvent对象     */    public void actionPerformed(ActionEvent event) {        String id = ViewPanel.getInstance().getUserID();        if (id.length() > 0) {            UserInfo user = UserInfo.getRemoteUserInfo(id);            List files = user.getSharesInfo().getAllShareFiles();            String file = UploadPanel.getInstance().getSelectedFile();            boolean shared = false;            for (int i = 0; i < files.size(); i++) {                String file2 = files.get(i).toString();                if (file2.indexOf(file) != -1) {                    shared = true;                    break;                }            }            if (shared) {                JOptionPane.showMessageDialog(Smart.getInstance(),                    "不能重命名共享文件及其所在的目录,除非先取消文件的共享属性!",                    StringShop.HINT_TITLE, JOptionPane.INFORMATION_MESSAGE);            } else {                rename();            }        } else {            JOptionPane.showMessageDialog(Smart.getInstance(),                "您还没有登录,请先登录!", StringShop.HINT_TITLE,                JOptionPane.INFORMATION_MESSAGE);        }    }}

⌨️ 快捷键说明

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