Class MLSwitch

java.lang.Object
com.iizix.prop.ui.mlist.MLItem
com.iizix.prop.ui.mlist.MLSwitch
All Implemented Interfaces:
IContentData<MLItemProp>, ICustomDataProvider, IMLArrowActionListener

public class MLSwitch extends MLItem implements IMLArrowActionListener
The switch list item class.

The switch has a text on leading/trailing sides and a description. On the trailing side, a switch is shown.

The trailing text can be left adjusted after the leading text that may have a fixed width in order to have an additional column of text.

The selection state is independent of other components, support for third state exists.

An optional description text can be added to the bottom of the list item.

Author:
Christopher Mindus
  • Field Details

  • Constructor Details

    • MLSwitch

      public MLSwitch(boolean state)
      Creates a new switch list item.
      Parameters:
      state - The switch state.
  • Method Details

    • getSelectionPropName

      protected String getSelectionPropName()
      Returns the IntProp property name used to set the selection to.
      Overrides:
      getSelectionPropName in class MLItem
      Returns:
      The selection property name "checked".
    • getType

      public MLItemType getType()
      Returns the type.
      Specified by:
      getType in class MLItem
      Returns:
      MLItemType.SWITCH.
    • getLeadingTextColumn

      protected int getLeadingTextColumn()
      Returns the column index for the leading text. Types supporting description text must override this method.
      Specified by:
      getLeadingTextColumn in class MLItem
      Returns:
      The column index, or -1 for none.
    • getDescriptionColumn

      protected int getDescriptionColumn()
      Returns the column index for the description. Types supporting description text must override this method.
      Specified by:
      getDescriptionColumn in class MLItem
      Returns:
      The column index = 3.
    • refreshFromVS

      public void refreshFromVS(int[] columns)
      Refreshes contents from VirtualSpace.
      Specified by:
      refreshFromVS in interface IContentData<MLItemProp>
      Specified by:
      refreshFromVS in class MLItem
      Parameters:
      columns - The connected table columns indicies, -1 for none.
    • initialize

      public void initialize(MLItemProp item)
      Initializes the item property from the content data. Each list item must implement this method to provider initialization of its own and call initialize(MLItemProp).
      Specified by:
      initialize in interface IContentData<MLItemProp>
      Parameters:
      item - The item.
    • getUpdatePropertyNames

      protected String[] getUpdatePropertyNames()
      Returns the property names for which the from(PropCnr,MLItemProp) must be called.
      Returns:
      The array of update properties, never null.
    • getShape

      public int getShape()
      Gets the switch shape.
      Returns:
      The shape:
      • 0 = default,
      • 1 = square,
      • 2 = round (normal knob),
      • 3 = round (large knob),
      • 4 = arc (normal knob),
      • 5 = arc (wide knob)
    • setShape

      public boolean setShape(int shape)
      Sets the switch shape.
      Parameters:
      shape - The new shape (0-5) as:
      • 0 = default,
      • 1 = square,
      • 2 = round (normal knob),
      • 3 = round (large knob),
      • 4 = arc (normal knob),
      • 5 = arc (wide knob)
      Returns:
      true for changed, false for no change.
    • getTrailingText

      public KString getTrailingText()
      Gets the trailing text for the list item.
      Returns:
      The text, or null if none is set.
    • setTrailingText

      public boolean setTrailingText(KString text)
      Sets the trailing text for the list item.
      Parameters:
      text - The new text, or null for none.
      Returns:
      true for changed, false for no change.
    • isTrailingTextOppositeAligned

      public boolean isTrailingTextOppositeAligned()
      Returns if the trailing text is aligned to the opposite side, i.e. leading instead of trailing.
      Returns:
      true if trailing text is aligned to leading side, false for aligned to the trailing side.
    • isTrailingTextOppositeAligned

      public boolean isTrailingTextOppositeAligned(boolean opposite)
      Sets if the trailing text is aligned to the opposite side, i.e. leading instead of trailing.
      Parameters:
      opposite - Alignment flag: true if trailing text is aligned to leading side, false for aligned to the trailing side.
      Returns:
      true for changed, false for no change.
    • isArrowDisplayed

      public boolean isArrowDisplayed()
      Returns if the trailing arrow is displayed or not.
      Returns:
      true to display arrow, false not to display arrow.
    • setArrowDisplayed

      public boolean setArrowDisplayed(boolean on)
      Sets if the trailing arrow should be displayed or not.
      Parameters:
      on - The display flag: true to display arrow, false not to display arrow.
      Returns:
      true for changed, false for no change.
    • addListener

      public boolean addListener(IMLSwitchStateListener listener)
      Adds a switch listener for the arrow. Calling this method multiple times with the same listener will have no effect (but to return false). Adds a new listener. Calling this method multiple times with the same listener will have no effect (but to return false).
      Parameters:
      listener - The listener to add.
      Returns:
      true if the listener was added, false otherwise.
      Throws:
      NullPointerException - If the listener is null.
    • removeListener

      public boolean removeListener(IMLSwitchStateListener listener)
      Removes a switch listener for the arrow.
      Parameters:
      listener - The listener to remove.
      Returns:
      true if listener is successfully removed, false otherwise.
    • addListener

      public boolean addListener(IMLArrowActionListener listener)
      Adds an action listener for the arrow. Calling this method multiple times with the same listener will have no effect (but to return false).
      Parameters:
      listener - The listener to add.
      Returns:
      true if the listener was added, false otherwise.
      Throws:
      NullPointerException - If the listener is null.
    • removeListener

      public boolean removeListener(IMLArrowActionListener listener)
      Removes an action listener for the arrow.
      Parameters:
      listener - The listener to remove.
      Returns:
      true if listener is successfully removed, false otherwise.
    • onArrowInvoked

      public void onArrowInvoked(MLItem item)
      Called when the arrow action is invoked. By default, this method will invoke all potential arrow action listeners. A subclass might override this method instead of adding a listener. This subclass should then call the super.onArrowInvoked(item) method in case listeners are added by others.
      Specified by:
      onArrowInvoked in interface IMLArrowActionListener
      Parameters:
      item - "this" item.