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

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

?? thebox.java

?? 手機郵箱撒的方式方式方式的
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
    	int result = cur;
        final int shift = direction ? 1 : -1 ;
        final int size = storage.getSize();

        result += shift;
        if ( result == size ) { // if we were at the last message
        	result = 0; // move to the first one
        	  // when we are at the first item there are no empty items
        	  //   at the previous items
    		empties = 0;
        } else if ( result == -1 ) { // if we were at the first message
        	result = size - 1; // move to the last one (it cannot be empty message)
    		if ( storage instanceof ThreadedEmails ) {
    			  // when we are at the last item (which cannot be empty), there
    			  //   are all empty items at the previous positions
    			empties = ((ThreadedEmails)storage).getEmptyRootsNumber();
    		}
        }

    	return result;
    }
    /**
     * Moves cursor with requested shift.
     * It's needed to compute {@link #cur} and {@link #empties} too.
     * 
     * @param direction defines the direction, there are just 2 possibilities
     *        down/up, so I chose boolean, <code>true</code> means move down
     */
    public void shiftSelectedIndex( final boolean direction ) { //i is the offset from actual position
          if (DEBUG) System.out.println( "DEBUG TheBox.shiftSelectedIndex(direction=" + direction + ")" );
        final int size = storage.getSize();
        final int shift = direction ? 1 : -1;
        if ( size != 0 ) {
            cur = moveCurrent(cur, direction);
              // additional check is if the message we are at just now is empty
            MessageHeader mh = storage.getMessageAt( cur );
            while ( mh.isEmpty() ) {
        		empties += shift;
            	cur = moveCurrent(cur, direction);
            	mh = storage.getMessageAt( cur );
            }
              if (DEBUG) System.out.println( "DEBUG TheBox.shiftSelectedIndex(direction=" + direction + ") - cur=" + cur + ", empties=" + empties );
            repaint();
        }
    }

    protected void keyPressed(int keyCode) {
          if (DEBUG) System.out.println( "DEBUG TheBox.keyPressed(keyCode=" + keyCode + ") - key name: " + getKeyName(keyCode) );
        cancelTicker();
        switch (keyCode) {
            case '1':
                markAsDeleted(getSelectedHeader());
                return;
            case '*':
                eventListener.down();
                return;
            case '#':
                eventListener.up();
                return;

        }
        switch (getGameAction(keyCode)) {
            case UP:
                eventListener.upQuartersSlash();
                break;
            case DOWN:
                eventListener.downQuartersStar();
                break;
            case LEFT:
                eventListener.left();
                break;
            case FIRE:
                eventListener.fire();
                break;
        }
        repaint();
    }

    protected void keyRepeated(int keyCode) {
    	  if (DEBUG) System.out.println( "DEBUG TheBox.keyRepeated(keyCode=" + keyCode + ") - key name: " + getKeyName(keyCode) );
    	/*
    	 * This condition below is little hack :-/
    	 * There was situation in which user pressed for example DOWN key, but
    	 * from somewhere there was SELECT action generated (retrieved from
    	 * DefaultEventHandler).
    	 * 
    	 * If there will be problem in future with this method remove it, but
    	 * I really like it O:-)
    	 * 
    	 *                                                     Betlista
    	 */
    	final int gameAction = getGameAction(keyCode);
    	if ( gameAction == UP || gameAction == DOWN ) {
    	    keyPressed(keyCode);
    	}
    }

    //#ifdef MUJMAIL_TOUCH_SCR
    public void pointerPressed(int x, int y) {
        super.pointerPressed(x, y);

        cancelTicker();
        System.out.println("Pointer pressed: " + x + "; " + y);
        pointerEventTransformer.pointerPressed(x, y);
    }
    //#endif

    protected void hideButtons() {
        if (!btnsHidden) {
            removeCommand(deleteNow);
            removeCommand(viewMessage);
            removeCommand(delete);
            removeCommand(empty);
            removeCommand(sort);
            removeCommand(seen);
            removeCommand(flagged);
            removeCommand(showHeader);
            btnsHidden = true;
        }
    }

    protected void showButtons() {
        if (btnsHidden) {
            addCommand(deleteNow);
            addCommand(viewMessage);
            addCommand(delete);
            addCommand(empty);
            addCommand(sort);
            addCommand(seen);
            addCommand(flagged);
            addCommand(showHeader);
            btnsHidden = false;
        }
    }

    public void resort() {
        cancelTicker();
        if ( storage != null ) {
            synchronized (storage) {
                report(Lang.get(Lang.ALRT_SORTING) + Lang.get(Lang.ALRT_WAIT), SOURCE_FILE);
                storage.sort( ComparatorStrategy.getStrategy().getComparator( ordering, criterion ) );
                //Functions.sort(storage, (byte) (getSortMode() % 2), (byte) (getSortMode() >> 1));
            }
        }
        cur = 0;
    }

    protected void hideNotify() {
        cancelTicker();	//every time we lose focus, cancel the ticker	
    }

    protected void drawIcons(MessageHeader mail, Graphics g, int x, int y) {
        if ( mail.isEmpty() ) {
        	g.drawImage( imRoot, x, y + 3, Graphics.TOP | Graphics.LEFT );
        } else if (mail.sendStatus == MessageHeader.REPLIED) {
            g.drawImage(imAnswered, x, y + 3, Graphics.TOP | Graphics.LEFT);
        } else if (mail.sendStatus == MessageHeader.FAILED_TO_SEND) {
            g.drawImage(imFailedSent, x, y + 3, Graphics.TOP | Graphics.LEFT);
        } else if (mail.sendStatus == MessageHeader.SENT) {
            g.drawImage(imSent, x, y + 3, Graphics.TOP | Graphics.LEFT);
        } else if (mail.readStatus == MessageHeader.READ) {
            g.drawImage(imRead, x, y + 3, Graphics.TOP | Graphics.LEFT);
        } else {
            g.drawImage(imNormal, x, y + 3, Graphics.TOP | Graphics.LEFT);
        }
        if (mail.deleted) {
        	g.drawImage(imDeleted, x, y + 3, Graphics.TOP | Graphics.LEFT);
        }
    }


    /**
     * Redefine to set another object that paints item below header details to
     * the variable MessagePartPainter belowHeaderDetailsPainter.
     * 
     * This method sets MessagePartPainter.DEFFAULT_PAINTER that does not paint 
     * anything.
     */
    protected void setBelowHeaderDetailsPainter() {
        belowHeaderDetailsPainter = MessagePartPainter.DEFAULT_PAINTER;
    }
    
    /**
     * Redefine to set another object that paints header details to the variable 
     * MessagePartPainter headerDetailsPainter.
     * 
     * This method sets the object of instance HeaderDetailsPainter.
     */
    protected void setHeaderDetailsPainter() {
        headerDetailsPainter = new HeaderDetailsPainter();
    }
    
    /**
     * Gets the number of actually painted item.
     * 
     * @param g the graphics object used to paint
     * @param screenHeight the height of the screen
     * @param headlineHeight the height of the headline
     * @return the number of actually painted item
     */
    private int getActuallyPaintedItem(Graphics g, int headlineHeight, int subjectHeight, int screenHeight) {
          //System.out.println("DEBUG TheBox.getActuallyPaintedItem(Graphics, int, int, int) - start");
        int selectedMailHeight = subjectHeight + 
            headerDetailsPainter.getHeight(g, true) +
            belowHeaderDetailsPainter.getHeight(g, true) + 
            1;  // the line separating mails
        int notSelectedMailHeight = subjectHeight + 
            headerDetailsPainter.getHeight(g, false) +
            belowHeaderDetailsPainter.getHeight(g, false) + 
            1;  // the line separating mails
        // the number of not selected mails in the page
        int maxItemsPerPage = (screenHeight - headlineHeight - selectedMailHeight) / notSelectedMailHeight;
        maxItemsPerPage++;  // one mail is selected
        //System.out.println("Max items : " + maxItemsPerPage);
        
        
        final int size = storage.getSize();
        if (pageJump != 0 || cur >= maxItemsPerPage) { //if the user pressed * or # or cursor is doesn't fit to the first page of display
            int currentPage = cur / maxItemsPerPage; //change current page
            //change the current page if the user wanted to jump to another page. 
            currentPage = (currentPage + pageJump + size / maxItemsPerPage + 1) % (size / maxItemsPerPage + 1); //+1 to prevent modulo by 0 
            int actItem = currentPage * maxItemsPerPage; //set the first item to be drawn on the page			
            
            //System.out.println("DEBUG TheBox.getActuallyPaintedItem(Graphics, int, int, int) - end (" + actItem + ")");
          return actItem;
            
        } else {
              //System.out.println("DEBUG TheBox.getActuallyPaintedItem(Graphics, int, int, int) - end (0)");
            return 0;
        }
    }

//    private void printDot(final Graphics g, final int x, final int y) {
//        g.drawLine(x, y, x, y);
//    }

    /* *
     * This method paints before message the '-' sign if the message is root
     * message in threaded emails.
     *   
     * @param g
     * @param x
     * @param y
     */
//    private void printThreadSign(final Graphics g, final int x, final int y) {
//        int color = g.getColor();
//        g.setColor( 50, 50, 50 );
//        g.drawRect( x + 1, y + 3, 8, 8 );
//        g.drawLine( x + 3, y + 7, x + 7, y + 7 );
//        printDot(g, x + 11, y + 7);
//        printDot(g, x + 13, y + 7);
//        g.setColor( color );
//    }

    /* *
     * 
     * @param g
     * @param x
     * @param y
     */
//    private void printDots(final Graphics g, final int x, final int y) {
//        final int STEP = 2;
//        final int CORNER = 16;
//        for (int i = 2; i < CORNER; i += STEP) {
//            printDot(g, x, y + i);
//        }
//        for (int i = 0; i < 11; i += STEP) {
//            printDot(g, x + i, y + CORNER);
//        }
//    }

    /**
     * Paints the box that is empty or busy.
     */
    protected void paintIsBusy() {

    }

    /**
     * Returns title for the box.
     * @return
     */
    private String getBoxTitle() {
    	final StringBuffer buff = new StringBuffer( getName() );

        // String boxName = size > 0 ? getName() + " (" + (cur + 1) + "/" + (size) + ")" : getName() + " (" + Lang.get(Lang.EMPTY) + ")";
    	final int storageSize = storage.getSize();

    	if ( storageSize > 0 ) {
    		buff.append(" (").append( cur + 1 - empties ) // number of current message
    			.append('/')
    			.append( getMessageCount() ) // count of all non empty messages
    			.append(')');
    	} else {
    		buff.append(" (").append( Lang.get(Lang.EMPTY) ).append(')');
    	}
    	return buff.toString();
    }

    private void printTitle( Graphics g ) {
        if (Settings.fontSize == Settings.FONT_NORMAL) {
            g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM)); //set font size for box's headline
        } else {
            g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE)); //set font size for box's headline             
        }

        int fontHeight = g.getFont().getHeight();
        g.setColor(184, 179, 255);
        g.fillRect(0, 0, getWidth(), fontHeight + 3);
        String boxTitle = getBoxTitle();
        g.setColor(0x00000000); // black color
        g.drawString(boxTitle, getWidth() / 2 - g.getFont().stringWidth(boxTitle) / 2, 1, Graphics.TOP | Graphics.LEFT);

        if (Settings.fontSize == Settings.FONT_NORMAL) {
            g.setFont( Font.getDefaultFont() );
        } else {
            g.setFont( Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE) );
        }
    }

    boolean direction = true;

    /**
     * Paints the list of headers of mails in this box.
     * If there is proceeding some operation beyond the mails in the box,
     * displays progress bar.
     * @param g
     */
    protected void paint(Graphics g) {
        try {
            if (storage.isEmpty() || isBusy()) {
                cancelTicker();
                hideButtons();
            } else {
                showButtons();
                if (tStarted) {  //if this paint call is from ticker			 
                    g.setColor(121, 111, 255);
                    int cw = getWidth();
                    int ch = Font.getDefaultFont().getHeight();
                    g.fillRect(0, tY, cw, ch);
                    g.setColor(255, 255, 255);
                    if (Settings.fontSize == Settings.FONT_NORMAL)
                    	g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天综合网天天狠天天| 亚洲精品乱码久久久久久黑人| 国产精品国产三级国产aⅴ中文| 国产精品国产自产拍在线| 日韩理论片网站| 丝袜亚洲精品中文字幕一区| 精品制服美女丁香| av激情综合网| 欧美一区三区四区| 中文字幕av不卡| 亚洲福利视频三区| 国产精品123区| 欧美三级蜜桃2在线观看| 精品国产91乱码一区二区三区 | 日韩av一区二区三区四区| 精品一区二区三区免费| 99精品视频一区二区三区| 制服丝袜亚洲网站| 中文欧美字幕免费| 日韩精品视频网站| 成人看片黄a免费看在线| 欧美挠脚心视频网站| 欧美国产在线观看| 蜜臀av性久久久久蜜臀av麻豆| 不卡欧美aaaaa| 欧美成人福利视频| 亚洲成人av电影在线| 国产大陆a不卡| 制服丝袜亚洲播放| 亚洲三级在线免费观看| 久久精品国产久精国产爱| 色综合av在线| 国产三级久久久| 青青草伊人久久| 日本精品一区二区三区高清| 久久精品视频在线看| 婷婷国产在线综合| 一本到高清视频免费精品| 精品久久久久久久一区二区蜜臀| 亚洲精品成人天堂一二三| 国产主播一区二区三区| 91精品国产欧美日韩| 玉米视频成人免费看| 成人午夜电影小说| 亚洲精品一线二线三线无人区| 亚洲va在线va天堂| 99久久精品免费看| 久久久久一区二区三区四区| 青青草91视频| 欧美日韩一区精品| 亚洲综合一二三区| 91丨九色porny丨蝌蚪| 国产日韩av一区| 狠狠色丁香婷婷综合| 91麻豆精品国产91久久久更新时间| 亚洲欧美一区二区三区国产精品 | 中文字幕字幕中文在线中不卡视频| 美女视频免费一区| 51精品秘密在线观看| 亚洲一区二区三区爽爽爽爽爽| 91在线精品一区二区| 国产精品色婷婷久久58| 国产成人在线看| 国产网红主播福利一区二区| 国产自产高清不卡| 久久久久97国产精华液好用吗| 久久精品国产久精国产爱| 欧美大度的电影原声| 免费人成在线不卡| 欧美大片在线观看一区| 精品中文av资源站在线观看| 欧美成人一区二区三区片免费| 免费在线观看视频一区| 欧美一级专区免费大片| 久久精品国产99国产精品| 亚洲国产视频一区二区| 97se亚洲国产综合自在线| 国产精品福利一区| 91视频在线观看| 一区二区三区蜜桃| 欧美性受xxxx| 三级在线观看一区二区 | 紧缚奴在线一区二区三区| 欧美大片日本大片免费观看| 久久99精品视频| 久久午夜色播影院免费高清| 国产一区二区三区av电影 | 99re在线精品| 伊人色综合久久天天| 欧美日韩在线一区二区| 日韩av电影一区| 精品国产精品一区二区夜夜嗨| 国产成人av资源| 亚洲免费在线播放| 69久久99精品久久久久婷婷| 麻豆精品一区二区av白丝在线| 久久亚洲精品国产精品紫薇| 风间由美一区二区三区在线观看| 成人免费一区二区三区视频| 在线观看国产精品网站| 日本麻豆一区二区三区视频| 欧美精品一区二区三区蜜臀| 成人av先锋影音| 亚洲第一电影网| 欧美精品一区二区三区蜜臀 | 一区二区成人在线观看| 51精品国自产在线| 国产91在线观看| 一区二区三区自拍| 日韩欧美国产系列| 成人av电影在线| 亚洲国产成人高清精品| 亚洲精品在线三区| 色综合久久88色综合天天6| 日韩精品久久理论片| 久久精品视频免费| 日本久久精品电影| 国产一区二区女| 一区二区三区波多野结衣在线观看| 日韩欧美视频在线| 91免费看片在线观看| 免费成人av资源网| 亚洲天堂2016| 日韩欧美美女一区二区三区| 99re这里都是精品| 国内精品自线一区二区三区视频| 亚洲丝袜另类动漫二区| 欧美一级生活片| 91视频在线观看| 激情综合色播激情啊| 亚洲午夜精品一区二区三区他趣| 久久综合中文字幕| 欧美三级欧美一级| av亚洲产国偷v产偷v自拍| 久久国产日韩欧美精品| 一区二区三区欧美激情| 国产欧美日韩卡一| 91精品国产高清一区二区三区蜜臀| 成人国产精品免费观看| 久久精品国产第一区二区三区 | 91麻豆精品国产91久久久久久| 不卡一区在线观看| 狠狠色狠狠色合久久伊人| 午夜伦理一区二区| 亚洲欧美国产三级| 国产免费观看久久| 日韩一区二区三区四区 | 玖玖九九国产精品| 一区二区三区不卡视频| 国产精品看片你懂得| 精品伦理精品一区| 欧美美女一区二区| 色综合久久久久久久| 成人免费视频免费观看| 国产中文字幕精品| 久久综合综合久久综合| 亚洲成a人片在线不卡一二三区| 中文字幕一区二区三区乱码在线| 欧美精品一区视频| 91精品国产美女浴室洗澡无遮挡| 欧洲激情一区二区| 色域天天综合网| av亚洲精华国产精华精华| 国产福利一区二区三区视频| 久久精品国产澳门| 免费三级欧美电影| 日本sm残虐另类| 视频一区欧美精品| 亚洲成人激情社区| 婷婷综合在线观看| 午夜欧美大尺度福利影院在线看| 亚洲午夜激情网页| 亚洲中国最大av网站| 亚洲激情中文1区| 亚洲综合在线免费观看| 一区二区三区在线视频免费观看| 中文字幕视频一区| 亚洲欧洲性图库| 国产精品理伦片| 亚洲女女做受ⅹxx高潮| 亚洲欧美电影院| 亚洲免费在线看| 亚洲一线二线三线久久久| 亚洲综合在线免费观看| 亚洲第一在线综合网站| 五月天久久比比资源色| 亚洲成人激情社区| 免费国产亚洲视频| 国产中文字幕精品| 国产v综合v亚洲欧| 91丝袜呻吟高潮美腿白嫩在线观看| 91免费看`日韩一区二区| 欧洲色大大久久| 欧美日韩久久久久久| 91精品国产综合久久久久| 日韩欧美在线影院| 久久久久久久久久久黄色| 国产日韩欧美精品电影三级在线| 国产精品污污网站在线观看| 亚洲男同性视频|