customitemtest.java

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

JAVA
327
字号
/* * 	  * 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.i3test.*;import javax.microedition.midlet.*;public class CustomItemTest extends TestCase {    FormLFImpl ownerLFImpl = null;    int vpY_beforeScroll = 0;    int vpY_AfterScroll = 0;    void testCustomItemInternalTraversal() {	Display display = DisplayTestUtils.createDisplay();        Form mainForm = new Form("CustomItem Demo");	CustomItemImpl customItem =                 new CustomItemImpl("CustomItem", 80, display, false);         mainForm.append(customItem);        display.setCurrent(mainForm);	// make sure the form is visible	try {	    Thread.sleep(2000);	} catch (Exception e) {}	assertSame(display.getCurrent(), mainForm);	CustomItemLF customItemLF = customItem.customItemLF;	Item myitem = ((CustomItemLFImpl)customItemLF).item;	// call keypress with "up" keyCode -1	((CustomItemLFImpl)customItemLF).uCallKeyPressed(-1);	((CustomItemLFImpl)customItemLF).uCallKeyReleased(-1);	assertTrue("traverse not called", customItem.traverse_flag);        Display.displayManagerImpl.uRequestForegroundNone();		assertSame(Display.displayManagerImpl.noForeground,                              Display.displayManagerImpl.foreground);    }    /**     * check that the viewport scrolls to make the     * returned vis_Rect from traverse method visible     *     * This test is specific to platform_widget. Enable it only     * for platform-widget if possible.     *    void testCustomItemInternalTraversal2() { 	Display display = DisplayTestUtils.createDisplay();        Form mainForm = new Form("CustomItem 2 Demo");	TextField tf = new TextField("Text Field", "some text", 100, 0);	CustomItemImpl customItem1 =                new CustomItemImpl("CustomItem1", 80, display, false);         customItem1.setLayout(Item.LAYOUT_LEFT | Item.LAYOUT_NEWLINE_BEFORE |                Item.LAYOUT_NEWLINE_AFTER);	CustomItemImpl customItem2 =                        new CustomItemImpl("CustomItem2", 80, display, false);        customItem2.setLayout(Item.LAYOUT_LEFT | Item.LAYOUT_NEWLINE_BEFORE |                Item.LAYOUT_NEWLINE_AFTER);        StringItem si = new StringItem("a string", "some text");        mainForm.append(tf);        mainForm.append(customItem1);        mainForm.append(si);        mainForm.append(customItem2); 	display.setCurrentItem(customItem2);	// make sure the form is visible	try {	    Thread.sleep(2000);	} catch (Exception e) {}	assertSame(display.getCurrent(), mainForm);	// part of the custom item is made visible	CustomItemLF customItemLF = customItem2.customItemLF;	Item myitem = ((CustomItemLFImpl)customItemLF).item;	Screen owner = myitem.owner;	if (owner != null) {	    ownerLFImpl = 		(FormLFImpl)owner.getLF();	}       	// vpY1 the y coordinate of the top left visible pixel	// current scroll position	vpY_beforeScroll = ownerLFImpl.getScrollPosition0();	// call key down        	// KEYCODE_DOWN  Value="-2" 	((CustomItemLFImpl)customItemLF).uCallKeyPressed(-2);	((CustomItemLFImpl)customItemLF).uCallKeyReleased(-2);	assertTrue("traverse not called: first call",                                 customItem2.traverse_flag);	((CustomItemLFImpl)customItemLF).uCallKeyPressed(-2);	((CustomItemLFImpl)customItemLF).uCallKeyReleased(-2);	assertTrue("traverse not called: second call",                                 customItem2.traverse_flag);	// check that the viewport scrolls to make the	// returned vis_Rect visible	// vpY1 the y coordinate of the top left visible pixel	vpY_AfterScroll = ownerLFImpl.getScrollPosition0();	boolean screenScrolled =                      vpY_AfterScroll > vpY_beforeScroll ? true : false;	assertTrue("screen not Scrolled", screenScrolled);        Display.displayManagerImpl.uRequestForegroundNone();		assertSame(Display.displayManagerImpl.noForeground,                              Display.displayManagerImpl.foreground);    }    */    // main test driver    public void runTests() {        declare("testCustomItemInternalTraversal");        testCustomItemInternalTraversal();	/*	 * This test is platform_widget specific.	 *        declare("testCustomItemInternalTraversal2");        testCustomItemInternalTraversal2();	 */    }}class CustomItemImpl extends CustomItem {    private int size, rgb_bgrnd, rgb_fgrnd, rgb_highlighted_bgrnd,            rgb_highlighted_fgrnd;    private int startIndex = 0;    private int highlightedIndex = 0;    private int currentIndex = 0;    private boolean initialTraversal = false;    private int[] highlightedRect = new int[4];    int[] visRect = new int[4];    boolean traverse_flag = false;    private boolean debugFlag = false;    private String[] content = { "String0", "String1", "String2", "String3",              "String4", "String5", "String6", "String7", "String8",              "String9"    };    public CustomItemImpl(String label, int size, Display display,            boolean debug) {        super(label);        debugFlag = debug;        rgb_bgrnd = display.getColor(Display.COLOR_BACKGROUND);        rgb_highlighted_bgrnd =                display.getColor(Display.COLOR_HIGHLIGHTED_BACKGROUND);        rgb_fgrnd = display.getColor(Display.COLOR_FOREGROUND);        rgb_highlighted_fgrnd =                display.getColor(Display.COLOR_HIGHLIGHTED_FOREGROUND);        this.size = size;        highlightedRect[0] = 1;        highlightedRect[1] = 1;        highlightedRect[2] = 55;        highlightedRect[3] = 14;    }    protected int getMinContentHeight() {        return size;    }    protected int getMinContentWidth() {        return size;    }    protected int getPrefContentHeight(int width) {        if (debugFlag) {            System.err.println("getPrefContentHeight called. width = "                                            + width);        }        return size;    }    protected int getPrefContentWidth(int height) {        if (debugFlag) {            System.err.println("getPrefContentWidth called. height = "                    + height);        }        return size;    }    protected void paint(Graphics g, int w, int h) {        if (debugFlag) {	    System.err.println("\n\n" +                      getLabel() + "'s paint() called");            System.err.println("w = " + w + " , h = " + h);        }        g.setColor(rgb_bgrnd);        g.fillRect(0, 0, w, h);        g.setColor(rgb_fgrnd);        g.drawRect(0, 0, w - 1, h - 1);        Font f = g.getFont();        for (int i = 0; i < 5; i++) {            g.drawString(content[startIndex + i], 1, 1 + i * f.getHeight(),                    Graphics.TOP | Graphics.LEFT);        }        if (traverse_flag) {            // change the highlighting            g.setColor(rgb_highlighted_bgrnd);            g.fillRect(highlightedRect[0], highlightedRect[1],                    highlightedRect[2], highlightedRect[3]);            g.setColor(rgb_highlighted_fgrnd);            g.drawString(content[currentIndex], highlightedRect[0],                    highlightedRect[1], Graphics.TOP | Graphics.LEFT);        }        if (debugFlag) {            System.err.println("highlightedRect[0] = " + highlightedRect[0]                    + "\nhighlightedRect[1] =  " + highlightedRect[1]                    + "\nhighlightedRect[2] =  " + highlightedRect[2]		    + "\nhighlightedRect[3] =  " + highlightedRect[3]);        }    }    protected void traverseOut() {        if (debugFlag) {           System.err.println("*** traverseOut was called ***");        }        traverse_flag = false;        repaint();    }    protected boolean traverse(int dir, int viewportWidth, int viewportHeight,            int[] visRect_inout) {        if ((!traverse_flag) && (dir != 0)) {            traverse_flag = true;            return true;        }	visRect[0] = visRect_inout[0];	visRect[1] = visRect_inout[1];	visRect[2] = visRect_inout[2];	visRect[3] = visRect_inout[3];        if (debugFlag) {            System.err.println("\n\n" + "*** traverse was called ***");            System.err.println("dir = " + dir);            System.err.println("viewportWidth = " + viewportWidth);            System.err.println("viewportHeight = " + viewportHeight);            System.err.println("visRect_inout[0] = " + visRect_inout[0]);	    System.err.println("visRect_inout[1] = " + visRect_inout[1]);	    System.err.println("visRect_inout[2] = " + visRect_inout[2]);	    System.err.println("visRect_inout[3] = " + visRect_inout[3]);        }        if (dir == Canvas.DOWN) {            if (startIndex < 5) {                if (highlightedIndex < 4) {                    highlightedRect[1] += 14;                    highlightedIndex += 1;                } else {                    startIndex += 1;                }                currentIndex += 1;            } else {                return false;            }        }        if (dir == Canvas.UP) {            if (highlightedIndex > 0) {                highlightedRect[1] -= 14;                highlightedIndex -= 1;            } else if (currentIndex > 0) {                startIndex -= 1;            } else {                return false;            }            currentIndex -= 1;        }        //  repaint();        return true;    }}

⌨️ 快捷键说明

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