Class AddeImageChooser

All Implemented Interfaces:
ActionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, IdvConstants, ImageSelector
Direct Known Subclasses:
AddeRadarChooser, ImageChooser

public class AddeImageChooser extends AddeChooser implements ImageSelector
Widget to select images from a remote ADDE server Displays a list of the descriptors (names) of the image datasets available for a particular ADDE group on the remote server.
Author:
Don Murray
See Also:
  • Field Details

    • DESCRIPTOR_TABLE

      public static final String DESCRIPTOR_TABLE
      Property for the descriptor table
      See Also:
    • FILE_SATBAND

      protected static final String FILE_SATBAND
      Property for the satband file
      See Also:
    • PROP_BAND

      protected static final String PROP_BAND
      Property for image default value band
      See Also:
    • PROP_ID

      protected static final String PROP_ID
      Property for image default value id
      See Also:
    • PROP_KEY

      protected static final String PROP_KEY
      Property for image default value key
      See Also:
    • PROP_LATLON

      protected static final String PROP_LATLON
      Property for image default value lat/lon
      See Also:
    • PROP_LINEELE

      protected static final String PROP_LINEELE
      Property for image default value line/ele deprecated use PROP_LINELE
      See Also:
    • PROP_LINELE

      protected static final String PROP_LINELE
      Property for image default value lin/ele
      See Also:
    • PROP_LOC

      protected static final String PROP_LOC
      Property for image default value loc
      See Also:
    • PROP_MAG

      protected static final String PROP_MAG
      Property for image default value mag
      See Also:
    • PROP_NUM

      protected static final String PROP_NUM
      Property for num
      See Also:
    • PROP_PLACE

      protected static final String PROP_PLACE
      Property for image default value place
      See Also:
    • PROP_SIZE

      protected static final String PROP_SIZE
      Property for image default value size
      See Also:
    • PROP_SPAC

      protected static final String PROP_SPAC
      Property for image default value spac
      See Also:
    • PROP_UNIT

      protected static final String PROP_UNIT
      Property for image default value unit
      See Also:
    • PROP_NAV

      protected static final String PROP_NAV
      Property for image default value unit
      See Also:
    • TAG_DEFAULT

      protected static final String TAG_DEFAULT
      Xml tag name for the defaults
      See Also:
    • VALUE_DEFAULT

      protected static final String VALUE_DEFAULT
      identifiere for the default value
      See Also:
    • ATTR_NAME

      protected static final String ATTR_NAME
      Xml attr name for the defaults
      See Also:
    • ATTR_PATTERN

      protected static final String ATTR_PATTERN
      Xml attr name for the defaults
      See Also:
    • LABEL_SELECT

      protected static final String LABEL_SELECT
      Selection label text
      See Also:
    • archiveDay

      protected String archiveDay
      archive date
    • compsThatNeedDescriptor

      protected ArrayList compsThatNeedDescriptor
      List of JComponent-s that depend on a descriptor being selected to be enabled
    • descriptorComboBox

      protected JComboBox descriptorComboBox
      A widget for the list of dataset descriptors
    • ignoreDescriptorChange

      protected boolean ignoreDescriptorChange
      Flag to keep from infinite looping
    • descriptorNames

      protected String[] descriptorNames
      The descriptor names
    • latLonWidget

      protected LatLonWidget latLonWidget
      Input for lat/lon center point
    • centerLineFld

      protected JTextField centerLineFld
      Widget for the line center point in the advanced section
    • centerElementFld

      protected JTextField centerElementFld
      Widget for the element center point in the advanced section
    • descriptorTable

      protected Hashtable descriptorTable
      Descriptor/name hashtable
    • bandTable

      protected Hashtable bandTable
      Mapping of area directory to list of BandInfos
    • bandDirs

      protected Hashtable bandDirs
      _more_
    • unitComboBox

      protected JComboBox unitComboBox
      Widget for selecting image units
    • bandComboBox

      protected JComboBox bandComboBox
      Widget for selecting the band
  • Constructor Details

    • AddeImageChooser

      public AddeImageChooser(IdvChooserManager mgr, Element root)
      Construct an Adde image selection widget
      Parameters:
      mgr - The chooser manager
      root - The chooser.xml node
  • Method Details

    • getImageDefaults

      protected XmlResourceCollection getImageDefaults()
      Get the xml resource collection that defines the image default xml
      Returns:
      Image defaults resources
    • getButtonLabels

      protected String[] getButtonLabels()
      Get the names for the buttons.
      Overrides:
      getButtonLabels in class ChooserPanel
      Returns:
      array of button names
    • updateStatus

      protected void updateStatus()
      Update labels, enable widgets, etc.
      Overrides:
      updateStatus in class AddeChooser
    • timesOk

      protected boolean timesOk()
      Do we have times selected. Either we are doing absolute times and there are some selected in the list. Or we are doing relative times and we have done a connect to the server
      Returns:
      Do we have times
    • getAdvancedProps

      protected String[] getAdvancedProps()
      Get the list of advanced property names
      Returns:
      array of advanced property names
    • getAdvancedLabels

      protected String[] getAdvancedLabels()
      Get the list of advanced property labels
      Returns:
      list of advanced property labels
    • logException

      public void logException(String msg, Exception exc)
      Convenience method for lazy people who don't want to call LogUtil.logException(String, Throwable).
      Overrides:
      logException in class IdvChooser
      Parameters:
      msg - log message
      exc - Exception to log
    • getDataName

      public String getDataName()
      This allows derived classes to provide their own name for labeling, etc.
      Overrides:
      getDataName in class AddeChooser
      Returns:
      the dataset name
    • getDescriptorLabel

      public String getDescriptorLabel()
      Get the descriptor widget label
      Returns:
      label for the descriptor widget
    • getDatasetName

      public String getDatasetName()
      Get the name of the dataset.
      Returns:
      descriptive name of the dataset.
    • canReadTimes

      protected boolean canReadTimes()
      Check if we are ready to read times
      Returns:
      true if times can be read
    • descriptorChanged

      protected void descriptorChanged()
      Respond to a change in the descriptor list.
    • haveDescriptorSelected

      protected boolean haveDescriptorSelected()
      Check if a descriptor (image type) has been chosen
      Returns:
      true if an image type has been chosen
    • handleConnect

      public void handleConnect() throws Exception
      Handle when the user presses the connect button
      Overrides:
      handleConnect in class AddeChooser
      Throws:
      Exception - On badness
    • handleUpdate

      public void handleUpdate() throws Exception
      Handle when the user presses the update button
      Overrides:
      handleUpdate in class AddeChooser
      Throws:
      Exception - On badness
    • clearTimesList

      protected void clearTimesList()
      Overwrite base class method to clear out the lastAD member here.
      Overrides:
      clearTimesList in class TimesChooser
    • showGroups

      public void showGroups()
      Show the groups dialog. This method is not meant to be called but is public by reason of implementation (or insanity).
    • getArchiveDay

      public void getArchiveDay()
      Show the groupds dialog. This method is not meant to be called but is public by reason of implementation (or insanity).
    • connectToServer

      protected void connectToServer()
      Connect to the server.
    • canDoCancel

      public boolean canDoCancel()
      Can we cancel
      Overrides:
      canDoCancel in class AddeChooser
      Returns:
      true
    • doMakeContents

      protected JComponent doMakeContents()
      Make the UI for this selector.
      Overrides:
      doMakeContents in class ChooserPanel
      Returns:
      The gui
    • processServerComponents

      protected List processServerComponents()
      Process server components
      Returns:
      the list of components
    • processPropertyComponents

      protected List processPropertyComponents()
      Process the property components
      Returns:
      the property components
    • showAdvancedInTab

      public boolean showAdvancedInTab()
      Should we show the advanced properties component in a separate panel
      Returns:
      true
    • showSettings

      public void showSettings(JComponent holder)
      Show the settings in the holder
      Parameters:
      holder - the holder
    • showAdvanced

      public void showAdvanced(JComponent holder)
      Show the advanced settings in the holder
      Parameters:
      holder - the holder of the settings
    • getBottomComponents

      protected void getBottomComponents(List bottomComps)
      Add the bottom advanced gui panel to the list
      Parameters:
      bottomComps - the bottom components
    • setToFullResolution

      public void setToFullResolution()
      Set to full resolution
    • cyclePlace

      public void cyclePlace()
      Cycle the place
    • changePlace

      public void changePlace(String newPlace)
      Change the place
      Parameters:
      newPlace - new place
    • showPropPanel

      public void showPropPanel()
      Show the advanced properties dialog
    • absoluteTimesSelectionChanged

      protected void absoluteTimesSelectionChanged()
      Handle the absolute time selection changing
      Overrides:
      absoluteTimesSelectionChanged in class TimesChooser
    • getComponents

      protected void getComponents(List comps)
      Make the components (label/widget) and return them
      Parameters:
      comps - The list to add components to
    • addTimesComponent

      protected void addTimesComponent(List comps)
      Add the times component to the list
      Parameters:
      comps - List to add to
    • getExtraAbsoluteTimeComponent

      protected JComponent getExtraAbsoluteTimeComponent()
      Get the time popup widget
      Overrides:
      getExtraAbsoluteTimeComponent in class TimesChooser
      Returns:
      a widget for selecing the day
    • addPropComp

      protected JComponent addPropComp(String propId, JComponent comp)
      Associates the goven JComponent with the PROP_ property identified by the given propId
      Parameters:
      propId - The property
      comp - The gui component that allows the user to set the property
      Returns:
      Just returns the given comp
    • usePropFromUser

      protected boolean usePropFromUser(String propId)
      Should we use the user supplied property
      Parameters:
      propId - The property
      Returns:
      Should use the value from the advanced widget
    • addDescComp

      protected JComponent addDescComp(JComponent comp)
      A utility to add a component to the list of components that need the descriptor
      Parameters:
      comp - The component
      Returns:
      The component
    • getASelectedTime

      protected AreaDirectory getASelectedTime()
      Get one of the selected times.
      Returns:
      One of the selected times.
    • getDefaultRelativeTimeIndex

      protected int getDefaultRelativeTimeIndex()
      Get the default relative time index
      Overrides:
      getDefaultRelativeTimeIndex in class AddeChooser
      Returns:
      default index
    • isPolar

      protected boolean isPolar(AddeImageDescriptor aid)
      chcek the polar dataset
      Returns:
      boolean
    • enableWidgets

      protected void enableWidgets()
      Enable or disable the GUI widgets based on what has been selected.
      Overrides:
      enableWidgets in class AddeChooser
    • getDescriptor

      protected String getDescriptor()
      Get the selected descriptor.
      Returns:
      the currently selected descriptor.
    • getDescriptorFromSelection

      protected String getDescriptorFromSelection(String selection)
      Get the descriptor relating to the selection.
      Parameters:
      selection - String name from the widget
      Returns:
      the descriptor
    • getSelectedDescriptor

      public String getSelectedDescriptor()
      Get the selected descriptor.
      Returns:
      the selected descriptor
    • getSelectedUnit

      protected String getSelectedUnit()
      Get the selected calibration unit.
      Returns:
      the selected calibration unit
    • getDataType

      public String getDataType()
      Get the data type for this chooser
      Overrides:
      getDataType in class AddeChooser
      Returns:
      the data type
    • getDatasetDescription

      public String getDatasetDescription()
      Get a description of the currently selected dataset
      Returns:
      a description of the currently selected dataset deprecated use #getDatasetName()
    • readTimes

      public void readTimes()
      Read the set of image times available for the current server/group/type This method is a wrapper, setting the wait cursor and wrapping the call to readTimesInner(); in a try/catch block
      Overrides:
      readTimes in class AddeChooser
    • doCancel

      public void doCancel()
      Handle a cancel
      Overrides:
      doCancel in class IdvChooser
    • setSelectedTimes

      protected void setSelectedTimes(DateTime[] times)
      Set the selected times in the times list based on the input times
      Overrides:
      setSelectedTimes in class TimesChooser
      Parameters:
      times - input times
    • getGoodToGo

      protected boolean getGoodToGo()
      Does this selector have all of its state set to load in data
      Overrides:
      getGoodToGo in class AddeChooser
      Returns:
      Has the user chosen everything they need to choose to load data
    • readDescriptors

      protected void readDescriptors()
      Generate a list of image descriptors for the descriptor list.
    • setDescriptors

      protected void setDescriptors(String[] names)
      Initialize the descriptor list from a list of names
      Parameters:
      names - list of names
    • getImageList

      public List getImageList()
      Returns a list of the images to load or null if none have been selected.
      Specified by:
      getImageList in interface ImageSelector
      Returns:
      list get the list of image descriptors
    • makeDateTimeString

      protected String makeDateTimeString(AreaDirectory ad, int cnt, boolean doTimes)
      Create the date time string for the given area directory
      Parameters:
      ad - The areadirectory to make the dttm string for
      cnt - Which number in the list of selected times is this
      doTimes - Should we do regular time or create a relative time
      Returns:
      ADDE image select string ("&DAY=day day&TIME=time time")
    • makeDateTimeString

      protected String makeDateTimeString(AreaDirectory ad)
      Create the date time string for the given area directory
      Parameters:
      ad - AreaDirectory with time
      Returns:
      ADDE image select string ("&DAY=day day&TIME=time time")
    • getDefault

      protected String getDefault(String property, String dflt)
      Get the default value for a key
      Parameters:
      property - property (key type)
      dflt - default value
      Returns:
      value for key or dflt if not found
    • appendMiscKeyValues

      protected void appendMiscKeyValues(StringBuffer buff)
      Get any extra key=value pairs that are appended to all requests.
      Overrides:
      appendMiscKeyValues in class AddeChooser
      Parameters:
      buff - The buffer to append to
    • getSizeString

      protected String getSizeString(AreaDirectory ad)
      Get the image size string from the directory and defaults
      Parameters:
      ad - image directory
      Returns:
      request size
    • checkForValidValues

      protected boolean checkForValidValues()
      Check for valid lat/lon values
      Returns:
      true if values are valid
    • makeRequestString

      protected String makeRequestString(AreaDirectory ad)
      Given the AreaDirectory, create the appropriate request string for the image.
      Parameters:
      ad - AreaDirectory for the image in question.
      Returns:
      the ADDE request URL
    • makeRequestString

      protected String makeRequestString(AreaDirectory ad, boolean doTimes, int cnt)
      Create the appropriate request string for the image.
      Parameters:
      ad - AreaDirectory for the image in question.
      doTimes - true if this is for absolute times, false for relative
      cnt - image count (position in dataset)
      Returns:
      the ADDE request URL
    • getBaseUrl

      protected String getBaseUrl(AreaDirectory ad, boolean doTimes, int cnt)
      Create the appropriate request string for the image.
      Parameters:
      ad - AreaDirectory for the image in question.
      doTimes - true if this is for absolute times, false for relative
      cnt - image count (position in dataset)
      Returns:
      the ADDE request URL
    • getBaseUrlProps

      protected String[] getBaseUrlProps()
      Get the list of properties for the base URL
      Returns:
      list of properties
    • makeProps

      protected String makeProps(String[] props, AreaDirectory ad)
      A utility that creates the url argument line for the given set of properties.
      Parameters:
      props - The PROP_ properties to make the request string for
      ad - The area directory.
      Returns:
      The adde request string
    • getPropValue

      protected String getPropValue(String prop, AreaDirectory ad)
      Get the value for the given property. This can either be the value supplied by the end user through the advanced GUI or is the default
      Parameters:
      prop - The property
      ad - The AreaDirectory
      Returns:
      The value of the property to use in the request string
    • getUserPropValue

      protected String getUserPropValue(String prop, AreaDirectory ad)
      Get the user supplied property value for the adde request string
      Parameters:
      prop - The property
      ad - The AreaDirectory
      Returns:
      The value, supplied by the user, of the property to use in the request string
    • getDefaultPropValue

      protected String getDefaultPropValue(String prop, AreaDirectory ad, boolean forDisplay)
      Get the default property value for the adde request string
      Parameters:
      prop - The property
      ad - The AreaDirectory
      forDisplay - Is this to display to the user in the gui
      Returns:
      The default of the property to use in the request string
    • setImageInfoProps

      protected void setImageInfoProps(AddeImageInfo aii, String[] props, AreaDirectory ad)
      Set the properties on the AddeImageInfo from the list of properties
      Parameters:
      aii - The AddeImageInfo
      props - list of props to set
      ad - The AreaDirectory
    • getSelectedBandName

      public String getSelectedBandName()
      Get the name of the selected band
      Returns:
      the name of the band
    • getSize

      protected int[] getSize(AreaDirectory ad)
      Get the size for the area directory
      Parameters:
      ad - the area directory
      Returns:
      an array of lines,elements
    • makeImageInfo

      protected AddeImageInfo makeImageInfo(AreaDirectory dir, boolean isRelative, int num)
      Make an AddeImageInfo from a URL and an AreaDirectory
      Parameters:
      dir - AreaDirectory
      isRelative - true if is relative
      num - number (for relative images)
      Returns:
      corresponding AddeImageInfo
    • getPropertiesDescription

      protected String getPropertiesDescription()
      Get a description of the properties
      Returns:
      a description
    • handleConnectionError

      protected void handleConnectionError(Exception excp)
      Show the given error to the user. If it was an Adde exception that was a bad server error then print out a nice message.
      Overrides:
      handleConnectionError in class AddeChooser
      Parameters:
      excp - The exception
    • getDescriptorTable

      public Hashtable getDescriptorTable()
      Get the descriptor table for this chooser
      Returns:
      a Hashtable of descriptors and names
    • getSelectedBandInfos

      public List<BandInfo> getSelectedBandInfos()
      Get the list of BandInfos for the current selected images
      Returns:
      list of BandInfos
    • getDefaultDisplayType

      protected String getDefaultDisplayType()
      Get the id for the default display type
      Overrides:
      getDefaultDisplayType in class IdvChooser
      Returns:
      the display id
    • doLoadInThread

      public void doLoadInThread()
      User said go, we go. Simply get the list of images from the imageChooser and create the ADDE.IMAGE DataSource
      Overrides:
      doLoadInThread in class ChooserPanel
    • getDataSourceProperties

      protected void getDataSourceProperties(Hashtable ht)
      Get the DataSource properties
      Overrides:
      getDataSourceProperties in class IdvChooser
      Parameters:
      ht - Hashtable of properties