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

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

?? thebox.java

?? 手機郵箱撒的方式方式方式的
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
/*
MujMail - Simple mail client for J2ME
Copyright (C) 2003 Petr Spatka <petr.spatka@centrum.cz>
Copyright (C) 2005 Pavel Machek <pavel@ucw.cz>
Copyright (C) 2006 Nguyen Son Tung <n.sontung@gmail.com>
Copyright (C) 2008 David Hauzar <david.hauzar.mujmail@gmail.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */


package mujmail;

import mujmail.util.Functions;
import java.util.Enumeration;
import java.util.Timer;
import java.util.TimerTask;

import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

import mujmail.account.MailAccount;
import mujmail.ordering.ComparatorStrategy;
import mujmail.ordering.Criterion;
import mujmail.ordering.Ordering;
import mujmail.protocols.InProtocol;
import mujmail.threading.ThreadedEmails;
//#ifdef MUJMAIL_DEBUG_CONSOLE
import mujmail.debug.DebugConsole;
//#endif
//#ifdef MUJMAIL_TOUCH_SCR
import mujmail.pointer.MujMailPointerEventListener;
import mujmail.pointer.MujMailPointerEventProducer;
//#endif

/**
 * Represents boxes: see Inbox, Outbox, ...
 * 
 * Each message is stored in the container and RMS database of one persistent box.
 * Moreover, it can be stored in the container of more Nonpersistent boxes.
 * See documentation of PersistentBox and UnpersistentBox for more details.
 * 
 * It displays the box. That is, it displays headers of mails in the box (paint()) and
 * it displays the progress bar (paintProgress(), report())
 */
public abstract class TheBox extends Canvas implements CommandListener {
    
    /** Set to true if debug information should be displayed while reporting
     messages using methods report() */
    private static final boolean DEBUG = false;
    
    /** The name of this source file */
    private static final String SOURCE_FILE = "TheBox";
    
    private boolean tickerEnabled = true;

    /** The name of the box that is shown to user */
    private String name;
    
    protected final MujMail mujMail;
    /** Mails in the box. */
    protected IStorage storage;

    int deleted; //counter of mails that are going to be deleted
    /**
     * Index of currently selected message.
     * Even if threading is enabled this number is index to the storage vector
     * (the empty messages are skipped in this index).  
     */
    int cur; //the currently selected mail
    /**
     * This number indicates the number of empty message before {@link #cur}
     * index. It's used when showing index of the message in box.
     */
    int empties;
    byte pageJump; //offset of the next page from the current page of email list
    Image imNormal, imDeleted, imRead, imAnswered, imSent, imFailedSent, imAttch, imFlagged, imRoot;
    public Command stop, exit, delete, deleteNow, viewMessage, empty, sort, seen,
            flagged, showHeader;
    boolean btnsHidden = false; //are some buttons hidden?	
    String activity = "";

    //represents sort mode of the box. 
    //the most right bit represents sort order, the other 3bits represents sort criteria
    //the meaning of criterion bits are defined in Functions.SRT_HDR_*
    //private byte sortMode;

    private Ordering ordering;
    private Criterion criterion;

    /** Item used for text rotating (shifting if too long) */
    Timer tickerTimer;
    short tIndex; //aindex is substring index of the tText, from where the ticker should begin			
    boolean tStarted; //indicates whether the ticker has been initiated
    String tText;//a text of the ticker
    int tY; //y-position of the ticker

    private final EventListener eventListener = new EventListener();
    //#ifdef MUJMAIL_TOUCH_SCR
    private final MujMailPointerEventProducer pointerEventTransformer;
    //#endif

    /** Used to paint something below header details. */
    protected MessagePartPainter belowHeaderDetailsPainter;
    /** Used to paint header details. */
    protected MessagePartPainter headerDetailsPainter;

    protected MujMail getMujMail() {
        if (mujMail == null) {
            System.out.println("mujmail is null");
        }
        return MujMail.mujmail;
    }

    /**
     * Increments the number of deleted messages in this box.
     */
    public void incDeleted() {
        deleted++;
    }

    /**
     * @return the ordering
     */
    public Ordering getOrdering() {
        return ordering;
    }

    public void setOrdering(Ordering ordering) {
        this.ordering = ordering;
    }

    /**
     * @return the criterion
     */
    public Criterion getCriterion() {
        return criterion;
    }

    public void setCriterion(Criterion criterion) {
        this.criterion = criterion;
    }

    public IStorage getStorage() {
        return storage;
    }

    public void setStorage(ThreadedEmails storage) {
        //#ifdef MUJMAIL_DEBUG_CONSOLE
        DebugConsole.println("Setting storage " + storage);
        if (storage == null) {
            DebugConsole.println("Setting storage is null");
            return;
        }
        //#endif
        if ( DEBUG && storage != null ) {
              System.out.println("DEBUG InBox.setStorage(ThreadedEmails) - new storage size: " + (storage == null?"":Integer.toString( storage.getSize()) ) );
              System.out.println("DEBUG InBox.setStorage(ThreadedEmails) - new storage: " );
              //#ifdef MUJMAIL_DEVELOPMENT
//#               ((ThreadedEmails)storage).printToConsole();
              //#endif
          }
          
        this.storage = storage;
    }

    private class Ticker extends TimerTask {

        public void run() {
            tStarted = true;
            if (isBusy()) {
                return;
            }
            repaint(); //we just repaint the needed part not whole screen			
        }
    }

    /**
     * Creates the box.
     * 
     * @param mMail 		the main object in the application
     * @param name 			the name of the box
     * @param searchable 	true if the box should be searchable
     */
    public TheBox(MujMail mMail, String name) {
        
        setBelowHeaderDetailsPainter();
        setHeaderDetailsPainter();
        
        this.name = name;
        mujMail = mMail;
        //storage = new Vector();
        storage = new ThreadedEmails();
        imNormal = Functions.getIcon("m_normal.png");
        imDeleted = Functions.getIcon("m_deleted.png");
        imRead = Functions.getIcon("m_opened.png");
        imAnswered = Functions.getIcon("m_answered.png");
        imSent = Functions.getIcon("m_sent.png");
        imFailedSent = Functions.getIcon("m_failed_send.png");
        imAttch = Functions.getIcon("m_attachment.png");
        imFlagged = Functions.getIcon("m_flagged.png");
        imRoot = Functions.getIcon( "m_root.png" );

        exit = new Command(Lang.get(Lang.BTN_BACK), Command.BACK, 0);
        viewMessage = new Command(Lang.get(Lang.BTN_TB_VIEW_MESS), Command.OK, 1);
        stop = new Command(Lang.get(Lang.BTN_TB_STOP), Command.STOP, 2);
        delete = new Command(Lang.get(Lang.BTN_DEL_UNDEL), Command.ITEM, 4);
        deleteNow = new Command(Lang.get(Lang.BTN_TB_DEL_NOW), Command.ITEM, 5);
        empty = new Command(Lang.get(Lang.BTN_CLEAR), Command.ITEM, 7);
        sort = new Command(Lang.get(Lang.BTN_TB_SORT), Command.ITEM, 9);
        seen = new Command(Lang.get(Lang.BTN_TB_MARK_SEEN), Command.ITEM, 6);
        flagged = new Command(Lang.get(Lang.BTN_TB_MARK_FLAGGED), Command.ITEM, 10);
        showHeader = new Command(Lang.get(Lang.BTN_MF_HEADERS_DETAILS), Command.ITEM, 11);
        addCommand(sort);
        addCommand(deleteNow);
        addCommand(viewMessage);
        addCommand(exit);
        addCommand(delete);
        addCommand(empty);
        addCommand(seen);
        addCommand(flagged);
        addCommand(showHeader);
        setCommandListener(this);
        
        //#ifdef MUJMAIL_TOUCH_SCR
        pointerEventTransformer = new MujMailPointerEventProducer(eventListener, getWidth(), getHeight());
        //#endif

          // TODO (Betlista): this shouldn't be here (my opinion, I think it should be loaded or something)
        this.ordering = Ordering.NATURAL;
        this.criterion = Criterion.TIME;
    }

    public void commandAction(Command c, Displayable d) {
          if (DEBUG) System.out.println( "DEBUG TheBox.commandAction(Command, Displayable)  - displayable: " + d.getClass().toString() );
        standardButtons(c);
    }

    /// Manages standard command actions of the boxes
    private void standardButtons(Command c) {
        if (c == viewMessage) {
            MujMail.mujmail.mailForm.viewMessage(getSelectedHeader(), this);
        } else if (c == exit) {
            exit();
        } else if (c == delete) {
            markAsDeleted(getSelectedHeader());
        } else if (c == deleteNow) {
            deleteMarkedFromBoxAndDB();
        } else if (c == seen) {
        	markSeen(getSelectedHeader());
        } else if (c == flagged) {
        	markFlagged(getSelectedHeader());
        } else if (c == empty) {
            deleteAllMailsFromBoxAndDB(false);
        } else if (c == sort) {
            MujMail.mujmail.getSettings().showSortFrm(this);
        } else if (c == showHeader) {
              if (DEBUG) System.out.println( "DEBUG TheBox.standardButtons() - c == showHeader" );
            MujMail.mujmail.mailForm.showHeader(getSelectedHeader(), this);
        }

    }

    

    public String toString() {
        return name;
    }
    
    /**
     * Gets the enumeration of all messages in this box.
     * @return the enumeration of all messages in this box
     */
    public Enumeration getMessages() {
        return storage.getEnumeration();
    }
    
    /**
     * @return gets box name
     */
    public final String getName() {
        return name;
    }
    
    /** 
     * Changes name of the box.
     * @param newName Name to set.
     */
    public void setName(String newName) {
        if (newName != null) {
            name = newName;
        }
    }
    
    /**
     * Gets number of messages in this box.
     * If threading is enabled it returns number of messages without empty root
     * messages.
     * 
     * @return the number of messages.
     */
    public int getMessageCount() {
    	final int storageSize = storage.getSize();
    	int emptyRootsNumber = 0;
    	if ( storage instanceof ThreadedEmails ) {
    		emptyRootsNumber = ((ThreadedEmails)storage).getEmptyRootsNumber();
    	}
        return storageSize - emptyRootsNumber;
    }

    // TODO (Betlista): why there are 2 methods for retrieving messages? (storageAt(int), getMessage(int) ) 
    /*
     * Return i-th message in storage.
     * 
     * @param index of the message to be retrieved
     * @return message for requested index or null if there is not message with such index
     */
//    public MessageHeader storageAt(int index) {
//        if (index >= storage.size() || index < 0) {
//            return null;
//        }
//        return (MessageHeader) storage.elementAt(index);
//    }

    /**
     * Return i-th message in storage.
     * 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久99| 亚洲一区二区三区美女| 精品精品国产高清a毛片牛牛| 成人一区在线看| 精品一区二区三区在线播放| 国产精品456| 91免费观看国产| 精品盗摄一区二区三区| 最新国产成人在线观看| 日韩不卡手机在线v区| 成人一级黄色片| 9191国产精品| 亚洲精品一卡二卡| 国产成人精品亚洲午夜麻豆| 91在线视频18| 久久久影院官网| 日本午夜精品一区二区三区电影| 国产黄色91视频| 精品欧美乱码久久久久久1区2区| 亚洲免费看黄网站| 在线观看视频91| 亚洲欧美视频一区| 成人深夜在线观看| 欧美一区二区国产| 香蕉久久夜色精品国产使用方法 | 91色porny在线视频| 精品国产91洋老外米糕| 日韩激情视频网站| 日韩欧美国产综合一区| 首页国产欧美久久| 2023国产精品| 国产成人亚洲综合色影视| 久久综合网色—综合色88| 国产在线精品视频| 综合中文字幕亚洲| 中文字幕成人网| 成人黄色片在线观看| 日韩久久一区二区| 欧美一区二区在线看| 日本欧美一区二区在线观看| 欧美videos大乳护士334| 成人免费视频视频| 午夜精品久久久久久久久久| 日韩免费高清av| 99综合电影在线视频| 丝袜亚洲另类欧美综合| 国产欧美一区二区精品久导航 | 日韩电影在线免费看| 久久午夜羞羞影院免费观看| 成人美女在线观看| 久久99精品国产91久久来源| 中文字幕视频一区二区三区久| 欧美精品丝袜中出| 不卡的av电影在线观看| 久久精品国产第一区二区三区| 亚洲天堂成人网| 中文一区在线播放| 久久久久久久久99精品| 3d动漫精品啪啪| 欧美精品色综合| 欧美日本视频在线| 一本久久精品一区二区| 成人激情av网| 99久久精品免费观看| 成人av在线观| 色哟哟欧美精品| 色综合久久99| 欧美日韩久久久| 日韩一区二区三区电影| 久久综合狠狠综合| 亚洲色图欧美激情| 日本中文字幕一区二区有限公司| 午夜免费久久看| 国产麻豆一精品一av一免费| 国产一区激情在线| 高清视频一区二区| 91麻豆国产自产在线观看| 欧美午夜不卡视频| 欧美精品一区二区三区在线| 国产精品系列在线| 午夜精品久久久久久久久久久| 久久99九九99精品| 日韩欧美电影一二三| 日韩欧美色综合网站| 日韩毛片高清在线播放| 久久成人免费日本黄色| 色噜噜狠狠色综合欧洲selulu| 欧美日韩高清在线| 中文字幕一区二区日韩精品绯色| 亚洲欧美日韩在线| 狠狠狠色丁香婷婷综合激情| 色婷婷综合久久| 中文字幕中文字幕中文字幕亚洲无线 | 亚洲色图欧美偷拍| 成人国产精品免费观看动漫| 精品少妇一区二区三区在线视频| 一区二区三区色| 国产成人精品午夜视频免费| 日韩免费成人网| 久久成人麻豆午夜电影| 91精品国产麻豆| 美国三级日本三级久久99| 56国语精品自产拍在线观看| 亚洲黄色免费网站| 欧美亚洲丝袜传媒另类| 一级日本不卡的影视| 久久综合色一综合色88| 美国欧美日韩国产在线播放| 日韩欧美一卡二卡| 国产专区欧美精品| 亚洲视频一区在线| 欧美精品v国产精品v日韩精品 | 午夜一区二区三区视频| 欧美一区2区视频在线观看| 久久99热狠狠色一区二区| 国产亚洲成年网址在线观看| 成人性生交大片免费| 一区二区三区波多野结衣在线观看| 一本色道a无线码一区v| 轻轻草成人在线| 国产精品久久久久久亚洲毛片| 色网综合在线观看| 国产精品亚洲午夜一区二区三区 | 国产美女久久久久| 亚洲欧美日韩一区| 欧美变态tickle挠乳网站| 91免费看片在线观看| 国产麻豆午夜三级精品| 日韩中文字幕区一区有砖一区| 国产欧美综合色| 精品少妇一区二区三区免费观看| 色综合欧美在线| 色播五月激情综合网| 北条麻妃一区二区三区| 国产a精品视频| 成人在线一区二区三区| 成人av资源网站| av爱爱亚洲一区| 99精品国产视频| 色综合久久中文字幕综合网| 色欧美片视频在线观看| 欧美性欧美巨大黑白大战| 91麻豆成人久久精品二区三区| av电影天堂一区二区在线| 91同城在线观看| 91精品国产欧美日韩| 在线成人午夜影院| 精品理论电影在线观看 | 国产精品一二三| 精品一区二区在线免费观看| 久久国产福利国产秒拍| 国产成人精品网址| 欧美中文字幕一二三区视频| 欧美亚洲动漫精品| 精品国产91亚洲一区二区三区婷婷| 精品粉嫩超白一线天av| 中文字幕亚洲欧美在线不卡| 亚洲激情一二三区| 精品一区二区三区久久| 99精品欧美一区二区三区小说| 欧美日韩精品专区| 亚洲欧洲精品一区二区精品久久久| 亚洲精品成人悠悠色影视| 日本欧洲一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 7777精品伊人久久久大香线蕉 | 色综合久久久久久久久久久| 91精品中文字幕一区二区三区| 亚洲国产精品精华液2区45| 日本一区中文字幕| 色婷婷综合久久久久中文| 国产调教视频一区| 亚洲成人先锋电影| 91精品1区2区| 亚洲美女在线一区| 成人avav在线| 久久综合色播五月| 另类的小说在线视频另类成人小视频在线 | 国产经典欧美精品| 久久―日本道色综合久久| 日本不卡中文字幕| 日韩午夜在线观看| 久久国产精品99精品国产| 欧美一区二区女人| 日本一区中文字幕| 精品少妇一区二区三区在线播放| 亚洲成年人影院| 欧美一区二区三区喷汁尤物| 亚洲国产精品久久人人爱蜜臀| 91欧美激情一区二区三区成人| 亚洲男同1069视频| 制服丝袜亚洲精品中文字幕| 国内欧美视频一区二区| 日本一区二区不卡视频| 日本丶国产丶欧美色综合| 午夜精品视频一区| 2017欧美狠狠色| 99精品视频在线观看| 亚洲国产成人91porn| 久久这里只精品最新地址|