ImageItempublic class ImageItem extends Item An item that can contain an image.
Each ImageItem object contains a reference to an
{@link Image} object.
This Image may be mutable or immutable. If the
Image is mutable, the
effect is as if snapshot of its contents is taken at the time the
ImageItem
is constructed with this Image and when
setImage is called with an Image .
The snapshot is used whenever the contents of the
ImageItem are to be
displayed. Even if the application subsequently draws into the
Image , the
snapshot is not modified until the next call to
setImage . The snapshot is
not updated when the container of the
ImageItem becomes current or
becomes visible on the display. (This is because the application does not
have control over exactly when Displayables and Items
appear and disappear
from the display.)
The value null may be specified for the image
contents of an ImageItem .
If
this occurs (and if the label is also null ) the
ImageItem will occupy no
space on the screen.
ImageItem contains layout directives that were
originally defined in
MIDP 1.0. These layout directives have been moved to the
{@link Item} class and now apply to all items. The declarations are left
in ImageItem for source compatibility purposes.
The altText parameter specifies a string to be
displayed in place of the
image if the image exceeds the capacity of the display. The
altText
parameter may be null . |
Fields Summary |
---|
ImageItemLF | imageItemLFThe look&feel associated with this ImageItem.
Set in the constructor. getLF() should return this instance. | Image | immutableImgThe snapshot of the Image of this ImageItem;
If the Image of this ImageItem was set to a mutable Image
this variable is updated with a new snapshot each time setImage() is
called. | Image | mutableImgIf the ImageItem was created with a mutable image or its Image
was set to a mutable image, that mutable image is stored in
the mutImg variable so that ImageItem.getImage() could return it. | String | altTextThe alternate text of this ImageItem | int | appearanceModeThe appearance hint |
Constructors Summary |
---|
public ImageItem(String label, Image img, int layout, String altText)Creates a new ImageItem with the given label, image, layout
directive, and alternate text string. Calling this constructor is
equivalent to calling
ImageItem(label, image, layout, altText, PLAIN);
|
this(label, img, layout, altText, PLAIN);
| public ImageItem(String label, Image image, int layout, String altText, int appearanceMode)Creates a new ImageItem object with the given label, image,
layout directive, alternate text string, and appearance mode.
Either label or alternative text may be present or null .
The appearanceMode parameter
(see Appearance Modes)
is a hint to the platform of the application's intended use
for this ImageItem . To provide hyperlink- or
button-like behavior,
the application should associate a default Command with this
ImageItem and add an
ItemCommandListener to this
ImageItem .
Here is an example showing the use of an
ImageItem as a button:
ImageItem imgItem =
new ImageItem("Default: ", img,
Item.LAYOUT_CENTER, null,
Item.BUTTON);
imgItem.setDefaultCommand(
new Command("Set", Command.ITEM, 1);
// icl is ItemCommandListener
imgItem.setItemCommandListener(icl);
|
super(label);
synchronized (Display.LCDUILock) {
setImageImpl(image);
setLayoutImpl(layout);
this.altText = altText;
switch (appearanceMode) {
case Item.PLAIN:
case Item.HYPERLINK:
case Item.BUTTON:
this.appearanceMode = appearanceMode;
break;
default:
throw new IllegalArgumentException();
}
itemLF = imageItemLF = LFFactory.getFactory().getImageItemLF(this);
} // synchronized
|
Methods Summary |
---|
public java.lang.String | getAltText()Gets the text string to be used if the image exceeds the device's
capacity to display it.
// SYNC NOTE: return of atomic value, no locking necessary
return altText;
| public int | getAppearanceMode()Returns the appearance mode of the ImageItem .
See Appearance Modes.
return appearanceMode;
| public Image | getImage()Gets the image contained within the ImageItem , or
null if there is no
contained image.
synchronized (Display.LCDUILock) {
return mutableImg == null ? immutableImg : mutableImg;
}
| public int | getLayout()Gets the layout directives used for placing the image.
// NOTE: looks odd, but this method is required for 1.0 compatibility
return super.getLayout();
| public void | setAltText(java.lang.String text)Sets the alternate text of the ImageItem , or
null if no alternate text is provided.
synchronized (Display.LCDUILock) {
this.altText = text;
imageItemLF.lSetAltText(text);
}
| public void | setImage(Image img)Sets the Image object contained within the
ImageItem . The image may be
mutable or immutable. If img is
null , the ImageItem is set to be
empty. If img is mutable, the effect is as if a
snapshot is taken of
img's contents immediately prior to the call to
setImage . This
snapshot is used whenever the contents of the
ImageItem are to be
displayed. If img is already the
Image of this ImageItem , the effect
is as if a new snapshot of img's contents is taken. Thus, after
painting into a mutable image contained by an
ImageItem , the
application can call
imageItem.setImage(imageItem.getImage());
|
to refresh the ImageItem's snapshot of its Image.
If the ImageItem is visible on the display when
the snapshot is
updated through a call to setImage , the display is
updated with the new
snapshot as soon as it is feasible for the implementation to so do.
synchronized (Display.LCDUILock) {
setImageImpl(img);
imageItemLF.lSetImage(this.immutableImg);
}
| private void | setImageImpl(Image img)Set the Image for this ImageItem
if (img != null && img.isMutable()) {
this.mutableImg = img;
// make an immutable copy of img
this.immutableImg = Image.createImage(img);
} else {
this.mutableImg = null;
this.immutableImg = img;
}
| public void | setLayout(int layout)Sets the layout directives.
// NOTE: looks odd, but this method is required for 1.0 compatibility
super.setLayout(layout);
|
|