Class LinkedPositionGroup


  • public class LinkedPositionGroup
    extends Object
    A group of positions in multiple documents that are simultaneously modified - if one gets edited, all other positions in a group are edited the same way.

    All linked positions in a group should have the same content. Before 3.5.400, this was enforced. Now, if one position of a mixed group gets edited, the content of all other positions is replaced by the edited position's content.

    Normally, new positions are given a sequence number which can be used by clients, e.g. in the UI as tab stop weight. If NO_STOP is used as weight, a position will not be visited. If NO_STOP is used for all positions, the first position in a document is taken as the only stop as to comply with the behavior of the old linked position infrastructure.

    Clients may instantiate this class.

    Since:
    3.0
    Restriction:
    This class is not intended to be subclassed by clients.
    • Constructor Detail

      • LinkedPositionGroup

        public LinkedPositionGroup()
    • Method Detail

      • addPosition

        public void addPosition​(LinkedPosition position)
                         throws BadLocationException
        Adds a position to this group. The document region defined by the position should contain the same content as all of the other positions already in this group. All positions added must be valid and disjoint; otherwise a BadLocationException is thrown.

        Positions added using this method are owned by this group afterwards and may not be updated or modified thereafter.

        Once a group has been added to a LinkedModeModel, it becomes sealed and no positions may be added any more.

        Parameters:
        position - the position to add
        Throws:
        BadLocationException - if the position is invalid or conflicts with other positions in the group
        IllegalStateException - if the group has already been added to a model
      • isEmpty

        public boolean isEmpty()
        Returns whether this group contains any positions.
        Returns:
        true if this group is empty, false otherwise
        Since:
        3.1
      • isEmtpy

        @Deprecated
        public boolean isEmtpy()
        Deprecated.
        As of 3.1, replaced by isEmpty()
        Returns whether this group contains any positions.
        Returns:
        true if this group is empty, false otherwise
      • getPositions

        public LinkedPosition[] getPositions()
        Returns the positions contained in the receiver as an array. The positions are the actual positions and must not be modified; the array is a copy of internal structures.
        Returns:
        the positions of this group in no particular order