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

📄 foldertreepanel.java

📁 一个用java写的mail.里面的代码值得我们去研究!学习。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                            ex.getMessage() );      }    } else {      // UNDONE - notify use with JOptionPane...    }  }  private void  createNewFolder() {    TreePath path = tree_.getSelectionPath();    if ( path == null ) {      return;    }    Folder folder = null;    DefaultMutableTreeNode root = null;    Object obj = path.getLastPathComponent();    if ( obj instanceof StoreTreeNode ) {      StoreTreeNode node = (StoreTreeNode) obj;      folder = node.getDefaultFolder();      root = node;    } else if ( obj instanceof FolderTreeNode ) {      FolderTreeNode node = (FolderTreeNode) obj;      folder = node.getFolder();      root = node;    }        if ( folder != null ) {      NewFolderDialog dlg =        new NewFolderDialog( (Frame)getTopLevelAncestor(), folder.getFullName() );      dlg.show();      String xfolderName = dlg.folderName();      if ( xfolderName != null && xfolderName.length() > 0 ) {        try {          MailUtilities.setStoreConnected( folder.getStore() );          Folder newFolder = folder.getFolder( xfolderName );          if ( newFolder.exists() ) {            Object[] xargs = new Object[2];            xargs[0] = xfolderName;            xargs[1] = folder.getFullName();            ComponentFactory.showDialog( ICEMail.getBundle(), "FolderTree.FolderExists",                                         0, JOptionPane.ERROR_MESSAGE, xargs );          } else {            int flags = 0;            if ( dlg.holdsFolders() )              flags += Folder.HOLDS_FOLDERS;            if ( dlg.holdsMessages() )              flags += Folder.HOLDS_MESSAGES;            boolean ok = newFolder.create( flags );                        if ( ok ) {              FolderTreeNode newNode = new FolderTreeNode( newFolder );              int ri;              int indice = 0;              int rsz = root.getChildCount();              for ( ri = 1 ; ri < rsz ; ++ri ) {                String name = null;                TreeNode n = root.getChildAt( ri );                if ( n instanceof FolderTreeNode ) {                  name = ((FolderTreeNode) n).getFolder().getName();                } else if  ( n instanceof StoreTreeNode ) {                  name = ((StoreTreeNode) n).getName();                }                if ( name != null && name.compareTo( newFolder.getName() ) > 0 ) {                  root.insert( newNode, ri );                  indice = ri;                  break;                }              }                            if ( ri >= rsz ) {                indice = rsz;                root.insert( newNode, rsz );              }              DefaultTreeModel model = (DefaultTreeModel)tree_.getModel();                            int[] indices = { indice };              model.nodesWereInserted( root, indices );              tree_.invalidate();              tree_.validate();            } else {              Object[] xargs = new Object[1];              xargs[0] = xfolderName;              ComponentFactory.showDialog( ICEMail.getBundle(), "FolderTree.CreateFailed",                                           0, JOptionPane.ERROR_MESSAGE, xargs );            }          }        } catch ( MessagingException ex ) {          Object[] xargs = new Object[1];          xargs[0] = xfolderName;          xargs[1] = ex.getMessage();          ComponentFactory.showDialog( ICEMail.getBundle(), "FolderTree.StoreFailed",                                       0, JOptionPane.ERROR_MESSAGE, xargs );        }      }    }  }  private void  openSelectedFolder() {    FolderTreeNode node = getSelectedFolder();    if ( node == null )      return;    Folder folder = node.getFolder();    String msg = ICEMail.getBundle().getString( "FolderTree.Opening.text" );    DialogRunner runner = new DialogRunner( new OpenFolderRunner( folder ),                                            (Frame)getTopLevelAncestor(), msg, msg );    runner.start();  }//............................................................  private class IActionListener    implements ActionListener  {    /**     * Invoked when an action occurs.     * <p>     * Implementation of java.awt.event.ActionListener.actionPerformed()     *     * @param event the action event that occured     */    public void    actionPerformed( ActionEvent event ) {      String command = event.getActionCommand();      if ( command.equals( "OPEN" ) ) {        openSelectedNode();      } else if ( command.equals( "PROPS" ) ) {        // UNDONE      } else if ( command.equals( "CREATEFOLDER" ) ) {        createNewFolder();      } else if ( command.equals( "ADDSTORE" ) ) {        addNewStore();      } else if ( command.equals( "RELOAD" ) ) {        loadRootStores();      } else if ( command.equals( "EXPAND" ) ) {        TreePath path = tree_.getSelectionPath();        if ( path != null ) {          tree_.expandPath( path );        }      } else if ( command.equals( "COLLAPSE" ) ) {        TreePath path = tree_.getSelectionPath();        if ( path != null ) {          tree_.collapsePath( path );        }      } else if ( command.equals( "MOVEMSG" ) ) {        FolderTreeNode node = getSelectedFolder();        if ( node != null ) {          messagePanel_.copySelectedMessages( node.getFolder(), true );        }      } else if ( command.equals( "COPYMSG" ) ) {        FolderTreeNode node = getSelectedFolder();        if ( node != null ) {          messagePanel_.copySelectedMessages( node.getFolder(), false );        }      }    }  }//............................................................  private class ITreeSelectionListener    implements TreeSelectionListener  {    public void    valueChanged( TreeSelectionEvent event ) {    }  }//............................................................  private class IMouseAdapter    extends MouseAdapter  {    private boolean    isPopupClick = false;    public    IMouseAdapter() {      super();    }    public void    mousePressed( MouseEvent event ) {      isPopupClick = false;      if ( event.isPopupTrigger() ) {        int selRow = tree_.getRowForLocation( event.getX(), event.getY() );        if ( selRow != -1 ) {          tree_.setSelectionRow( selRow );        }        isPopupClick = true;        DefaultMutableTreeNode node = getSelectedNode();        JPopupMenu popup = ( node instanceof FolderTreeNode ? folderPopup_ : storePopup_ );        popup.show( tree_, event.getX(), event.getY() );      }    }    public void    mouseReleased( MouseEvent event ) {      if ( isPopupClick )        return;      if ( event.isPopupTrigger() ) {        int selRow = tree_.getRowForLocation( event.getX(), event.getY() );        if ( selRow != -1 ) {          tree_.setSelectionRow( selRow );        }        isPopupClick = true;        DefaultMutableTreeNode node = getSelectedNode();        JPopupMenu popup = ( node instanceof FolderTreeNode ? folderPopup_ : storePopup_ );        popup.show( tree_, event.getX(), event.getY() );      }    }    public void    mouseClicked( MouseEvent event ) {      if ( isPopupClick ) {        isPopupClick = false;        return;      }      if ( event.getClickCount() == 2 ) {        processDoubleClick();      }    }    private void    processDoubleClick() {      openSelectedFolder();    }  }//............................................................  private class OpenFolderRunner    implements DialogRunnable  {    private Folder    folder_;    public    OpenFolderRunner( Folder folder ) {      folder_ = folder;    }    public void    run( JDialog dialog, JProgressBar progress ) {      dialog.show();      progress.setValue( 25 );      try {        MailUtilities.setFolderOpenAndReady( folder_, Folder.READ_WRITE );        progress.setValue( 50 );        if ( ( folder_.getType() & Folder.HOLDS_MESSAGES ) != 0 ) {          progress.setValue( 75 );          messagePanel_.setFolder( folder_ );        }        progress.setValue( 100 );      } catch ( MessagingException ex ) {        Object[] xargs = new Object[2];        xargs[0] = folder_.getName();        xargs[1] = ex.getMessage();        ComponentFactory.showDialog( ICEMail.getBundle(), "FolderTree.StoreFailed",                                     0, JOptionPane.ERROR_MESSAGE, xargs );      }      dialog.dispose();    }  }}

⌨️ 快捷键说明

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