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

📄 importfolderstructureaction.java

📁 思维导图(Mind Mapping)以放射性思考(Radiant Thinking)为基础的收放自如方式
💻 JAVA
字号:
package freemind.modes.actions;import java.awt.event.ActionEvent;import java.io.File;import java.net.MalformedURLException;import javax.swing.AbstractAction;import javax.swing.JFileChooser;import freemind.modes.MindMapNode;import freemind.modes.ModeController;import freemind.modes.mindmapmode.MindMapNodeModel;public class ImportFolderStructureAction extends AbstractAction {    //  Logging:     private static java.util.logging.Logger logger;    private final ModeController controller;    public ImportFolderStructureAction(ModeController controller) {        super(controller.getText("import_folder_structure"));        this.controller = controller;        if(logger == null)            logger = controller.getFrame().getLogger(this.getClass().getName());    }    public void actionPerformed(ActionEvent e) {        JFileChooser chooser = new JFileChooser();        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);        chooser.setDialogTitle(controller                .getText("select_folder_for_importing"));        int returnVal = chooser.showOpenDialog(controller.getFrame()                .getContentPane());        if (returnVal == JFileChooser.APPROVE_OPTION) {            File folder = chooser.getSelectedFile();            controller.getFrame().out("Importing folder structure ...");            //getFrame().repaint(); // Refresh the frame, namely hide dialog            // and show status            //getView().updateUI();            // Problem: the frame should be refreshed here, but I don't know how            // to do it            try {                importFolderStructure(folder, controller.getSelected(),/* redisplay= */                true);            } catch (Exception ex) {                ex.printStackTrace();            }            controller.getFrame().out("Folder structure imported.");        }    }    public void importFolderStructure(File folder, MindMapNode target,            boolean redisplay) throws MalformedURLException {        logger.warning("Entering folder: "+folder);        if (folder.isDirectory()) {            File[] list = folder.listFiles();            // Go recursively to subfolders            for (int i = 0; i < list.length; i++) {                if (list[i].isDirectory()) {                    // Insert a new node                    MindMapNode node = addNode(target, list[i].getName(), list[i].toURL().toString());                    importFolderStructure(list[i], node, false);                }            }            // For each file: add it            for (int i = 0; i < list.length; i++) {                if (!list[i].isDirectory()) {                    addNode(target, list[i].getName(), list[i].toURL().toString());                }            }        }        controller.setFolded(target, true);            }    /**     * @param target     * @param nodeContent     * @return     */    private MindMapNode addNode(MindMapNode target, String nodeContent, String link) {        MindMapNode node = controller.addNewNode(target,                target.getChildCount(), target.isLeft());        controller.setNodeText(node, nodeContent);        controller.setLink(node, link);        return node;    }}

⌨️ 快捷键说明

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