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

📄 menu.java

📁 手机邮箱撒的方式方式方式的
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        if (refreshAgain != -1 && refreshTimer == null) {
            refreshTimer = new Timer();
            refreshTimer.schedule(new RefreshTask(refreshAgain), 0, 100);
        } //refresh is not needed and yet refreshTimer is still running
        else if ((refreshAgain == -1 || mujMail.getDisplay().getCurrent() != this) && 
        		refreshTimer != null) {	//NOTE: do not use Displayable.isShown method as it does not
        								//      work for Nokias.
            cancelRefreshTask();
        }
        } catch (Throwable e ) {
            System.err.println("ERROR Menu - Unexpected exception");
            e.printStackTrace();
        }
    }

    protected void hideNotify() {
        cancelTickerTask();
        cancelRefreshTask();
    }

    public void commandAction(Command c, Displayable d) {
        if (c == exit) {
            TasksManager.conditionallyExit();
//            if (TasksManager.isSomeTaskRunning()) {
//                this.mujMail.alert.setAlert(null, this, Lang.get(Lang.ALRT_SYS_SHUTDOWN_CONFIRM), MyAlert.EXIT_BUSY_CONFIRM, AlertType.CONFIRMATION);
//            } else {
//                this.mujMail.destroyApp(false);
//            }
        } else {
            switch (getSelectedTab()) {
                case Menu.ACTION:
                    switch (getSelectedIndex()) {
                        case MENU_ACT_INBOX:
                            mujMail.getInBox().showBox();
                            break;
                        case MENU_ACT_RETRIEVE_MAILS:
                            mujMail.getDisplay().setCurrent( mujMail.getInBox());
                            mujMail.getInBox().retrieve();
                            break;
                        case MENU_ACT_WRITE_MAIL:
                            mujMail.sendMail.writeMail(this);
                            break;
                        case MENU_ACT_SENDALL:
                            mujMail.getDisplay().setCurrent(mujMail.outBox);
                            mujMail.outBox.sendAll();
                            break;
                        //#ifdef MUJMAIL_SEARCH
                        case MENU_ACT_SEARCH_MAILS:
                            SearchWindows searchWindows = new SearchWindows(mujMail);
                            searchWindows.displaySearchWindow();
                            break;
                        //#endif
                        case MENU_ACT_PUSH:
                            mujMail.getInBox().poll();
                            //Testing IMAP Push
                            mujMail.getInBox().push();
                            refresh(Menu.ACTION, true);
                            break;
                        case MENU_ACT_DISCONNECT:
                            mujMail.discServers(true);
                            break;
                        case MENU_ACT_SERVERS_INBOX_SYNC:
                        	//No task (new thread) is needed here since
                        	//serversSync() invokes GET_NEW_MAILS task
                            mujMail.getInBox().serversSync(null);
                            refresh(Menu.ACTION, true);
                            break;
                    }
                    break;
                case Menu.FOLDERS:
                    //#ifdef MUJMAIL_USR_FOLDERS
                    if (c == fldAdd) {
                        mujMail.getUserMailBoxes().createPersistentBox();
                    } else if (c == fldDel) {
                        mujMail.getUserMailBoxes().removeUserMailBox(getSelectedIndex() - MENU_FOLDERS_USERBOX_FIRST);
                        repaint();
                    } else if (c == fldEdit) {
                        mujMail.getUserMailBoxes().editUserMailBoxSettings(getSelectedIndex() - MENU_FOLDERS_USERBOX_FIRST);
                        //repaint();
                    } else { // c == select or enter (null)
                    //#endif
                        switch (getSelectedIndex()) {
                            // receive mails
                            case MENU_FOLDERS_INBOX:
                                mujMail.getInBox().showBox();
                                break;
                            case MENU_FOLDERS_OUTBOX:
                                mujMail.getOutBox().showBox();
                                break;
                            case MENU_FOLDERS_SENTBOX:
                                mujMail.getSentBox().showBox();
                                break;
                            case MENU_FOLDERS_DRAFT:
                                mujMail.getDraft().showBox();
                                break;
                            case MENU_FOLDERS_TRASH:
                                mujMail.getTrash().showBox();
                                break;
                            //#ifdef MUJMAIL_USR_FOLDERS
                            default:
                               //case 5: // No action -- mailbox delimiter
                               int pos = getSelectedIndex() - MENU_FOLDERS_USERBOX_FIRST;
                               Vector/*<inbox>*/ usrMailBoxes = mujMail.getUserMailBoxes().getBoxList();
                               if ( pos >= 0 && pos < usrMailBoxes.size()) {
                                   ( (InBox)usrMailBoxes.elementAt(pos)).showBox();
                               }
                            //#endif
                        }
                    //#ifdef MUJMAIL_USR_FOLDERS                   
                    }
                    //#endif
                    break;
                case Menu.SETTINGS:
                    switch (getSelectedIndex()) {
                        case MENU_SETTINGS_APPEARANCE:
                            mujMail.getSettings().showAppearanceSettingsForm();
                            break;
                        case MENU_SETTINGS_MUJMAIL_SERVER:
                            mujMail.getSettings().showMujMailServerSettingsForm();
                            break;
                        case MENU_SETTINGS_OTHER:
                            mujMail.getSettings().showOtherSettingsForm();
                            break;
                        case MENU_SETTINGS_POLLING:
                            mujMail.getSettings().showPollingSettingsForm();
                            break;
                        case MENU_SETTINGS_RETRIEVING:
                            mujMail.getSettings().showRetrievingSettingsForm();
                            break;
                        case MENU_SETTINGS_SMTP:
                            mujMail.getSettings().showSMTPSettingsForm();
                            break;
                        case MENU_SETTINGS_STORING_MAILS:
                            mujMail.getSettings().showStoringMailsSettingsForm();
                            break;

                    }
                    
                    break;
                case Menu.ACCOUNTS:
                    if (c == cmdNew) {
                        mujMail.getAccountSettings().showAccount(null);
                    } else if (c == change) {
                        mujMail.getAccountSettings().showAccount(getSelectedAccount());
                    } else if (c == delete) {
                        mujMail.getAccountSettings().deleteAccount(getSelectedAccount(), false);
                    } else if (c == setPrimary) {
                        String accountID = getSelectedAccount();
                        if (accountID != null && ((MailAccount) mujMail.getMailAccounts().get(accountID)).isActive()) {
                            Settings.primaryEmail = accountID;
                            mujMail.getSettings().saveSettings(true);
                        } else {
                            mujMail.alert.setAlert(null, this, Lang.get(Lang.ALRT_AS_NONEXIST), MyAlert.DEFAULT, AlertType.INFO);
                        }
                    } else if (c == retrieve) {
                        mujMail.getDisplay().setCurrent(mujMail.getInBox());
                        mujMail.getInBox().retrieveOne(getSelectedAccount());
                    } else if (c == clear) {
                        mujMail.getAccountSettings().deleteAll(false);
                    } else {
                        mujMail.getAccountSettings().showAccount(getSelectedAccount());
                    }
                    break;
                case Menu.UTILS:
                    switch (getSelectedIndex()) {
                        case MENU_UTILS_ADRESSBOOK:
                            mujMail.getDisplay().setCurrent(mujMail.getAddressBook());
                            break;
                        //#ifdef MUJMAIL_SYNC
                        case MENU_UTILS_BACKUP_SETTINGS:
                            mujMail.getSync().setAction(Sync.BACKUP);
                            //#ifdef MUJMAIL_FS
                            mujMail.getSync().setSmDlg(mujMail.getSync().new SyncModeDialog(Lang.get(Lang.AC_BACKUP_SETTINGS)));
                            mujMail.getDisplay().setCurrent(mujMail.getSync().getSmDlg());
                            //#else
//#                             mujMail.getSync().commandAction(null, null);
                            //#endif
                            break;
                        case MENU_UTILS_RESTORE_SETTINGS:
                            mujMail.getSync().setAction(Sync.RESTORE);
                            //#ifdef MUJMAIL_FS
                            mujMail.getSync().setSmDlg(mujMail.getSync().new SyncModeDialog(Lang.get(Lang.AC_RESTORE_SETTINGS)));
                            mujMail.getDisplay().setCurrent( mujMail.getSync().getSmDlg());
                            //#else
//#                             mujMail.getSync().commandAction(null, null);
                            //#endif
                            break;
                        //#endif
                        case MENU_UTILS_CLEAR_DB:
                            mujMail.clearDBSelect.refresh();
                            mujMail.getDisplay().setCurrent( mujMail.clearDBSelect);
                            break;
                        case MENU_UTILS_ABOUT:
                            mujMail.getDisplay().setCurrent(mujMail.about);
                            break;
                        //#ifdef MUJMAIL_DEBUG_CONSOLE
                        case MENU_UTILS_DEB_MENU:
                            //BackgroundTaskTest threadTest = new BackgroundTaskTest();
                            //threadTest.testSleepingThread();
                            //threadTest.testStoppableThread();
                            DebugConsoleUI consoleUI = new DebugConsoleUI();
                            consoleUI.showScreen();
                            //mujMail.getDisplay().setCurrent(debug);
                            break;
                        //#endif
                        case MENU_UTILS_TASK_MANAGER:
                            TasksManagerUI tasksManager = new TasksManagerUI();
                            tasksManager.showScreen();
                            break;
                        case MENU_UTILS_RUN_SAMPLE_TASK:
                            BackgroundTask sampleTask = new SampleTestTask();
                            sampleTask.start();

                            break;
                    }
                    break;
            } // switch end
        } // else in c == exit condition 
    }
    /**
     * This method draws both menu tabs and lists items on Canvas . If a number of all tabs is bigger than
     * it is able to display, then it draws a vertical scrollbar at the bottom of the display and two black
     * arrows at the top part. Equally, if there is a need for drawing a horizontal scrollbar it is done at
     * the left side of the display.
     * @param g - a graphical object.
     */
    public synchronized void paint(Graphics g) {
        int menuPadding = 1;
        int width = getWidth(), height = getHeight();
        int arrowWidth;
        int tabLeft;
        int tabHeight = (width < 200) ? 20 : 30;
        int tabWidth = tabHeight + 2;
        int imgPadding = 4;
        clientHeight = height - tabHeight - 2 * menuPadding;
        int clientWidth = width - 2 * menuPadding;
        fontHeight = g.getFont().getHeight();

        // clear display
        g.setColor(BACKGROUND_COLOR);
        g.fillRect(0, 0, width, height);

        // draw arrows
        if ((maxTabs = (byte) ((width - 2 * menuPadding - 1) / (tabWidth + 1))) < MAX_TABS) {
            arrowWidth = 5;
            drawTriangle((short) menuPadding, (short) (menuPadding + (tabHeight - 2 * arrowWidth) / 2), (short) arrowWidth, true, g);
            drawTriangle((short) (width - menuPadding - arrowWidth), (short) (menuPadding + (tabHeight - 2 * arrowWidth) / 2), (short) arrowWidth, false, g);
            tabLeft = arrowWidth + menuPadding + 2;
            maxTabs = (byte) ((width - 2 * menuPadding - 2 * tabLeft) / (tabWidth + 1));
        } else {
            arrowWidth = 0;
            tabLeft = menuPadding;
            maxTabs = MAX_TABS;
        }

        // draw tabs
        g.setColor(OUTLINE_COLOR);
        g.drawLine(0, menuPadding + tabHeight + 1, width, menuPadding + tabHeight + 1);
        for (int i = 0; i < maxTabs; i++) {
            byte listID = (byte) ((firstTab + i) % MAX_TABS);
            // draw inner part of the tab
            if (i == selectedTab) {
                g.setColor(FILL_COLOR);
                g.fillRoundRect(tabLeft + 1, menuPadding + 1, tabWidth - 1, tabHeight + 2, imgPadding, imgPadding);
                g.setColor(OUTLINE_COLOR);
            } else {
                g.setColor(GREY_FILL_COLOR);
                g.fillRoundRect(tabLeft + 1, menuPadding + 1, tabWidth - 1, tabHeight + 2, imgPadding, imgPadding);
                g.setColor(OUTLINE_COLOR);
                g.drawLine(tabLeft, menuPadding + tabHeight + 1, tabLeft + tabWidth, menuPadding + tabHeight + 1);
                g.setColor(GREY_OUTLINE_COLOR);
            }

            // draw outlines of the tab
            g.drawLine(tabLeft, menuPadding + tabHeight, tabLeft, menuPadding + imgPadding);
            g.drawArc(tabLeft, menuPadding, 2 * imgPadding, 2 * imgPadding, 180, -90);
            g.drawLine(tabLeft + imgPadding, menuPadding, tabLeft + tabWidth - imgPadding, menuPadding);
            g.drawArc(tabLeft + tabWidth - 2 * imgPadding, menuPadding, 2 * imgPadding, 2 * imgPadding, 0, 90);
            g.drawLine(tabLeft + tabWidth, menuPadding + imgPadding, tabLeft + tabWidth, menuPadding + tabHeight);

            // draw content of the tab
            if (tabs[listID].img != null) {
                g.drawImage(tabs[listID].img, tabLeft + (tabWidth - tabs[listID].img.getWidth()) / 2, menuPadding + (tabHeight - tabs[listID].img.getHeight()) / 2, Graphics.TOP | Graphics.LEFT);
            }
            if (starPressed) {
                g.setColor(FONT_COLOR);
                g.setFont(getFirstLineFont());
                g.drawString(String.valueOf(listID + 1), tabLeft + ((tabWidth - g.getFont().charWidth((char) (listID + '0' + 1))) / 2), menuPadding + tabHeight, Graphics.BOTTOM | Graphics.LEFT);
            }
            // move position to another tab
            tabLeft += tabWidth + 1;
        } /* for */

⌨️ 快捷键说明

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