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

📄 messagepanel.java

📁 一个用java写的mail.里面的代码值得我们去研究!学习。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        xstate = ComposeFrame.EDITING;      }      Message msg = ( (xstate == ComposeFrame.CREATING) ? null : model_.getMessage( idx ) );      String xselection = viewer_.getTextSelection();      if ( xselection != null && xselection.length() == 0 ) {        xselection = null;      }      ComposeFrame xcomposeframe = ComposeMgr.getInstance().getComposeFrame();      xcomposeframe.editMessage( xstate, msg, xselection );    }    MainFrame.getInstance().resetCursor();  }//............................................................  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( "CUT" )   || command.equals( "COPY" ) ||           command.equals( "PASTE" ) || command.equals( "UNDO" ) ) {        viewer_.distribute( event );      } else if ( command.equals( "EXPUNGE" ) ) {        expungeDeletedMessages();      } else if ( command.equals( "DELETEMSG" ) ) {        deleteSelectedMessages();      } else if ( command.equals( "NEXTHTML" ) || command.equals( "PREVHTML" ) ||                  command.equals( "STOPHTML" ) ) {        viewer_.distribute( event );      } else if ( command.equals( "GETNEWMAIL" ) ) {        getNewMail();      } else  if ( command.equals( "NEXTMSG" ) ) {        moveSelectedMessage( 1 );      } else  if ( command.equals( "PREVMSG" ) ) {        moveSelectedMessage( -1 );      } else  if ( command.equals( "PRINTMSG" ) ) {        printSelectedMessages();      } else  if ( command.equals( "BROWSESEL" ) ) {        String selStr = viewer_.getTextSelection();        if ( selStr != null && selStr.length() > 0 ) {          HotJavaMailBrowser.setBrowserDocumentString( selStr );        }      } else if ( command.startsWith( "REPLY" ) || command.startsWith( "FORWARD" ) ||                  command.startsWith( "COMPOSE" ) || command.startsWith( "EDIT" ) ) {        composeMessage( command );      } else  if ( command.equals( "PROPS" ) ) {        showMessageProperties();      } else  if ( command.equals( "DUMPTOFILE" ) ) {        dumpSelectedMessages();      } else if ( command.equals( "TOGGLEHDRS" ) ) {        JCheckBoxMenuItem xmenuitem = (JCheckBoxMenuItem)event.getSource();        viewer_.setFullHeaders( xmenuitem.getState() );      } else if ( command.equals( "TOGGLESMIME" ) ) {        JCheckBoxMenuItem xmenuitem = (JCheckBoxMenuItem)event.getSource();        viewer_.setParseSMimeMessages( xmenuitem.getState() );      } else {      // distribute to the sub-panels      }    }  }//............................................................  private class ITableCellRenderer    extends DefaultTableCellRenderer  {    private DateFormat   dateFmt;      public    ITableCellRenderer() {      super();      if ( Package.DEBUG && Package.isTraceable( "MessagePanel" ) ) {        System.err.println( "MessagePanel.ITableCellRenderer()" );      }      dateFmt = DateFormat.getDateTimeInstance( DateFormat.SHORT, DateFormat.MEDIUM,                                                ICEMail.getLocale() );//      String dateFmtProp =//        UserProperties.getProperty//          ( "folder.dateFormat",//            "E yyMMdd hh:mm:ss a" );////      this.dateFmt =//        new SimpleDateFormat( dateFmtProp, ICEMail.getLocale() );////      this.dateFmt.setTimeZone( TimeZone.getDefault() );    }    public Component    getTableCellRendererComponent( JTable table, Object value,                                   boolean isSelected, boolean hasFocus,                                   int row, int column ) {      Component result =        super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );      Flags f = model_.getMessageFlags( row );      if ( f.contains( Flags.Flag.SEEN ) ) {        setForeground( MessagePanel.OldMsgColor_ );      } else {        setForeground( MessagePanel.NewMsgColor_ );      }      if ( value instanceof Date ) {        String dateStr = this.dateFmt.format( (Date) value );        setText( dateStr );        setIcon( null );      } else if ( value instanceof String ) {        setText( (String)value );        setIcon( null );      } else if ( value instanceof JLabel ) {        setText( ((JLabel)value).getText() );        setIcon( ((JLabel)value).getIcon() );      }      return this;    }  }//............................................................  private class IListSelectionListener    implements ListSelectionListener  {    public void    valueChanged( ListSelectionEvent event ) {      if ( model_ != null && ! event.getValueIsAdjusting() ) {        ListSelectionModel lm = (ListSelectionModel) event.getSource();        int idx = lm.getMinSelectionIndex();        if ( idx != -1 && idx < messageTable_.getRowCount() &&             messageTable_.isRowSelected( idx ) ) {          if ( idx != currentIndex_ ) {            MainFrame.getInstance().setWaitCursor();            statusBar_.setCurrentMessageNum( idx + 1 );            model_.setMessageSeen( idx );            Message msg = model_.getMessage( idx );            viewer_.setMessage( msg );            currentIndex_ = idx;            MainFrame.getInstance().resetCursor();          }        }      }    }  }//............................................................  private class IExpungeRunner    implements  DialogRunnable  {    private Folder    exFolder;    public    IExpungeRunner( Folder folder ) {      this.exFolder = folder;    }    public void    run( JDialog dialog, JProgressBar progress ) {      dialog.show();      progress.setValue( 33 );      try {        MailEventThread.getInstance().notifyIncomingMail( this.exFolder, false );      // close the folder, expunging deleted messages        MailUtilities.setStoreConnected( exFolder.getStore() );        synchronized ( exFolder ) {          if ( exFolder.isOpen() ) {            exFolder.close( true );          }        }        progress.setValue( 66 );        folder_ = null;        setFolder( exFolder );        progress.setValue( 95 );        System.gc();        progress.setValue( 100 );      } catch ( MessagingException ex ) {        Object[] xargs = new Object[1];        xargs[0] = ex.getMessage();        ComponentFactory.showDialog( ICEMail.getBundle(), "MessagePanel.ExpungeError",                                     0, JOptionPane.ERROR_MESSAGE, xargs );      }      dialog.dispose();    }  }//............................................................  private class INewMailRunner    implements  DialogRunnable  {    public    INewMailRunner() {    }    public void    run( JDialog dialog, JProgressBar progress ) {      dialog.show();      progress.setValue( 25 );      try {        MailUtilities.setFolderOpenAndReady( folder_, Folder.READ_WRITE );        if ( folder_.hasNewMessages() ) {          Folder f = folder_;          progress.setValue( 50 );        // close the folder          MailUtilities.setStoreConnected( f.getStore() );          synchronized ( f ) {            if ( f.isOpen() ) {              f.close( false );            }          }          progress.setValue( 75 );        // reset and get the folder contents again          folder_ = null;          setFolder( f );          progress.setValue( 95 );          System.gc();          progress.setValue( 100 );        } else {          progress.setValue( 100 );          int delay = UserProperties.getProperty( "retrieveDelayMillis", 500 );          try {            Thread.currentThread().sleep( delay );          } catch ( InterruptedException ex ) {          }        }      } catch ( MessagingException ex ) {        Object[] xargs = new Object[1];        xargs[0] = ex.getMessage();        ComponentFactory.showDialog( ICEMail.getBundle(), "MessagePanel.RetrieveError",                                     0, JOptionPane.ERROR_MESSAGE, xargs );      }      dialog.dispose();    }  }//............................................................  private class IMouseAdapter    extends MouseAdapter  {    int      previousColumn_    = -1;    boolean  previousAscending_ = false;  // UNDONE This needs to be 'invokeLater'-ed.    public void    mouseClicked( MouseEvent evt ) {      if ( Package.DEBUG && Package.isTraceable( "MessagePanel" ) ) {        System.err.println( "MessagePanel.mouseClicked(): " + evt );      }      if ( evt.getClickCount() == 1 ) {        boolean xascending = ( (evt.getModifiers() & InputEvent.SHIFT_MASK) == 0 );        TableColumnModel xmodel = messageTable_.getColumnModel();        int xindex = xmodel.getColumnIndexAtX( evt.getX() );        int xcolumn = messageTable_.convertColumnIndexToModel( xindex );        if ( xcolumn != -1 ) {          if ( previousColumn_ == xcolumn ) {            if ( Package.DEBUG && Debug_ > 0 ) {              System.err.println( "MessagePanel.mouseClicked(): as-" + xascending +                                  " pas-" + previousAscending_ );            }            xascending = (previousAscending_) ? false : true;          }          messageTable_.getSelectionModel().clearSelection();          currentIndex_ = -1;          Object[] xargs = { folder_.getName() };          String msg =            ICEMail.getBundle().getFormatString( "MessagePanel.Sorting", xargs );          String title =            ICEMail.getBundle().getString( "MessagePanel.Sorting.title" );          DialogRunner runner = new DialogRunner(              new ISortMailRunner( xcolumn, xascending ),                                   (Frame)getTopLevelAncestor(), title, msg );          runner.start();          previousAscending_ = xascending;          previousColumn_ = xcolumn;        }      }    }  }//............................................................  private class ISortMailRunner    implements DialogRunnable  {    private int     sortColumn;    private boolean sortAscend;    public    ISortMailRunner( int col, boolean asc ) {      this.sortColumn = col;      this.sortAscend = asc;    }    public void    run( JDialog dialog, JProgressBar progress ) {      dialog.show();      MainFrame.getInstance().setWaitCursor();      progress.setMaximum( 10 + (messageTable_.getRowCount() * 2) );      progress.setValue( 5 );      model_.cacheAllMessages( progress );      progress.setValue( progress.getValue() + 5 );      model_.sortOnColumn( progress, this.sortColumn, this.sortAscend );      System.gc();      progress.setValue( progress.getMaximum() );      viewer_.setMessage( null );      statusBar_.setCurrentMessageNum( 1 );      showTableRow( 0 );      if ( messageTable_.getRowCount() > 0 ) {        messageTable_.setRowSelectionInterval( 0, 0 );      }      MainFrame.getInstance().resetCursor();      dialog.dispose();    }  }}

⌨️ 快捷键说明

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