de.enough.polish.ui.containerviews
Class ExclusiveSingleLineView

java.lang.Object
  extended by de.enough.polish.ui.ItemView
      extended by de.enough.polish.ui.ContainerView
          extended by de.enough.polish.ui.containerviews.ExclusiveSingleLineView
All Implemented Interfaces:
Serializable

public class ExclusiveSingleLineView
extends ContainerView

Shows only the currently selected item of an exclusive ChoiceGroup or an exclusive List.

Apply this view by specifying "view-type: exclusive-single-line;" in your polish.css file.

Copyright (c) Enough Software 2005 - 2008

 history
        08-Apr-2005 - rob creation
 

Author:
Robert Virkus, j2mepolish@enough.de

Field Summary
 
Fields inherited from class de.enough.polish.ui.ContainerView
allowCycling, allowsAutoTraversal, allowsDirectSelectionByPointerEvent, appearanceMode, columnsSetting, columnsWidths, EQUAL_WIDTH_COLUMNS, focusedIndex, focusedItem, focusFirstElement, isExpandItems, isHorizontal, isSequentialTraversal, isVertical, leftXOffset, NO_COLUMNS, NORMAL_WIDTH_COLUMNS, numberOfColumns, numberOfRows, parentContainer, restartAnimation, rightXOffset, rowsHeights, STATIC_WIDTH_COLUMNS, topYOffset, yOffset
 
Fields inherited from class de.enough.polish.ui.ItemView
contentHeight, contentWidth, isFocused, isLayoutCenter, isLayoutRight, layout, paddingHorizontal, paddingVertical, parentItem
 
Constructor Summary
ExclusiveSingleLineView()
          Creates a new view
 
Method Summary
protected  void defocus(Style originalStyle)
          Notifies this view that the parent container is not focused anymore.
 void focus(Style focusstyle, int direction)
          Sets the focus to this container view.
protected  Item getNextItem(int keyCode, int gameAction)
          Interpretes the given user-input and retrieves the nexte item which should be focused.
 boolean handlePointerPressed(int x, int y)
          Handles pointer pressed events.
protected  void initContent(Item parentItm, int firstLineWidth, int lineWidth)
          Initialises this item.
protected  boolean isValid(Item parent, Style style)
          Implementation that are valid only for specific item classes can override this method so that they cannot be accidently attached to unsupported classes.
protected  void paintContent(Item parent, int x, int y, int leftBorder, int rightBorder, javax.microedition.lcdui.Graphics g)
          Paints the content of this container view.
protected  void setStyle(Style style)
          Sets the style for this view.
 
Methods inherited from class de.enough.polish.ui.ContainerView
focusItem, focusItem, focusItem, getItemRelativeY, getNextFocusableItem, getParentRelativeY, getScreen, handleKeyPressed, isInBottomRow, isLayoutExpand, paintContent, paintItem, scroll, shiftFocus, showNotify
 
Methods inherited from class de.enough.polish.ui.ItemView
addFullRepaintRegion, animate, animate, handleKeyReleased, handlePointerReleased, hideNotify, initContentByParent, notifyItemPressedEnd, notifyItemPressedStart, paintBackground, paintBorder, paintContentByParent, releaseResources, removeItemBackground, removeItemBorder, removeParentBackground, removeParentBorder, removeViewFromParent, requestInit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExclusiveSingleLineView

public ExclusiveSingleLineView()
Creates a new view

Method Detail

initContent

protected void initContent(Item parentItm,
                           int firstLineWidth,
                           int lineWidth)
Description copied from class: ContainerView
Initialises this item. The implementation needs to calculate and set the contentWidth and contentHeight fields. The style of the focused item has already been set.

Overrides:
initContent in class ContainerView
Parameters:
parentItm - the Container which uses this view, use parent.getItems() for retrieving all items.
firstLineWidth - the maximum width of the first line
lineWidth - the maximum width of any following lines
See Also:
ItemView.contentWidth, ItemView.contentHeight

setStyle

protected void setStyle(Style style)
Description copied from class: ContainerView
Sets the style for this view. The style can include additional parameters for the view. Subclasses should call super.setStyle(style) first.

Overrides:
setStyle in class ContainerView
Parameters:
style - the style

paintContent

protected void paintContent(Item parent,
                            int x,
                            int y,
                            int leftBorder,
                            int rightBorder,
                            javax.microedition.lcdui.Graphics g)
Description copied from class: ContainerView
Paints the content of this container view. This method adjusts the x and y offsets and forwards the call to paintContent(Container, Item[], int, int, int, int, int, int, int, int, Graphics)

Overrides:
paintContent in class ContainerView
Parameters:
parent - the parent item
x - the left start position
y - the upper start position
leftBorder - the left border, nothing must be painted left of this position
rightBorder - the right border, nothing must be painted right of this position
g - the Graphics on which this item should be painted.
See Also:
ContainerView.paintContent(Container, Item[], int, int, int, int, int, int, int, int, Graphics)

getNextItem

protected Item getNextItem(int keyCode,
                           int gameAction)
Description copied from class: ContainerView
Interpretes the given user-input and retrieves the nexte item which should be focused. Please not that the focusItem()-method is not called as well. The view is responsible for updating its internal configuration here as well.

Overrides:
getNextItem in class ContainerView
Parameters:
keyCode - the code of the keyPressed-events
gameAction - the associated game-action to the given keyCode
Returns:
the next item which will be focused, null when there is no such element.

handlePointerPressed

public boolean handlePointerPressed(int x,
                                    int y)
Handles pointer pressed events. This is an optional feature that doesn't need to be implemented by subclasses.

Overrides:
handlePointerPressed in class ItemView
Parameters:
x - the x position of the event
y - the y position of the event
Returns:
true when the event has been handled. When false is returned the parent container will forward the event to the affected item.

defocus

protected void defocus(Style originalStyle)
Description copied from class: ItemView
Notifies this view that the parent container is not focused anymore. Please call super.defocus() when overriding this method. The default implementation calls setStyle( originalStyle ) and sets the field "isFocused" to false.

Overrides:
defocus in class ItemView
Parameters:
originalStyle - the previous used style, may be null.

focus

public void focus(Style focusstyle,
                  int direction)
Description copied from class: ItemView
Sets the focus to this container view. The default implementation sets the style and the field "isFocused" to true.

Overrides:
focus in class ItemView
Parameters:
focusstyle - the appropriate style.
direction - the direction from the which the focus is gained, either Canvas.UP, Canvas.DOWN, Canvas.LEFT, Canvas.RIGHT or 0. When 0 is given, the direction is unknown.1

isValid

protected boolean isValid(Item parent,
                          Style style)
Description copied from class: ItemView
Implementation that are valid only for specific item classes can override this method so that they cannot be accidently attached to unsupported classes. This allows casting without checking the parent item with instanceof in each method, for example. The default implementation just returns true for any case.

Overrides:
isValid in class ContainerView
Parameters:
parent - the parent item
style - the style
Returns:
true when the view can be used for the parent item.