Package edu.wisc.ssec.mcidasv.data
Class McIdasXDataSource
java.lang.Object
ucar.unidata.collab.SharableImpl
ucar.unidata.data.DataSourceImpl
edu.wisc.ssec.mcidasv.data.McIdasXDataSource
- All Implemented Interfaces:
Sharable
,DataSource
,DataSourceFactory
,XmlPersistable
Used to cache a data choice and its data.
- Version:
- $Revision$
- Author:
- IDV development team
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
Class FrameDataInfo Holds an index and a McIdasFrame -
Field Summary
FieldsModifier and TypeFieldDescription(package private) DisplayControlImpl
private List
list of McIDAS-X framesprivate List
list of frames to loadprivate boolean
private int
private static final org.slf4j.Logger
private McIdasXInfo
McIDAS-X connection infoprivate Image
private List
list of 2D categoriesprivate List
list of 2D time series categoriesprivate double[][]
image data arraysFields inherited from class ucar.unidata.data.DataSourceImpl
changeDataPathsCbx, dataCacheKey, dataChoices, geoSelectionPanel, haveBeenUnPersisted, okToContinue, PARAM_SHOW_HIDE, PARAM_SHOW_NO, PARAM_SHOW_YES
Fields inherited from interface ucar.unidata.data.DataSource
DATAPATH_DATE_FORMAT, DATAPATH_DATE_PATTERN, MOST_RECENT, ordinalNames, PROP_AUTOCREATEDISPLAY, PROP_BASEDIRECTORY, PROP_CACHEABLE, PROP_DATACHOICENAME, PROP_DISPLAYPROPERTIES, PROP_DOCUMENTLINKS, PROP_FILEPATTERN, PROP_GEOLOCATION, PROP_ICON, PROP_NAME, PROP_POLLINFO, PROP_RESOLVERURL, PROP_SERVICE_HTTP, PROP_SUBPROPERTIES, PROP_TIMELABELS, PROP_TIMESTRIDE, PROP_TITLE
-
Constructor Summary
ConstructorsConstructorDescriptionDefault bean constructor; does nothingMcIdasXDataSource
(DataSourceDescriptor descriptor, String name, Hashtable properties) Create a McIdasXDataSource -
Method Summary
Modifier and TypeMethodDescriptionvoid
Create the set ofDataChoice
that represent the data held by this data source.private void
doMakeDataChoices
(CompositeDataChoice composite) Make the data choices and add them to the given compositeprotected Data
getDataInner
(DataChoice dataChoice, DataCategory category, DataSelection dataSelection, Hashtable requestProperties) Actually get the data identified by the given DataChoce.Get the name for the main data objectprivate DisplayControlImpl
getFrame
(int frameNumber) Get a frame from the frameList based on frame numberprivate McIdasFrame
A utility method that helps us deal with legacy bundles that used to have String file names as the id of a data choice.Get frame numbersgetMcIdasFrame
(int frameNumber, FrameComponentInfo frameComponentInfo, FrameDirtyInfo frameDirtyInfo) private SingleBandedImage
getMcIdasSequence
(int frameNumber, FrameComponentInfo frameComponentInfo, FrameDirtyInfo frameDirtyInfo) make a time series from selected McIdas-X framesGet McIdasXInfo objectReturn the list ofDataCategory
used for single time step data.Return the list ofDataCategory
used for multiple time step data.void
Gets called after creation.void
This is called after this datasource has been fully created and initialized after being unpersisted by the XmlEncoder.private void
Initialize the connection to McIdas-X.protected void
initDataSelectionComponents
(List<DataSelectionComponent> components, DataChoice dataChoice) Add any data selection componentsprivate void
Initialize theDataCategory
objects that this data source uses.makeFrames
(List inFrameNumbers) Make a list of McIDAS-X framesprivate void
makePreviewImage
(DataChoice dataChoice) void
setFrame
(int frameNumber, McIdasFrame inFrame) Set a frame in the framelist based on frame numberprotected boolean
shouldCache
(Data data) See if this DataSource should cache or notprivate List
sortChoices
(List choices) Sort the list of data choices on their frame numbersMethods inherited from class ucar.unidata.data.DataSourceImpl
addActions, addDataChangeListener, addDataChoice, addPropertiesTabs, addReloadTab, applyFieldMask, applyProperties, beginWritingDataToLocalDisk, canAddCurrentName, canCacheDataToDisk, canChangeData, canDoAllLevels, canDoFieldMask, canDoGeoSelection, canDoGeoSelectionMap, canDoGeoSelectionStride, canPoll, canSaveDataToLocalDisk, canShowParameter, checkForInitAfterUnPersistence, clearCachedData, clearFileCache, clearTimes, convertSourceFile, convertToFilesIfDirectory, createAutoDisplay, createCacheKey, createElement, decrOutstandingGetDataCalls, doDirectory, doMakeDateTimes, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSelectionPanel, doMakeGeoSubsetPropertiesComponent, doRemove, endWritingDataToLocalDisk, equals, expandIfNeeded, findDataChoice, findDataChoices, flushCache, getAbsoluteDateTimes, getActions, getAlias, getAllDateTimes, getAllDateTimes, getAllLevels, getAllLevels, getAllTimesForTimeDriver, getCache, getCache, getCacheClearDelay, getCacheDataToDisk, getCompositeDataChoices, getData, getData, getDataCachePath, getDataChangeListeners, getDataChoices, getDataContext, getDataInner, getDataIsEditable, getDataPaths, getDataPrefix, getDataSelection, getDataSelectionComponents, getDataSource, getDateTimes, getDateTimeSelection, getDefaultSave, getDescription, getDescriptor, getErrorMessage, getEverChangedName, getExtraGeoSelectionComponent, getExtraTimesComponent, getFileFilterForPolling, getFullDescription, getid, getIdv, getInError, getLocalDirectory, getLocationForPolling, getLocationsForPolling, getMostRecentFiles, getName, getNameForDataSource, getNeedToShowErrorToUser, getNextId, getOutstandingGetDataCalls, getPartialDescription, getPassword, getPathsThatCanBeRelative, getPollingInfo, getProperties, getPropertiesComponents, getPropertiesHeader, getProperty, getProperty, getProperty, getProperty, getProperty, getProperty, getProperty, getRelativePaths, getSampleDataProjection, getSaveDataFileLabel, getSelectedDateTimes, getSelectedDateTimes, getTimesFromDataSelection, getTmpPaths, getTypeName, getUserName, handlePropertiesAction, hasPollingInfo, holdsDateTimes, holdsIndices, identifiedBy, identifiedByName, incrOutstandingGetDataCalls, initAfter, initDataChoice, initFromXml, isPolling, loadFieldMask, loadFieldMask, loadLatestFile, logException, logException, makeDerivedDataChoices, makeSaveLocalActions, newFileFromPolling, newFilesFromPolling, notifyDataChange, propertiesChanged, putCache, putCache, reloadData, reloadData, reloadProperties, removeCache, removeDataChangeListener, removeDataChoice, removeProperty, replaceDataChoice, resetTmpState, saveDataToLocalDisk, saveDataToLocalDisk, saveDataToLocalDisk, selectTimesFromList, setAlias, setAskToUpdate, setCacheClearDelay, setCacheDataToDisk, setDataEditableStrings, setDataIsEditable, setDataIsRelative, setDataRelativeStrings, setDataSelection, setDateTimeSelection, setDefaultSave, setDescription, setDescriptor, setDirectory, setEverChangedName, setInError, setInError, setInError, setName, setNewFiles, setObjectProperties, setObjectProperty, setPassword, setPollingInfo, setPollLocation, setProperties, setProperty, setProperty, setRelativePaths, setTemplateName, setTmpPaths, setUserName, shouldCache, showPasswordDialog, showPropertiesDialog, showPropertiesDialog, showPropertiesDialog, showWaitDialog, tick, toString, toStringTruncated, updateDetailsText, updateState, writeFieldMaskFile, writeFieldMaskFile
Methods inherited from class ucar.unidata.collab.SharableImpl
applySharableProperties, doShare, doShare, doShareExternal, doShareInternal, getReceiveShareTime, getSharablePropertiesComponent, getShareGroup, getSharing, getUniqueId, initSharable, receiveShareData, removeSharable, setReceiveShareTime, setShareGroup, setSharing, setUniqueId, showSharableDialog
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface ucar.unidata.data.DataSource
getUniqueId
-
Field Details
-
logger
-
frameNumbers
list of frames to load -
frameList
list of McIDAS-X frames -
mcidasxInfo
McIDAS-X connection info -
twoDCategories
list of 2D categories -
twoDTimeSeriesCategories
list of 2D time series categories -
values
image data arrays -
hasImagePreview
-
theImage
-
lastPreview
-
dci
-
-
Constructor Details
-
McIdasXDataSource
public McIdasXDataSource()Default bean constructor; does nothing -
McIdasXDataSource
Create a McIdasXDataSource- Parameters:
descriptor
- the datasource descriptorname
- my nameproperties
- my properties
-
-
Method Details
-
makeFrames
Make a list of McIDAS-X frames- Parameters:
inFrameNumbers
- List of frame numbers. Cannot benull
.- Returns:
- ImageDataset
-
getFrame
Get a frame from the frameList based on frame number -
setFrame
Set a frame in the framelist based on frame number -
initAfterUnpersistence
This is called after this datasource has been fully created and initialized after being unpersisted by the XmlEncoder.- Specified by:
initAfterUnpersistence
in interfaceDataSource
- Overrides:
initAfterUnpersistence
in classDataSourceImpl
-
initAfterCreation
Gets called after creation. Initialize the connection- Specified by:
initAfterCreation
in interfaceDataSource
- Overrides:
initAfterCreation
in classDataSourceImpl
-
initConnection
Initialize the connection to McIdas-X. This gets called when the data source is newly created or decoded form a bundle. -
shouldCache
Description copied from class:ucar.unidata.data.DataSourceImpl
See if this DataSource should cache or not- Overrides:
shouldCache
in classDataSourceImpl
- Parameters:
data
- Data to cache- Returns:
- true
-
initDataSelectionComponents
protected void initDataSelectionComponents(List<DataSelectionComponent> components, DataChoice dataChoice) Description copied from class:ucar.unidata.data.DataSourceImpl
Add any data selection components- Overrides:
initDataSelectionComponents
in classDataSourceImpl
- Parameters:
components
- list of componentsdataChoice
- the data choice
-
makePreviewImage
-
getDataInner
protected Data getDataInner(DataChoice dataChoice, DataCategory category, DataSelection dataSelection, Hashtable requestProperties) throws VisADException, RemoteException Description copied from class:ucar.unidata.data.DataSourceImpl
Actually get the data identified by the given DataChoce. The default is to call the getDataInner that does not take the requestProperties. This allows other, non unidata.data DataSource-s (that follow the old API) to work.- Overrides:
getDataInner
in classDataSourceImpl
- Parameters:
dataChoice
- The data choice that identifies the requested data.category
- The data category of the request.dataSelection
- Identifies any subsetting of the data.requestProperties
- Hashtable that holds any detailed request properties.- Returns:
- The data
- Throws:
RemoteException
- Java RMI problemVisADException
- VisAD problem
-
getMcIdasSequence
private SingleBandedImage getMcIdasSequence(int frameNumber, FrameComponentInfo frameComponentInfo, FrameDirtyInfo frameDirtyInfo) throws VisADException, RemoteException make a time series from selected McIdas-X frames- Throws:
VisADException
RemoteException
-
getDisplayControlImpl
-
getFrameNumbers
Get frame numbers- Returns:
- frame numbers
-
getDataName
Get the name for the main data object- Returns:
- name of main data object
-
getMcIdasXInfo
Get McIdasXInfo object- Returns:
- mcidasxInfo
-
makeCategories
Initialize theDataCategory
objects that this data source uses. -
getTwoDCategories
Return the list ofDataCategory
used for single time step data.- Returns:
- A list of categories.
-
getTwoDTimeSeriesCategories
Return the list ofDataCategory
used for multiple time step data.- Returns:
- A list of categories.
-
doMakeDataChoices
Create the set ofDataChoice
that represent the data held by this data source.We create one top-level
CompositeDataChoice
that represents all of the image time steps. We create a set of childrenDirectDataChoice
, one for each time step.- Overrides:
doMakeDataChoices
in classDataSourceImpl
-
doMakeDataChoices
Make the data choices and add them to the given composite- Parameters:
composite
- The parent data choice to add to
-
sortChoices
Sort the list of data choices on their frame numbers- Parameters:
choices
- The data choices- Returns:
- The data choices sorted
-
getFrame
A utility method that helps us deal with legacy bundles that used to have String file names as the id of a data choice.- Parameters:
object
- May be an AddeImageDescriptor (for new bundles) or a String that is converted to an image descriptor.- Returns:
- The image descriptor.
-
getMcIdasFrame
public SingleBandedImage getMcIdasFrame(int frameNumber, FrameComponentInfo frameComponentInfo, FrameDirtyInfo frameDirtyInfo) throws VisADException, RemoteException - Throws:
VisADException
RemoteException
-