edu.wisc.ssec.mcidasv.chooser.adde
Class AddeChooser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by ucar.unidata.ui.ChooserPanel
                      extended by ucar.unidata.idv.chooser.IdvChooser
                          extended by ucar.unidata.idv.chooser.TimesChooser
                              extended by ucar.unidata.idv.chooser.adde.AddeChooser
                                  extended by edu.wisc.ssec.mcidasv.chooser.adde.AddeChooser
All Implemented Interfaces:
Constants, ActionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, IdvConstants
Direct Known Subclasses:
AddeFrontChooser, AddeImageChooser, AddePointDataChooser, PolarOrbitTrackChooser

public class AddeChooser
extends AddeChooser
implements Constants

Version:
$Revision$
See Also:
Serialized Form

Nested Class Summary
 class AddeChooser.GroupComparator
           
 class AddeChooser.ServerComparator
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  List<AddeServer> addeServers
           
private  boolean addingServer
           
 boolean allServersFlag
           
private static String ATTR_DAY
           
private static String ATTR_DESCRIPTOR
           
private static String ATTR_GROUP
           
private static String ATTR_NAME
           
private static String ATTR_POS
           
private static String ATTR_SERVER
           
private static String ATTR_TIME
           
(package private)  JCheckBox cb
           
protected static String CMD_MANAGER
          Command for opening up the server manager
protected  List<String> commentList
          List of comments associated with list of descriptors.
protected  ArrayList compsThatNeedDescriptor
          List of JComponent-s that depend on a descriptor being selected to be enabled
(package private)  JButton connectButton
          Connect button--we need to be able to disable this
private  PreferenceList descList
          List of descriptors
static String DESCRIPTOR_TABLE
          Property for the descriptor table
protected  JComboBox descriptorComboBox
          A widget for the list of dataset descriptors
protected  JLabel descriptorLabel
          descriptor label
protected  List<String> descriptorList
          List of available descriptors.
protected  String[] descriptorNames
          The descriptor names
protected  Hashtable descriptorTable
          Descriptor/name hashtable
protected  boolean ignoreDescriptorChange
          Flag to keep from infinite looping
private  JPanel innerPanel
          Make the UI for this selector.
protected  String LABEL_SELECT
          Selection label text
private  String lastBadGroup
           
private  String lastBadServer
           
private  AddeServer lastServer
           
private  String lastServerGroup
           
private  String lastServerName
           
private  String lastServerProj
           
private  String lastServerUser
           
private static org.slf4j.Logger logger
           
(package private)  JButton manageButton
          Manage button
protected static String nameSeparator
          Name separator string
(package private)  JButton parameterButton
          Parameter button--we need to be able to disable this
private  Hashtable parameterTrees
          Maps favorite type to the BundleTree that shows the Manage window for the type
(package private)  JButton publicButton
          Public button--we need to draw a menu from this
 Element restoreElement
           
private  List restoreTimes
           
protected static String separator
          Separator string
protected  EntryStore serverManager
          Reference back to the server manager
private  JComboBox serverSelector
           
private  boolean shouldAddSource
           
private  JLabel statusLabel
           
private static String TAG_DEFAULT
           
private static String TAG_FOLDER
          Used for parameter set restore
private  GuiUtils.CardLayoutPanel timesCardPanelExtra
          Card panel to hold extra relative and absolute time components
 
Fields inherited from class ucar.unidata.idv.chooser.adde.AddeChooser
CMD_CONNECT, DATA_NAME_KEY, DATASET_NAME_KEY, DEFAULT_COMPRESS, DEFAULT_DEBUG, DEFAULT_PORT, DEFAULT_PROJ, DEFAULT_USER, DEFAULT_VERSION, FILE_PUBLICSRV, groupSelector, ignoreStateChangedEvents, LABEL_DATAINTERVAL, LABEL_DATASET, LABEL_DATATYPE, LABEL_SERVER, LABEL_STATIONS, LABEL_TIMES, MSG_TIMES, NEW_SELECTION, passwords, PROP_ADDEPORT, PROP_COMPRESS, PROP_CYD, PROP_DATANAME, PROP_DAY, PROP_DEBUG, PROP_DESCR, PROP_FILE, PROP_GROUP, PROP_HMS, PROP_NUM, PROP_PARAM, PROP_PORT, PROP_POS, PROP_PROJ, PROP_SELECT, PROP_TIME, PROP_USER, PROP_VERSION, REQ_DATASETINFO, REQ_IMAGEDATA, REQ_IMAGEDIR, REQ_POINTDATA, REQ_TEXT, serverTimeStamp, STATE_CONNECTED, STATE_CONNECTING, STATE_UNCONNECTED, STATUS_ERROR, STATUS_NEEDSLOGIN, STATUS_OK, WIDGET_MUTEX
 
Fields inherited from class ucar.unidata.idv.chooser.TimesChooser
drivercbx, selectedDriver, timesComponents, timesContainer
 
Fields inherited from class ucar.unidata.idv.chooser.IdvChooser
ATTR_ID, ATTR_SHOWDETAILS, dirHistoryCbx, ignoreDirHistory, NULL_PROPERTIES, NULL_STRING, PREF_ADDESERVERS, PREF_CATALOGLIST, PREF_DEFAULTDIR, PREF_IMAGEDESCLIST, PREF_POLLINGINFO, PREF_RADARDESCLIST, PREF_TDSPOINTOBSERVER, PREF_TDSRADARSERVER, PROP_CHOOSER_MAPS, PROP_CHOOSER_PROJECTION_BOUNDS, PROP_CHOOSERCLASSNAME, PROP_STATUS_BACKGROUND, PROP_STATUS_FOREGROUND, PROP_STATUS_TEMPLATE, stationMap
 
Fields inherited from class ucar.unidata.ui.ChooserPanel
cancelButton, CMD_LOAD, contents, GRID_INSETS, GRID_SPACING, GRID_SPACING_H, GRID_SPACING_V, haveData, helpPath, loadButton, MAP_COLOR, simpleMode
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface edu.wisc.ssec.mcidasv.Constants
BLANK_COMP_GROUP, COMP_MONITORPANEL, DATASELECTOR_NAME, DEFAULT_DOCPATH, DEFAULT_SERVERSTATE, DISPLAY_NAME, DISPLAYCONTROLLER_NAME, ELEMENT_DOUBLE_WIDTH, ELEMENT_DOUBLEDOUBLE_WIDTH, ELEMENT_HALF_WIDTH, ELEMENT_ONEHALF_WIDTH, ELEMENT_WIDTH, FILTER_MCV, FILTER_MCVMCVZ, FILTER_MCVZ, GAP_RELATED, GAP_UNRELATED, HOMEPAGE_URL, ICON_ACCEPT_SMALL, ICON_ADD_SMALL, ICON_APPLY_SMALL, ICON_BACKGROUND_SMALL, ICON_CANCEL, ICON_CANCEL_SMALL, ICON_CHECKVERSION_SMALL, ICON_COLORTABLE_SMALL, ICON_CONNECT_SMALL, ICON_CONSOLE_SMALL, ICON_DATAEXPLORER_SMALL, ICON_DEFAULTLAYOUT_SMALL, ICON_DEFAULTLAYOUTADD_SMALL, ICON_DEFAULTLAYOUTDELETE_SMALL, ICON_DELETE_SMALL, ICON_DISCONNECT_SMALL, ICON_ERROR_SMALL, ICON_EXCLAMATION_SMALL, ICON_FAVORITE_SMALL, ICON_FAVORITEMANAGE_SMALL, ICON_FAVORITESAVE_SMALL, ICON_FORUMS_SMALL, ICON_GETTINGSTARTED_SMALL, ICON_HELP, ICON_HELP_SMALL, ICON_HELPTIPS_SMALL, ICON_INFORMATION_SMALL, ICON_LAYOUTEDIT_SMALL, ICON_LOCALDATA_SMALL, ICON_LOCATION_SMALL, ICON_MCIDASV_SMALL, ICON_NEWTAB_SMALL, ICON_NEWWINDOW_SMALL, ICON_NEXT_SMALL, ICON_NOTE_SMALL, ICON_OPEN, ICON_OPEN_SMALL, ICON_PREFERENCES_SMALL, ICON_PREVIOUS_SMALL, ICON_RANDOM_SMALL, ICON_RANGEANDBEARING_SMALL, ICON_REDO_SMALL, ICON_REFRESH, ICON_REFRESH_SMALL, ICON_REMOVE_SMALL, ICON_REMOVEDATA_SMALL, ICON_REMOVELAYERS_SMALL, ICON_REMOVELAYERSDATA_SMALL, ICON_SAVE, ICON_SAVE_SMALL, ICON_SAVEAS_SMALL, ICON_SUPPORT_SMALL, ICON_UNDO_SMALL, ICON_UPDATE, ICON_USERSGUIDE_SMALL, LOCAL_ADDE_PORT, MACRO_BUILDDATE, MACRO_COPYRIGHT_YEAR, MACRO_IDV_VERSION, MACRO_VERSION, MACRO_VISAD_VERSION, MAX_MEMORY_32BIT, MCV_BLUE, MCV_BLUE_DARK, NOTICE_URL, OS_OSX, PANEL_NAME, PREF_AUTO_SAVE_DEFAULT_LAYOUT, PREF_CONFIRM_REMOVE_BOTH, PREF_CONFIRM_REMOVE_DATA, PREF_CONFIRM_REMOVE_LAYERS, PREF_IMAGE_PREVIEW, PREF_LIST_ADDE_SERVERS, PREF_LIST_ADVANCED, PREF_LIST_AVAILABLE_DISPLAYS, PREF_LIST_DATA_CHOOSERS, PREF_LIST_FORMATS_DATA, PREF_LIST_GENERAL, PREF_LIST_LOCAL_ADDE, PREF_LIST_NAV_CONTROLS, PREF_LIST_TOOLBAR, PREF_LIST_VIEW, PREF_OPEN_LIMIT_WIN, PREF_PRERELEASE_CHECK, PREF_SAVE_DASHBOARD_VIZ, PREF_SERVERSTATE, PREF_SYSTEMSERVERSIMG, PREF_TBM_SIZE, PREF_VERSION_CHECK, PRERELEASE_URL, PROP_ABOUTTEXT, PROP_APP_ICON, PROP_BUILD_DATE, PROP_CHAN, PROP_COPYRIGHT_YEAR, PROP_DASHBOARD_BOUNDS, PROP_HOMEPAGE, PROP_SERVERS, PROP_SERVERS_ALL, PROP_SYSMEM, PROP_TABBED_UI, PROP_VERSION_MAJOR, PROP_VERSION_MINOR, PROP_VERSION_RELEASE, PROP_VERSIONFILE, PROP_VISAD_DATE, PROP_VISAD_ORIGINAL, PROP_VISAD_PARSE_FAIL, PROP_VISAD_REVISION, PROP_VP_CATOPEN, PROP_VP_SHOWCATS, PROP_VP_SHOWPOPUP, PROPERTIES_FILE, SCRUB_STRINGS_FILE, SUFFIX_MCV, SUFFIX_MCVZ, USER_DIRECTORY_NAME, VERSION_HANDLER_URL, VERSION_URL
 
Fields inherited from interface ucar.unidata.idv.IdvConstants
ARG_B64BUNDLE, ARG_B64ISL, ARG_BUNDLE, ARG_CATALOG, ARG_CHOOSER, ARG_CLEARDEFAULT, ARG_CODE, ARG_CONNECT, ARG_CURRENTTIME, ARG_DATA, ARG_DEBUG, ARG_DEFAULT, ARG_DISPLAY, ARG_DXML, ARG_FIXEDTIME, ARG_HELP, ARG_IMAGE, ARG_IMAGESERVER, ARG_INSTALLPLUGIN, ARG_ISLFILE, ARG_ISLINTERACTIVE, ARG_LISTRESOURCES, ARG_MAINCLASS, ARG_MOVIE, ARG_MSG_DEBUG, ARG_MSG_RECORD, ARG_NODEFAULT, ARG_NOERRORSINGUI, ARG_NOGUI, ARG_NOONEINSTANCE, ARG_NOPLUGINS, ARG_NOPREF, ARG_ONEINSTANCEPORT, ARG_PLUGIN, ARG_PORT, ARG_PRINTJNLP, ARG_PROPERTIES, ARG_SCRIPT, ARG_SERVER, ARG_SETFILES, ARG_SITEPATH, ARG_TEMPLATE, ARG_TEST, ARG_TESTEVAL, ARG_TRACE, ARG_TRACEONLY, ARG_USERPATH, DEFAULT_DATE_FORMAT, DEFAULT_MAX_PERMGENSIZE, DEFAULT_TIMEZONE, FILTER_CPT, FILTER_ISL, FILTER_JNLP, FILTER_XIDV, FILTER_XIDVZIDV, FILTER_XML, FILTER_ZIDV, ID_COMMANDSTORUN, ID_DATASOURCES, ID_DISPLAYCONTROLS, ID_IDV, ID_JYTHON, ID_MESSAGE, ID_MISCHASHTABLE, ID_NCIDV_VERSION, ID_VERSION, ID_VIEWMANAGERS, ID_WINDOWS, INITIAL_PROBE_EARTHLOCATION, NULL_DATA_SELECTION, NULL_STRING, PREF_ARCHIVEDIR, PREF_ARCHIVENAME, PREF_AUTODISPLAYS_ENABLE, PREF_AUTODISPLAYS_SHOWGUI, PREF_AUTOSELECTDATA, PREF_CACHESIZE, PREF_CONTROLSINTABS, PREF_DATAPREFIX, PREF_DATE_FORMAT, PREF_DISTANCEUNIT, PREF_DOCACHE, PREF_EMBEDDATACHOOSERINDASHBOARD, PREF_EMBEDFIELDSELECTORINDASHBOARD, PREF_EMBEDLEGENDINDASHBOARD, PREF_EMBEDQUICKLINKSINDASHBOARD, PREF_EVENT_KEYBOARDMAP, PREF_EVENT_MOUSEMAP, PREF_EVENT_WHEELMAP, PREF_FAST_RENDER, PREF_FIELD_CACHETHRESHOLD, PREF_FILEREADDIR, PREF_FILEWRITEDIR, PREF_GEOMETRY_BY_REF, PREF_HISTORY, PREF_IMAGE_BY_REF, PREF_LARGE_REMOTE_DATA_WARN, PREF_LASTVERSION, PREF_LATLON_FORMAT, PREF_LEGEND_SHOWICONS, PREF_LOCALE, PREF_LOOKANDFEEL, PREF_MAX_PERMGENSIZE, PREF_MAXIMAGESIZE, PREF_MEMORY, PREF_NPOT_IMAGE, PREF_OPEN_ASK, PREF_OPEN_MERGE, PREF_OPEN_REMOVE, PREF_PROJ_LIST, PREF_SAMPLINGMODE, PREF_SHOWCONTROLWINDOW, PREF_SHOWDASHBOARD, PREF_SHOWDECODEDIALOG, PREF_SHOWHIDDENFILES, PREF_SHOWQUITCONFIRM, PREF_SITEPATH, PREF_THREADS_DATA, PREF_THREADS_RENDER, PREF_TIMEZONE, PREF_VERTICALCS, PREF_VERTICALUNIT, PREF_WINDOW_SHOWTOOLBAR, PREF_ZIDV_ASK, PREF_ZIDV_DIRECTORY, PREF_ZIDV_SAVETOTMP, PROP_3DMODE, PROP_APPRESOURCEPATH, PROP_CHOOSERS, PROP_CHOOSERS_ALL, PROP_CONTROLDESCRIPTORS, PROP_CONTROLDESCRIPTORS_ALL, PROP_DATAHOLDERBOUNDS, PROP_DEFAULTLOCATIONS, PROP_DISPLAYLIST_GROUP, PROP_FIXFILELOCKUP, PROP_JNLPCODEBASE, PROP_JNLPTEMPLATE, PROP_JNLPTITLE, PROP_LOADINGXML, PROP_MAP_GLOBE_LEVEL, PROP_MAP_MAP_LEVEL, PROP_MINIMUMFRAMECYCLETIME, PROP_MONITORPORT, PROP_OLDCONTROLDESCRIPTORS, PROP_ONEINSTANCEPORT, PROP_PREFERENCES, PROP_PROJ_NAME, PROP_RESOURCEFILES, PROP_SHOWCLOCK, PROP_SHOWDASHBOARD, PROP_SHOWDATATREE, PROP_SHOWFORMULAS, PROP_SHOWSPLASH, PROP_SPLASHICON, PROP_UI_DESKTOP, PROP_USE_TIMEDRIVER, PROP_WINDOW_SCREENSIZEOFFSET, PROP_WINDOW_SIZEHEIGHT, PROP_WINDOW_SIZEWIDTH, PROP_WINDOW_USESCREENSIZE, SUFFIX_BAT, SUFFIX_CPT, SUFFIX_ISL, SUFFIX_JNLP, SUFFIX_RBI, SUFFIX_SH, SUFFIX_XIDV, SUFFIX_XML, SUFFIX_ZIDV
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
AddeChooser(IdvChooserManager mgr, Element root)
          Create an AddeChooser associated with an IdvChooser
 
Method Summary
 void actionPerformed(ActionEvent ae)
          Handle the event
protected  JComponent addDescComp(JComponent comp)
          A utility to add a component to the list of components that need the descriptor
protected  void appendMiscKeyValues(StringBuffer buff)
          Get any extra key=value pairs that are appended to all requests.
 boolean canAccessServer()
           
protected  int checkIfServerIsOk()
          Check if the server is ok
protected  void checkTimesLists()
          Check the times lists
protected  void clearOnChange(JComboBox box)
          Add a listener to the given combobox that will set the state to unconnected
protected  void clearParameterSet()
          Clear the selected parameter set
protected  void connectToServer()
          Connect to the server.
protected static boolean containsGroupName(List<AddeServer.Group> groups, Object group)
          Searches the given List of Groups for group.
protected static boolean containsServerName(List<AddeServer> servers, Object server)
          Searches the given List of AddeServers for server.
protected  void descriptorChanged()
          Respond to a change in the descriptor list.
 void doClickLoad()
           
protected  JComponent doMakeContents()
          Create the basic layout
 void doManager()
          Go directly to the Server Manager
 void doParameters()
          Show the parameter restore tree
protected  void enableWidgets()
          Enable or disable the GUI widgets based on what has been selected.
protected  Map<String,String> getAccounting(AddeServer server, String group)
          Returns a Map containing user and proj keys for the given server/group combination.
protected  Map<String,String> getAccounting(String server, String group)
          Returns a Map containing user and proj keys for the given server/group combination.
 Map<String,String> getAccountingInfo()
           
protected  AddeServer getAddeServer()
          Get the selected AddeServer
 String getDataType()
          Get the data type ID
protected  int getDefaultRelativeTimeIndex()
          Get the default selected index for the relative times list.
protected  String getDescriptor()
          Get the selected descriptor.
protected  String getDescriptorFromSelection(String selection)
          Get the descriptor relating to the selection.
 String getDescriptorLabel()
          Get the descriptor widget label
 Hashtable getDescriptorTable()
          Get the descriptor table for this chooser
protected  String getGroup()
           
protected  String getGroup(boolean fromGetServer)
          Get the image group from the GUI.
 String getLastAddedProj()
           
 String getLastAddedUser()
           
private  List<AddeServer> getManagedServers(String type)
           
protected  int getNumTimesToSelect()
           
protected  String getParameterSetType()
          Return the parameter type associated with this chooser.
private  JMenu getPopupSubMenuForParameterSet(JPopupMenu popup, ParameterSet ps)
           
 String getSelectedDescriptor()
          Get the selected descriptor.
protected static int getSelectorIndex(Object needle, JComboBox haystack)
          Search a given JComboBox for the index of a given object.
 String getServer()
          return the String id of the chosen server name
 JComboBox getServerSelector()
          Get the server selector
protected  String getStateString()
           
 void handleConnect()
          Handle when the user presses the connect button
protected  void handleConnectionError(Exception e)
           
protected  void handleUnknownDataSetError()
          Handle unknown data set error
protected  boolean haveDescriptorSelected()
          Check if a descriptor (image type) has been chosen
 void hideParameterButton()
           
private  boolean isBadServer(String name, String group)
           
protected  boolean isGroupEditable()
          Is the group selector editable?
private  boolean isLastServer(String name, String group)
           
protected  boolean isLocalServer()
          Decide if the server you're asking about is local
protected static boolean isLocalServer(AddeServer checkServer)
           
protected static boolean isSeparator(AddeServer checkServer)
          Decide if the server you're asking about is actually a separator
private  void loadServerState()
          Load any saved server state
private  JMenu makeMenuRecursive(JMenu rootMenu, List<String> menuNames)
          Make a new recursive menu
protected  JPanel makeTimesPanel(JComponent relativeCard, JComponent absoluteCard)
          Set the relative and absolute extra components
private  JMenu mergeMenuNames(JMenu thisMenu, List<String> menuNames)
          Recurse into a menu, returning either a pointer to the designated names path or a pointer to the leaf menu added by merging new names
 void onServerManagerDataEvent(EntryStore.Event evt)
           
 void onServerManagerWindowEvent(TabbedAddeManager.Event evt)
           
protected  void readDescriptors()
          Generate a list of image descriptors for the descriptor list.
protected  void readFromServer()
          Do server connection stuff... override this with type-specific methods
protected  void resetDescriptorBox()
          Reset the descriptor stuff
protected  void restoreAbsoluteTimes()
           
protected  boolean restoreParameterSet(Element restoreElement)
          Restore the selected parameter set using element attributes
 void saveServerState()
          Saves the currently selected server and group to a chooser-specific preference.
protected  void setAbsoluteTimes(List times)
          Set the absolute times list.
private  void setBadServer(String name, String group)
           
protected  void setDescriptors(String[] names)
          Initialize the descriptor list from a list of names
 void setHaveData(boolean have)
          Override and simulate clicking Add Source if requested
protected  void setInnerPanel(JPanel newInnerPanel)
           
private  void setLastServer(String name, String group, AddeServer server)
           
protected  void setSelectString(String string)
          Set LABEL_SELECT from elsewhere
 void setStatus(String statusString, String foo)
          Super setStatus() takes a second string to enable "simple" mode which highlights the required component.
 void showGroups()
          Show the groups dialog.
 void showParameterButton()
          show/hide the parameter restore button
private  void showParameterSetDialog(String parameterSetType)
          Show the parameter set manager
 void showServers()
           
 void updateGroups()
          Sort the groups alphabetically
 void updateServerList()
          Force a reload of the available servers and groups.
 void updateServers()
           
protected  void updateStatus()
          Disable/enable any components that depend on the server.
 
Methods inherited from class ucar.unidata.idv.chooser.adde.AddeChooser
addServerComp, addTopComponents, addTopComponents, appendKeyValue, canDoCancel, doConnect, doUpdate, getConnectButton, getDataName, getDataSetName, getGoodToGo, getGroupType, getGroupUrl, getLoadToolTip, getMiscKeyProps, getMiscKeywords, getPort, getState, getUrl, handleConnectFromThread, handleUpdate, handleUpdateFromThread, readGroups, readTextLines, readTimes, removeGroup, removeServer, setGroups, setState
 
Methods inherited from class ucar.unidata.idv.chooser.TimesChooser
absoluteTimesSelectionChanged, addTimeSelectionListener, checkActiveViewWithDriver, clearTimesList, disableTimeWidgets, doLoad, enableAbsoluteTimesList, enableTimeWidgets, getAbsoluteTimes, getAbsoluteTimeSelectMode, getDefaultTimeDriverIndex, getDoAbsoluteTimes, getDoRelativeTimes, getDoTimeDrivers, getExtraAbsoluteTimeComponent, getExtraRelativeTimeComponent, getExtraTimeComponent, getHaveAbsoluteTimesSelected, getRelativeTimeIncrement, getRelativeTimeIndices, getRelativeTimesChooser, getRelativeTimesList, getSelectedAbsoluteTimes, getTimeDriverPopupMenu, getTimeDrivers, getTimeLine, getTimesList, haveAnyTimes, haveTimeSelected, makeDatedObjects, makeTimesPanel, makeTimesPanel, makeTimesPanel, makeTimesPanel, popupTimeline, readDrivers, setDoAbsoluteTimes, setDoTimeDrivers, setSelectedAbsoluteTime, setSelectedAbsoluteTime, setSelectedAbsoluteTimes, setSelectedAbsoluteTimes, setSelectedTimes, setTimeDrivers, updateTimeDriver, updatetimeline
 
Methods inherited from class ucar.unidata.idv.chooser.IdvChooser
clearSelectedStations, clearStations, closeChooser, createStationMap, decorateButtons, doCancel, doClose, errorMessage, getAttribute, getContents, getDataManager, getDataSource, getDataSourceId, getDataSourceId, getDataSourceProperties, getDataSourcesComponent, getDataSourcesComponent, getDataSourcesComponent, getDataSourcesComponent, getDefaultButtons, getDefaultDisplayType, getDefaultMap, getDefaultMaps, getDefaultProjection, getDefaultProjectionRect, getHaveStations, getId, getIdv, getMenuTitle, getPreferenceList, getPreferenceList, getPreferenceList, getPreferenceList, getProperty, getProperty, getPropList, getSelectedStation, getSelectedStations, getShowInMenu, getStationMap, getStatusLabel, getStatusLabelBackground, getStatusLabelForeground, getTitle, getXmlNode, haveStationSelected, init, initChooserPanel, initStationMap, isReloadable, logException, makeDataSource, makeDataSource, makeTimeMenus, newSelectedStations, resetDataSourceId, setDataSource, setDataSourceListener, shouldDoUpdateOnFirstDisplay, showNormalCursor, showWaitCursor, startTask, stopTask, stopTaskAndIsOk, taskOk, userMessage, usingStations
 
Methods inherited from class ucar.unidata.ui.ChooserPanel
addPropertyChangeListener, canDoUpdate, clearWaitCursor, doHelp, doLoadInThread, firePropertyChange, getButtonLabels, getDefaultButtons, getHaveData, getLoadCommandName, getMessageTemplate, getSimpleMode, getStatusComponent, getUpdateToolTip, padLabel, registerStatusComp, revalidate, setHelpPath, setMessageTemplate, setStatus, showNormalCursor, showWaitCursor
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

private static final org.slf4j.Logger logger

serverSelector

private JComboBox serverSelector

descList

private PreferenceList descList
List of descriptors


descriptorTable

protected Hashtable descriptorTable
Descriptor/name hashtable


descriptorList

protected List<String> descriptorList
List of available descriptors.


commentList

protected List<String> commentList
List of comments associated with list of descriptors.


DESCRIPTOR_TABLE

public static final String DESCRIPTOR_TABLE
Property for the descriptor table

See Also:
Constant Field Values

connectButton

JButton connectButton
Connect button--we need to be able to disable this


parameterButton

JButton parameterButton
Parameter button--we need to be able to disable this


manageButton

JButton manageButton
Manage button


publicButton

JButton publicButton
Public button--we need to draw a menu from this


descriptorLabel

protected JLabel descriptorLabel
descriptor label


descriptorComboBox

protected JComboBox descriptorComboBox
A widget for the list of dataset descriptors


descriptorNames

protected String[] descriptorNames
The descriptor names


ignoreDescriptorChange

protected boolean ignoreDescriptorChange
Flag to keep from infinite looping


compsThatNeedDescriptor

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


LABEL_SELECT

protected String LABEL_SELECT
Selection label text


separator

protected static String separator
Separator string


nameSeparator

protected static String nameSeparator
Name separator string


serverManager

protected EntryStore serverManager
Reference back to the server manager


allServersFlag

public boolean allServersFlag

CMD_MANAGER

protected static final String CMD_MANAGER
Command for opening up the server manager

See Also:
Constant Field Values

lastBadServer

private String lastBadServer

lastBadGroup

private String lastBadGroup

lastServerName

private String lastServerName

lastServerGroup

private String lastServerGroup

lastServerUser

private String lastServerUser

lastServerProj

private String lastServerProj

lastServer

private AddeServer lastServer

addeServers

private List<AddeServer> addeServers

TAG_FOLDER

private static final String TAG_FOLDER
Used for parameter set restore

See Also:
Constant Field Values

TAG_DEFAULT

private static final String TAG_DEFAULT
See Also:
Constant Field Values

ATTR_NAME

private static final String ATTR_NAME
See Also:
Constant Field Values

ATTR_SERVER

private static final String ATTR_SERVER
See Also:
Constant Field Values

ATTR_GROUP

private static final String ATTR_GROUP
See Also:
Constant Field Values

ATTR_DESCRIPTOR

private static final String ATTR_DESCRIPTOR
See Also:
Constant Field Values

ATTR_POS

private static final String ATTR_POS
See Also:
Constant Field Values

ATTR_DAY

private static final String ATTR_DAY
See Also:
Constant Field Values

ATTR_TIME

private static final String ATTR_TIME
See Also:
Constant Field Values

restoreTimes

private List restoreTimes

restoreElement

public Element restoreElement

shouldAddSource

private boolean shouldAddSource

cb

final JCheckBox cb

parameterTrees

private Hashtable parameterTrees
Maps favorite type to the BundleTree that shows the Manage window for the type


addingServer

private boolean addingServer

timesCardPanelExtra

private GuiUtils.CardLayoutPanel timesCardPanelExtra
Card panel to hold extra relative and absolute time components


innerPanel

private JPanel innerPanel
Make the UI for this selector. Thank you NetBeans for helping with the layout!


statusLabel

private JLabel statusLabel
Constructor Detail

AddeChooser

public AddeChooser(IdvChooserManager mgr,
                   Element root)
Create an AddeChooser associated with an IdvChooser

Parameters:
mgr - The chooser manager
root - The chooser.xml node
Method Detail

updateServerList

public void updateServerList()
Force a reload of the available servers and groups.

Overrides:
updateServerList in class AddeChooser

getAccounting

protected Map<String,String> getAccounting(String server,
                                           String group)
Returns a Map containing user and proj keys for the given server/group combination.

The values are either the specific ADDE account details for server/group or DEFAULT_ACCOUNT values.

Parameters:
server - Server name. Should not be null.
group - Group name on name. Should not be null.
Returns:
Map containing the accounting details for server/group.

getAccounting

protected Map<String,String> getAccounting(AddeServer server,
                                           String group)
Returns a Map containing user and proj keys for the given server/group combination.

The values are either the specific ADDE account details for server/group or DEFAULT_ACCOUNT values.

Parameters:
server - Server name. Should not be null.
group - Group name on name. Should not be null.
Returns:
Map containing the accounting details for server/group.

getManagedServers

private List<AddeServer> getManagedServers(String type)

updateServers

public void updateServers()

containsServerName

protected static boolean containsServerName(List<AddeServer> servers,
                                            Object server)
Searches the given List of AddeServers for server.

Parameters:
servers - Servers to search. null is permitted.
server - Server to search for within servers. null is permitted.
Returns:
true if servers contains server or false otherwise.

containsGroupName

protected static boolean containsGroupName(List<AddeServer.Group> groups,
                                           Object group)
Searches the given List of Groups for group.

Parameters:
groups - Groups to search. null is permitted.
group - Group to search for within group. null is permitted.
Returns:
true if groups contains group or false otherwise.

updateGroups

public void updateGroups()
Sort the groups alphabetically


loadServerState

private void loadServerState()
Load any saved server state


isSeparator

protected static boolean isSeparator(AddeServer checkServer)
Decide if the server you're asking about is actually a separator


isLocalServer

protected boolean isLocalServer()
Decide if the server you're asking about is local


isLocalServer

protected static boolean isLocalServer(AddeServer checkServer)

setBadServer

private void setBadServer(String name,
                          String group)

isBadServer

private boolean isBadServer(String name,
                            String group)

setLastServer

private void setLastServer(String name,
                           String group,
                           AddeServer server)

isLastServer

private boolean isLastServer(String name,
                             String group)

onServerManagerDataEvent

public void onServerManagerDataEvent(EntryStore.Event evt)

onServerManagerWindowEvent

public void onServerManagerWindowEvent(TabbedAddeManager.Event evt)

getSelectorIndex

protected static int getSelectorIndex(Object needle,
                                      JComboBox haystack)
Search a given JComboBox for the index of a given object. Mostly useful for searching serverSelector or AddeChooser.groupSelector.

Parameters:
needle - An object. null values are permitted.
haystack - JComboBox to search. null values are permitted, but return -1.
Returns:
Either the index of needle within haystack, or -1 if needle could not be found (or haystack is null).

getAddeServer

protected AddeServer getAddeServer()
Get the selected AddeServer

Returns:
the server or null

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

setSelectString

protected void setSelectString(String string)
Set LABEL_SELECT from elsewhere


resetDescriptorBox

protected void resetDescriptorBox()
Reset the descriptor stuff


handleConnect

public void handleConnect()
                   throws Exception
Handle when the user presses the connect button

Overrides:
handleConnect in class AddeChooser
Throws:
Exception - On badness

handleConnectionError

protected void handleConnectionError(Exception e)
Overrides:
handleConnectionError in class AddeChooser

handleUnknownDataSetError

protected void handleUnknownDataSetError()
Handle unknown data set error

Overrides:
handleUnknownDataSetError in class AddeChooser

actionPerformed

public void actionPerformed(ActionEvent ae)
Handle the event

Specified by:
actionPerformed in interface ActionListener
Overrides:
actionPerformed in class AddeChooser
Parameters:
ae - The event

doManager

public void doManager()
Go directly to the Server Manager


doParameters

public void doParameters()
Show the parameter restore tree


getPopupSubMenuForParameterSet

private JMenu getPopupSubMenuForParameterSet(JPopupMenu popup,
                                             ParameterSet ps)

makeMenuRecursive

private JMenu makeMenuRecursive(JMenu rootMenu,
                                List<String> menuNames)
Make a new recursive menu

Parameters:
rootMenu - The root menu to add items to
menuNames - List of string names for submenus
Returns:
A new JMenu representing the leaf

mergeMenuNames

private JMenu mergeMenuNames(JMenu thisMenu,
                             List<String> menuNames)
Recurse into a menu, returning either a pointer to the designated names path or a pointer to the leaf menu added by merging new names

Parameters:
thisMenu - The root menu to merge
menuNames - List of string names to look for
Returns:
A new JMenu representing the leaf matched by menuNames

getParameterSetType

protected String getParameterSetType()
Return the parameter type associated with this chooser. Override!


showParameterSetDialog

private void showParameterSetDialog(String parameterSetType)
Show the parameter set manager


clearParameterSet

protected void clearParameterSet()
Clear the selected parameter set


restoreParameterSet

protected boolean restoreParameterSet(Element restoreElement)
Restore the selected parameter set using element attributes

Parameters:
restoreElement -
Returns:

setAbsoluteTimes

protected void setAbsoluteTimes(List times)
Set the absolute times list. The times list can contain any of the object types that makeDatedObjects knows how to handle, i.e., Date, visad.DateTime, DatedThing, AddeImageDescriptor, etc.

Overrides:
setAbsoluteTimes in class TimesChooser
Parameters:
times - List of thinggs to put into absolute times list

restoreAbsoluteTimes

protected void restoreAbsoluteTimes()

showParameterButton

public void showParameterButton()
show/hide the parameter restore button


hideParameterButton

public void hideParameterButton()

setHaveData

public void setHaveData(boolean have)
Override and simulate clicking Add Source if requested

Overrides:
setHaveData in class ChooserPanel

doClickLoad

public void doClickLoad()

showServers

public void showServers()

getStateString

protected String getStateString()

updateStatus

protected void updateStatus()
Disable/enable any components that depend on the server. Try to update the status label with what we know here.

Overrides:
updateStatus in class AddeChooser

getDataType

public String getDataType()
Get the data type ID

Overrides:
getDataType in class AddeChooser
Returns:
the data type

checkIfServerIsOk

protected int checkIfServerIsOk()
Check if the server is ok

Overrides:
checkIfServerIsOk in class AddeChooser
Returns:
status code

canAccessServer

public boolean canAccessServer()
Overrides:
canAccessServer in class AddeChooser

getAccountingInfo

public Map<String,String> getAccountingInfo()

saveServerState

public void saveServerState()
Saves the currently selected server and group to a chooser-specific preference. Preference ID is PREF_SERVERSTATE+'.'+getId().

Overrides:
saveServerState in class AddeChooser

connectToServer

protected void connectToServer()
Connect to the server.


readFromServer

protected void readFromServer()
Do server connection stuff... override this with type-specific methods


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

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

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. Can be null.
Returns:
Either the descriptor associated with selection or null if descriptorTable or selection is null.

getSelectedDescriptor

public String getSelectedDescriptor()
Get the selected descriptor.

Returns:
the selected descriptor

getDescriptorTable

public Hashtable getDescriptorTable()
Get the descriptor table for this chooser

Returns:
a Hashtable of descriptors and names

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 onto

getLastAddedUser

public String getLastAddedUser()

getLastAddedProj

public String getLastAddedProj()

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).


getServer

public String getServer()
return the String id of the chosen server name

Overrides:
getServer in class AddeChooser
Returns:
the server name

getGroup

protected String getGroup()
Overrides:
getGroup in class AddeChooser

isGroupEditable

protected boolean isGroupEditable()
Is the group selector editable? Override if ya want.

Returns:

getGroup

protected String getGroup(boolean fromGetServer)
Get the image group from the GUI.

Returns:
The image group.

getServerSelector

public JComboBox getServerSelector()
Get the server selector

Overrides:
getServerSelector in class AddeChooser
Returns:
The server selector

enableWidgets

protected void enableWidgets()
Enable or disable the GUI widgets based on what has been selected.

Overrides:
enableWidgets in class AddeChooser

clearOnChange

protected void clearOnChange(JComboBox box)
Add a listener to the given combobox that will set the state to unconnected

Overrides:
clearOnChange in class AddeChooser
Parameters:
box - The box to listen to.

getDescriptorLabel

public String getDescriptorLabel()
Get the descriptor widget label

Returns:
label for the descriptor widget

getNumTimesToSelect

protected int getNumTimesToSelect()
Overrides:
getNumTimesToSelect in class TimesChooser

getDefaultRelativeTimeIndex

protected int getDefaultRelativeTimeIndex()
Get the default selected index for the relative times list.

Overrides:
getDefaultRelativeTimeIndex in class AddeChooser
Returns:
default index

checkTimesLists

protected void checkTimesLists()
Check the times lists

Overrides:
checkTimesLists in class TimesChooser

makeTimesPanel

protected JPanel makeTimesPanel(JComponent relativeCard,
                                JComponent absoluteCard)
Set the relative and absolute extra components


setStatus

public void setStatus(String statusString,
                      String foo)
Super setStatus() takes a second string to enable "simple" mode which highlights the required component. We don't really care about that feature, and we don't want getStatusLabel() to change the label background color.

Overrides:
setStatus in class ChooserPanel

setInnerPanel

protected void setInnerPanel(JPanel newInnerPanel)

doMakeContents

protected JComponent doMakeContents()
Create the basic layout

Overrides:
doMakeContents in class ChooserPanel