Class EditTraversalStrategy

All Implemented Interfaces:

public class EditTraversalStrategy extends Object implements ITraversalStrategy
Wrapper for basic ITraversalStrategy implementations that add target checks. Requests for traversal scope, cycle and step count will be delegated to the wrapped ITraversalStrategy. isValidTarget(ILayerCell, ILayerCell) will check whether the ILayerCell from which the movement should be performed is in edit mode or not. If it is in edit mode, validations will be performed to check whether the target cell is also editable.
  • Field Details

  • Constructor Details

    • EditTraversalStrategy

      public EditTraversalStrategy(ITraversalStrategy baseStrategy, NatTable natTable)
      baseStrategy - The ITraversalStrategy that should be wrapped by this EditTraversalStrategy.
      natTable - The NatTable instance this strategy is connected to. Needed to be able to perform checks related to NatTable states and configurations.
  • Method Details

    • getTraversalScope

      public ITraversalStrategy.TraversalScope getTraversalScope()
      Specified by:
      getTraversalScope in interface ITraversalStrategy
      The ITraversalStrategy.TraversalScope this traversal strategy specifies.
    • isCycle

      public boolean isCycle()
      Specified by:
      isCycle in interface ITraversalStrategy
      true if on traversal the selection should cycle, false if the selection should stay at the last/first position without cycling.
    • getStepCount

      public int getStepCount()
      Specified by:
      getStepCount in interface ITraversalStrategy
      The number of steps to jump on traversal.
    • isValidTarget

      public boolean isValidTarget(ILayerCell from, ILayerCell to)
      Description copied from interface: ITraversalStrategy
      Checks whether the ILayerCell that would be selected after the selection movement is valid or not. In case the target is invalid, the responsible command handler is able to react accordingly, e.g. move the next valid cell.

      This is for example useful for editing traversal. If the selection movement is triggered on committing a value in an editor, the next editable cell should be selected and the editor opened immediately.

      Specified by:
      isValidTarget in interface ITraversalStrategy
      from - The ILayerCell from which the selection movement is started.
      to - The ILayerCell to which the selection movement should be performed.
      true if the target is a valid target for selection movement, false if not