SHOW Framework
 

net.rim.device.api.ui.component
Class RadioButtonField

java.lang.Object
  |
  +--net.rim.device.api.ui.Field
        |
        +--net.rim.device.api.ui.component.RadioButtonField
All Implemented Interfaces:
AccessibleContext, FieldLabelProvider, IComponent, InputMethodListener

public class RadioButtonField
extends Field
implements FieldLabelProvider

Field to provide a radio-button control.

Behaviour
Displays a circular button to the left of the text label. With the default font, this button is either empty or contain a solid circle depending on the state of the field. When this field has the focus, the button appears inverted.

You group together Radio buttons fields using the RadioButtonGroup class. At most one button within the group can be selected at any one time. The group can be programmatically created or changed so that no button is selected, but a user cannot deselect all fields in the group.

If the control is EDITABLE (radio button fields are created this way by default), pressing ENTER selects this field and deselects the previously selected radio button field in the group.


Field Summary
 
Fields inherited from class net.rim.device.api.ui.Field
ACTION_INVOKE, EDITABLE, EDITABLE_MASK, FIELD_BOTTOM, FIELD_HALIGN_MASK, FIELD_HCENTER, FIELD_LEADING, FIELD_LEFT, FIELD_RIGHT, FIELD_TOP, FIELD_TRAILING, FIELD_VALIGN_MASK, FIELD_VCENTER, FOCUSABLE, FOCUSABLE_MASK, HIGHLIGHT_FOCUS, HIGHLIGHT_SELECT, NON_FOCUSABLE, NON_SPELLCHECKABLE, READONLY, SPELLCHECKABLE, SPELLCHECKABLE_MASK, STATUS_MOVE_FOCUS_HORIZONTALLY, STATUS_MOVE_FOCUS_VERTICALLY, USE_ALL_HEIGHT, USE_ALL_WIDTH, VISUAL_STATE_ACTIVE, VISUAL_STATE_DISABLED, VISUAL_STATE_DISABLED_FOCUS, VISUAL_STATE_FOCUS, VISUAL_STATE_NORMAL
 
Constructor Summary
RadioButtonField()
          Constructs a new RadioButtonField instance.
RadioButtonField(String label)
          Constructs a new RadioButtonField instance with label.
RadioButtonField(String label, RadioButtonGroup group, boolean selected)
          Constructs a new RadioButtonField instance for a group, with label and initial state.
RadioButtonField(String label, RadioButtonGroup group, boolean selected, long style)
          Constructs a new RadioButtonField instance for a group, with label, initial state and style.
 
Method Summary
  protected  void drawFocus(Graphics graphics, boolean on)
          Draws the focus indicator for this field.
   void getFocusRect(XYRect rect)
          Retrieves this field's current focus region.
   RadioButtonGroup getGroup()
          Retrieves this field's controlling group.
   String getLabel()
          Retrieves this field's label.
   int getPreferredHeight()
          Retrieves this field's preferred height.
   int getPreferredWidth()
          Retrieves this field's preferred width.
   boolean isSelected()
          Determines if this field's radio button is selected.
  protected  boolean keyChar(char key, int status, int time)
          Traps ENTER or SPACE key generation events.
  protected  boolean keyDown(int keycode, int time)
           This method handles and consumes a key generation event, if it's the '5/GH' key (the 'Action' hotkey for Charm device) that's generated; otherwise, this method does nothing and does not consume the event.
  protected  void layout(int width, int height)
          Lays out this field's contents.
  protected  void makeContextMenu(ContextMenu contextMenu)
          Builds this field's context menu.
  protected  void onFocus(int direction)
          Invoked when a field receives the focus.
  protected  void onUnfocus()
          Invoked when a field loses the focus.
  protected  void paint(Graphics graphics)
          Redraws this field.
   void setLabel(String label)
          Sets the label for this field.
   void setSelected(boolean selected)
          Sets the state of this field's radio button.
 Category: Framework protected  boolean trackwheelClick(int status, int time)
          Indicates a trackwheel click event.
 
Methods inherited from class net.rim.device.api.ui.Field
drawHighlightRegion, fieldChangeNotify, focusAdd, focusRemove, getBackground, getBackground, getBorder, getBorder, getBorder, getChangeListener, getContentHeight, getContentLeft, getContentRect, getContentRect, getContentTop, getContentWidth, getContextMenu, getCookie, getExtent, getExtent, getFieldStyle, getFocusListener, getFont, getHeight, getIndex, getLeafFieldWithFocus, getLeft, getManager, getOriginal, getScreen, getStyle, getTop, getVisualState, getWidth, invalidate, invalidate, invalidateAll, isDataValid, isDirty, isEditable, isFocus, isFocusable, isMuddy, isPasteable, isSelectable, isSelecting, isSelectionCopyable, isSelectionCutable, isSelectionDeleteable, isSpellCheckable, isStyle, isVisible, keyControl, keyRepeat, keyStatus, keyUp, moveFocus, moveFocus, navigationClick, navigationMovement, navigationUnclick, onDisplay, onExposed, onMenuDismissed, onMenuDismissed, onObscured, onUndisplay, onVisibilityChange, paste, select, selectionCopy, selectionCut, selectionDelete, setBackground, setBackground, setBorder, setBorder, setBorder, setBorder, setChangeListener, setCookie, setDirty, setEditable, setExtent, setFocus, setFocusListener, setFont, setMuddy, setNonSpellCheckable, setPosition, setVisualState, trackwheelUnclick, updateLayout
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RadioButtonField

public RadioButtonField()
Constructs a new RadioButtonField instance.

This builds a new, unselected radio button field with no label, and no initial assigned group.

If full available width is desired, then Field.USE_ALL_WIDTH style must be specified using the appropriate constructor.


RadioButtonField

public RadioButtonField(String label)
Constructs a new RadioButtonField instance with label.

Before you can use the newly built readio button field, you must add it to a valid radio button group.

If full available width is desired, then Field.USE_ALL_WIDTH style must be specified using the appropriate constructor.

Parameters:
label - Label for this field.

RadioButtonField

public RadioButtonField(String label,
                        RadioButtonGroup group,
                        boolean selected)
Constructs a new RadioButtonField instance for a group, with label and initial state.

If full available width is desired, then Field.USE_ALL_WIDTH style must be specified using the appropriate constructor.

Parameters:
label - Label for this field.
group - RadioButtonGroup this button belongs to.
selected - if true, the radio button begins as selected.

RadioButtonField

public RadioButtonField(String label,
                        RadioButtonGroup group,
                        boolean selected,
                        long style)
Constructs a new RadioButtonField instance for a group, with label, initial state and style.

If full available width is desired, then Field.USE_ALL_WIDTH style must be specified using the appropriate constructor.

Parameters:
label - Label for this field.
group - RadioButtonGroup this button belongs to.
selected - if true, the radio button begins as selected.
style - The style for this field.
Since:
JDE 3.7.0
Method Detail

drawFocus

protected void drawFocus(Graphics graphics,
                         boolean on)
Draws the focus indicator for this field.
Overrides:
drawFocus in class Field
Parameters:
graphics - Grpahics context for drawing the focus.
on - True if the focus should be set; otherwise, false.
Since:
JDE 3.6.0

getFocusRect

public void getFocusRect(XYRect rect)
Retrieves this field's current focus region.

The framework uses this method to retrieve the current focus region for this field (the extent of the 'radio button' part of the field, not including the label).

Overrides:
getFocusRect in class Field
Parameters:
rect - To contain the focus rect for this field in local coordinates.

getGroup

public RadioButtonGroup getGroup()
Retrieves this field's controlling group.

Invoke this method to retrieve the radio button group that controls this field.

Returns:
Group this field belongs to; if this field hasn't been assigned to a group yet, this method returns null.

getLabel

public String getLabel()
Retrieves this field's label.
Returns:
Current field string label.

getPreferredHeight

public int getPreferredHeight()
Retrieves this field's preferred height. See Field.getPreferredHeight() for more information.

Managers may make use of this value during layout.

Overrides:
getPreferredHeight in class Field
Returns:
Preferred height for this field.
Since:
JDE 4.0.0

getPreferredWidth

public int getPreferredWidth()
Retrieves this field's preferred width. See Field.getPreferredWidth() for more information.

Managers make use of this value during layout.

Overrides:
getPreferredWidth in class Field
Returns:
Preferred width for this field.
Since:
JDE 4.0.0

isSelected

public boolean isSelected()
Determines if this field's radio button is selected.
Returns:
True if this field's radio button is selected; otherwise, false.
Throws:
IllegalStateException - If the button is not a member of a group.

keyChar

protected boolean keyChar(char key,
                          int status,
                          int time)
Traps ENTER or SPACE key generation events.

This method handles and consumes a key generation event, if it's the ENTER or SPACE key that's generated; otherwise, this method does nothing and does not consume the event.

If the ENTER or SPACE key was pressed, then this method selects this field as if invoking setSelected(true).

Overrides:
keyChar in class Field
Parameters:
key - Character generated by the event.
status - Modifier key status (this parameter is ignored).
time - Number of milliseconds since the device was turned on.
Returns:
True if the event was consumed (ENTER or SPACE key pressed); otherwise false.

keyDown

protected boolean keyDown(int keycode,
                          int time)

This method handles and consumes a key generation event, if it's the '5/GH' key (the 'Action' hotkey for Charm device) that's generated; otherwise, this method does nothing and does not consume the event.

If the '5/GH' key was pressed, then this method selects this field as if invoking setSelected(true).

Overrides:
keyDown in class Field
Parameters:
keycode - Character generated by the event.
time - Number of milliseconds since the device was turned on.
Returns:
True if the event was consumed ('5/GH' key pressed); otherwise Field.keyDown(int, int).
Since:
JDE 4.0.0

layout

protected void layout(int width,
                      int height)
Lays out this field's contents.

This field's manager invokes this method during the layout process to instruct this field to arrange its contents, given an amount of available space.

Overrides:
layout in class Field
Parameters:
width - Horizontal space available (note that radio button fields always use all available horizontal space).
height - Vertical space available.

makeContextMenu

protected void makeContextMenu(ContextMenu contextMenu)
Builds this field's context menu.
Overrides:
makeContextMenu in class Field
Parameters:
contextMenu - Context menu to build.
Since:
JDE 3.6.0

onFocus

protected void onFocus(int direction)
Description copied from class: Field
Invoked when a field receives the focus.

The method will not be invoked if this field already has focus. Also, it will not be invoked if this field returns false from Field.isFocusable().

Managers should find a child field that accepts focus and cascade this method's call to it.

The direction value indicates how the focus came to enter the field:

  • 1 indicates that the focus came from the previous field.
  • -1 indicates that the focus came from the following field.
  • 0 indicates that the focus was set directly, (that is, not by rolling the trackwheel)
Overrides:
onFocus in class Field
Since:
JDE 4.2.1

Following copied from class: Field
Parameters:
direction - Indicates from which direction the focus enters the field.

onUnfocus

protected void onUnfocus()
Description copied from class: Field
Invoked when a field loses the focus.

The method will not be invoked if this field does not already have the focus.

By default, this method clears the muddy bit and removes selection. If your custom field requires special handling upon losing the focus, you must override this method. Don't forget to call this method on the parent though, or the muddy bit won't get cleared.

Overrides:
onUnfocus in class Field
Since:
JDE 4.2.1

paint

protected void paint(Graphics graphics)
Redraws this field.

This field's manager invokes this method during the repainting process to instruct this field to repaint itself.

Overrides:
paint in class Field
Parameters:
graphics - Graphics context for repainting this field.

setLabel

public void setLabel(String label)
Sets the label for this field.
Parameters:
label - New label for this field.

setSelected

public void setSelected(boolean selected)
Sets the state of this field's radio button.

Invoke this method to change the selected state of this radio button field. Notice that radio button selection is typically handled by the RadioButtonGroup; using this method is a programmatic change which can result in no buttons in a group being selected.

Parameters:
selected - True if this field should be selected (if another radio button field in the group was selected, it is deselected); false if this field should be deselected (if this radio button field was previously selected, then no field in the group will be selected).
Throws:
IllegalStateException - If the button is not a member of a group.

trackwheelClick

protected boolean trackwheelClick(int status,
                                  int time)
Indicates a trackwheel click event.

The system invokes this method when passing on a trackwheel click event.

The ALT-click combination will enter selection mode, or if in selection mode will copy.

Overrides:
trackwheelClick in class Field
Parameters:
status - Bitfield of values defined by Keypad.
time - Number of milliseconds since the device was turned on.
Returns:
True if this method consumed the event; otherwise, false.
Since:
JDE 4.3.0
Category:
Framework: This element may be called by the underlying framework. Members that are invoked by the framework may not behave exactly as documented.



Copyright 1999-2008 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Copyright 1993-2003 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
Copyright 2002-2003 Nokia Corporation All Rights Reserved.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.