Class ProbeControl

All Implemented Interfaces:
ActionListener, ItemListener, PropertyChangeListener, EventListener, HyperlinkListener, Sharable, DataChangeListener, DisplayControl, Prototypable, DisplayableData.DragAdapter, ControlListener, DisplayListener

public class ProbeControl extends DisplayControlImpl implements DisplayableData.DragAdapter
A widget to display data values at one point in the 2d or 3d data field. Can show several parameters' values at the point. Can choose method of field sampling - nearest grid point value or weighted average. Can change levels.
Author:
IDV developers
  • Field Details

  • Constructor Details

    • ProbeControl

      public ProbeControl()
      Cstr; sets flags; see init() for creation actions. needed for bean persistence
  • Method Details

    • init

      public boolean init(List choices) throws VisADException, RemoteException
      Set up new probe.
      Overrides:
      init in class DisplayControlImpl
      Parameters:
      choices - a list of DataChoices
      Returns:
      boolean true if succeeded
      Throws:
      RemoteException - Java RMI error
      VisADException - VisAD Error
    • initDone

      public void initDone()
      Called after init.
      Overrides:
      initDone in class DisplayControlImpl
    • addPropertiesComponents

      protected void addPropertiesComponents(JTabbedPane jtp)
      Add properties components
      Overrides:
      addPropertiesComponents in class DisplayControlImpl
      Parameters:
      jtp - the JTabbedPane
    • doApplyProperties

      public boolean doApplyProperties()
      Apply the properties
      Overrides:
      doApplyProperties in class DisplayControlImpl
      Returns:
      the properties
    • getColorWidgetLabel

      public String getColorWidgetLabel()
      Return the label that is to be used for the color widget This allows derived classes to override this and provide their own name,
      Overrides:
      getColorWidgetLabel in class DisplayControlImpl
      Returns:
      Label used for the color widget
    • getViewMenuItems

      protected void getViewMenuItems(List items, boolean forMenuBar)
      Make the view menu items
      Overrides:
      getViewMenuItems in class DisplayControlImpl
      Parameters:
      items - List of menu items
      forMenuBar - forMenuBar
    • shouldAddAnimationListener

      protected boolean shouldAddAnimationListener()
      A hook to allow derived classes to tell us to add this as an animation listener
      Overrides:
      shouldAddAnimationListener in class DisplayControlImpl
      Returns:
      Add as animation listener
    • setEarthLocation

      public void setEarthLocation(EarthLocation el)
      Set the earth location
      Parameters:
      el - the earth location
    • relocateDisplay

      public void relocateDisplay(ucar.unidata.geoloc.LatLonRect originalBounds, ucar.unidata.geoloc.LatLonRect newBounds, boolean useDataProjection)
      When we relocate a bundle this gets called to relocate the display This method gets overwritten by the probe and cross section displays so they can move their selection points to a new location
      Overrides:
      relocateDisplay in class DisplayControlImpl
      Parameters:
      originalBounds - The original bounds of the datasource
      newBounds - The relocated bounds of the datasource
    • addDisplaySettings

      protected void addDisplaySettings(DisplaySettingsDialog dsd)
      Add display settings for this control
      Overrides:
      addDisplaySettings in class DisplayControlImpl
      Parameters:
      dsd - dialog to add to
    • resetProbePosition

      public void resetProbePosition()
      Reset the position of the probe to the center.
    • resetProbePosition

      public void resetProbePosition(double lat, double lon, double alt)
      Reset the position of the probe to the center.
      Parameters:
      lat - lat
      lon - lon
      alt - alt
    • getEditMenuItems

      protected void getEditMenuItems(List items, boolean forMenuBar)
      Get edit menu items
      Overrides:
      getEditMenuItems in class DisplayControlImpl
      Parameters:
      items - list of menu items
      forMenuBar - true if for the menu bar
    • receiveShareData

      public void receiveShareData(Sharable from, Object dataId, Object[] data)
      Method called by other classes that share the state
      Specified by:
      receiveShareData in interface Sharable
      Overrides:
      receiveShareData in class DisplayControlImpl
      Parameters:
      from - other class.
      dataId - type of sharing
      data - Array of data being shared. In this case, the first (and only?) object in the array is the level
    • getLongParamName

      protected String getLongParamName()
      Override base class method to use the list of data choices to get the long parameter name
      Overrides:
      getLongParamName in class DisplayControlImpl
      Returns:
      The String to be used for the long parameter name
    • projectionChanged

      public void projectionChanged()
      Respond to a change in the display's projection. In this case we resample at the new location. (move probe)
      Specified by:
      projectionChanged in interface DisplayControl
      Overrides:
      projectionChanged in class DisplayControlImpl
    • getMacroNames

      protected void getMacroNames(List names, List labels)
      Add any macro name/label pairs
      Overrides:
      getMacroNames in class DisplayControlImpl
      Parameters:
      names - List of macro names
      labels - List of macro labels
    • addLabelMacros

      protected void addLabelMacros(String template, List patterns, List values)
      Add any macro name/value pairs.
      Overrides:
      addLabelMacros in class DisplayControlImpl
      Parameters:
      template - template
      patterns - The macro names
      values - The macro values
    • getDataTimeSet

      protected Set getDataTimeSet() throws RemoteException, VisADException
      Collect the time animation set from the displayables. If none found then return null.
      Overrides:
      getDataTimeSet in class DisplayControlImpl
      Returns:
      Animation set
      Throws:
      RemoteException - On badness
      VisADException - On badness
    • resetData

      protected void resetData() throws VisADException, RemoteException
      Override base class method to just trigger a redisplay of the data.
      Overrides:
      resetData in class DisplayControlImpl
      Throws:
      RemoteException - Java RMI error
      VisADException - VisAD Error
    • resetData

      protected void resetData(boolean clearCache) throws VisADException, RemoteException
      Reset the data.
      Parameters:
      clearCache - If true then clear the cached data in the rows
      Throws:
      RemoteException - Java RMI error
      VisADException - VisAD Error
    • addNewData

      protected void addNewData(List newChoices) throws VisADException, RemoteException
      Override base class method which is called when the user has selected new data choices.
      Overrides:
      addNewData in class DisplayControlImpl
      Parameters:
      newChoices - new list of choices
      Throws:
      RemoteException - Java RMI error
      VisADException - VisAD Error
    • processNewData

      protected void processNewData(List newChoices) throws VisADException, RemoteException
      Override base class method which is called when the user has selected new data choices.
      Parameters:
      newChoices - new list of choices
      Throws:
      RemoteException - Java RMI error
      VisADException - VisAD Error
    • getExtraLegendComponent

      protected JComponent getExtraLegendComponent(int legendType)
      Assume that any display controls that have a color table widget will want the color table to show up in the legend.
      Overrides:
      getExtraLegendComponent in class DisplayControlImpl
      Parameters:
      legendType - type of legend
      Returns:
      The extra JComponent to use in legend
    • getLegendLabels

      public void getLegendLabels(List labels, int legendType)
      Append any label information to the list of labels.
      Overrides:
      getLegendLabels in class DisplayControlImpl
      Parameters:
      labels - in/out list of labels
      legendType - The type of legend, BOTTOM_LEGEND or SIDE_LEGEND
    • setPosition

      public void setPosition(RealTuple p)
      Set the probe position property; used by XML persistence.
      Parameters:
      p - probe position
    • getPosition

      public RealTuple getPosition() throws VisADException, RemoteException
      Set the probe position property; used by XML persistence.
      Returns:
      probe position - may be null.
      Throws:
      RemoteException - Java RMI error
      VisADException - VisAD Error
    • doRemove

      public void doRemove() throws RemoteException, VisADException
      Remove this display.
      Specified by:
      doRemove in interface DisplayControl
      Overrides:
      doRemove in class DisplayControlImpl
      Throws:
      RemoteException - Java RMI error
      VisADException - VisAD Error
    • timeChanged

      protected void timeChanged(Real time)
      Respond to a timeChange event
      Overrides:
      timeChanged in class DisplayControlImpl
      Parameters:
      time - new time
    • getImage

      public Image getImage(String what) throws Exception
      get the image for what
      Overrides:
      getImage in class DisplayControlImpl
      Parameters:
      what - the thing to get
      Returns:
      an image
      Throws:
      Exception - problem (can this be more specific?)
    • handleDragDirect

      public boolean handleDragDirect(VisADRay ray, boolean first, int mouseModifiers)
      Handle the drag
      Specified by:
      handleDragDirect in interface DisplayableData.DragAdapter
      Parameters:
      ray - the VisADRay
      first - whether this is the first time or not
      mouseModifiers - the mouse modifiers
      Returns:
      true
    • handleAddPoint

      public boolean handleAddPoint(float[] x)
      Handle adding a point
      Specified by:
      handleAddPoint in interface DisplayableData.DragAdapter
      Parameters:
      x - the point Coordinates
      Returns:
      true
    • constrainDragPoint

      public boolean constrainDragPoint(float[] position)
      Constrain the drag point
      Specified by:
      constrainDragPoint in interface DisplayableData.DragAdapter
      Parameters:
      position - the position
      Returns:
      true
    • propertyChange

      public void propertyChange(PropertyChangeEvent evt)
      Property change method.
      Specified by:
      propertyChange in interface PropertyChangeListener
      Overrides:
      propertyChange in class DisplayControlImpl
      Parameters:
      evt - event to act on
    • getLevelsAtRow

      public Real[] getLevelsAtRow(int row)
      Get the list of levels for a particular parameter (row)
      Parameters:
      row - row for parameter
      Returns:
      list of levels
    • haveLevelsAtRow

      public boolean haveLevelsAtRow(int row)
      see if there are levels assigned to this row (parameter); some data is 2d and has no levels.
      Parameters:
      row - row to check
      Returns:
      true if there are levels assigned to this row (parameter)
    • changePointParameter

      public void changePointParameter(Object[] param)
      Change the parameter to use
      Parameters:
      param - The parameter
    • doMakeContents

      public Container doMakeContents()
      Make the UI for this display control.
      Overrides:
      doMakeContents in class DisplayControlImpl
      Returns:
      UI contents.
    • popupDataDialog

      protected void popupDataDialog(String dialogMessage, Component from, boolean multiples, List categories)
      Popup the data dialog; override superclass to allow multiple selections.
      Overrides:
      popupDataDialog in class DisplayControlImpl
      Parameters:
      dialogMessage - the dialog message
      from - component to latch on to
      multiples - true to support multiple selections
      categories - data categories of params to show
    • showLineProperties

      public void showLineProperties(ProbeRowInfo rowInfo)
      Show the properties dialog for the chart line
      Parameters:
      rowInfo - The chrt entry to show properties for
    • showSoundDialog

      public void showSoundDialog(ProbeRowInfo info)
      Show the sound dialog for the row
      Parameters:
      info - the row
    • getDataChoiceAtRow

      public DataChoice getDataChoiceAtRow(int row)
      Get the DataChoice associated with the parameter at a particular row.
      Parameters:
      row - row index
      Returns:
      the associated DataChoice
    • getChangeParameterLabel

      protected String getChangeParameterLabel()
      Return the appropriate label text for the menu.
      Overrides:
      getChangeParameterLabel in class DisplayControlImpl
      Returns:
      the label text
    • updatePosition

      public void updatePosition() throws VisADException, RemoteException
      Make new values in data probe display (readout table) to match chages in location or sampling of data.
      Throws:
      RemoteException - Java RMI error
      VisADException - VisAD Error
    • applyPreferences

      public void applyPreferences()
      Apply the preferences. Used to pick up the date format changes.
      Specified by:
      applyPreferences in interface DisplayControl
      Overrides:
      applyPreferences in class DisplayControlImpl
    • updateLegendLabel

      protected void updateLegendLabel()
      This method is called to update the legend labels when some state has changed in this control that is reflected in the labels.
      Overrides:
      updateLegendLabel in class DisplayControlImpl
    • findClosestPointIdx

      public int findClosestPointIdx(FlatField obs, EarthLocation elt) throws VisADException, RemoteException
      Throws:
      VisADException
      RemoteException
    • getCursorReadoutInner

      protected List getCursorReadoutInner(EarthLocation elt, Real animationValue, int animationStep, List<ReadoutInfo> samples) throws Exception
      Return the list of html for doing the cursor readout
      Overrides:
      getCursorReadoutInner in class DisplayControlImpl
      Parameters:
      elt - The location
      animationValue - The time animation
      animationStep - Which step in the animation
      samples - the samples
      Returns:
      List of html to display
      Throws:
      Exception - On badness
    • getSaveMenuItems

      protected void getSaveMenuItems(List items, boolean forMenuBar)
      Add the relevant file menu items into the list
      Overrides:
      getSaveMenuItems in class DisplayControlImpl
      Parameters:
      items - List of menu items
      forMenuBar - Is this for the menu in the window's menu bar or for a popup menu in the legend
    • exportCsv

      public void exportCsv()
      Export the current time as csv
    • exportCsvAllTimes

      public void exportCsvAllTimes()
      Export all times as csv
    • exportToCsv

      public void exportToCsv(Real[] times)
      Export all times as csv
      Parameters:
      times - export given times as csv
    • exportToCsv

      public void exportToCsv(Real[] times, String filename)
    • setDataTemplate

      public void setDataTemplate(String value)
      Set the DataTemplate property.
      Parameters:
      value - The new value for DataTemplate
    • getDataTemplate

      public String getDataTemplate()
      Get the DataTemplate property.
      Returns:
      The DataTemplate
    • setXFixed

      public void setXFixed(boolean value)
      Set the XFixed property.
      Parameters:
      value - The new value for XFixed
    • getXFixed

      public boolean getXFixed()
      Get the XFixed property.
      Returns:
      The XFixed
    • setYFixed

      public void setYFixed(boolean value)
      Set the YFixed property.
      Parameters:
      value - The new value for YFixed
    • getYFixed

      public boolean getYFixed()
      Get the YFixed property.
      Returns:
      The YFixed
    • setZFixed

      public void setZFixed(boolean value)
      Set the ZFixed property.
      Parameters:
      value - The new value for ZFixed
    • getZFixed

      public boolean getZFixed()
      Get the ZFixed property.
      Returns:
      The ZFixed
    • setInfos

      public void setInfos(List<ProbeRowInfo> value)
      Set the Infos property.
      Parameters:
      value - The new value for Infos
    • getInfos

      public List<ProbeRowInfo> getInfos()
      Get the Infos property.
      Returns:
      The Infos
    • setAltitudes

      public void setAltitudes(List l)
      Set the altitudes property, use for persistence
      Parameters:
      l - list of altitudes deprecated Keep around for legacy bundles
    • setLevels

      public void setLevels(List l)
      Get the list of levels; use by persistence
      Parameters:
      l - list of levels for parameters deprecated Keep around for legacy bundles
    • setMethods

      public void setMethods(List l)
      Get the list of sampling methods for each of the parameters. Used for persistence
      Parameters:
      l - list of sampling methods deprecated Keep around for legacy bundles
    • setUnits

      public void setUnits(List l)
      Set the list of display units for each parameter. Used by persistence
      Parameters:
      l - list of units deprecated Keep around for legacy bundles
    • setSounds

      public void setSounds(List l)
      Set the list of display sounds for each parameter. Used by persistence
      Parameters:
      l - list of sounds deprecated Keep around for legacy bundles
    • increaseProbeSize

      public void increaseProbeSize()
      Increase the probe size
    • decreaseProbeSize

      public void decreaseProbeSize()
      Decrease the probe size
    • setPointSize

      public void setPointSize(float value)
      Set the PointSize property.
      Overrides:
      setPointSize in class DisplayControlImpl
      Parameters:
      value - The new value for PointSize
    • setMarker

      public void setMarker(String value)
      Set the Marker property.
      Parameters:
      value - The new value for Marker
    • getMarker

      public String getMarker()
      Get the Marker property.
      Returns:
      The Marker
    • setTimeSeries

      public void setTimeSeries(TimeSeriesChart value)
      Set the TimeSeries property.
      Parameters:
      value - The new value for TimeSeries
    • getTimeSeries

      public TimeSeriesChart getTimeSeries()
      Get the TimeSeries property.
      Returns:
      The TimeSeries
    • getChart

      public TimeSeriesChart getChart()
      Get the chart
      Returns:
      The chart_
    • setChartName

      public void setChartName(String newName)
      Set the chart Name
      Parameters:
      newName - the new chart name
    • setShowThumbNail

      public void setShowThumbNail(boolean value)
      Set the ShowThumbNail property.
      Parameters:
      value - The new value for ShowThumbNail
    • setShowTable

      public void setShowTable(boolean value)
      Set the ShowTable property.
      Parameters:
      value - The new value for ShowTable
    • getShowTable

      public boolean getShowTable()
      Get the ShowTable property.
      Returns:
      The ShowTable
    • setShowTableInLegend

      public void setShowTableInLegend(boolean value)
      Set the ShowTableInLegend property.
      Parameters:
      value - The new value for ShowTable
    • getShowTableInLegend

      public boolean getShowTableInLegend()
      Get the ShowTableInLegend property.
      Returns:
      The ShowTableInLegend
    • setShowSunriseSunset

      public void setShowSunriseSunset(boolean value)
      Set the ShowSunriseSunset property.
      Parameters:
      value - The new value for ShowSunriseSunset
    • getShowSunriseSunset

      public boolean getShowSunriseSunset()
      Get the ShowSunriseSunset property.
      Returns:
      The ShowSunriseSunset
    • setKeepProbeAtHeight

      public void setKeepProbeAtHeight(boolean value)
      Set the KeepProbeAtHeight property.
      Parameters:
      value - The new value for KeepProbeAtHeight
    • getKeepProbeAtHeight

      public boolean getKeepProbeAtHeight()
      Get the KeepProbeAtHeight property.
      Returns:
      The KeepProbeAtHeight
    • setProbeRadius

      public void setProbeRadius(double value)
      Set the ProbeRadius property.
      Parameters:
      value - The new value for ProbeRadius
    • getProbeRadius

      public double getProbeRadius()
      Get the ProbeRadius property.
      Returns:
      The ProbeRadius
    • canDoProgressiveResolution

      protected boolean canDoProgressiveResolution()
      Description copied from class: DisplayControlImpl
      Does this control support progressive resolution? Subclasses should override.
      Overrides:
      canDoProgressiveResolution in class DisplayControlImpl
      Returns:
      _more_
    • shouldAddControlListener

      protected boolean shouldAddControlListener()
      Description copied from class: DisplayControlImpl
      A hook to allow derived classes to tell us to add this as a control listener
      Overrides:
      shouldAddControlListener in class DisplayControlImpl
      Returns:
      _more_
    • viewpointChanged

      public void viewpointChanged()
      _more_
      Overrides:
      viewpointChanged in class DisplayControlImpl
    • hasMapProjection

      public boolean hasMapProjection()
      _more_
      Overrides:
      hasMapProjection in class DisplayControlImpl
      Returns:
      _more_
    • doExport

      public void doExport(String what, String filename) throws Exception
      Called by ISL. Write out some data defined by the what parameter to the given file. This method throws an UnimplementedException. Derived classes need to overwrite this to write out the appropriate data
      Overrides:
      doExport in class DisplayControlImpl
      Parameters:
      what - What is to be written out
      filename - To what file
      Throws:
      Exception - problem exporting