testcanvassizing.java

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

JAVA
300
字号
/* *   * * 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 javax.microedition.lcdui;import com.sun.midp.chameleon.skins.*;import com.sun.midp.i3test.TestCase;import com.sun.midp.util.LcduiTestCanvas;import com.sun.midp.util.LcduiTestMIDlet;import  com.sun.midp.configurator.Constants;/** * This test case does extensive testing on the proper sizing * of Canvas. It validates the size reported to a Canvas under * various conditions, such as a canvas with a title, a ticker, * in standard screen mode, in fullscreen mode, as well as a * canvas which is newly created versus showing on the screen. */public class TestCanvasSizing extends TestCase {    /** Test Name */    static final String testName = "CanvasSizing";        // We define a set of constants that are set by pulling values    // out of the various skin classes (ie. TitleSkin, TickerSkin, etc).    /** Screen width in normal mode */     protected static int STD_WIDTH;    /** Screen height in normal mode */     protected static int STD_HEIGHT;        // Note that although for chameleon's standard spec, the fullscreen    // height and the standard height are the same, this may not be the    // case for all implementations. Including both here allows the test    // to be valid in both circumstances.        /** Screen width in fullsize mode */     protected static int FS_WIDTH;    /** Screen height in fullsize mode */     protected static int FS_HEIGHT;        /** Title height */     protected static int TITLE_HEIGHT;    /** Ticker height */     protected static int TICKER_HEIGHT;        /** Softbutton height */     protected static int SOFTBTN_HEIGHT;        /** The Display to use to view our test canvases */    protected Display display;        /** Test ticker, used for sizing only */    protected Ticker ticker;        /**     * Construct a new CanvasSizing test. The constructor     * initializes all sizing constants from the chameleon     * skin files.     */    public TestCanvasSizing() {        // Initialize the constants                STD_WIDTH = ScreenSkin.WIDTH;        STD_HEIGHT = Constants.CHAM_HEIGHT;        FS_WIDTH = Constants.CHAM_FULLWIDTH;        FS_HEIGHT = Constants.CHAM_FULLHEIGHT;        TITLE_HEIGHT = TitleSkin.HEIGHT;        TICKER_HEIGHT = TickerSkin.HEIGHT;        SOFTBTN_HEIGHT = SoftButtonSkin.HEIGHT;        ticker = new Ticker("Canvas sizing test");    }        /**     * This is a utility method which retrieves the canvas's size and     * validates it against the passed in values after making sure      * the canvas is visible on the screen.     *     * @param canvas the canvas to test     * @param WIDTH the <b>correct</b> width the canvas should be     * @param HEIGHT the <b>correct</b> height the canvas should be     */    protected void checkCanvasSize(TestCanvas canvas, int WIDTH, int HEIGHT) {                    display.setCurrent(canvas);        if (!canvas.awaitPaint()) {            fail("checkCanvasSize: canvas not visible");            return;        }                    int w = canvas.getWidth();        int h = canvas.getHeight();        assertEquals("Checking canvas width (shown):", WIDTH, w);        assertEquals("Checking canvas height (shown):", HEIGHT, h);    }        /**     * This test is for a canvas with a title and a ticker set in     * standard screen mode.     */    protected void testOne() {        declare(testName + " 1: Standard screen mode with title and ticker.");                TestCanvas canvas = new TestCanvas();        canvas.setTitle("CanvasSizing Test 1");        canvas.setTicker(ticker);                checkCanvasSize(canvas, STD_WIDTH,             STD_HEIGHT - SOFTBTN_HEIGHT - TITLE_HEIGHT - TICKER_HEIGHT);    }        /**     * This test is for a canvas with a title but no ticker set in     * standard screen mode.     */    protected void testTwo() {        declare(testName + " 2: Standard screen mode with title.");                TestCanvas canvas = new TestCanvas();        canvas.setTitle("CanvasSizing Test 2");                checkCanvasSize(canvas, STD_WIDTH,             STD_HEIGHT - SOFTBTN_HEIGHT - TITLE_HEIGHT);    }        /**     * This test is for a canvas with a ticker but no title set in     * standard screen mode.     */    protected void testThree() {        declare(testName + " 3: Standard screen mode with ticker.");                TestCanvas canvas = new TestCanvas();        canvas.setTicker(ticker);                checkCanvasSize(canvas, STD_WIDTH,            STD_HEIGHT - SOFTBTN_HEIGHT - TICKER_HEIGHT);    }        /**     * This test is for a canvas with no title and no ticker set in     * standard screen mode.     */    protected void testFour() {        declare(testName + " 4: Standard screen mode, plain.");                TestCanvas canvas = new TestCanvas();                checkCanvasSize(canvas, STD_WIDTH, STD_HEIGHT - SOFTBTN_HEIGHT);    }        /**     * This test is for a canvas with a title and a ticker set in     * fullscreen mode.     */    protected void testFive() {        declare(testName + " 5: Fullsize screen mode with title and ticker.");                TestCanvas canvas = new TestCanvas();        canvas.setTitle("CanvasSizing Test 5");        canvas.setTicker(ticker);        canvas.toggleFullscreen(true);        // NOTE: In fullscreen mode, the title and ticker shouldn't appear, as        // per the chameleon UI spec: that area is then used by the canvas        checkCanvasSize(canvas, FS_WIDTH, FS_HEIGHT);    }        /**     * This test is for a canvas with a title but no ticker set in     * fullscreen mode.     */    protected void testSix() {        declare(testName + " 6: Fullsize screen mode with title.");                TestCanvas canvas = new TestCanvas();        canvas.setTitle("CanvasSizing Test 6");        canvas.toggleFullscreen(true);                // NOTE: In fullscreen mode, the title and ticker shouldn't appear, as        // per the chameleon UI spec: that area is then used by the canvas        checkCanvasSize(canvas, FS_WIDTH, FS_HEIGHT);    }        /**     * This test is for a canvas with a ticker but no title set in     * fullscreen mode.     */    protected void testSeven() {        declare(testName + " 7: Fullsize screen mode with ticker.");                TestCanvas canvas = new TestCanvas();        canvas.setTicker(ticker);        canvas.toggleFullscreen(true);                // NOTE: In fullscreen mode, the title and ticker shouldn't appear, as        // per the chameleon UI spec: that area is then used by the canvas        checkCanvasSize(canvas, FS_WIDTH, FS_HEIGHT);    }        /**     * This test is for a canvas with no ticker and no title set in     * fullscreen mode.     */    protected void testEight() {        declare(testName + " 8: Fullsize screen mode, plain.");                TestCanvas canvas = new TestCanvas();        canvas.toggleFullscreen(true);                // NOTE: In fullscreen mode, the title and ticker shouldn't appear, as        // per the chameleon UI spec: that area is then used by the canvas        checkCanvasSize(canvas, FS_WIDTH, FS_HEIGHT);    }    /**     * Overridden from TestCase parent. This method will kick off each     * individual test     */    public void runTests() throws Throwable {                try {            LcduiTestMIDlet.invoke();            display = LcduiTestMIDlet.getDisplay();            testOne();            testTwo();            testThree();            testFour();            testFive();            testSix();            testSeven();            testEight();        } finally {            LcduiTestMIDlet.cleanup();        }    }        /**     * Inner canvas class which notifies the main TestCase when     * a particular canvas has become visible. This allows the     * main TestCase to do sizing verification both before the     * canvas becomes visible, and after.     */    class TestCanvas extends LcduiTestCanvas {                /**         * Used to remotely toggle this canvas's fullscreen mode         *         * @param onOff true if this canvas should go to fullscreen mode         */        public void toggleFullscreen(boolean onOff) {            super.setFullScreenMode(onOff);        }                /**          * Just a default white fill. The test programmatically changes         * screens so it would be too fast to write anything useful anyway,         * as the user wouldn't have time to read it.         *         * @param g the Graphics to paint with         */        public void paint1(Graphics g) {            int c = g.getColor();            g.setColor(0xFFFFFF);            g.fillRect(g.getClipX(), g.getClipY(),                        g.getClipWidth(), g.getClipHeight());            g.setColor(c);        }    }    }

⌨️ 快捷键说明

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