Package docking.widgets.fieldpanel.support

# Class FieldSelection

java.lang.Object
docking.widgets.fieldpanel.support.FieldSelection

All Implemented Interfaces:
  `Iterable<FieldRange>`

public class FieldSelection extends Object implements Iterable<FieldRange>
This class represents a selection in a field viewer.

A `FieldSelection` may be within a single layout or may cross multiple layouts. To determine if a selection crosses multiple layouts, you can get the `range` of the selection. You can then use the range's start and end locations to determine if the selection spans multiple layouts. If the start and end indexes of the range are the same, then the selection is within a single layout; otherwise, the selection spans multiple layouts.

See Also:
  - `FieldRange`
  - `FieldLocation`
  - `Layout`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FieldSelection()`
  Construct a new empty FieldSelection.
  `FieldSelection(FieldSelection selection)`
  Construct a new FieldSelection with the same selection as the given FieldSelection.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addRange(int startIndex, int endIndex)`
  Add the all the indexes from startIndex to endIndex to the selection.
  `void`
  `addRange(int startIndex, int startFieldNum, int endIndex, int endFieldNum)`
  `void`
  `addRange(FieldLocation start, FieldLocation end)`
  Adds a field range to this selection.
  `void`
  `addRange(FieldRange range)`
  `void`
  `addRange(BigInteger startIndex, int startFieldNum, BigInteger endIndex, int endFieldNum)`
  `void`
  `addRange(BigInteger startIndex, BigInteger endIndex)`
  `void`
  `clear()`
  Removes all indexes from the list.
  `boolean`
  `contains(FieldLocation loc)`
  Returns true if the given Field at the given index is in the selection.
  `boolean`
  `containsEntirely(FieldRange range)`
  `boolean`
  `containsEntirely(BigInteger index)`
  Returns true if the all the fields in the layout with the given index are included in this selection.
  `final void`
  `delete(FieldSelection selection)`
  Delete all fields in the ranges in the given field selection from this one.
  `boolean`
  `equals(Object obj)`
  `boolean`
  `excludesEntirely(FieldRange range)`
  `boolean`
  `excludesEntirely(BigInteger index)`
  `final FieldSelection`
  `findIntersection(FieldSelection selection)`
  Computes the intersection of this field selection and the given field selection.
  `FieldRange`
  `getFieldRange(int rangeNum)`
  Returns the i'th Field Range in the selection.
  `int`
  `getNumRanges()`
  Returns the current number of ranges in the list.
  `FieldRange`
  `getRangeContaining(FieldLocation loc)`
  Returns the range if the given Field at the given index is in the selection.
  `int`
  `hashCode()`
  `final void`
  `insert(FieldSelection selection)`
  Insert all fields in the ranges in the given field selection from this one.
  `FieldSelection`
  `intersect(int index)`
  `FieldSelection`
  `intersect(FieldRange range)`
  `final void`
  `intersect(FieldSelection selection)`
  Compute the intersection of this field selection and another one.
  `FieldSelection`
  `intersect(BigInteger index)`
  `boolean`
  `isEmpty()`
  `Iterator<FieldRange>`
  `iterator()`
  `void`
  `load(SaveState saveState)`
  `void`
  `removeRange(int startIndex, int endIndex)`
  Removes the all the fields in the index range from the selection.
  `void`
  `removeRange(FieldLocation start, FieldLocation end)`
  Removes the given field range from the current selection.
  `void`
  `removeRange(BigInteger startIndex, BigInteger endIndex)`
  `void`
  `save(SaveState saveState)`
  `String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface java.lang.Iterable

  `forEach, spliterator`

- ## Constructor Details

  - ### FieldSelection

    public FieldSelection()
    Construct a new empty FieldSelection.

  - ### FieldSelection

    public FieldSelection(FieldSelection selection)
    Construct a new FieldSelection with the same selection as the given FieldSelection.
    Parameters:
      `selection` - the FieldSelection to copy.

- ## Method Details

  - ### clear

    public void clear()
    Removes all indexes from the list.

  - ### contains

    public boolean contains(FieldLocation loc)
    Returns true if the given Field at the given index is in the selection.
    Parameters:
      `loc` - the field location.
    Returns:
      true if the field selection contains the specified location.

  - ### getRangeContaining

    public FieldRange getRangeContaining(FieldLocation loc)
    Returns the range if the given Field at the given index is in the selection. Otherwise returns null.
    Parameters:
      `loc` - location to find the range for.
    Returns:
      the range

  - ### containsEntirely

    public boolean containsEntirely(BigInteger index)
    Returns true if the all the fields in the layout with the given index are included in this selection.
    Parameters:
      `index` - index of the layout to test.
    Returns:
      true if the all the fields in the layout with the given index are included in this selection.

  - ### containsEntirely

    public boolean containsEntirely(FieldRange range)

  - ### excludesEntirely

    public boolean excludesEntirely(FieldRange range)

  - ### excludesEntirely

    public boolean excludesEntirely(BigInteger index)

  - ### addRange

    public void addRange(FieldLocation start, FieldLocation end)
    Adds a field range to this selection.
    Parameters:
      `start` - the starting field location.
      `end` - the ending field location.

  - ### addRange

    public void addRange(int startIndex, int endIndex)
    Add the all the indexes from startIndex to endIndex to the selection. The added range includes the startIndex, but not the endIndex.
    Parameters:
      `startIndex` - the start index of the layouts to include
      `endIndex` - the end index(not inclusive) of the layouts to include

  - ### addRange

    public void addRange(BigInteger startIndex, BigInteger endIndex)

  - ### addRange

    public void addRange(int startIndex, int startFieldNum, int endIndex, int endFieldNum)

  - ### addRange

    public void addRange(BigInteger startIndex, int startFieldNum, BigInteger endIndex, int endFieldNum)

  - ### removeRange

    public void removeRange(FieldLocation start, FieldLocation end)
    Removes the given field range from the current selection.
    Parameters:
      `start` - the starting field location.
      `end` - the ending field location.

  - ### removeRange

    public void removeRange(int startIndex, int endIndex)
    Removes the all the fields in the index range from the selection.
    Parameters:
      `startIndex` - the first index in the range to remove.
      `endIndex` - the last index in the range to remove.

  - ### removeRange

    public void removeRange(BigInteger startIndex, BigInteger endIndex)

  - ### getNumRanges

    public int getNumRanges()
    Returns the current number of ranges in the list.
    Returns:
      the current number of ranges in the list.

  - ### getFieldRange

    public FieldRange getFieldRange(int rangeNum)
    Returns the i'th Field Range in the selection.
    Parameters:
      `rangeNum` - the index of the range to retrieve.
    Returns:
      the range

  - ### intersect

    public final void intersect(FieldSelection selection)
    Compute the intersection of this field selection and another one. The intersection of two field selections is all fields existing in both selections.

    Note: This field selection becomes the intersection.

    Parameters:
      `selection` - field selection to intersect.

  - ### findIntersection

    public final FieldSelection findIntersection(FieldSelection selection)
    Computes the intersection of this field selection and the given field selection.
    Parameters:
      `selection` - the selection to intersect with.
    Returns:
      the selection

  - ### delete

    public final void delete(FieldSelection selection)
    Delete all fields in the ranges in the given field selection from this one.
    Parameters:
      `selection` - the field selection fields to remove from this field selection.

  - ### insert

    public final void insert(FieldSelection selection)
    Insert all fields in the ranges in the given field selection from this one.
    Parameters:
      `selection` - the field selection fields to add to this field selection.

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`

  - ### save

    public void save(SaveState saveState)

  - ### load

    public void load(SaveState saveState)

  - ### isEmpty

    public boolean isEmpty()

  - ### intersect

    public FieldSelection intersect(int index)

  - ### intersect

    public FieldSelection intersect(BigInteger index)

  - ### intersect

    public FieldSelection intersect(FieldRange range)

  - ### addRange

    public void addRange(FieldRange range)

  - ### iterator

    public Iterator<FieldRange> iterator()
    Specified by:
      `iterator` in interface `Iterable<FieldRange>`