javauis/tsrc/fute/lcdui/Midp_Form_01/src/FormMethodsTests.java
branchRCL_3
changeset 25 9ac0a0a7da70
child 35 85266cc22c7f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/tsrc/fute/lcdui/Midp_Form_01/src/FormMethodsTests.java	Tue May 25 12:34:19 2010 +0300
@@ -0,0 +1,392 @@
+/*
+* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+/**
+ * import midp classes.
+ */
+import javax.microedition.midlet.*;
+import javax.microedition.lcdui.*;
+
+/**
+ * This class is to test the methods of the Form like
+ * appending many items, appending one Item, deleting an Item and
+ * changing/replacing an Item etc.
+ *
+ * changed arrange of image items to get layout shown correctly
+ */
+
+public class FormMethodsTests extends List implements CommandListener, ItemStateListener
+{
+
+    private static Midp_Form_01 parent = null;
+
+    private static FormMethodsTests instance = null;
+
+    private final String exCgStr = "Exclusive ChoiceGroup";
+
+    private final String mulCgStr = "Multiple ChoiceGroup";
+
+    private final String popCgStr = "Popup ChoiceGroup";
+
+    private final String dfStr = "DateField";
+
+    private final String iGStr = "Interactive Gauge";
+
+    private final String nGStr = "Non interactive Gauge";
+
+    private final String siStr = "StringItem";
+
+    private final String tfStr = "TextField";
+
+    private final String bigImgStr = "Big Image";
+
+    private final String imgStr = "ImageItem";
+
+    private final String spacerStr = "Spacer";
+
+    private ChoiceGroup cg = null;
+
+    private DateField df = null;
+
+    private Gauge g = null;
+
+    private StringItem si = null;
+
+    private TextField tf = null;
+
+    private Spacer sp = null;
+
+    private List tests;
+
+    private Form itemForm = null;
+
+    private Command cmdBack = new Command("Back", Command.BACK, 1);
+
+    private Command cmdAppend = new Command("Append Item", Command.SCREEN, 1);
+
+    private Command cmdReplace = new Command("Replace Item", Command.SCREEN, 1);
+
+    private Command cmdDelete = new Command("Delete Item", Command.SCREEN, 1);
+
+    private Command cmdManyItems = new Command("Many Items", Command.SCREEN, 1);
+
+    private Command cmdItemState = new Command("Item State Test", Command.SCREEN, 1);
+
+    private Command cmdChangeStringItem = new Command("Change StringItem", Command.SCREEN, 1);
+
+    private Command cmdChangeImageItem = new Command("Change ImageItem", Command.SCREEN, 1);
+
+    private Command cmdExit = new Command("Exit", Command.EXIT, 1);
+
+    public FormMethodsTests(Midp_Form_01 parent)
+    {
+        super(parent.getClass().getName(), List.EXCLUSIVE);
+        this.parent = parent;
+
+        itemForm = new Form("Items");
+        addCommand(cmdManyItems);
+        addCommand(cmdAppend);
+        addCommand(cmdItemState);
+        addCommand(cmdExit);
+
+        itemForm.addCommand(cmdBack);
+        itemForm.setCommandListener(this);
+        itemForm.setItemStateListener(this);
+
+        setCommandListener(this);
+        if (instance == null)
+        {
+            instance = this;
+        }
+        instance.append(exCgStr, null);
+        instance.append(mulCgStr, null);
+        instance.append(popCgStr, null);
+        instance.append(dfStr, null);
+        instance.append(iGStr, null);
+        instance.append(nGStr, null);
+        instance.append(siStr, null);
+        instance.append(tfStr, null);
+        instance.append(imgStr, null);
+        instance.append(bigImgStr, null);
+        instance.append(spacerStr, null);
+        show();
+    }
+
+    /**
+     *  Sets this to be the current screen
+     *
+     *@return    The Parent value
+     */
+    public static MIDlet getParent()
+    {
+        return parent;
+    }
+
+    /**
+     *  Show this screen
+     */
+    public static void show()
+    {
+        Display.getDisplay(parent).setCurrent(instance);
+    }
+
+    private void addChoiceGroup(String title, int type)
+    {
+        cg = new ChoiceGroup(title, type);
+        cg.append("1stElement", null);
+        cg.append("2ndElement", null);
+        cg.append("3ndElement", null);
+        cg.append("4thElement", null);
+        cg.append("5thElement", null);
+        cg.append("6thElement", null);
+        cg.append("7thElement", null);
+        cg.append("8thElement", null);
+        cg.append("9thElement", null);
+        itemForm.append(cg);
+    }
+
+    private void addGauge(String title, boolean mode)
+    {
+        g = new Gauge(title, mode, 10, 5);
+        itemForm.append(g);
+    }
+
+    private void addDateField(String title, int mode)
+    {
+        df = new DateField(title, mode);
+        itemForm.append(df);
+    }
+
+    private void addSpacer(int minWidth, int minHeight)
+    {
+        sp = new Spacer(minWidth, minHeight);
+        itemForm.append(sp);
+    }
+
+    private void addStringItem(String title, String text)
+    {
+        si = new StringItem(title, text);
+        itemForm.append(si);
+    }
+
+    private void addBigImage()
+    {
+        try
+        {
+            Image bigImage = Image.createImage("/bigImage.png");
+            itemForm.append(bigImage);
+        }
+        catch (java.io.IOException err)
+        {
+            System.out.println("Error in creating the image!");
+        }
+    }
+
+    private void addImageItem()
+    {
+        try
+        {
+            Image img = Image.createImage("/plasma.png");
+
+            itemForm.append(new ImageItem("Default Layout",
+                                          img,
+                                          ImageItem.LAYOUT_DEFAULT,
+                                          "Image Cannot be shown"));
+
+            itemForm.append(new ImageItem("Layout Center",
+                                          img,
+                                          ImageItem.LAYOUT_CENTER,
+                                          "Image Cannot be shown"));
+
+            itemForm.append(new ImageItem("Layout Left",
+                                          img,
+                                          ImageItem.LAYOUT_LEFT,
+                                          "Image Cannot be shown"));
+
+            itemForm.append(new ImageItem("Layout Center After",
+                                          img,
+                                          ImageItem.LAYOUT_CENTER |
+                                          ImageItem.LAYOUT_NEWLINE_AFTER,
+                                          "Image Cannot be shown"));
+
+            itemForm.append(new ImageItem("Layout Right",
+                                          img,
+                                          ImageItem.LAYOUT_RIGHT,
+                                          "Image Cannot be shown"));
+
+            itemForm.append(new ImageItem("Layout Center Before",
+                                          img,
+                                          ImageItem.LAYOUT_CENTER |
+                                          ImageItem.LAYOUT_NEWLINE_BEFORE,
+                                          "Image Cannot be shown"));
+
+        }
+        catch (java.io.IOException err)
+        {
+            System.out.println("Error in creating the image!");
+        }
+    }
+
+    private void addTextField(String label, int constraints)
+    {
+        if (label.equals("UNEDITABLE"))
+        {
+            tf = new TextField(label, "uneditable", 30, constraints);
+        }
+        else
+            tf = new TextField(label, "", 30, constraints);
+        itemForm.append(tf);
+    }
+
+    private void deleteFormItems()
+    {
+        int size = itemForm.size();
+        if (size != 0)
+        {
+            for (int i=0; i<size; i++)
+                itemForm.delete(0);
+        }
+    }
+    public void itemStateChanged(Item item)
+    {
+        itemForm.setTitle(item.getLabel() + " modified!");
+    }
+
+    /**
+     *  This method handles command invocations.
+     *
+     *@param  c  This is the command responsible for the event.
+     *@param  s  Should be equal to this.
+     */
+    public void commandAction(Command c, Displayable s)
+    {
+        int index = instance.getSelectedIndex();
+        String item = instance.getString(index);
+        if (c == cmdItemState)
+        {
+            addChoiceGroup(exCgStr, ChoiceGroup.EXCLUSIVE);
+            addChoiceGroup(mulCgStr, ChoiceGroup.MULTIPLE);
+            addChoiceGroup(popCgStr, ChoiceGroup.POPUP);
+            addGauge(iGStr, true);
+            addDateField("DATE_TIME", DateField.DATE_TIME);
+            addTextField("ANY", TextField.ANY);
+            addStringItem("StringItemLabel", "StringItemText");
+            addImageItem();
+            itemForm.addCommand(cmdChangeStringItem);
+            itemForm.addCommand(cmdChangeImageItem);
+        }
+        if (c == cmdAppend || c == cmdManyItems)
+        {
+            if (c == cmdAppend)
+            {
+                deleteFormItems();
+                itemForm.removeCommand(cmdReplace);
+                itemForm.removeCommand(cmdDelete);
+            }
+            if (c == cmdManyItems)
+            {
+                itemForm.addCommand(cmdReplace);
+                itemForm.addCommand(cmdDelete);
+            }
+
+            if (item.equals(exCgStr))
+                addChoiceGroup(exCgStr, ChoiceGroup.EXCLUSIVE);
+            else if (item.equals(mulCgStr))
+                addChoiceGroup(mulCgStr, ChoiceGroup.MULTIPLE);
+            else if (item.equals(popCgStr))
+                addChoiceGroup(popCgStr, ChoiceGroup.POPUP);
+            else if (item.equals(iGStr))
+                addGauge(iGStr, true);
+            else if (item.equals(nGStr))
+                addGauge(nGStr, false);
+            else if (item.equals(dfStr))
+            {
+                addDateField("DATE", DateField.DATE);
+                addDateField("TIME", DateField.TIME);
+                addDateField("DATE_TIME", DateField.DATE_TIME);
+            }
+            else if (item.equals(siStr))
+                addStringItem("StringItemLabel", "StringItemText");
+            else if (item.equals(imgStr))
+                addImageItem();
+            else if (item.equals(spacerStr))
+                addSpacer(10,10);
+            else if (item.equals(tfStr))
+            {
+                addTextField("ANY", TextField.ANY);
+                addTextField("EMAILADDR", TextField.EMAILADDR);
+                addTextField("NUMERIC", TextField.NUMERIC);
+                addTextField("PHONENUMBER", TextField.PHONENUMBER);
+                addTextField("URL", TextField.URL);
+                addTextField("PASSWORD", TextField.PASSWORD);
+                addTextField("PASSWORD|NUMERIC", TextField.PASSWORD|TextField.NUMERIC);
+                addTextField("PASSWORD|PHONENUMBER", TextField.PASSWORD|TextField.PHONENUMBER);
+                addTextField("PASSWORD|URL", TextField.PASSWORD|TextField.URL);
+                addTextField("PASSWORD|EMAILADDR", TextField.PASSWORD|TextField.EMAILADDR);
+                addTextField("DECIMAL", TextField.DECIMAL);
+                addTextField("INITIAL_CAPS_SENTENCE", TextField.INITIAL_CAPS_SENTENCE);
+                addTextField("PINITIAL_CAPS_WORD", TextField.INITIAL_CAPS_WORD);
+                addTextField("UNEDITABLE", TextField.UNEDITABLE);
+                addTextField("NON_PREDICTIVE", TextField.NON_PREDICTIVE);
+                addTextField("SENSITIVE", TextField.SENSITIVE);
+            }
+            else if (item.equals(bigImgStr))
+                addBigImage();
+        }
+        if (c == cmdExit)
+        {
+            parent.destroyApp(false);
+            parent.notifyDestroyed();
+        }
+        Display.getDisplay(parent).setCurrent(itemForm);
+        if (c == cmdBack)
+            Display.getDisplay(parent).setCurrent(instance);
+        if (c == cmdReplace)
+        {
+            //Item to replace 1st Item
+            Item si = new StringItem("Replaced StringItem", "StringItem Text");
+            if (itemForm.size() != 0)
+                itemForm.set(0, si);
+            Display.getDisplay(parent).setCurrent(itemForm);
+        }
+        if (c == cmdDelete)
+        {
+            if (itemForm.size() == 0)
+            {
+                //to tell the user Form is empty
+                Alert a = new Alert("Info", "Form is empty,add Items before testing delete", null, AlertType.INFO);
+                a.setTimeout(5000);
+                Display.getDisplay(parent).setCurrent(a);
+            }
+            else
+            {
+                itemForm.delete(0);
+            }
+            Display.getDisplay(parent).setCurrent(itemForm);
+        }
+        if (c == cmdChangeStringItem)
+        {
+            (itemForm.get(6)).setLabel("StringItem Changed!");
+            (itemForm.get(6)).notifyStateChanged();
+        }
+        if (c == cmdChangeImageItem)
+        {
+            (itemForm.get(7)).setLabel("ImageItem Changed!");
+            (itemForm.get(7)).notifyStateChanged();
+        }
+    }
+}