appinfo.java

来自「This is a resource based on j2me embedde」· Java 代码 · 共 334 行

JAVA
334
字号
/* * * * Copyright  1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. *  * 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 version 2 for more details (a copy is * included at /legal/license.txt). *  * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA *  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */package com.sun.midp.appmanager;import javax.microedition.lcdui.*;import com.sun.midp.i18n.Resource;import com.sun.midp.i18n.ResourceConstants;import com.sun.midp.main.TrustedMIDletIcon;import com.sun.midp.midlet.*;import com.sun.midp.midletsuite.*;import com.sun.midp.io.j2me.push.*;import com.sun.midp.installer.*;import com.sun.midp.configurator.Constants;/** * The Graphical MIDlet suite information display. * <p> * The application property "arg0" will have the ID of the suite to display. */public class AppInfo extends Form {    /** Cache of the suite icon. */    Image suiteIcon;    /** Cache of the single suite icon. */    Image singleSuiteIcon;    /** Icon to display for the suite */    Image icon;    /** MIDlet Suite storage object. */    MIDletSuiteStorage midletSuiteStorage;    /** Switch to the manager when "Back" is activated */    ApplicationManager manager;    /** Installation information of the suite. */    InstallInfo installInfo;    /** Number of MIDlets in the suite. */    int numberOfMidlets;    /** Display name of the suite. */    String displayName;    /**     * Create and initialize a new Application Info MIDlet.     * @param suiteId - the id of the suite for     *                  which the AppInfo should be displayed     * @exception Exception if error occurs     */    public AppInfo(int suiteId) throws Throwable {        super(null);        midletSuiteStorage = MIDletSuiteStorage.getMIDletSuiteStorage();        displaySuiteInfo(suiteId);    }    /**     * Display the information for a suite.     *     * @param suiteId ID for suite to display     * @exception Exception if error occurs     */    private void displaySuiteInfo(int suiteId) throws Throwable {        StringBuffer label = new StringBuffer(40);        StringBuffer value = new StringBuffer(40);        Item item;        String[] authPath;        String temp;        MIDletSuiteImpl midletSuite = null;        try {            midletSuite = midletSuiteStorage.getMIDletSuite(suiteId, false);            initMidletSuiteInfo(midletSuite);            label.append(Resource.getString(ResourceConstants.INFO));            label.append(": ");            label.append(displayName);            setTitle(label.toString());            append(                new ImageItem(null, icon, ImageItem.LAYOUT_NEWLINE_BEFORE +                              ImageItem.LAYOUT_CENTER +                              ImageItem.LAYOUT_NEWLINE_AFTER, null));            if (!midletSuite.isEnabled()) {                item = new StringItem(null, Resource.getString(                           ResourceConstants.AMS_SUITE_DISABLED_NOTE));                item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);                append(item);            }            // round up the size to a Kilobyte            label.setLength(0);            label.append(Resource.getString(ResourceConstants.AMS_SIZE));            label.append(": ");            value.append(                Integer.toString((MIDletSuiteStorage.getMIDletSuiteStorage().                    getStorageUsed(midletSuite.getID()) +                    1023) / 1024));            value.append(" K");            item = new StringItem(label.toString(), value.toString());            item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);            append(item);            label.setLength(0);            label.append(Resource.getString(ResourceConstants.AMS_VERSION));            label.append(": ");            item = new StringItem(label.toString(),                midletSuite.getProperty(MIDletSuite.VERSION_PROP));            item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);            append(item);            label.setLength(0);            if (midletSuite.isTrusted()) {                temp = Resource.getString                          (ResourceConstants.AMS_MGR_AUTH_VENDOR);            } else {                temp = Resource.getString                          (ResourceConstants.AMS_MGR_VENDOR);            }            label.append(temp);            label.append(": ");            item = new StringItem(label.toString(),                midletSuite.getProperty(MIDletSuite.VENDOR_PROP));            item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);            append(item);            temp = midletSuite.getProperty(MIDletSuite.DESC_PROP);            if (temp != null) {                label.setLength(0);                label.append(Resource.getString                             (ResourceConstants.AMS_DESCRIPTION));                label.append(": ");                item = new StringItem(label.toString(), temp);                item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);                append(item);            }            if (numberOfMidlets != 1) {                label.setLength(0);                label.append(Resource.getString                             (ResourceConstants.AMS_CONTENTS));                label.append(":");                item = new StringItem(label.toString(), "");                item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);                append(item);                appendMIDletsToForm(midletSuite);            }            label.setLength(0);            label.append(Resource.getString(ResourceConstants.AMS_WEBSITE));            label.append(": ");            item = new StringItem(label.toString(),                       installInfo.getDownloadUrl());            item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);            append(item);            label.setLength(0);            label.append(Resource.getString(ResourceConstants.AMS_ADVANCED));            label.append(": ");            item = new StringItem(label.toString(), "");            item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);            append(item);            if (midletSuite.isTrusted()) {                append(new ImageItem(null, TrustedMIDletIcon.getIcon(),                    ImageItem.LAYOUT_DEFAULT, null));                temp = Resource.getString                          (ResourceConstants.AMS_MGR_TRUSTED);            } else {                temp = Resource.getString                          (ResourceConstants.AMS_MGR_UNTRUSTED);            }            item = new StringItem(null, temp);            item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);            append(item);            // Append classes verification state to advanced section            if (Constants.VERIFY_ONCE && midletSuite.isVerified()) {                item = new StringItem(null, Resource.getString(                    ResourceConstants.AMS_VERIFIED_CLASSES));                item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);                append(item);            }            authPath = installInfo.getAuthPath();            if (authPath != null) {                label.setLength(0);                label.append(Resource.getString                             (ResourceConstants.AMS_AUTHORIZED_BY));                label.append(": ");                temp = label.toString();                for (int i = 0; i < authPath.length; i++) {                    item = new StringItem(temp, authPath[i]);                    item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);                    append(item);                    temp = null;                }            }            temp = PushRegistryInternal.listConnections(                       midletSuite.getID(), false);            if (temp != null) {                label.setLength(0);                label.append(Resource.getString                             (ResourceConstants.AMS_AUTO_START_CONN));                label.append(": ");                item = new StringItem(label.toString(), temp);                item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);                append(item);            }        } catch (Throwable t) {            throw t;        } finally {            if (midletSuite != null) {                midletSuite.close();            }        }    }    /**     * Initialize the MIDlet suite info fields for a given suite.     *     * @param midletSuite the MIDletSuiteImpl object instance     *     * @exception Exception if problem occurs while getting the suite info     */    private void initMidletSuiteInfo(MIDletSuiteImpl midletSuite)        throws Exception {        installInfo = midletSuite.getInstallInfo();        numberOfMidlets = midletSuite.getNumberOfMIDlets();        if (numberOfMidlets == 1) {            String value = midletSuite.getProperty("MIDlet-1");            MIDletInfo temp = new MIDletInfo(value);            displayName = temp.name;            icon = getSingleSuiteIcon();        } else {            displayName =                midletSuite.getProperty(MIDletSuiteImpl.SUITE_NAME_PROP);            icon = getSuiteIcon();        }    }    /**     * Appends a names of all the MIDlets in a suite to a Form, one per line.     *     * @param midletSuite information of a suite of MIDlets     */    private void appendMIDletsToForm(MIDletSuiteImpl midletSuite) {        int numberOfMidlets;        MIDletInfo midletInfo;        StringItem item;        numberOfMidlets = midletSuite.getNumberOfMIDlets();        for (int i = 1; i <= numberOfMidlets; i++) {            midletInfo = new MIDletInfo(                             midletSuite.getProperty("MIDlet-" + i));            item = new StringItem(null, midletInfo.name);            item.setLayout(Item.LAYOUT_NEWLINE_AFTER | Item.LAYOUT_2);            append(item);        }    }    /**     * Gets the MIDlet suite icon from storage.     *     * @return icon image     */    private Image getSuiteIcon() {        if (suiteIcon != null) {            return suiteIcon;        }        suiteIcon = GraphicalInstaller.getImageFromInternalStorage("_suite8");        return suiteIcon;    }    /**     * Gets the single MIDlet suite icon from storage.     *     * @return icon image     */    private Image getSingleSuiteIcon() {        if (singleSuiteIcon != null) {            return singleSuiteIcon;        }        singleSuiteIcon = GraphicalInstaller.            getImageFromInternalStorage("_single8");        return singleSuiteIcon;    }}

⌨️ 快捷键说明

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