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

📄 threadstablemodel.java

📁 Gmail API for Java 一个gmail信箱的客户端
💻 JAVA
字号:
package siuying.gm.app.gmailer4j.model;

import java.util.*;
import javax.swing.table.*;
import siuying.gm.structure.*;

/**
 * ThreadsTableModel
 * @version v0.1.2
 */
public class ThreadsTableModel extends javax.swing.table.AbstractTableModel{
  private ArrayList messageThreads;
  private HashMap box;
  private static String[] columnName = {"Subject", "Date", "Author"};

  public ThreadsTableModel() {
    this.messageThreads = new ArrayList();
    this.box = new HashMap();
  }

  /**
   * getColumnCount
   *
   * @return int
   */
  public int getColumnCount() {
    return 3;
  }

  /**
   * getRowCount
   *
   * @return int
   */
  public int getRowCount() {
    if (messageThreads != null){
      return messageThreads.size();
    }else{
      return 0;
    }
  }

  /**
   * getValueAt
   *
   * @param rowIndex int
   * @param columnIndex int
   * @return Object
   */
  public Object getValueAt(int rowIndex, int columnIndex) {
    try{
      GMThread msg = (GMThread) messageThreads.get(rowIndex);
      switch(columnIndex){
        case 0:
          return "<html>" + msg.getSubjectHtml() + "</html>";
        case 1:
          return "<html>" + msg.getDateHtml() + "</html>";
        case 2:
          return "<html>" + msg.getAuthorsHtml() + "</html>";
        default:
          return "";
      }
    }catch(ClassCastException cce){
      return "";
    }
  }

  public Class getColumnClass(int index){
    return String.class;
  }

  public ArrayList getMessageThreads() {
    return messageThreads;
  }

  public String getColumnName(int idx){
    if (idx < columnName.length){
      return columnName[idx];
    }else{
      return "";
    }
  }

  public void setCurrentBox(String box) {
    if (this.box.get(box) == null){
        ArrayList newMessageThreads = new ArrayList();
        this.box.put(box, newMessageThreads);
        this.messageThreads = newMessageThreads;
    }else{
        this.messageThreads = (ArrayList) this.box.get(box);
    }
    this.fireTableDataChanged();
  }

  public String getMailboxName(){
    if (this.box.containsValue(this.messageThreads)){
      Set keys = this.box.keySet();
      for(Iterator iter = keys.iterator(); iter.hasNext(); ){
        String key = (String)iter.next();
        if (this.box.get(key).equals(this.messageThreads)){
          return key;
        }
      }
      return null;
    }else{
      return null;
    }
  }

  public void setMessageThreads(String box, ArrayList messageThreads) {
    this.messageThreads = messageThreads;
    this.box.put(box, messageThreads);
    this.fireTableDataChanged();
  }

  public String toString(){
    return box.toString();
  }

  public void clear(){
      messageThreads = null;
      for(Iterator i = box.values().iterator(); i.hasNext();){
          ArrayList list = (ArrayList)i.next();
          list.clear();
      }
      box = null;
  }

  public ArrayList getBox(String box){
    if (this.box.get(box) == null){
        ArrayList newMessageThreads = new ArrayList();
        this.box.put(box, newMessageThreads);
        return newMessageThreads;
    }else{
        return (ArrayList)this.box.get(box);
    }
  }

  /**
   * get a Thread from current selected message threads (of a mailbox)
   * @param idx index of the thread
   * @return GMThread Return select message thread;
   * if the index is not valid (smaller than zero or larger than
   * message thread size), or no message threads selected, return null
   */
  public GMThread getThread(int idx){

      // if requesting index is out of range, return null
      if (this.messageThreads == null || idx < 0 ||
          this.messageThreads.size() == 0 || this.messageThreads.size() <= idx){
        return null;
      }

      return (GMThread) this.messageThreads.get(idx);
  }
}

⌨️ 快捷键说明

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