Package uk.ac.starlink.topcat.interop

## Interface TopcatCommunicator

- All Known Implementing Classes:
    `SampCommunicator`

      public interface TopcatCommunicator

  Abstract interface for inter-application messaging requirements of TOPCAT. This can be implemented by SAMP or PLASTIC (or others).
  Since:
    4 Sep 2008
  Author:
    Mark Taylor

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addConnectionListener​(javax.swing.event.ChangeListener listener)` | Adds a listener which will be notified any time that connection status may have changed.
    `ImageActivity` | `createImageActivity()` | Returns an object which can be used to display images.
    `Transmitter` | `createImageTransmitter​(DensityWindow densityWindow)` | Returns an object that can send the density map currently displayed in the density plot window to other applications as a FITS image.
    `javax.swing.JComponent` | `createInfoPanel()` | Optionally returns a panel which can be displayed in the control window to show communications status.
    `Transmitter` | `createResourceListTransmitter​(uk.ac.starlink.vo.RegistryPanel regPanel, java.lang.String resourceType)` | Returns an object that can send the currently displayed resources from a registry panel.
    `RowActivity` | `createRowActivity()` | Returns an object which can be used to send messages highlighting single table rows.
    `SkyPointActivity` | `createSkyPointActivity()` | Returns an object which can be used to send messages drawing attention to particular sky positions.
    `SpectrumActivity` | `createSpectrumActivity()` | Returns an object which can be used to display spectra.
    `SubsetActivity` | `createSubsetActivity()` | Returns an object which can be used to send messages selecting table row subsets.
    `Transmitter` | `createSubsetTransmitter​(TopcatModel tcModel, SubsetWindow subsetWindow)` | Returns an object that can send the RowSubset currently selected in a given subset window to other applications as a row selection on a commonly-known table.
    `javax.swing.Action` | `createWindowAction​(java.awt.Component parent)` | Constructs an action which will display a control window for this communicator.
    `javax.swing.Action[]` | `getInteropActions()` | Returns a list of actions suitable for insertion in a general purpose menu associated with interoperability functionality (register/unregister etc).
    `java.lang.String` | `getProtocolName()` | Returns the name of the protocol over which this object is implemented.
    `Transmitter` | `getTableTransmitter()` | Returns an object that can send send the currently selected table from TOPCAT to other applications.
    `boolean` | `isConnected()` | Indicates (without attempting a connection) whether a hub connection is currently in force.
    `void` | `maybeStartHub()` | According to the policy of this communicator, this method may start a hub if none is already running.
    `boolean` | `setActive()` | Must be called before any of the actions provided by this object are used.
    `void` | `startHub​(boolean external)` | Attempts to start a messaging hub suitable for use with this object.

- - ### Method Detail

    - #### getProtocolName

          java.lang.String getProtocolName()

      Returns the name of the protocol over which this object is implemented.
      Returns:
        protocol name

    - #### setActive

          boolean setActive()

      Must be called before any of the actions provided by this object are used. May initiate communication with the messaging system etc.
      Returns:
        true iff there is a current connection

    - #### getInteropActions

          javax.swing.Action[] getInteropActions()

      Returns a list of actions suitable for insertion in a general purpose menu associated with interoperability functionality (register/unregister etc).
      Returns:
        action list

    - #### getTableTransmitter

          Transmitter getTableTransmitter()

      Returns an object that can send send the currently selected table from TOPCAT to other applications.
      Returns:
        table transmitter

    - #### createImageTransmitter

          Transmitter createImageTransmitter​(DensityWindow densityWindow)

      Returns an object that can send the density map currently displayed in the density plot window to other applications as a FITS image.
      Parameters:
        `densityWindow` - density plot window
      Returns:
        new image transmitter

    - #### createSubsetTransmitter

          Transmitter createSubsetTransmitter​(TopcatModel tcModel,
                                              SubsetWindow subsetWindow)

      Returns an object that can send the RowSubset currently selected in a given subset window to other applications as a row selection on a commonly-known table.
      Parameters:
        `tcModel` - table
        `subsetWindow` - subset window
      Returns:
        new subset transmitter

    - #### createResourceListTransmitter

          Transmitter createResourceListTransmitter​(uk.ac.starlink.vo.RegistryPanel regPanel,
                                                    java.lang.String resourceType)

      Returns an object that can send the currently displayed resources from a registry panel.
      Parameters:
        `regPanel` - registry panel component
        `resourceType` - resource subtype - must match the appropriate voresource.loadlist.* MType subtype
      Returns:
        new resource list transmitter

    - #### createSkyPointActivity

          SkyPointActivity createSkyPointActivity()

      Returns an object which can be used to send messages drawing attention to particular sky positions.
      Returns:
        new activity object

    - #### createRowActivity

          RowActivity createRowActivity()

      Returns an object which can be used to send messages highlighting single table rows.
      Returns:
        new activity object

    - #### createSubsetActivity

          SubsetActivity createSubsetActivity()

      Returns an object which can be used to send messages selecting table row subsets.
      Returns:
        new activity object

    - #### createImageActivity

          ImageActivity createImageActivity()

      Returns an object which can be used to display images. Note this may include options apart from interop-type ones (display in local viewers).
      Returns:
        new activity object

    - #### createSpectrumActivity

          SpectrumActivity createSpectrumActivity()

      Returns an object which can be used to display spectra.
      Returns:
        new activity object

    - #### startHub

          void startHub​(boolean external)
                 throws java.io.IOException

      Attempts to start a messaging hub suitable for use with this object.
      Parameters:
        `external` - true to run hub in external JVM, false to run it in the current one
      Throws:
        `java.io.IOException`

    - #### maybeStartHub

          void maybeStartHub()
                      throws java.io.IOException

      According to the policy of this communicator, this method may start a hub if none is already running.
      Throws:
        `java.io.IOException`

    - #### createInfoPanel

          javax.swing.JComponent createInfoPanel()

      Optionally returns a panel which can be displayed in the control window to show communications status.
      Returns:
        status component, or null if unimplemented

    - #### createWindowAction

          javax.swing.Action createWindowAction​(java.awt.Component parent)

      Constructs an action which will display a control window for this communicator.
      Parameters:
        `parent` - parent component
      Returns:
        communicator control window, or null if none is available

    - #### isConnected

          boolean isConnected()

      Indicates (without attempting a connection) whether a hub connection is currently in force.
      Returns:
        whether hub is connected

    - #### addConnectionListener

          void addConnectionListener​(javax.swing.event.ChangeListener listener)

      Adds a listener which will be notified any time that connection status may have changed.
      Parameters:
        `listener` - listener to add

Copyright © 2003-2018 CCLRC: Council for the Central Laboratory of the Research Councils. All Rights Reserved.