Package uk.ac.starlink.topcat.interop
Class SampCommunicator
- java.lang.Object
-
- uk.ac.starlink.topcat.interop.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
-
-
Constructor Summary
Constructors Constructor Description SampCommunicator(ControlWindow controlWindow)
Constructor.
-
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
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.
-
-
-
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 interfaceTopcatCommunicator
- 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 interfaceTopcatCommunicator
- Returns:
- true iff there is a current connection
-
getTableTransmitter
public Transmitter getTableTransmitter()
Description copied from interface:TopcatCommunicator
Returns an object that can send send the currently selected table from TOPCAT to other applications.- Specified by:
getTableTransmitter
in interfaceTopcatCommunicator
- Returns:
- table transmitter
-
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 interfaceTopcatCommunicator
- 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 interfaceTopcatCommunicator
- Parameters:
tcModel
- tablesubWin
- 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 interfaceTopcatCommunicator
- Parameters:
regPanel
- registry panel componentresourceType
- resource subtype - must match the appropriate voresource.loadlist.* MType subtype- Returns:
- new resource list transmitter
-
createSkyPointActivity
public SkyPointActivity createSkyPointActivity()
Description copied from interface:TopcatCommunicator
Returns an object which can be used to send messages drawing attention to particular sky positions.- Specified by:
createSkyPointActivity
in interfaceTopcatCommunicator
- Returns:
- new activity object
-
createRowActivity
public RowActivity createRowActivity()
Description copied from interface:TopcatCommunicator
Returns an object which can be used to send messages highlighting single table rows.- Specified by:
createRowActivity
in interfaceTopcatCommunicator
- Returns:
- new activity object
-
createSubsetActivity
public SubsetActivity createSubsetActivity()
Description copied from interface:TopcatCommunicator
Returns an object which can be used to send messages selecting table row subsets.- Specified by:
createSubsetActivity
in interfaceTopcatCommunicator
- Returns:
- new activity object
-
createSpectrumActivity
public SpectrumActivity createSpectrumActivity()
Description copied from interface:TopcatCommunicator
Returns an object which can be used to display spectra.- Specified by:
createSpectrumActivity
in interfaceTopcatCommunicator
- Returns:
- new activity object
-
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 interfaceTopcatCommunicator
- 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 interfaceTopcatCommunicator
- 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 interfaceTopcatCommunicator
- 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 interfaceTopcatCommunicator
- 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 interfaceTopcatCommunicator
- 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 interfaceTopcatCommunicator
- 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 interfaceTopcatCommunicator
- 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 interfaceTopcatCommunicator
- Returns:
- status component, or null if unimplemented
-
sanitizeMap
public static java.util.Map sanitizeMap(java.util.Map map)
Makes sure that a map is SAMP-friendly. Any entries which are not are simply discarded.
-
-