public class PeerComponent

  1. Object
  2. Component
  3. PeerComponent

ImplementsAnimation, Editable, StyleListener

A peer component is essentially a “dummy” Codename One component used to calculate the position of the actual native platform specific component. The behavior of a peer component is very platform specific, it is meant for platforms where a native component can be integrated with a Codename One component. Codename One features such as glass pane, z-ordering, dialogs & menus might not work as expected in all situations where peer components are involved. E.g. a peer component might hide itself when a menu/dialog is shown and recreate itself when it is hidden/disposed.

Constructors

protected PeerComponent(Object nativePeer)This constructor is used by the platform implementation to create instances of this class use the static create method.

Methods

public static PeerComponent create(Object nativePeer)Use this method to encapsulate a native UI object
protected Image getPeerImage()The peer image is drawn when the component doesn’t exist or during transition a placeholder image can be placed in the beginning to show something while the peer is being created asynchronously.
protected void setPeerImage(Image i)The peer image is drawn when the component doesn’t exist or during transition a placeholder image can be placed in the beginning to show something while the peer is being created asynchronously.
protected Image generatePeerImage()The native implementation should implement this method to generate a native peer image representing the component
protected boolean shouldRenderPeerImage()Subclasses should return true here if the peer image should be rendered instead of the actual peer
public Object getNativePeer()Returns the native peer instance
public boolean animate()Allows the animation to reduce “repaint” calls when it returns false.
protected void deinitialize()Invoked to indicate that the component initialization is being reversed since the component was detached from the container hierarchy.
protected void fireClicked()When working in 3 softbutton mode “fire” key (center softbutton) is sent to this method in order to allow 3 button devices to work properly.
protected void initComponent()Allows subclasses to bind functionality that relies on fully initialized and “ready for action” component state
public void keyPressed(int keyCode)If this Component is focused, the key pressed event will call this method
public void keyReleased(int keyCode)If this Component is focused, the key released event will call this method
public void keyRepeated(int keyCode)If this Component is focused, the key repeat event will call this method.
public void paint(Graphics g)This method paints the Component on the screen, it should be overriden by subclasses to perform custom drawing or invoke the UI API’s to let the PLAF perform the rendering.
protected void paintBackground(Graphics g)This method paints the Component background, it should be overriden by subclasses to perform custom background drawing.
public void paintBackgrounds(Graphics g)This method paints all the parents Components Background.
protected void paintBorder(Graphics g)Draws the component border if such a border exists.
protected void paintScrollbarX(Graphics g)Paints the UI for the scrollbar on the X axis, this method allows component subclasses to customize the look of a scrollbar
protected void paintScrollbarY(Graphics g)Paints the UI for the scrollbar on the Y axis, this method allows component subclasses to customize the look of a scrollbar
protected void paintScrollbars(Graphics g)Paints the UI for the scrollbars on the component, this will be invoked only for scrollable components.
public void pointerDragged(int[] x, int[] y)If this Component is focused, the pointer dragged event will call this method
public void pointerDragged(int x, int y)If this Component is focused, the pointer dragged event will call this method
public void pointerHover(int[] x, int[] y)Invoked for devices where the pointer can hover without actually clicking the display.
public void pointerHoverReleased(int[] x, int[] y)Invoked for devices where the pointer can hover without actually clicking the display.
public void pointerPressed(int[] x, int[] y)If this Component is focused, the pointer pressed event will call this method
public void pointerPressed(int x, int y)If this Component is focused, the pointer pressed event will call this method
public void pointerReleased(int[] x, int[] y)If this Component is focused, the pointer released event will call this method
public void pointerReleased(int x, int y)If this Component is focused, the pointer released event will call this method
public void invalidate()Updates the size of the component from the native widget
protected void onPositionSizeChange()Callback useful for sublclasses that need to track the change in size/position of the component (notice that this might be invoked too many times for a single change)!
protected void setLightweightMode(boolean l)An optional callback for peers indicating that the peer is now rendered as part of a transition or some other state and is thus not truly visible.

Inherited fields

Inherited methods

From Component

setSameSize, isSetCursorSupported, parsePreferredSize, getDefaultDragTransparency, setDefaultDragTransparency, getEditingDelegate, setEditingDelegate, getCursor, setCursor, showNativeOverlay, hideNativeOverlay, updateNativeOverlay, getNativeOverlay, getAllStyles, getSameWidth, setSameWidth, getSameHeight, setSameHeight, initLaf, getUIManager, getX, setX, getOuterX, getInnerX, getY, setY, getOuterY, getInnerY, isVisible, setVisible, getClientProperty, stripMarginAndPadding, clearClientProperties, putClientProperty, getDirtyRegion, setDirtyRegion, isOpaque, setOpaque, getWidth, setWidth, getOuterWidth, getInnerWidth, getHeight, setHeight, getOuterHeight, getInnerHeight, isDragRegion, getDragRegionStatus, getBaseline, getBaselineResizeBehavior, getPreferredSizeStr, setPreferredSizeStr, getPreferredSize, setPreferredSize, getScrollDimension, calcScrollSize, setScrollSize, getPreferredW, setPreferredW, getPreferredH, setPreferredH, getOuterPreferredH, getInnerPreferredH, getOuterPreferredW, getInnerPreferredW, setSize, getUIID, setUIID, setUIIDFinal, setUIID, getInlineAllStyles, setInlineAllStyles, getInlineSelectedStyles, setInlineSelectedStyles, getInlineUnselectedStyles, setInlineUnselectedStyles, getInlineDisabledStyles, setInlineDisabledStyles, getInlinePressedStyles, setInlinePressedStyles, remove, getParent, getOwner, setOwner, isOwnedBy, containsOrOwns, addFocusListener, removeFocusListener, addScrollListener, removeScrollListener, isSelectableInteraction, getSelectCommandText, setSelectCommandText, getLabelForComponent, setLabelForComponent, focusGained, focusLost, paintShadows, getAbsoluteX, getAbsoluteY, isInClippingRegion, paintIntersectingComponentsAbove, getScrollOpacity, getSelectedRect, paintComponent, paintComponent, getBorder, getScrollable, isScrollable, isScrollableX, isScrollableY, getScrollX, setScrollX, getScrollY, setScrollY, onScrollX, onScrollY, getDraggedx, getDraggedy, getBottomGap, getSideGap, contains, visibleBoundsContains, calcPreferredSize, hasFixedPreferredSize, getBounds, getBounds, getVisibleBounds, getVisibleBounds, isFocusable, setFocusable, onSetFocusable, resetFocusable, getTabIndex, setTabIndex, getPreferredTabIndex, setPreferredTabIndex, isTraversable, setTraversable, setShouldCalcPreferredSize, handlesInput, setHandlesInput, consumesRawTextInput, hasFocus, setFocus, getComponentForm, getTopLevelContainer, repaint, repaint, longKeyPress, registerForAnimation, deregisterFromAnimation, getAnimationManager, getScrollAnimationSpeed, setScrollAnimationSpeed, isBlockLead, setBlockLead, isIgnorePointerEvents, setIgnorePointerEvents, isRippleEffect, setRippleEffect, getInlineStylesTheme, setInlineStylesTheme, shouldRenderComponentSelection, isHideInLandscape, setHideInLandscape, createStyleAnimation, isSmoothScrolling, setSmoothScrolling, stopScrollMomentum, pointerHoverPressed, pinch, pinchReleased, pinch, rotation, isPinchBlocksDragAndDrop, setPinchBlocksDragAndDrop, getDragImage, getDragTransparency, setDragTransparency, toImage, dragInitiated, drawDraggedImage, draggingOver, dragEnter, dragExit, drop, addPullToRefresh, setPullToRefresh, respondsToPointerEvents, isStickyDrag, isDragAndDropOperation, longPointerPress, setVerticalScrollBounds, setHorizontalScrollBounds, isVScrollThumbGrabbed, isHScrollThumbGrabbed, isVScrollThumbHover, isHScrollThumbHover, isTensileDragEnabled, setTensileDragEnabled, getTextSelectionSupport, addDropListener, removeDropListener, addDragOverListener, removeDragOverListener, isNativeDragSource, setNativeDragSource, getNativeDragOperation, setNativeDragOperation, createNativeDragOperation, isNativeDropTarget, setNativeDropTarget, getAcceptedDropMimeTypes, setAcceptedDropMimeTypes, getAcceptedDropActions, setAcceptedDropActions, canAcceptNativeDrop, nativeDragEnter, nativeDragOver, nativeDragExit, nativeDrop, addNativeDropListener, removeNativeDropListener, addNativeDragOverListener, removeNativeDragOverListener, dragFinished, addDragFinishedListener, addStateChangeListener, removeStateChangeListener, addPointerPressedListener, addLongPressListener, addContextMenuListener, removeContextMenuListener, addMouseWheelListener, removeMouseWheelListener, addStylusListener, removeStylusListener, mouseWheel, paintRippleOverlay, removePointerPressedListener, removeLongPressListener, removeDragFinishedListener, addPointerReleasedListener, removePointerReleasedListener, addPointerDraggedListener, removePointerDraggedListener, getDragSpeed, getStyle, getPressedStyle, setPressedStyle, initUnselectedStyle, initPressedStyle, initDisabledStyle, initSelectedStyle, getUnselectedStyle, setUnselectedStyle, getSelectedStyle, setSelectedStyle, getDisabledStyle, setDisabledStyle, installDefaultPainter, requestFocus, toString, paramString, refreshTheme, refreshTheme, refreshTheme, isDragActivated, getGridPosY, getGridPosX, scrollRectToVisible, scrollRectToVisible, paintBorderBackground, isCellRenderer, setCellRenderer, isScrollVisible, setScrollVisible, setIsScrollVisible, startEditingAsync, stopEditing, isEditing, isEditable, laidOut, isInitialized, setInitialized, styleChanged, getNextFocusDown, setNextFocusDown, getNextFocusUp, setNextFocusUp, getNextFocusLeft, setNextFocusLeft, getNextFocusRight, setNextFocusRight, isEnabled, setEnabled, getName, setName, initCustomStyle, deinitializeCustomStyle, isRTL, setRTL, isTactileTouch, isTactileTouch, setTactileTouch, getPropertyNames, getPropertyTypes, getPropertyTypeNames, getPropertyValue, setPropertyValue, paintLockRelease, paintLock, isSnapToGrid, setSnapToGrid, shouldBlockSideSwipe, shouldBlockSideSwipeLeft, shouldBlockSideSwipeRight, blocksSideSwipe, isFlatten, setFlatten, getTensileLength, setTensileLength, isGrabsPointerEvents, setGrabsPointerEvents, getScrollOpacityChangeSpeed, setScrollOpacityChangeSpeed, growShrink, isAlwaysTensile, setAlwaysTensile, isDraggable, setDraggable, isDropTarget, setDropTarget, isChildOf, isHideInPortrait, setHideInPortrait, cancelRepaints, getBindablePropertyNames, getBindablePropertyTypes, bindProperty, unbindProperty, getBoundPropertyValue, setBoundPropertyValue, getCloudBoundProperty, setCloudBoundProperty, getCloudDestinationProperty, setCloudDestinationProperty, getComponentState, setComponentState, setHidden, isHidden, setHidden, isHidden, announceForAccessibility, getAccessibilityText, setAccessibilityText, getSemantics, getAccessibilityNode, accessibilityChanged, accessibilityChanged, getTooltip, setTooltip

Constructor details

PeerComponent

protected PeerComponent(Object nativePeer)
This constructor is used by the platform implementation to create instances of this class use the static create method.

Parameters

nativePeer Object
the native platform specific peer component.

Method details

create

public static PeerComponent create(Object nativePeer)
Use this method to encapsulate a native UI object

Parameters

nativePeer Object
the native platform specific peer component.

getPeerImage

protected Image getPeerImage()
The peer image is drawn when the component doesn’t exist or during transition a placeholder image can be placed in the beginning to show something while the peer is being created asynchronously. This image might be replaced by an internal image representing the actual content of the peer

Returns

an image

setPeerImage

protected void setPeerImage(Image i)
The peer image is drawn when the component doesn’t exist or during transition a placeholder image can be placed in the beginning to show something while the peer is being created asynchronously. This image might be replaced by an internal image representing the actual content of the peer

Parameters

i Image
the peer image

generatePeerImage

protected Image generatePeerImage()
The native implementation should implement this method to generate a native peer image representing the component

Returns

a screenshot of the component

shouldRenderPeerImage

protected boolean shouldRenderPeerImage()
Subclasses should return true here if the peer image should be rendered instead of the actual peer

Returns

true to render the peer image

getNativePeer

public Object getNativePeer()
Returns the native peer instance

Returns

the native peer

animate

public boolean animate()
Allows the animation to reduce “repaint” calls when it returns false. It is called once for every frame. Frames are defined by the com.codename1.ui.Display class.

Returns

true if a repaint is desired or false if no repaint is necessary

deinitialize

protected void deinitialize()
Invoked to indicate that the component initialization is being reversed since the component was detached from the container hierarchy. This allows the component to deregister animators and cleanup after itself. This method is the opposite of the initComponent() method.

fireClicked

protected void fireClicked()
When working in 3 softbutton mode “fire” key (center softbutton) is sent to this method in order to allow 3 button devices to work properly. When overriding this method you should also override isSelectableInteraction to indicate that a command is placed appropriately on top of the fire key for 3 soft button phones.

initComponent

protected void initComponent()
Allows subclasses to bind functionality that relies on fully initialized and “ready for action” component state

keyPressed

public void keyPressed(int keyCode)
If this Component is focused, the key pressed event will call this method

Parameters

keyCode int
the key code value to indicate a physical key.

keyReleased

public void keyReleased(int keyCode)
If this Component is focused, the key released event will call this method

Parameters

keyCode int
the key code value to indicate a physical key.

keyRepeated

public void keyRepeated(int keyCode)
If this Component is focused, the key repeat event will call this method.

Parameters

keyCode int
the key code value to indicate a physical key.

paint

public void paint(Graphics g)
This method paints the Component on the screen, it should be overriden by subclasses to perform custom drawing or invoke the UI API’s to let the PLAF perform the rendering.

Parameters

g Graphics
the component graphics

paintBackground

protected void paintBackground(Graphics g)
This method paints the Component background, it should be overriden by subclasses to perform custom background drawing.

Parameters

g Graphics
the component graphics

paintBackgrounds

public void paintBackgrounds(Graphics g)
This method paints all the parents Components Background.

Parameters

g Graphics
the graphics object

paintBorder

protected void paintBorder(Graphics g)
Draws the component border if such a border exists. The border unlike the content of the component will not be affected by scrolling for a scrollable component.

Parameters

g Graphics
graphics context on which the border is painted

paintScrollbarX

protected void paintScrollbarX(Graphics g)
Paints the UI for the scrollbar on the X axis, this method allows component subclasses to customize the look of a scrollbar

Parameters

g Graphics
the component graphics

paintScrollbarY

protected void paintScrollbarY(Graphics g)
Paints the UI for the scrollbar on the Y axis, this method allows component subclasses to customize the look of a scrollbar

Parameters

g Graphics
the component graphics

paintScrollbars

protected void paintScrollbars(Graphics g)
Paints the UI for the scrollbars on the component, this will be invoked only for scrollable components. This method invokes the appropriate X/Y versions to do all the work.

Parameters

g Graphics
the component graphics

pointerDragged

public void pointerDragged(int[] x, int[] y)
If this Component is focused, the pointer dragged event will call this method

Parameters

x int[]
the pointer x coordinate
y int[]
the pointer y coordinate

pointerDragged

public void pointerDragged(int x, int y)
If this Component is focused, the pointer dragged event will call this method

Parameters

x int
the pointer x coordinate
y int
the pointer y coordinate

pointerHover

public void pointerHover(int[] x, int[] y)
Invoked for devices where the pointer can hover without actually clicking the display. This is true for PC mouse pointer as well as some devices such as the BB storm.

Parameters

x int[]
the pointer x coordinate
y int[]
the pointer y coordinate

pointerHoverReleased

public void pointerHoverReleased(int[] x, int[] y)
Invoked for devices where the pointer can hover without actually clicking the display. This is true for PC mouse pointer as well as some devices such as the BB storm.

Parameters

x int[]
the pointer x coordinate
y int[]
the pointer y coordinate

pointerPressed

public void pointerPressed(int[] x, int[] y)
If this Component is focused, the pointer pressed event will call this method

Parameters

x int[]
the pointer x coordinate
y int[]
the pointer y coordinate

pointerPressed

public void pointerPressed(int x, int y)
If this Component is focused, the pointer pressed event will call this method

Parameters

x int
the pointer x coordinate
y int
the pointer y coordinate

pointerReleased

public void pointerReleased(int[] x, int[] y)
If this Component is focused, the pointer released event will call this method

Parameters

x int[]
the pointer x coordinate
y int[]
the pointer y coordinate

pointerReleased

public void pointerReleased(int x, int y)
If this Component is focused, the pointer released event will call this method

Parameters

x int
the pointer x coordinate
y int
the pointer y coordinate

invalidate

public void invalidate()
Updates the size of the component from the native widget

onPositionSizeChange

protected void onPositionSizeChange()
Callback useful for sublclasses that need to track the change in size/position of the component (notice that this might be invoked too many times for a single change)!

setLightweightMode

protected void setLightweightMode(boolean l)
An optional callback for peers indicating that the peer is now rendered as part of a transition or some other state and is thus not truly visible. In this case the peer should either make itself invisible or render itself as an image instead of natively

Parameters

l boolean
true to enable lightweight mode, false to disable it