亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gmmainframecontroller.java

?? Gmail API for Java 一個gmail信箱的客戶端
?? JAVA
字號:
package siuying.gm.app.gmailer4j.controller;

import java.util.*;
import java.util.logging.*;
import bsh.*;
import bsh.util.*; 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.tree.*;
import siuying.gm.app.gmailer4j.*;
import siuying.gm.app.gmailer4j.ui.*;

public class GMMainFrameController {
  private GMMainFrame frame;
  private SearchPanelController searchCtrl;
  private Logger logger = Logger.getLogger(GMMainFrameController.class.getName());
  
  /* status variables */
  private int layout = 0;
  private boolean showContent = true;

  /* listeners */
  private ArrayList windowListener;

  /* constants */
  public static int LAYOUT_HORIZONTAL = 0;
  public static int LAYOUT_VERTICAL = 1;

  public GMMainFrameController() {
    frame = new GMMainFrame();
    searchCtrl = new SearchPanelController();
    frame.toolbarTop.add(Box.createRigidArea(new Dimension(10, 0)));
    frame.toolbarTop.add(Box.createHorizontalGlue());   
    frame.toolbarTop.add(searchCtrl.getPanel());    
    frame.toolbarTop.add(Box.createRigidArea(new Dimension(4, 0)));  
    
    windowListener = new ArrayList();
    frame.btnMailbox.setSelected(true);
    frame.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentResized(ComponentEvent e){
                resetDivider();
            }
        }
    );
  }

  public void dispose(){
      frame.dispose();
  }
  
  public void setSearchEnabled(boolean status){
    searchCtrl.setEnabled(status);    
  }

  public String getSearchString(){
    return searchCtrl.getSearchString();    
  }
  
  public void setSearchString(String search_string){
    searchCtrl.setSearchString(search_string);    
  }
  
  public void setSelectedMailboxButton(int idx){
      switch (idx){
          case 0:
            frame.btnMailbox.setSelected(true);
            break;
          case 1:
            frame.btnLabel.setSelected(true);
            break;
          case 2:
            frame.btnSearch.setSelected(true);
            break;
         default:   
         
      }
  }
  
  public void show(){
    //Center the window
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);

    frame.show();
  }
  
  public void showConsole(){
    frame.consoleFrame.show();    
  }
  
  public JConsole getConsole(){
    return frame.consoleFrame.getConsole(); 
  }
  
  public void addActionListener(ActionListener listener){
    windowListener.add(listener);
    frame.btnToolbarRefresh.addActionListener(listener);
    frame.btnToolbarConnect.addActionListener(listener);
    frame.btnToolbarDisconnect.addActionListener(listener);
    frame.btnContentClose.addActionListener(listener);

    frame.btnMailbox.addActionListener(listener);
    frame.btnSearch.addActionListener(listener);
    frame.btnLabel.addActionListener(listener);

    frame.itmFileLogin.addActionListener(listener);
    frame.itmFileLogout.addActionListener(listener);
    frame.itmFileExit.addActionListener(listener);
    frame.itmHelpAbout.addActionListener(listener);
    frame.itmToolsOption.addActionListener(listener);
    frame.itmToolsConsole.addActionListener(listener);
    frame.itmRefresh.addActionListener(listener);
    
    searchCtrl.addActionListener(listener);
  }

  public void addMouseListener(MouseListener listener){
    frame.treeMailbox.addMouseListener(listener);
    frame.tblThreads.addMouseListener(listener);
  }

  public void resetDivider(){
     Dimension frameSize = frame.getSize();
     frame.splitVertical.setDividerLocation(frameSize.height - 350);
     frame.splitHorizon.setDividerLocation(150);
  }

  /**
   * Set the TableModel in the frame to that specified
   * @param model TableModel
   */
  public void setTableModel(TableModel model){
    frame.tblThreads.setModel(model);
    frame.tblThreads.getColumnModel().getColumn(0).setPreferredWidth(350);
    frame.tblThreads.getColumnModel().getColumn(1).setPreferredWidth(50);
    frame.tblThreads.getColumnModel().getColumn(2).setPreferredWidth(100);
  }


  /**
   * Set the TreeModel in the frame to that specified
   * @param model TreeModel
   */
  public void setTreeModel(TreeModel model){
    frame.treeMailbox.setModel(model);
  }

  /**
   * Expand the tree in the frame
   */
  public void expandTree(){
    // expand tree
    for(int i=0; i<frame.treeMailbox.getRowCount(); i++){
      frame.treeMailbox.expandRow(i);
    }
  }

  public void setBottomPanel(JPanel content){
    if (content != null){
      frame.messageArea.removeAll();
      frame.messageArea.add(content, BorderLayout.CENTER);
      frame.messageArea.validate();
    }else{
      frame.messageArea.removeAll();
      frame.messageArea.add(frame.lblBottom);
      frame.messageArea.validate();
    }
    SwingUtilities.updateComponentTreeUI(content);
  }

  public void setLeftPanel(JComponent content){
    if (content != null){
      frame.scrollLeft.getViewport().removeAll();
      frame.scrollLeft.getViewport().add(content);
      frame.scrollLeft.validate();
    }else{
      frame.scrollLeft.getViewport().removeAll();
      frame.scrollLeft.getViewport().add(frame.lblLeft);
      frame.scrollLeft.validate();
    }
    SwingUtilities.updateComponentTreeUI(content);
  }

  public void setRightPanel(JComponent content){
    if (content != null){
      frame.scrollRight.getViewport().removeAll();
      frame.scrollRight.getViewport().add(content);
      frame.scrollRight.validate();
    }else{
      frame.scrollRight.getViewport().removeAll();
      frame.scrollRight.getViewport().add(frame.lblRight);
      frame.scrollRight.validate();
    }
    SwingUtilities.updateComponentTreeUI(content);
  }

  /******************************** accessors *********************************/

  /**
   * get current display layout
   */
  public int getLayout(){
      return layout;
  }

  /**
   * get main frame
   */
  public JFrame getFrame(){
      return frame;
  }

  public void updateComponentTreeUI(){
    SwingUtilities.updateComponentTreeUI(frame.panelBottom);
    SwingUtilities.updateComponentTreeUI(frame.panelLeft);
    SwingUtilities.updateComponentTreeUI(frame.panelRight);
    SwingUtilities.updateComponentTreeUI(frame);
    SwingUtilities.updateComponentTreeUI(frame.menuBar);
    SwingUtilities.updateComponentTreeUI(frame.tblThreads.getTableHeader());

    frame.panelBottom.updateUI();
    frame.panelLeft.updateUI();
    frame.panelRight.updateUI();

  }


  /**
   * set current display layout to specified one
   */
  public void setLayout(int layout){
      if (layout != GMMainFrameController.LAYOUT_HORIZONTAL &&
          layout != GMMainFrameController.LAYOUT_VERTICAL ){
          throw new IllegalArgumentException("Layout must be horizontal or vertical!");
      }else{
        if (this.layout != layout){
          this.layout = layout;
          updateLayout();
        }
      }
  }

  public boolean isShowContent(){
      return showContent;
  }

  public void setShowContent(boolean show){
    // update show content status
    showContent = show;

    frame.splitVertical.invalidate();
    frame.splitHorizon.invalidate();
    if (!isShowContent()){
      frame.panelBottom.setVisible(false);
    }else{
      frame.panelBottom.setVisible(true);
    }

    // refresh layout
    frame.splitVertical.revalidate();
    frame.splitHorizon.revalidate();
    resetDivider();

  }

  /****** protected ******/

  /**
   * update the layout of the frame
   * @see Utils.executeTask(Runnable command)
   */
  protected void updateLayout(){
      Runnable r = new Runnable(){
          public void run(){
            frame.splitVertical.invalidate();
            frame.splitHorizon.invalidate();
            switch (layout){
              case 0:

                // remove existing panels
                frame.getContentPane().remove(frame.splitHorizon);
                frame.getContentPane().remove(frame.splitVertical);
                frame.splitHorizon.remove(frame.panelLeft);
                frame.splitHorizon.remove(frame.panelRight);
                frame.splitHorizon.remove(frame.panelBottom);
                frame.splitHorizon.remove(frame.splitVertical);
                frame.splitVertical.remove(frame.panelLeft);
                frame.splitVertical.remove(frame.panelRight);
                frame.splitVertical.remove(frame.panelBottom);
                frame.splitVertical.remove(frame.splitHorizon);

                // put them in desired orders
                frame.splitHorizon.add(frame.panelLeft, JSplitPane.TOP);
                frame.splitHorizon.add(frame.panelRight, JSplitPane.BOTTOM);
                frame.splitVertical.add(frame.splitHorizon, JSplitPane.TOP);
                frame.splitVertical.add(frame.panelBottom, JSplitPane.BOTTOM);
                frame.getContentPane().add(frame.splitVertical, BorderLayout.CENTER);
                break;
              case 1:

                // remove existing panels
                frame.getContentPane().remove(frame.splitHorizon);
                frame.getContentPane().remove(frame.splitVertical);
                frame.splitHorizon.remove(frame.panelLeft);
                frame.splitHorizon.remove(frame.panelRight);
                frame.splitHorizon.remove(frame.panelBottom);
                frame.splitHorizon.remove(frame.splitVertical);
                frame.splitVertical.remove(frame.panelLeft);
                frame.splitVertical.remove(frame.panelRight);
                frame.splitVertical.remove(frame.panelBottom);
                frame.splitVertical.remove(frame.splitHorizon);

                // put them in desired orders
                frame.splitHorizon.add(frame.panelLeft, JSplitPane.TOP);
                frame.splitHorizon.add(frame.splitVertical, JSplitPane.BOTTOM);
                frame.splitVertical.add(frame.panelRight, JSplitPane.TOP);
                frame.splitVertical.add(frame.panelBottom, JSplitPane.BOTTOM);
                frame.getContentPane().add(frame.splitHorizon, BorderLayout.CENTER);
                break;
              default:
            }

            if (!isShowContent()){
              frame.panelBottom.setVisible(false);
            }else{
              frame.panelBottom.setVisible(true);
            }

            // refresh layout
            frame.splitVertical.revalidate();
            frame.splitHorizon.revalidate();
            resetDivider();

          }

      };
      try{
          ThreadUtils.execute(r);
      }catch(InterruptedException ie){
          logger.warning("Layout Task interrupted.");
      }
  }

  public void setLogonStatus(final int status) {
    switch (status) {
      case GMailer4j.LOGON_ON:
        // frame.mailboxTree.setEnabled(true);
        frame.itmFileLogin.setEnabled(false);
        frame.itmFileLogout.setEnabled(true);
        frame.itmRefresh.setEnabled(true);
        frame.btnToolbarConnect.setEnabled(false);
        frame.btnToolbarDisconnect.setEnabled(true);
        frame.btnToolbarRefresh.setEnabled(true);
        searchCtrl.setEnabled(true);
        break;
      case GMailer4j.LOGON_OFF:
        // frame.mailboxTree.setEnabled(false);
        frame.itmFileLogin.setEnabled(true);
        frame.itmFileLogout.setEnabled(false);
        frame.itmRefresh.setEnabled(false);
        frame.btnToolbarConnect.setEnabled(true);
        frame.btnToolbarDisconnect.setEnabled(false);
        frame.btnToolbarRefresh.setEnabled(false);
        searchCtrl.setEnabled(false);
        break;
      case GMailer4j.LOGGING:
        // frame.mailboxTree.setEnabled(false);
        frame.itmFileLogin.setEnabled(false);
        frame.itmFileLogout.setEnabled(false);
        frame.itmRefresh.setEnabled(false);
        frame.btnToolbarConnect.setEnabled(false);
        frame.btnToolbarDisconnect.setEnabled(false);
        frame.btnToolbarRefresh.setEnabled(false);
        searchCtrl.setEnabled(false);
        break;
      default:
    }
  }

  /**
   * Set the message of status bar and the progress bar
   * shortMsg is used to update progress bar
   * longMsg is used to update status bar
   * if any of them is null, that section is not updated
   * @param shortMsg String
   * @param longMsg String
   */
  public void setMessages(final String shortMsg, final String longMsg){
    Runnable r = new Runnable(){
      public void run(){
        if (longMsg != null) frame.lblStatus.setText(longMsg);
        if (shortMsg != null) frame.progressBar.setString(shortMsg);
      }
    };
    SwingUtilities.invokeLater(r);
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女脱光内衣内裤视频久久网站| 欧美日韩综合一区| 成人一区二区三区| 欧美久久久久久蜜桃| 久久久噜噜噜久久人人看| 亚洲乱码中文字幕综合| 国产麻豆成人传媒免费观看| 欧美日韩国产综合一区二区三区| 久久久av毛片精品| 日本欧美久久久久免费播放网| 成人激情动漫在线观看| 欧美电影精品一区二区| 亚洲成人精品一区二区| 99久久精品国产毛片| 欧美极品xxx| 久久66热re国产| 日韩一区二区三区四区五区六区| 樱桃视频在线观看一区| www.久久精品| 国产精品你懂的在线欣赏| 国产一区91精品张津瑜| 日韩欧美国产三级| 麻豆免费精品视频| 欧美一级淫片007| av在线不卡网| 中文字幕高清不卡| 国产美女久久久久| 日韩欧美卡一卡二| 麻豆成人久久精品二区三区红 | 日韩亚洲欧美中文三级| 亚洲国产视频直播| 欧美视频一区在线| 午夜精品一区在线观看| 欧美日韩一区小说| 偷窥少妇高潮呻吟av久久免费| 一本大道综合伊人精品热热 | 欧美性受xxxx| 亚州成人在线电影| 欧美一区二区三区喷汁尤物| 男人的j进女人的j一区| 日韩免费一区二区| 国内精品写真在线观看| 久久日韩精品一区二区五区| 国产在线不卡视频| 国产精品色哟哟网站| 91蜜桃视频在线| 亚洲超碰精品一区二区| 日韩一二在线观看| 国产风韵犹存在线视精品| 国产精品久久午夜夜伦鲁鲁| 97久久精品人人澡人人爽| 一区二区三区四区高清精品免费观看 | 美女一区二区在线观看| 精品国产免费一区二区三区四区| 国产曰批免费观看久久久| 亚洲国产精品成人综合| 日本二三区不卡| 首页国产欧美久久| 久久久久亚洲蜜桃| 91美女蜜桃在线| 日韩av网站免费在线| 国产日韩精品一区二区浪潮av| 99热精品国产| 看片的网站亚洲| 国产精品久久久一本精品 | 亚洲午夜一区二区| 精品日韩99亚洲| 91免费看视频| 九色porny丨国产精品| 亚洲免费毛片网站| 精品国精品自拍自在线| 色综合天天天天做夜夜夜夜做| 三级一区在线视频先锋| 国产精品美女一区二区在线观看| 欧美日本免费一区二区三区| 国产成人亚洲综合色影视| 亚洲国产日产av| 日本一区二区不卡视频| 91精品国产综合久久久蜜臀粉嫩 | 日韩制服丝袜先锋影音| 国产精品久久久久婷婷| 日韩一区二区三区av| 99久久精品国产导航| 韩国成人福利片在线播放| 一区二区国产视频| 国产人成亚洲第一网站在线播放| 欧美伦理视频网站| 91视频国产资源| 国产成人在线网站| 日韩成人精品视频| 亚洲一区二区三区免费视频| 中文字幕一区二区5566日韩| 26uuu欧美日本| 欧美一区二区三区免费观看视频 | 婷婷夜色潮精品综合在线| 中文字幕中文在线不卡住| 精品国产一区二区亚洲人成毛片 | 欧洲精品视频在线观看| zzijzzij亚洲日本少妇熟睡| 国产美女一区二区| 久久精品久久久精品美女| 五月综合激情婷婷六月色窝| 自拍偷拍亚洲综合| 中文天堂在线一区| 国产区在线观看成人精品| 久久久久久久久99精品| 日韩精品最新网址| 日韩欧美在线不卡| 91精品国产综合久久精品| 91麻豆精品国产自产在线| 欧美性大战久久久久久久| 欧美在线视频不卡| 欧美三级欧美一级| 欧美色成人综合| 欧美日韩国产一级二级| 欧美日韩亚洲不卡| 欧美久久久久久久久| 欧美一区二区三区喷汁尤物| 欧美大黄免费观看| 欧美精品一区二区在线观看| 精品国产污污免费网站入口 | 91精品国产综合久久婷婷香蕉| 欧美日韩久久久一区| 91精品国产一区二区三区蜜臀| 91麻豆精品国产91久久久久久久久| 欧美猛男男办公室激情| 欧美一区二区三区人| 久久婷婷久久一区二区三区| 国产三级一区二区| 亚洲欧美视频在线观看| 午夜电影一区二区三区| 久久机这里只有精品| 国产成人精品免费在线| 成a人片国产精品| 欧美三级电影一区| 欧美一区二区成人| 国产日韩精品一区二区三区在线| **网站欧美大片在线观看| 亚洲大片精品永久免费| 精品在线观看免费| 99久久99久久精品免费看蜜桃| 欧美三级在线看| 精品伦理精品一区| 亚洲人午夜精品天堂一二香蕉| 视频一区中文字幕国产| 国产高清视频一区| 欧美色综合久久| 国产三级欧美三级日产三级99| 日韩毛片在线免费观看| 日韩电影一二三区| caoporen国产精品视频| 欧美一区二区三区视频免费| 中文字幕av一区 二区| 天天影视涩香欲综合网| 福利一区二区在线| 91精品久久久久久久91蜜桃| 国产无遮挡一区二区三区毛片日本| 亚洲综合在线电影| 国产精品99久久久久久似苏梦涵| 色婷婷综合激情| 国产午夜精品美女毛片视频| 午夜精品福利在线| 成人国产亚洲欧美成人综合网 | 国产欧美日韩在线观看| 亚洲国产一区在线观看| 粉嫩av一区二区三区粉嫩| 欧美一级精品大片| 亚洲精品综合在线| 国产精品一区二区91| 欧美精品乱码久久久久久按摩| 国产精品久久久久久一区二区三区| 日韩av在线播放中文字幕| 日本韩国视频一区二区| 亚洲国产精品精华液2区45| 久久精品国产成人一区二区三区 | 日韩电影在线免费观看| eeuss鲁一区二区三区| 久久久99精品久久| 久久er精品视频| 91麻豆精品国产无毒不卡在线观看 | 国产女人水真多18毛片18精品视频| 日韩电影在线一区| 欧美日韩午夜影院| 亚洲午夜久久久久久久久电影网 | 成人高清视频免费观看| 久久久精品天堂| 狠狠色狠狠色综合日日91app| 欧美精选一区二区| 香蕉影视欧美成人| 一本一道久久a久久精品综合蜜臀| 国产丝袜在线精品| 国产在线精品一区二区不卡了| 日韩欧美色综合| 蜜臀久久99精品久久久久宅男| 51精品久久久久久久蜜臀| 日韩国产欧美在线观看| 欧美日韩国产综合草草| 亚洲bt欧美bt精品| 91麻豆精品国产| 日本aⅴ免费视频一区二区三区|