Google
 

Friday, March 21, 2008

Form Example 06(Form Juggle)

/*--------------------------------------------------
* FormJuggle.java
*
* Show how a Form component handles inserting and
* setting (replacing) Items
*
* Example from the book: Core J2ME Technology
* Copyright John W. Muchow
* You may use/modify for any non-commercial purpose
*-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class FormJuggle extends MIDlet implements CommandListener
{
private Display display; // Reference to display object
private Form fmMain; // The main form
private Command cmInsert; // Command to insert items
private DateField dfDate; // Display date
private TextField tfSize; // Product size
private TextField tfQuantity; // Product quantity
private int dateIndex; // Index of dfDate

public FormJuggle()
{
display = Display.getDisplay(this);

// Create the date and populate with current date
dfDate = new DateField("", DateField.DATE);
dfDate.setDate(new java.util.Date());

// Define two textfields and two commands
tfSize = new TextField("Size", "Large", 5, TextField.ANY);
tfQuantity = new TextField("Quantity:", "3", 2, TextField.NUMERIC);
cmInsert = new Command("Insert", Command.SCREEN, 1);

// Create the form, add insert command
fmMain = new Form("Form Stuff");
fmMain.addCommand(cmInsert);

// Append date to form & save index value where it was inserted
dateIndex = fmMain.append(dfDate);

// Capture events
fmMain.setCommandListener(this);
}

// Called by application manager to start the MIDlet.
public void startApp()
{
display.setCurrent(fmMain);
}

public void pauseApp()
{ }

public void destroyApp(boolean unconditional)
{ }

public void commandAction(Command c, Displayable s)
{
if (c == cmInsert)
{
// One item on form, insert textfield prior to datefield
if (fmMain.size() == 1)
{
fmMain.insert(dateIndex, tfQuantity);
dateIndex += 1; // Date index has changed, update it
}
// If two items and last item is datefield, replace it
else if (fmMain.size() == 2 && fmMain.get(1) == dfDate)
fmMain.set(dateIndex, tfSize);
}
}
}

0 comments: