Class OnOffSwitch

All Implemented Interfaces:
Animation, Editable, ActionSource, StyleListener, Iterable<Component>

public class OnOffSwitch extends Container implements ActionSource
The on/off switch is a checkbox of sort (although it derives container) that represents its state as a switch each of which has a short label associated with it. It has two types: Android and iOS. The types differ in the way that they are rendered. The Android type (the default) is just a button with a label that can be moved/dragged between the two states. The iOS version is more elaborate due to the look of that platform.
  • Constructor Details

    • OnOffSwitch

      public OnOffSwitch()
      Default constructor
  • Method Details

    • calcPreferredSize

      protected Dimension calcPreferredSize()

      Calculates the preferred size based on component content. This method is invoked lazily by getPreferred size.

      Returns

      the calculated preferred size based on component content

      Overrides:
      calcPreferredSize in class Container
    • resetFocusable

      protected void resetFocusable()
      Restores the state of the focusable flag to its default state
      Overrides:
      resetFocusable in class Component
    • isStickyDrag

      protected boolean isStickyDrag()

      Returns true if the component is interested in receiving drag/pointer release events even after the gesture exceeded its boundaries. This is useful for spinners etc. where the motion might continue beyond the size of the component

      Returns

      false by default

      Overrides:
      isStickyDrag in class Component
    • addActionListener

      public void addActionListener(ActionListener l)

      Adds a listener to the switch which will cause an event to dispatch on click

      Parameters
      • l: implementation of the action listener interface
      Specified by:
      addActionListener in interface ActionSource
    • removeActionListener

      public void removeActionListener(ActionListener l)

      Removes the given action listener from the switch

      Parameters
      • l: implementation of the action listener interface
      Specified by:
      removeActionListener in interface ActionSource
    • getActionListeners

      public Vector getActionListeners()

      Returns a vector containing the action listeners for this button

      Returns

      the action listeners

      Deprecated

      use the version that returns a collection

    • getListeners

      public Collection getListeners()

      Returns a collection containing the action listeners for this button

      Returns

      the action listeners

    • 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: the component graphics
      Specified by:
      paint in interface Animation
      Overrides:
      paint in class Container
    • initComponent

      protected void initComponent()
      Allows subclasses to bind functionality that relies on fully initialized and "ready for action" component state
      Overrides:
      initComponent in class Component
    • 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.
      Overrides:
      deinitialize in class Component
    • pointerPressed

      public void pointerPressed(int x, int y)

      If this Component is focused, the pointer pressed event will call this method

      Parameters
      • x: the pointer x coordinate

      • y: the pointer y coordinate

      Overrides:
      pointerPressed in class Container
    • pointerDragged

      public void pointerDragged(int x, int y)

      If this Component is focused, the pointer dragged event will call this method

      Parameters
      • x: the pointer x coordinate

      • y: the pointer y coordinate

      Overrides:
      pointerDragged in class Component
    • pointerReleased

      public void pointerReleased(int x, int y)

      If this Component is focused, the pointer released event will call this method

      Parameters
      • x: the pointer x coordinate

      • y: the pointer y coordinate

      Overrides:
      pointerReleased in class Component
    • getOn

      public String getOn()

      Label for the on mode

      Returns

      the on

    • setOn

      public void setOn(String on)

      Label for the on mode

      Parameters
      • on: the on to set
    • getOff

      public String getOff()

      Label for the off mode

      Returns

      the off

    • setOff

      public void setOff(String off)

      Label for the off mode

      Parameters
      • off: the off to set
    • isValue

      public boolean isValue()

      The value of the switch

      Returns

      the value

    • setValue

      public void setValue(boolean value)

      The value of the switch

      Parameters
      • value: the value to set
    • getPropertyNames

      public String[] getPropertyNames()

      A component may expose mutable property names for a UI designer to manipulate, this API is designed for usage internally by the GUI builder code

      Returns

      the property names allowing mutation

      Overrides:
      getPropertyNames in class Component
    • getComponentState

      public Object getComponentState()

      Some components may optionally generate a state which can then be restored using setCompnentState(). This method is used by the UIBuilder.

      Returns

      the component state or null for undefined state.

      Overrides:
      getComponentState in class Component
    • setComponentState

      public void setComponentState(Object state)

      If getComponentState returned a value the setter can update the value and restore the prior state.

      Parameters
      • state: the non-null state
      Overrides:
      setComponentState in class Component
    • getPropertyTypes

      public Class[] getPropertyTypes()

      Matches the property names method (see that method for further details).

      Returns

      the types of the properties

      Overrides:
      getPropertyTypes in class Component
    • getPropertyValue

      public Object getPropertyValue(String name)

      Returns the current value of the property name, this method is used by the GUI builder

      Parameters
      • name: the name of the property
      Returns

      the value of said property

      Overrides:
      getPropertyValue in class Component
    • setPropertyValue

      public String setPropertyValue(String name, Object value)

      Sets a new value to the given property, returns an error message if failed and null if successful. Notice that some builtin properties such as "$designMode" might be sent to components to indicate application state.

      Parameters
      • name: the name of the property

      • value: new value for the property

      Returns

      error message or null

      Overrides:
      setPropertyValue in class Component
    • isNoTextMode

      public boolean isNoTextMode()

      iOS 7 changed the switch to not include any text

      Returns

      the noTextMode

    • setNoTextMode

      public void setNoTextMode(boolean noTextMode)

      iOS 7 changed the switch to not include any text

      Parameters
      • noTextMode: the noTextMode to set
    • getSwitchOnImage

      public Image getSwitchOnImage()

      Gets the image that is used for the "On" state of the switch.

      Returns
      Returns:

      The image that will be used for the "On" state. If the "onOffIOSModeBool" theme constant is false and the switchOnImage hasn't been explicitly set by the #setSwitchOnImage(com.codename1.ui.Image) method, then this will return null.

      See also
      • #setSwitchOnImage(com.codename1.ui.Image)

      • #getSwitchOffImage()

      • #getSwitchMaskImage()

    • setSwitchOnImage

      public void setSwitchOnImage(Image switchOnImage)

      Sets the image that should be used for the "Off" state. Note: This option is only used if the "onOffIOSModeBool" theme constant is enabled.

      Note: If the "onOffIOSModeBool" theme constant is false and you set this image, you must also set the "Off" image with #setSwitchOffImage(com.codename1.ui.Image) and the "Mask" image with #setSwitchMaskImage(com.codename1.ui.Image).

      Parameters
      • switchOnImage: the switchOnImage to set
      See also
      • #getSwitchOnImage()

      • #setSwitchMaskImage(com.codename1.ui.Image)

      • #setSwitchOffImage(com.codename1.ui.Image)

    • getSwitchOffImage

      public Image getSwitchOffImage()

      Gets the image that is used for the "Off" state of the switch.

      Returns
      Returns:

      The image that will be used for the "Off" state. If the "onOffIOSModeBool" theme constant is false and the switchOffImage hasn't been explicitly set by the #setSwitchOffImage(com.codename1.ui.Image) method, then this will return null.

      See also
      • #setSwitchOffImage(com.codename1.ui.Image)

      • #getSwitchOnImage()

      • #getSwitchMaskImage()

    • setSwitchOffImage

      public void setSwitchOffImage(Image switchOffImage)

      Sets the image that should be used for the "Off" state. Note: This option is only used if the "onOffIOSModeBool" theme constant is enabled.

      Note: If the "onOffIOSModeBool" theme constant is false and you set this image, you must also set the "On" image with #setSwitchOnImage(com.codename1.ui.Image) and the "Mask" image with #setSwitchMaskImage(com.codename1.ui.Image).

      Parameters
      • switchOffImage: the switchOffImage to set
      See also
      • #getSwitchOffImage()

      • #setSwitchMaskImage(com.codename1.ui.Image)

      • #setSwitchOnImage(com.codename1.ui.Image)

    • getSwitchMaskImage

      public Image getSwitchMaskImage()

      Gets the image that is used for the mask. Note: This option is only used if the "onOffIOSModeBool" theme constant is enabled.

      This image will generally consist of an opaque border/frame with a transparent center such that the "on" and "off" images can be painted inside the transparent part, and anything that is outside that center will be painted over by the frame, or clipped.

      Returns
      Returns:

      the switchMaskImage image if the "onOffIOSModeBool" flag is set or the mask image has been explicitly set on this OnOffSwitch using #setSwitchMaskImage(com.codename1.ui.Image)

      See also
      • #getSwitchOffImage()

      • #getSwitchOffImage()

      • #setSwitchOnImage(com.codename1.ui.Image)

      • #getSwitchMaskImage()

      • #setSwitchMaskImage(com.codename1.ui.Image)

    • setSwitchMaskImage

      public void setSwitchMaskImage(Image switchMaskImage)

      Sets the image that should be used for the "On" state.

      Note: If the "onOffIOSModeBool" is false and you set this mask, you must also set the "On" image with #setSwitchOnImage(com.codename1.ui.Image) and the "Off" image with #setSwitchOffImage(com.codename1.ui.Image).

      Parameters
      • switchMaskImage: @param switchMaskImage the switchMaskImage image to set as the mask for the on-off switch.