Class SampCommunicator

  • All Implemented Interfaces:
    TopcatCommunicator

    public class SampCommunicator
    extends java.lang.Object
    implements TopcatCommunicator
    TopcatCommunicator implementation based on SAMP.
    Since:
    4 Sep 2008
    Author:
    Mark Taylor
    • Method Summary

      All Methods Static Methods Instance Methods Concrete 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 densWin)
      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 subWin)
      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.
      org.astrogrid.samp.gui.GuiHubConnector getConnector()
      Returns the SAMP HubConnector used by this object.
      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.
      TopcatSampControl getSampControl()
      Returns the TopcatSampControl object used by this object.
      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.
      static java.util.Map<java.lang.String,​java.lang.String> sanitizeMap​(java.util.Map<?,​?> map)
      Makes sure that a map is SAMP-friendly.
      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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SampCommunicator

        public SampCommunicator​(ControlWindow controlWindow)
                         throws java.io.IOException
        Constructor.
        Parameters:
        controlWindow - TOPCAT control window
        Throws:
        java.io.IOException
    • Method Detail

      • getProtocolName

        public java.lang.String getProtocolName()
        Description copied from interface: TopcatCommunicator
        Returns the name of the protocol over which this object is implemented.
        Specified by:
        getProtocolName in interface TopcatCommunicator
        Returns:
        protocol name
      • setActive

        public boolean setActive()
        Description copied from interface: TopcatCommunicator
        Must be called before any of the actions provided by this object are used. May initiate communication with the messaging system etc.
        Specified by:
        setActive in interface TopcatCommunicator
        Returns:
        true iff there is a current connection
      • createImageTransmitter

        public Transmitter createImageTransmitter​(DensityWindow densWin)
        Description copied from interface: TopcatCommunicator
        Returns an object that can send the density map currently displayed in the density plot window to other applications as a FITS image.
        Specified by:
        createImageTransmitter in interface TopcatCommunicator
        Parameters:
        densWin - density plot window
        Returns:
        new image transmitter
      • createSubsetTransmitter

        public Transmitter createSubsetTransmitter​(TopcatModel tcModel,
                                                   SubsetWindow subWin)
        Description copied from interface: TopcatCommunicator
        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.
        Specified by:
        createSubsetTransmitter in interface TopcatCommunicator
        Parameters:
        tcModel - table
        subWin - subset window
        Returns:
        new subset transmitter
      • createResourceListTransmitter

        public Transmitter createResourceListTransmitter​(uk.ac.starlink.vo.RegistryPanel regPanel,
                                                         java.lang.String resourceType)
        Description copied from interface: TopcatCommunicator
        Returns an object that can send the currently displayed resources from a registry panel.
        Specified by:
        createResourceListTransmitter in interface TopcatCommunicator
        Parameters:
        regPanel - registry panel component
        resourceType - resource subtype - must match the appropriate voresource.loadlist.* MType subtype
        Returns:
        new resource list transmitter
      • createImageActivity

        public ImageActivity createImageActivity()
        Description copied from interface: TopcatCommunicator
        Returns an object which can be used to display images. Note this may include options apart from interop-type ones (display in local viewers).
        Specified by:
        createImageActivity in interface TopcatCommunicator
        Returns:
        new activity object
      • getInteropActions

        public javax.swing.Action[] getInteropActions()
        Description copied from interface: TopcatCommunicator
        Returns a list of actions suitable for insertion in a general purpose menu associated with interoperability functionality (register/unregister etc).
        Specified by:
        getInteropActions in interface TopcatCommunicator
        Returns:
        action list
      • startHub

        public void startHub​(boolean external)
                      throws java.io.IOException
        Description copied from interface: TopcatCommunicator
        Attempts to start a messaging hub suitable for use with this object.
        Specified by:
        startHub in interface TopcatCommunicator
        Parameters:
        external - true to run hub in external JVM, false to run it in the current one
        Throws:
        java.io.IOException
      • maybeStartHub

        public void maybeStartHub()
                           throws java.io.IOException
        Description copied from interface: TopcatCommunicator
        According to the policy of this communicator, this method may start a hub if none is already running.
        Specified by:
        maybeStartHub in interface TopcatCommunicator
        Throws:
        java.io.IOException
      • createWindowAction

        public javax.swing.Action createWindowAction​(java.awt.Component parent)
        Description copied from interface: TopcatCommunicator
        Constructs an action which will display a control window for this communicator.
        Specified by:
        createWindowAction in interface TopcatCommunicator
        Parameters:
        parent - parent component
        Returns:
        communicator control window, or null if none is available
      • isConnected

        public boolean isConnected()
        Description copied from interface: TopcatCommunicator
        Indicates (without attempting a connection) whether a hub connection is currently in force.
        Specified by:
        isConnected in interface TopcatCommunicator
        Returns:
        whether hub is connected
      • addConnectionListener

        public void addConnectionListener​(javax.swing.event.ChangeListener listener)
        Description copied from interface: TopcatCommunicator
        Adds a listener which will be notified any time that connection status may have changed.
        Specified by:
        addConnectionListener in interface TopcatCommunicator
        Parameters:
        listener - listener to add
      • getConnector

        public org.astrogrid.samp.gui.GuiHubConnector getConnector()
        Returns the SAMP HubConnector used by this object.
        Returns:
        connector
      • getSampControl

        public TopcatSampControl getSampControl()
        Returns the TopcatSampControl object used by this object.
        Returns:
        samp control
      • createInfoPanel

        public javax.swing.JComponent createInfoPanel()
        Description copied from interface: TopcatCommunicator
        Optionally returns a panel which can be displayed in the control window to show communications status.
        Specified by:
        createInfoPanel in interface TopcatCommunicator
        Returns:
        status component, or null if unimplemented
      • sanitizeMap

        public static java.util.Map<java.lang.String,​java.lang.String> sanitizeMap​(java.util.Map<?,​?> map)
        Makes sure that a map is SAMP-friendly. Any entries which are not are simply discarded.