javauis/tsrc/fute/lcdui/Midp_Graphics_01/src/CanvasTests_01.java
author hgs
Mon, 04 Oct 2010 11:29:25 +0300
changeset 78 71ad690e91f5
permissions -rw-r--r--
v2.2.17_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
78
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     1
/*
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     3
* All rights reserved.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     8
*
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    11
*
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    12
* Contributors:
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    13
*
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    14
* Description:
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    15
*
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    16
*/
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    17
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    18
import javax.microedition.lcdui.*;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    19
import javax.microedition.midlet.*;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    20
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    21
/**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    22
 * This class tests fillArc() method functionality.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    23
 */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    24
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    25
public class CanvasTests_01 extends Canvas implements CommandListener
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    26
{
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    27
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    28
    // Reference to MIDlet
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    29
    private MIDlet parent = null;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    30
    // Commands for the canvas
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    31
    private Command cmdReset = new Command("Reset values", Command.SCREEN, 1);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    32
    private Command cmdSize = new Command("Toggle size", Command.SCREEN, 1);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    33
    private Command cmdExit = new Command("Exit", Command.EXIT, 1);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    34
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    35
    private int startAngle = 0;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    36
    private int arcAngle = 0;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    37
    private int size = 30;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    38
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    39
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    40
     *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    41
     * @param parent The parent MIDlet
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    42
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    43
    public CanvasTests_01(MIDlet parent)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    44
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    45
        this.parent = parent;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    46
        addCommand(cmdReset);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    47
        addCommand(cmdSize);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    48
        addCommand(cmdExit);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    49
        setCommandListener(this);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    50
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    51
        setFullScreenMode(true);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    52
        Display.getDisplay(parent).setCurrent(this);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    53
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    54
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    55
    protected void paint(Graphics g)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    56
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    57
        g.setGrayScale(255);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    58
        g.fillRect(0, 0, getWidth(), getHeight());
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    59
        int height = g.getFont().getHeight();
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    60
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    61
        g.setGrayScale(0);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    62
        g.drawString("fillArc function test", 0, 0, Graphics.TOP|Graphics.LEFT);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    63
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    64
        g.drawString("fillArc(30,60," + size + "," + size + "," + startAngle + "," + arcAngle + ")", 0, 30, Graphics.TOP|Graphics.LEFT);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    65
        g.fillArc(30, 60, size, size, startAngle, arcAngle);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    66
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    67
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    68
    public void commandAction(Command c, Displayable s)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    69
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    70
        if(c == cmdReset)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    71
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    72
            startAngle = 0;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    73
            arcAngle = 0;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    74
            size = 30;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    75
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    76
        else if(c == cmdSize)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    77
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    78
            size += 10;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    79
            if(size > 300)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    80
                size = 10;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    81
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    82
        else if(c == cmdExit)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    83
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    84
            parent.notifyDestroyed();
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    85
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    86
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    87
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    88
    protected void keyPressed(int kyCode)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    89
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    90
        handleKeyPress(kyCode);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    91
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    92
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    93
    protected void keyRepeated(int kyCode)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    94
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    95
        handleKeyPress(kyCode);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    96
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    97
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    98
    protected void handleKeyPress(int kyCode)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    99
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   100
        if(getGameAction(kyCode) == Canvas.UP)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   101
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   102
            startAngle++;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   103
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   104
        else if(getGameAction(kyCode) == Canvas.DOWN)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   105
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   106
            startAngle--;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   107
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   108
        else if(getGameAction(kyCode) == Canvas.LEFT)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   109
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   110
            arcAngle--;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   111
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   112
        else if(getGameAction(kyCode) == Canvas.RIGHT)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   113
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   114
            arcAngle++;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   115
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   116
        else if(getGameAction(kyCode) == Canvas.GAME_A)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   117
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   118
            size += 10;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   119
            if(size > 300)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   120
                size = 10;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   121
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   122
        repaint();
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   123
        serviceRepaints();
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   124
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   125
}