|
MIDP3.0 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.microedition.lcdui.Displayable
javax.microedition.lcdui.Screen
javax.microedition.lcdui.List
public class List
A Screen
containing list of choices. Most of its behavior is
common with class ChoiceGroup
, and their common API. The
different List
types in particular, are defined in interface
Choice
. When a List
is present on the display,
the user can interact with it by selecting elements and possibly by
traversing and scrolling among them. Traversing and scrolling operations do
not cause application-visible events. The system notifies the application
only when a Command
is invoked by notifying its
CommandListener
. The List
class also supports a
select command that may be invoked specially depending upon the capabilities
of the device.
The notion of a select operation on a List
element
is central to the user's interaction with the List
. On
devices that have a dedicated hardware "select" or "go"
key, the select operation is implemented with that key. Devices that do not
have a dedicated key must provide another means to do the select operation,
for example, using a soft key. The behavior of the select operation within
the different types of lists is described in the following sections.
List
objects may be created with Choice
types
of Choice.EXCLUSIVE
, Choice.MULTIPLE
, and
Choice.IMPLICIT
. The Choice
type Choice.POPUP
is not allowed on List
objects.
EXCLUSIVE
and MULTIPLE
Lists
The select operation is not associated with a Command
object,
so the application has no means of setting a label for it or being notified
when the operation is performed. In Lists
of type
EXCLUSIVE
, the select operation selects the target element
and deselects the previously selected element. In Lists
of
type MULTIPLE
, the select operation toggles the selected
state of the target element, leaving the selected state of other elements
unchanged. Devices that implement the select operation using a soft key will
need to provide a label for it. The label should be something similar to
"Select" for Lists
of type EXCLUSIVE
,
and it should be something similar to "Mark" or "Unmark"
for Lists
of type MULTIPLE
.
IMPLICIT
Lists
The select operation is associated with a Command
object
referred to as the select command. When the user performs the
select operation, the system will invoke the select command by notifying the
List's
CommandListener
. The default
select command is the system-provided command SELECT_COMMAND
.
The select command may be modified by the application through use of the
setSelectCommand
method. Devices
that implement the select operation using a soft key will use the label from
the select command. If the select command is SELECT_COMMAND
,
the device may choose to provide its own label instead of using the label
attribute of SELECT_COMMAND
. Applications should generally
provide their own select command to replace SELECT_COMMAND
.
This allows applications to provide a meaningful label, instead of relying on
the one provided by the system for SELECT_COMMAND
. The
implementation must not invoke the select command if there are no
elements in the List
, because if the List
is
empty the selection does not exist. In this case the implementation should
remove or disable the select command if it would appear explicitly on a soft
button or in a menu. Other commands can be invoked normally when the
List
is empty.
IMPLICIT
Lists
IMPLICIT
Lists
can be used to construct menus
by providing operations as List
elements. The application
provides a Command
that is used to select a List
element and then defines this Command
to be used as the select
command. The application must also register a CommandListener
that is called when the user selects or activates the Command
:
String[] elements = { ... }; //Menu items as List elements List menuList = new List("Menu", List.IMPLICIT, elements, null); Command selectCommand = new Command("Open", Command.ITEM, 1); menuList.setSelectCommand(selectCommand); menuList.setCommandListener(...);
The listener can query the List
to determine which element is
selected and then perform the corresponding action. Note that setting a
command as the select command adds it to the List
as a side
effect.
The select command should be considered as a default operation
that takes place when a select key is pressed. For example, a
List
displaying email headers might have three operations:
read, reply, and delete. Read is considered to be the default operation.
List list = new List("Email", List.IMPLICIT, headers); readCommand = new Command("Read", Command.ITEM, 1); replyCommand = new Command("Reply", Command.ITEM, 2); deleteCommand = new Command("Delete", Command.ITEM, 3); list.setSelectCommand(readCommand); list.addCommand(replyCommand); list.addCommand(deleteCommand); list.setCommandListener(...);
On a device with a dedicated select key, pressing this key will invoke
readCommand
. On a device without a select key, the user is
still able to invoke the read command, since it is also provided as an
ordinary Command
.
It should be noted that this kind of default operation must be used carefully, and the usability of the resulting user interface must always kept in mind. The default operation should always be the most intuitive operation on a particular List.
Field Summary | |
---|---|
static Command |
SELECT_COMMAND
The default select command for IMPLICIT Lists . |
Fields inherited from interface javax.microedition.lcdui.Choice |
---|
EXCLUSIVE, IMPLICIT, MULTIPLE, POPUP, TEXT_WRAP_DEFAULT, TEXT_WRAP_OFF, TEXT_WRAP_ON |
Constructor Summary | |
---|---|
List(java.lang.String title,
int listType)
Creates a new, empty List , specifying its title and the
type of the list. |
|
List(java.lang.String title,
int listType,
java.lang.String[] stringElements,
Image[] imageElements)
Creates a new List , specifying its title, the type of the
List , and an array of Strings and
Images to be used as its initial contents. |
Method Summary | |
---|---|
int |
append(java.lang.String stringPart,
Image imagePart)
Appends an element to the List . |
void |
delete(int elementNum)
Deletes the element referenced by elementNum . |
void |
deleteAll()
Deletes all elements from this List. |
int |
getFitPolicy()
Gets the application's preferred policy for fitting Choice
element contents to the available screen space. |
Font |
getFont(int elementNum)
Gets the application's preferred font for rendering the specified element of this Choice . |
int |
getHeight()
Returns the height in pixels of the displayable area available for elements. |
Image |
getImage(int elementNum)
Gets the Image part of the element referenced by
elementNum . |
int |
getSelectedFlags(boolean[] selectedArray_return)
Queries the state of a List and returns the state of all
elements in the boolean array selectedArray_return . |
int |
getSelectedIndex()
Returns the index number of an element in the List that is
selected. |
java.lang.String |
getString(int elementNum)
Gets the String part of the element referenced by
elementNum . |
int |
getWidth()
Returns the width in pixels of the displayable area available for elements. |
void |
insert(int elementNum,
java.lang.String stringPart,
Image imagePart)
Inserts an element into the List just prior to the element
specified. |
boolean |
isEnabled(int elementNum)
Gets a boolean value indicating whether the specified Choice element is enabled or disabled. |
boolean |
isSelected(int elementNum)
Gets a boolean value indicating whether this element is selected. |
void |
removeCommand(Command cmd)
The same as Displayable.removeCommand
but with the following additional semantics. |
void |
set(int elementNum,
java.lang.String stringPart,
Image imagePart)
Sets the String and Image parts of the
element referenced by elementNum , replacing the previous
contents of the element. |
void |
setEnabled(int elementNum,
boolean isEnabled)
Sets the Choice element into enabled or
disabled mode. |
void |
setFitPolicy(int fitPolicy)
Sets the application's preferred policy for fitting Choice
element contents to the available screen space. |
void |
setFont(int elementNum,
Font font)
Sets the application's preferred font for rendering the specified element of this Choice . |
void |
setSelectCommand(Command command)
Sets the Command to be used for an
IMPLICIT List selection action. |
void |
setSelectedFlags(boolean[] selectedArray)
Sets the selected state of all elements of the List . |
void |
setSelectedIndex(int elementNum,
boolean selected)
Sets the selected state of an element. |
int |
size()
Gets the number of elements in the List . |
Methods inherited from class javax.microedition.lcdui.Displayable |
---|
addCommand, getCommand, getCommandLayoutPolicy, getCommands, getCurrentDisplay, getMenu, getTicker, getTitle, invalidateCommandLayout, isShown, removeCommandOrMenu, setCommand, setCommandLayoutPolicy, setCommandListener, setMenu, setTicker, setTitle, sizeChanged |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final Command SELECT_COMMAND
IMPLICIT
Lists
.
Applications using an IMPLICIT
List
should
set their own select command using
setSelectCommand
.
The field values of SELECT_COMMAND
are:
-
label = ""
(an empty string)
-
type = SCREEN
- priority = 0
(It would be more appropriate if the type were ITEM
, but
the type of SCREEN
is retained for historical purposes.)
The application should not use these values for recognizing the
SELECT_COMMAND
. Instead, object identities of the
Command
and Displayable
(List
)
should be used.
SELECT_COMMAND
is treated as an ordinary
Command
if it is used with other Displayable
types.
Constructor Detail |
---|
public List(java.lang.String title, int listType)
List
, specifying its title and the
type of the list.
title
- the screen's title (see Displayable
)listType
- one of IMPLICIT
, EXCLUSIVE
, or
MULTIPLE
java.lang.IllegalArgumentException
- if listType
is not one of
IMPLICIT
, EXCLUSIVE
, or
MULTIPLE
Choice
public List(java.lang.String title, int listType, java.lang.String[] stringElements, Image[] imageElements)
List
, specifying its title, the type of the
List
, and an array of Strings
and
Images
to be used as its initial contents.
The stringElements
array must be non-null and every array
element must also be non-null. The length of the
stringElements
array determines the number of elements in
the List
. The imageElements
array may be
null
to indicate that the List
elements
have no images. If the imageElements
array is non-null, it
must be the same length as the stringElements
array.
Individual elements of the imageElements
array may be
null
in order to indicate the absence of an image for the
corresponding List
element. Non-null elements of the
imageElements
array may refer to mutable or immutable
images.
title
- the screen's title (see Displayable
)listType
- one of IMPLICIT
, EXCLUSIVE
, or
MULTIPLE
stringElements
- set of strings specifying the string parts of the
List
elementsimageElements
- set of images specifying the image parts of the
List
elements
java.lang.NullPointerException
- if stringElements
is null
java.lang.NullPointerException
- if the stringElements
array contains any null
elements
java.lang.IllegalArgumentException
- if the imageElements
array is non-null and has
a different length from the stringElements
array
java.lang.IllegalArgumentException
- if listType
is not one of
IMPLICIT
, EXCLUSIVE
, or
MULTIPLE
Choice.EXCLUSIVE
,
Choice.MULTIPLE
,
Choice.IMPLICIT
Method Detail |
---|
public int size()
List
.
size
in interface Choice
List
public java.lang.String getString(int elementNum)
String
part of the element referenced by
elementNum
.
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
getString
in interface Choice
elementNum
- the index of the element to be queried, starting from zero
java.lang.IndexOutOfBoundsException
- if elementNum
is invalidgetImage(int)
public Image getImage(int elementNum)
Image
part of the element referenced by
elementNum
.
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
getImage
in interface Choice
elementNum
- the index of the element to be queried, starting from zero
null
if there is
no image
java.lang.IndexOutOfBoundsException
- if elementNum
is invalidgetString(int)
public int append(java.lang.String stringPart, Image imagePart)
List
.
append
in interface Choice
stringPart
- the string part of the element to be addedimagePart
- the image part of the element to be added, or
null
if there is no image part
java.lang.NullPointerException
- if stringPart
is null
public void insert(int elementNum, java.lang.String stringPart, Image imagePart)
List
just prior to the element
specified.
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
insert
in interface Choice
elementNum
- the index of the element where insertion is to occur, starting from zerostringPart
- the string part of the element to be insertedimagePart
- the image part of the element to be inserted, or
null
if there is no image part
java.lang.IndexOutOfBoundsException
- if elementNum
is invalid
java.lang.NullPointerException
- if stringPart
is null
public void delete(int elementNum)
elementNum
.
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
delete
in interface Choice
elementNum
- the index of the element to be deleted, starting from zero
java.lang.IndexOutOfBoundsException
- if elementNum
is invalidpublic void deleteAll()
deleteAll
in interface Choice
public void set(int elementNum, java.lang.String stringPart, Image imagePart)
String
and Image
parts of the
element referenced by elementNum
, replacing the previous
contents of the element.
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
set
in interface Choice
elementNum
- the index of the element to be set, starting from zerostringPart
- the string part of the new elementimagePart
- the image part of the element, or null
if there
is no image part
java.lang.IndexOutOfBoundsException
- if elementNum
is invalid
java.lang.NullPointerException
- if stringPart
is null
public boolean isSelected(int elementNum)
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
isSelected
in interface Choice
elementNum
- the index of the element to be queried, starting from zero
java.lang.IndexOutOfBoundsException
- if elementNum
is invalidpublic int getSelectedIndex()
List
that is
selected.
getSelectedIndex
in interface Choice
-1
if nonesetSelectedIndex(int, boolean)
public int getSelectedFlags(boolean[] selectedArray_return)
List
and returns the state of all
elements in the boolean array selectedArray_return
.
getSelectedFlags
in interface Choice
selectedArray_return
- array to contain the results
Choice
java.lang.IllegalArgumentException
- if selectedArray_return
is shorter than the
size of the List
java.lang.NullPointerException
- if selectedArray_return
is null
setSelectedFlags(boolean[])
public void setSelectedIndex(int elementNum, boolean selected)
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
setSelectedIndex
in interface Choice
elementNum
- the index of the element, starting from zeroselected
- the state of the element, where true
means
selected and false
means not selected
java.lang.IndexOutOfBoundsException
- if elementNum
is invalidgetSelectedIndex()
public void setSelectedFlags(boolean[] selectedArray)
List
.
setSelectedFlags
in interface Choice
selectedArray
- an array in which the method collect the selection status
java.lang.IllegalArgumentException
- if selectedArray
is shorter than the size of
the List
java.lang.NullPointerException
- if selectedArray
is null
getSelectedFlags(boolean[])
public void removeCommand(Command cmd)
Displayable.removeCommand
but with the following additional semantics.
If the command to be removed happens to be the select command, the
List
is set to have no select command, and the command is
removed from the List
.
The following code:
// Command c is the select command on List list list.removeCommand(c);
is equivalent to the following code:
// Command c is the select command on List list list.setSelectCommand(null); list.removeCommand(c);
removeCommand
in class Displayable
cmd
- the command to be removedpublic void setSelectCommand(Command command)
Command
to be used for an
IMPLICIT
List
selection action. By default,
an implicit selection of a List will result in the predefined
List.SELECT_COMMAND
being used. This behavior may be
overridden by calling the List.setSelectCommand()
method
with an appropriate parameter value. If a null
reference
is passed, this indicates that no "select" action is
appropriate for the contents of this List
.
If a reference to a command object is passed, and it is not the special
command List.SELECT_COMMAND
, and it is not currently
present on this List
object, the command object is added
to this List
as if addCommand(command)
had
been called prior to the command being made the select command. This
indicates that this command is to be invoked when the user performs the
"select" on an element of this List
.
The select command should have a command type of ITEM
to
indicate that it operates on the currently selected object. It is not an
error if the command is of some other type. (List.SELECT_COMMAND
has a type of SCREEN
for historical purposes.) For
purposes of presentation and placement within its user interface, the
implementation is allowed to treat the select command as if it were of
type ITEM
.
If the select command is later removed from the List
with
removeCommand()
, the List
is set to have
no select command as if List.setSelectCommand(null)
had
been called.
The default behavior can be reestablished explicitly by calling
setSelectCommand()
with an argument of
List.SELECT_COMMAND
.
This method has no effect if the type of the List
is not
IMPLICIT
.
command
- the command to be used for an IMPLICIT
list
selection action, or null
if there is nonepublic void setFitPolicy(int fitPolicy)
Choice
element contents to the available screen space. The set policy applies
for all elements of the Choice
object. Valid values are
Choice.TEXT_WRAP_DEFAULT
, Choice.TEXT_WRAP_ON
, and
Choice.TEXT_WRAP_OFF
. Fit policy is a hint, and the implementation may
disregard the application's preferred policy.
setFitPolicy
in interface Choice
fitPolicy
- preferred content fit policy for choice elements
java.lang.IllegalArgumentException
- if fitPolicy
is invalidgetFitPolicy()
public int getFitPolicy()
Choice
element contents to the available screen space. The value returned is the
policy that had been set by the application, even if that value had been
disregarded by the implementation.
getFitPolicy
in interface Choice
Choice.TEXT_WRAP_DEFAULT
, Choice.TEXT_WRAP_ON
, or
Choice.TEXT_WRAP_OFF
setFitPolicy(int)
public void setFont(int elementNum, Font font)
Choice
. An element's font is a hint, and the
implementation may disregard the application's preferred font.
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
The font
parameter must be a valid Font
object or null
. If the font
parameter is
null
, the implementation must use its default font to
render the element.
setFont
in interface Choice
elementNum
- the index of the element, starting from zerofont
- the preferred font to use to render the element
java.lang.IndexOutOfBoundsException
- if elementNum
is invalidgetFont(int)
public Font getFont(int elementNum)
Choice
. The value returned is the font that had
been set by the application, even if that value had been disregarded by
the implementation. If no font had been set by the application, or if the
application explicitly set the font to null
, the value is
the default font chosen by the implementation.
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
getFont
in interface Choice
elementNum
- the index of the element, starting from zero
java.lang.IndexOutOfBoundsException
- if elementNum
is invalidsetFont(int elementNum, Font font)
public void setEnabled(int elementNum, boolean isEnabled)
Choice
element into enabled or
disabled mode. The set mode applies for the
element of the Choice
object specified by the elementNum
parameter. The elementNum
parameter must be within the
range [0..size()-1]
, inclusive. A disabled Choice element
SHOULD be visually different from an enabled Choice element.
setEnabled
in interface Choice
elementNum
- the index of the element to which the mode change
is applied, the index starts from zeroisEnabled
- true if enabled, false if disabled
java.lang.IndexOutOfBoundsException
- if elementNum
is
invalidisEnabled(int)
public boolean isEnabled(int elementNum)
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
isEnabled
in interface Choice
elementNum
- the index of the element to be queried
java.lang.IndexOutOfBoundsException
- if elementNum
is
invalidpublic int getWidth()
List
that can be shown without scrolling.
If the List
is bound to a Display
through a call to
setCurrent
, the width returned MUST NOT
be larger that getWidth
. If a
List
in a TabbedPane
is brought into
focus, then the width returned MUST NOT be larger than
getWidth
.
getWidth
in class Displayable
List
public int getHeight()
List
that can be shown without scrolling.
If the List
is bound to a Display
through a call to
setCurrent
, the height returned MUST NOT
be larger that getHeight
. If a
List
in a TabbedPane
is brought into
focus, then the height returned MUST NOT be larger than
getHeight
.
getHeight
in class Displayable
List
|
MIDP3.0 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |