CommandHistory
Date: 2019-10-22

org.jmol.util

## Class CommandHistory

- java.lang.Object
- - org.jmol.util.CommandHistory

-     public final class CommandHistory
      extends java.lang.Object

  Implements a queue for a bash-like command history.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private javajs.util.Lst<java.lang.String>` | `commandList` Array of commands.
    `private int` | `cursorPos` Current position of the cursor;
    `(package private) static int` | `DEFAULT_MAX_SIZE`
    `static java.lang.String` | `ERROR_FLAG`
    `(package private) boolean` | `isOn`
    `private javajs.util.Lst<java.lang.String>` | `lstStates`
    `private int` | `maxSize`
    `private int` | `nextCommand` Position of the next command.
    `static java.lang.String` | `NOHISTORYATALL_FLAG`
    `static java.lang.String` | `NOHISTORYLINE_FLAG`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CommandHistory()` Creates a new instance using the default size (100)

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCommand(java.lang.String strCommand)` Adds any number of lines to the command history
    `private void` | `addCommandLine(java.lang.String command)` Adds a single line to the bottom of the list, resets list position.
    `void` | `clear()` clears the history.
    `java.lang.String` | `find(java.lang.String cmd, int dir)`
    `private java.lang.String` | `getCommand()` Calculates the command to return.
    `java.lang.String` | `getCommandDown()` Retrieves the following command from the top of the list, updates list position.
    `java.lang.String` | `getCommandUp()` Retrieves the following command from the bottom of the list, updates list position.
    `java.lang.String` | `getSetHistory(int n)` Options include: all Integer.MAX_VALUE n prev n >= 1 next -1 set max to -2 - n n <= -3 just clear -2 clear and turn off; return "" 0 clear and turn on; return "" Integer.MIN_VALUE;
    `java.lang.String` | `popState()`
    `void` | `pushState(java.lang.String stateInfo)`
    `java.lang.String` | `removeCommand()`
    `java.lang.String` | `removeCommand(int n)`
    `void` | `reset(int maxSize)` Resets instance.
    `void` | `setMaxSize(int maxSize)` Resets maximum size of command queue.

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ERROR_FLAG

          public static final java.lang.String ERROR_FLAG

      See Also:
        Constant Field Values

    - #### NOHISTORYLINE_FLAG

          public static final java.lang.String NOHISTORYLINE_FLAG

      See Also:
        Constant Field Values

    - #### NOHISTORYATALL_FLAG

          public static final java.lang.String NOHISTORYATALL_FLAG

      See Also:
        Constant Field Values

    - #### DEFAULT_MAX_SIZE

          static final int DEFAULT_MAX_SIZE

      See Also:
        Constant Field Values

    - #### commandList

          private javajs.util.Lst<java.lang.String> commandList

      Array of commands.

    - #### maxSize

          private int maxSize

    - #### nextCommand

          private int nextCommand

      Position of the next command.

    - #### cursorPos

          private int cursorPos

      Current position of the cursor;

    - #### isOn

          boolean isOn

    - #### lstStates

          private javajs.util.Lst<java.lang.String> lstStates

  - ### Constructor Detail

    - #### CommandHistory

          public CommandHistory()

      Creates a new instance using the default size (100)

  - ### Method Detail

    - #### clear

          public void clear()

      clears the history.

    - #### reset

          public void reset(int maxSize)

      Resets instance.
      Parameters:
        `maxSize` - maximum size for the command queue.

    - #### setMaxSize

          public void setMaxSize(int maxSize)

      Resets maximum size of command queue. Cuts off extra commands.
      Parameters:
        `maxSize` - maximum size for the command queue.

    - #### getCommandUp

          public java.lang.String getCommandUp()

      Retrieves the following command from the bottom of the list, updates list position.
      Returns:
        the String value of a command.

    - #### getCommandDown

          public java.lang.String getCommandDown()

      Retrieves the following command from the top of the list, updates list position.
      Returns:
        the String value of a command.

    - #### getCommand

          private java.lang.String getCommand()

      Calculates the command to return.
      Returns:
        the String value of a command.

    - #### addCommand

          public void addCommand(java.lang.String strCommand)

      Adds any number of lines to the command history
      Parameters:
        `strCommand` -

    - #### getSetHistory

          public java.lang.String getSetHistory(int n)

      Options include: all Integer.MAX_VALUE n prev n >= 1 next -1 set max to -2 - n n <= -3 just clear -2 clear and turn off; return "" 0 clear and turn on; return "" Integer.MIN_VALUE;
      Parameters:
        `n` -
      Returns:
        one or more lines of command history

    - #### find

          public java.lang.String find(java.lang.String cmd,
                                       int dir)

    - #### removeCommand

          public java.lang.String removeCommand()

    - #### removeCommand

          public java.lang.String removeCommand(int n)

    - #### addCommandLine

          private void addCommandLine(java.lang.String command)

      Adds a single line to the bottom of the list, resets list position.
      Parameters:
        `command` - the String value of a command.

    - #### pushState

          public void pushState(java.lang.String stateInfo)

    - #### popState

          public java.lang.String popState()