javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/StringItemTests2.java
changeset 26 dc7c549001d5
child 87 1627c337e51e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/StringItemTests2.java	Thu May 27 12:49:31 2010 +0300
@@ -0,0 +1,165 @@
+/*
+* Copyright (c) 2009-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 is the main class for StringItemTests1 tests.
+ */
+
+public class StringItemTests2 extends MIDlet implements CommandListener, ItemCommandListener
+{
+
+    //the form to add the StringItems
+    private Form stringItemForm = null;
+    //the main form
+    private Form mainForm = null;
+    //the StringItem to test
+    private StringItem si = null;
+    //list for StringItem types
+    private ChoiceGroup cgType = null;
+    //list for labels
+    private ChoiceGroup cgLabel = null;
+    //list for texts
+    private ChoiceGroup cgText = null;
+    //the StringItem types
+    private String[] siTypes = {"PLAIN", "HYPERLINK", "BUTTON"};
+    private String[] siLabels = {"empty", "Short label", "This is a very long label that might not fit on the screen."};
+    private String[] siStrings =
+    {
+        "1 This fits on one line.",
+        "2 This is one short paragraph that should fit on 2 lines.",
+        "3 This is one longer paragraph that might take about 3 lines in the device, depends on screen size.",
+        "4 This paragraph\nhas one linefeed.",
+        "5 This is a somewhat longer paragraph that might take about three lines.\nHere was a linefeed.",
+        "6TheWrappingBasedOnCharacterBoundariesCanBeTestedWithThisLineOfText."
+    };
+
+    private Command cmdAdd = new Command("Add item", Command.SCREEN, 1);
+    private Command cmdForward = new Command("Switch form", Command.SCREEN, 1);
+    // Command to go back to main form
+    private Command cmdBack = new Command("Back", Command.BACK, 1);
+    // Command to clear the test form
+    private Command cmdClear = new Command("Clear form", Command.SCREEN, 1);
+
+    // Commands for the StringItems
+    private Command cmdItem1 = new Command("Itemcommand1", Command.ITEM, 1);
+    private Command cmdItem2 = new Command("Itemcommand2", Command.ITEM, 1);
+
+    /**
+     * Signals the MIDlet to start and enter the Active state.
+     */
+    protected void startApp()
+    {
+        stringItemForm = new Form("StringItem");
+        mainForm = new Form("Main");
+        cgType = new ChoiceGroup("Type:", ChoiceGroup.POPUP, siTypes, null);
+        cgLabel = new ChoiceGroup("Label:", ChoiceGroup.POPUP, siLabels, null);
+        cgText = new ChoiceGroup("Text:", ChoiceGroup.POPUP, siStrings, null);
+
+        mainForm.append(cgType);
+        mainForm.append(cgLabel);
+        mainForm.append(cgText);
+
+        mainForm.addCommand(cmdAdd);
+        mainForm.addCommand(cmdForward);
+        mainForm.setCommandListener(this);
+        stringItemForm.addCommand(cmdBack);
+        stringItemForm.addCommand(cmdClear);
+        stringItemForm.setCommandListener(this);
+        Display.getDisplay(this).setCurrent(mainForm);
+    }
+
+    /**
+     *  Signals the MIDlet to terminate and enter the Destroyed state.
+     *
+     */
+    protected void destroyApp(boolean unconditional)
+    {
+        System.out.println("destroyApp is called");
+    }
+
+    /**
+     *  Signals the MIDlet to stop and enter the Paused state.
+     */
+    protected void pauseApp()
+    {
+    }
+
+    /**
+     *  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)
+    {
+        if (c == cmdAdd)
+        {
+            // Create correct type of stringitem
+            int index = cgType.getSelectedIndex();
+            if (index == 0)
+                si = new StringItem("", "", Item.PLAIN);
+            else
+            {
+                if (index == 1)
+                    si = new StringItem("", "", Item.HYPERLINK);
+                else if (index == 2)
+                    si = new StringItem("", "", Item.BUTTON);
+                si.addCommand(cmdItem1);
+                si.addCommand(cmdItem2);
+                si.setItemCommandListener(this);
+            }
+
+            // Set the label
+            index = cgLabel.getSelectedIndex();
+            if (index == 0)
+                si.setLabel("");
+            else
+                si.setLabel(cgLabel.getString(index));
+            // Set the text
+            index = cgText.getSelectedIndex();
+            si.setText(cgText.getString(index));
+            stringItemForm.append(si);
+            Display.getDisplay(this).setCurrent(stringItemForm);
+        }
+
+        else if (c == cmdBack)
+        {
+            Display.getDisplay(this).setCurrent(mainForm);
+        }
+        else if (c == cmdClear)
+        {
+            stringItemForm.deleteAll();
+        }
+        else if (c == cmdForward)
+        {
+            Display.getDisplay(this).setCurrent(stringItemForm);
+        }
+    }
+
+    public void commandAction(Command c, Item i)
+    {
+        Alert alert = new Alert(c.getLabel(),"Command executed.",null, AlertType.INFO);
+        Display.getDisplay(this).setCurrent(alert);
+    }
+}
+