edu.wisc.ssec.mcidasv.startupmanager
Class StartupManager

java.lang.Object
  extended by edu.wisc.ssec.mcidasv.startupmanager.StartupManager
All Implemented Interfaces:
Constants, IdvConstants

public class StartupManager
extends Object
implements Constants


Nested Class Summary
private static class StartupManager.ApplyButton
           
private static class StartupManager.CancelButton
           
private static class StartupManager.CommandButton
           
private static class StartupManager.HelpButton
           
static class StartupManager.IconCellRenderer
           
private static class StartupManager.OkButton
           
static class StartupManager.TreeCellRenderer
           
 
Field Summary
private  JPanel ADVANCED_PANEL
          Panel containing the startup options.
private  JPanel BAD_CHOICE_PANEL
          Panel to use for all other preference panels while running startup manager.
private  JPanel COMMAND_ROW_PANEL
          Contains the various buttons (Apply, Ok, Help, Cancel).
private static String HELP_PATH
          Path to the McIDAS-V help set within mcv_userguide.jar.
private static String HELP_TARGET
          ID of the startup prefs help page.
static RenderingHints HINTS
          Cached copy of the application rendering hints.
private static StartupManager instance
           
private  JList panelList
          Contains the list of the different preference panels.
private  Platform platform
          The type of platform as reported by determinePlatform().
static String[][] PREF_PANELS
           
static Object[][] RENDER_HINTS
           
static String USAGE_MESSAGE
          usage message
 
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
 
Constructor Summary
private StartupManager()
           
 
Method Summary
static void applyArgs(boolean ignoreUnknown, boolean fromStartupManager, String[] args)
          Applies the command line arguments to the startup preferences.
private  JPanel buildAdvancedPanel()
          Creates and returns the advanced preferences panel.
private  JPanel buildCommandRow()
          Builds and returns a JPanel containing the various buttons that control the startup manager.
private  JPanel buildUnavailablePanel()
          Creates and returns a dummy panel.
 void copy(File src, File dst)
          Copies a file.
protected  void createDisplay()
          Build and display the startup manager window.
private  Platform determinePlatform()
          Figures out the type of platform.
 JPanel getAdvancedPanel(boolean forceBuild)
          Returns the advanced preferences panel.
static Properties getArgs(boolean ignoreUnknown, boolean fromStartupManager, String[] args, Properties defaults)
          Extract any command-line properties and their corresponding values.
 JPanel getCommandRow()
          Returns a panel containing the Apply/Ok/Help/Cancel buttons.
static Properties getDefaultProperties()
           
static StartupManager getInstance()
           
static int getMaximumHeapSize()
           
 Platform getPlatform()
          Returns either Platform.UNIXLIKE or Platform.WINDOWS.
static RenderingHints getRenderingHints()
          Creates and returns the rendering hints for the GUI.
private  Container getSelectedPanel()
          Returns the preferences panel that corresponds with the user's JList selection.
 JPanel getUnavailablePanel()
           
protected static String getUsageMessage()
          Return the command line usage message.
 void handleApply()
          Saves the changes to the preferences and quits.
protected  void handleCancel()
          Simply quits the program.
protected  void handleHelp()
          Shows the startup preferences help page.
protected  void handleOk()
          Saves the preference changes.
static void main(String[] args)
           
private static void usage(String err)
          Print out the command line usage message and exit.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PREF_PANELS

public static final String[][] PREF_PANELS

RENDER_HINTS

public static final Object[][] RENDER_HINTS

USAGE_MESSAGE

public static final String USAGE_MESSAGE
usage message

See Also:
Constant Field Values

HELP_PATH

private static final String HELP_PATH
Path to the McIDAS-V help set within mcv_userguide.jar.

See Also:
Constant Field Values

HELP_TARGET

private static final String HELP_TARGET
ID of the startup prefs help page.

See Also:
Constant Field Values

platform

private final Platform platform
The type of platform as reported by determinePlatform().


HINTS

public static final RenderingHints HINTS
Cached copy of the application rendering hints.


panelList

private final JList panelList
Contains the list of the different preference panels.


ADVANCED_PANEL

private JPanel ADVANCED_PANEL
Panel containing the startup options.


BAD_CHOICE_PANEL

private JPanel BAD_CHOICE_PANEL
Panel to use for all other preference panels while running startup manager.


COMMAND_ROW_PANEL

private JPanel COMMAND_ROW_PANEL
Contains the various buttons (Apply, Ok, Help, Cancel).


instance

private static StartupManager instance
Constructor Detail

StartupManager

private StartupManager()
Method Detail

getInstance

public static StartupManager getInstance()

getRenderingHints

public static RenderingHints getRenderingHints()
Creates and returns the rendering hints for the GUI. Built from RENDER_HINTS

Returns:
Hints to use when displaying the GUI.

determinePlatform

private Platform determinePlatform()
Figures out the type of platform. Queries the "os.name" system property to determine the platform type.

Returns:
Platform.UNIXLIKE or Platform.WINDOWS.

getPlatform

public Platform getPlatform()
Returns either Platform.UNIXLIKE or Platform.WINDOWS.

Returns:
The platform as determined by determinePlatform().

handleApply

public void handleApply()
Saves the changes to the preferences and quits. Unlike the other button handling methods, this one is public. This was done so that the advanced preferences (within McIDAS-V) can force an update to the startup prefs.


handleOk

protected void handleOk()
Saves the preference changes.


handleHelp

protected void handleHelp()
Shows the startup preferences help page.


handleCancel

protected void handleCancel()
Simply quits the program.


getSelectedPanel

private Container getSelectedPanel()
Returns the preferences panel that corresponds with the user's JList selection.

In the context of the startup manager, this means that any JList selection other than "Advanced" will return the results of getUnavailablePanel(). Otherwise the results of getAdvancedPanel(boolean) will be returned.

Returns:
Either the advanced preferences panel or an "unavailable", depending upon the user's selection.

buildUnavailablePanel

private JPanel buildUnavailablePanel()
Creates and returns a dummy panel.

Returns:
Panel containing only a note about "options unavailable."

buildAdvancedPanel

private JPanel buildAdvancedPanel()
Creates and returns the advanced preferences panel.

Returns:
Panel with all of the various startup options.

buildCommandRow

private JPanel buildCommandRow()
Builds and returns a JPanel containing the various buttons that control the startup manager. These buttons offer identical functionality to those built by the IDV's preference manager code.

Returns:
A JPanel containing the following types of buttons: StartupManager.ApplyButton, StartupManager.OkButton, StartupManager.HelpButton, and StartupManager.CancelButton.
See Also:
GuiUtils.makeApplyOkHelpCancelButtons(ActionListener)

getAdvancedPanel

public JPanel getAdvancedPanel(boolean forceBuild)
Returns the advanced preferences panel. Differs from the buildAdvancedPanel() in that a panel isn't created, unless forceBuild is true.

Parameters:
forceBuild - Always rebuilds the advanced panel if true.
Returns:
Panel containing the startup options.

getUnavailablePanel

public JPanel getUnavailablePanel()

getCommandRow

public JPanel getCommandRow()
Returns a panel containing the Apply/Ok/Help/Cancel buttons.

Returns:
Panel containing the the command row.

createDisplay

protected void createDisplay()
Build and display the startup manager window.


copy

public void copy(File src,
                 File dst)
          throws IOException
Copies a file.

Parameters:
src - The file to copy.
dst - The path to the copy of src.
Throws:
IOException - If there was a problem while attempting to copy.

getDefaultProperties

public static Properties getDefaultProperties()

getArgs

public static Properties getArgs(boolean ignoreUnknown,
                                 boolean fromStartupManager,
                                 String[] args,
                                 Properties defaults)
Extract any command-line properties and their corresponding values.

May print out usage information if a badly formatted "property=value" pair is encountered, or when an unknown argument is found (depending on value of the ignoreUnknown parameter).

NOTE: null is not a permitted value for any parameter.

Parameters:
ignoreUnknown - Whether or not to handle unknown arguments.
fromStartupManager - Whether or not this call originated from startupmanager.jar.
args - Array containing command-line arguments.
defaults - Default parameter values.
Returns:
Command-line arguments as a collection of property identifiers and values.

getMaximumHeapSize

public static int getMaximumHeapSize()

usage

private static void usage(String err)
Print out the command line usage message and exit. Taken entirely from ArgsManager.

Parameters:
err - The usage message

getUsageMessage

protected static String getUsageMessage()
Return the command line usage message.

Returns:
The usage message

applyArgs

public static void applyArgs(boolean ignoreUnknown,
                             boolean fromStartupManager,
                             String[] args)
Applies the command line arguments to the startup preferences. This function is mostly useful because it allows us to supply an arbitrary args array, link in McIDASV.main(String[]).

Parameters:
ignoreUnknown - If true ignore any parameters that do not apply to the startup manager. If false the non-applicable parameters should signify an error.
fromStartupManager - Whether or not this call originated from the startup manager (rather than preferences).
args - Incoming command line arguments. Cannot be null.
Throws:
NullPointerException - if args is null.
See Also:
getArgs(boolean, boolean, String[], Properties)

main

public static void main(String[] args)