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 TypeClassDescriptionclassClass FrameDataInfo Holds an index and a McIdasFrame -
Field Summary
FieldsModifier and TypeFieldDescription(package private) DisplayControlImplprivate Listlist of McIDAS-X framesprivate Listlist of frames to loadprivate booleanprivate intprivate static final org.slf4j.Loggerprivate McIdasXInfoMcIDAS-X connection infoprivate Imageprivate Listlist of 2D categoriesprivate Listlist 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_YESFields 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 TypeMethodDescriptionvoidCreate the set ofDataChoicethat represent the data held by this data source.private voiddoMakeDataChoices(CompositeDataChoice composite) Make the data choices and add them to the given compositeprotected DatagetDataInner(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 DisplayControlImplgetFrame(int frameNumber) Get a frame from the frameList based on frame numberprivate McIdasFrameA 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 SingleBandedImagegetMcIdasSequence(int frameNumber, FrameComponentInfo frameComponentInfo, FrameDirtyInfo frameDirtyInfo) make a time series from selected McIdas-X framesGet McIdasXInfo objectReturn the list ofDataCategoryused for single time step data.Return the list ofDataCategoryused for multiple time step data.voidGets called after creation.voidThis is called after this datasource has been fully created and initialized after being unpersisted by the XmlEncoder.private voidInitialize the connection to McIdas-X.protected voidinitDataSelectionComponents(List<DataSelectionComponent> components, DataChoice dataChoice) Add any data selection componentsprivate voidInitialize theDataCategoryobjects that this data source uses.makeFrames(List inFrameNumbers) Make a list of McIDAS-X framesprivate voidmakePreviewImage(DataChoice dataChoice) voidsetFrame(int frameNumber, McIdasFrame inFrame) Set a frame in the framelist based on frame numberprotected booleanshouldCache(Data data) See if this DataSource should cache or notprivate ListsortChoices(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, writeFieldMaskFileMethods inherited from class ucar.unidata.collab.SharableImpl
applySharableProperties, doShare, doShare, doShareExternal, doShareInternal, getReceiveShareTime, getSharablePropertiesComponent, getShareGroup, getSharing, getUniqueId, initSharable, receiveShareData, removeSharable, setReceiveShareTime, setShareGroup, setSharing, setUniqueId, showSharableDialogMethods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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:
initAfterUnpersistencein interfaceDataSource- Overrides:
initAfterUnpersistencein classDataSourceImpl
-
initAfterCreation
Gets called after creation. Initialize the connection- Specified by:
initAfterCreationin interfaceDataSource- Overrides:
initAfterCreationin 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.DataSourceImplSee if this DataSource should cache or not- Overrides:
shouldCachein classDataSourceImpl- Parameters:
data- Data to cache- Returns:
- true
-
initDataSelectionComponents
protected void initDataSelectionComponents(List<DataSelectionComponent> components, DataChoice dataChoice) Description copied from class:ucar.unidata.data.DataSourceImplAdd any data selection components- Overrides:
initDataSelectionComponentsin 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.DataSourceImplActually 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:
getDataInnerin 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:
VisADExceptionRemoteException
-
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 theDataCategoryobjects that this data source uses. -
getTwoDCategories
Return the list ofDataCategoryused for single time step data.- Returns:
- A list of categories.
-
getTwoDTimeSeriesCategories
Return the list ofDataCategoryused for multiple time step data.- Returns:
- A list of categories.
-
doMakeDataChoices
Create the set ofDataChoicethat represent the data held by this data source.We create one top-level
CompositeDataChoicethat represents all of the image time steps. We create a set of childrenDirectDataChoice, one for each time step.- Overrides:
doMakeDataChoicesin 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:
VisADExceptionRemoteException
-