uk.ac.starlink.table.gui

## Interface TableLoadDialog

- All Known Implementing Classes:
    AbstractTableLoadDialog, FileChooserTableLoadDialog, FilestoreTableLoadDialog, HapiTableLoadDialog, LocationTableLoadDialog, SQLTableLoadDialog

      public interface TableLoadDialog

  Interface for an object which can handle the user interaction for selecting a table or tables to load.
  Since:
    13 Sept 2010

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `configure(StarTableFactory tfact, javax.swing.Action submitAct)` Provides some configuration which must be performed before use.
    `TableLoader` | `createTableLoader()` Returns a new object which specifies how table loading is to be performed.
    `java.lang.String` | `getDescription()` Returns a short description of this dialogue.
    `javax.swing.Icon` | `getIcon()` Returns an icon associated with this dialogue.
    `javax.swing.JMenu[]` | `getMenus()` Returns an array of menus which may be presented in the window alongside the query component.
    `java.lang.String` | `getName()` Returns the name of this dialogue.
    `java.awt.Component` | `getQueryComponent()` Returns the GUI component which allows the user to select how tables are to be loaded.
    `javax.swing.Action` | `getSubmitAction()` Returns the action set by `configure(uk.ac.starlink.table.StarTableFactory, javax.swing.Action)`.
    `javax.swing.Action[]` | `getToolbarActions()` Returns an array of actions suitable for presentation as toolbar buttons alongside the query component.
    `boolean` | `isAvailable()` Indicates whether this dialogue may be used.

- - ### Method Detail

    - #### getName

          java.lang.String getName()

      Returns the name of this dialogue. This may be used as the text of a button (`Action.NAME`).
      Returns:
        dialogue name

    - #### getDescription

          java.lang.String getDescription()

      Returns a short description of this dialogue. This may be used as the tooltip text of a button (`Action.SHORT_DESCRIPTION`).
      Returns:
        dialogue description

    - #### getIcon

          javax.swing.Icon getIcon()

      Returns an icon associated with this dialogue. A size of 24x24 pixels is preferred. Null may be returned if no icon is available.
      Returns:
        dialogue icon

    - #### getQueryComponent

          java.awt.Component getQueryComponent()

      Returns the GUI component which allows the user to select how tables are to be loaded.
      Returns:
        component for user interaction

    - #### getMenus

          javax.swing.JMenu[] getMenus()

      Returns an array of menus which may be presented in the window alongside the query component.
      Returns:
        menu array; may be empty

    - #### getToolbarActions

          javax.swing.Action[] getToolbarActions()

      Returns an array of actions suitable for presentation as toolbar buttons alongside the query component.
      Returns:
        toolbar action array; may be empty

    - #### isAvailable

          boolean isAvailable()

      Indicates whether this dialogue may be used. Normally it will return true, but in the case that classes or other resources required for its use are missing, it should return false. In this case most of the other methods will not be called.
      Returns:
        true iff this dialogue may be able to do something useful

    - #### configure

          void configure(StarTableFactory tfact,
                         javax.swing.Action submitAct)

      Provides some configuration which must be performed before use. This method should be called before `getQueryComponent()` is called.

      The `tfact` argument provides a table factory which resembles the one to be used for generating tables. Although this factory should not in general be used or retained, since the one presented later to the TableLoader should be used instead, it can be interrogated for known table formats etc.

      The `submitAct` argument sets the action which when invoked will cause `createTableLoader()` to be called. Its setEnabled method can be called to reflect readiness, and it can be added as a listener to dialogue-specific events which indicate that a selection has been made.

      Parameters:
        `tfact` - representative table factory
        `submitAct` - action for load submission

    - #### getSubmitAction

          javax.swing.Action getSubmitAction()

      Returns the action set by `configure(uk.ac.starlink.table.StarTableFactory, javax.swing.Action)`.
      Returns:
        action which initiates a table load attempt

    - #### createTableLoader

          TableLoader createTableLoader()

      Returns a new object which specifies how table loading is to be performed. The actions performed by the returned object will presumably be determined by the state at call time of this dialogues GUI component.

      If the dialogue is not in a suitable state, either return null, or, if you want to provide more detailed information about what's wrong, throw a RuntimeException with an informative message.

      Returns:
        new table loader object