public class ArgumentManager extends ArgsManager
Modifier and Type | Field and Description |
---|---|
static String |
ARG_DOACTION
Flag that allows users to automatically run an action after startup.
|
static String |
ARG_JYTHONARGS
McIDAS-V flag that signifies everything that follows is a Jython
argument.
|
static String |
ARG_LOGPATH
Flag used to set the path to mcidasv.log.
|
(package private) String |
defaultUserDirectory
Given by the "-user" argument.
|
private static org.slf4j.Logger |
helpLogger |
private List<String> |
jythonArguments
Jython arguments, if any.
|
private String |
jythonScript
Jython script to execute, or "<none>" if one was not given.
|
static String |
NO_PYTHON_MODULE
"__name__" to use when no Jython/Python script has been
provided at startup.
|
private String |
startupAction
Holds the ID of an action to automatically run after starting McV.
|
static String |
USAGE_MESSAGE
Usage message.
|
argDisplayB64Xml, argXidvFiles, b64Bundles, fileMappingFiles, fileMappingIds, initDisplays, initParams, installPlugins, jythonCode, listResources, noGui, persistentCommandLineArgs, plugins, printJnlpBundles, RUNNABLE_MAX_TRIES, scriptingFiles, testArchive, testDir, testEval, testMode
contents, dialog, frame, window
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_DOCPATH, 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_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_ABOUTTEXT, 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_DASH, PROP_SHOWCLOCK_VIEW, PROP_SHOWDASHBOARD, PROP_SHOWDATATREE, PROP_SHOWFORMULAS, PROP_SHOWSPLASH, PROP_SPLASHICON, PROP_UI_DESKTOP, PROP_USE_DISPLAYAREA, PROP_USE_TIMEDRIVER, PROP_VERSIONFILE, 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 and Description |
---|
ArgumentManager(IntegratedDataViewer idv,
String[] args)
Just bubblin' on up the inheritance hierarchy.
|
Modifier and Type | Method and Description |
---|---|
protected void |
clearAutomaticDisplayArgs()
Clears out the automatic display creation arguments by setting
ArgsManager.initParams and ArgsManager.initDisplays to
Collections.emptyList() . |
private static List<String> |
extractJythonArgs(int index,
String... args) |
List<PatternFileFilter> |
getBundleFileFilters() |
List<PatternFileFilter> |
getBundleFilters(boolean fromOpen)
Returns a list of
PatternFileFilter s that can be used to determine
if a file is a bundle. |
List<String> |
getJythonArguments()
Returns Jython arguments.
|
String |
getJythonScript()
Returns the name of the Jython script the user has provided.
|
private static JComponent |
getMessageComponent(String msg,
boolean breakLines)
Get the
JComponent that displays the given message. |
protected String |
getUsageMessage()
Append some McIDAS-V specific command line options to the default IDV
usage message.
|
PatternFileFilter |
getXidvFileFilter() |
PatternFileFilter |
getXidvZidvFileFilter() |
PatternFileFilter |
getZidvFileFilter() |
boolean |
hasJythonArguments()
Determine whether or not the user has provided any arguments for a
Jython script.
|
static boolean |
isBundle(String name)
Tests
name to see if it has a known bundle extension. |
boolean |
isXidvFile(String name) |
static boolean |
isXmlBundle(String name)
Tests to see if
name has a known XML bundle extension. |
boolean |
isZidvFile(String name) |
static boolean |
isZippedBundle(String name)
Tests to see if
name has a known zipped bundle extension. |
protected String |
msg(String arg,
String desc)
Format a line in the "usage message" output.
|
protected int |
parseArg(String arg,
String[] args,
int idx)
Currently we're only handling the
-forceaqua flag so we can
mitigate some overlay issues we've been seeing on OS X Leopard. |
protected void |
processInitialBundles()
Gets called by the IDV to process the set of initial files, e.g.,
default bundles, command line bundles, jnlp files, etc.
|
void |
runStartupAction()
Runs the action ID stored in
startupAction . |
void |
usage(String err)
Print out the command line usage message and exit
|
static void |
userErrorMessage(String msg,
boolean breakLines)
Show a dialog containing an error message.
|
static void |
userMessage(String msg,
boolean breakLines)
Show a dialog containing a message.
|
checkArg, getCollabHostName, getCollabPort, getDoCollabServer, getFixedTimeString, getInitCatalogs, getIslInteractive, getIsOffScreen, getNoGui, getOriginalArgs, initDone, isBundleFile, isDisplayXmlFile, isIslFile, isJnlpFile, isRbiFile, isScriptingMode, parseArgs, parseArgs, preprocessArgs, processInstanceArgs, setIsOffScreen
getArgsManager, getCollabManager, getColorTableManager, getDataManager, getIdv, getIdvChooserManager, getIdvClass, getIdvProjectionManager, getIdvUIManager, getImageGenerator, getInstallManager, getJythonManager, getPersistenceManager, getPreferenceManager, getProperty, getProperty, getProperty, getPublishManager, getResourceManager, getStateManager, getStationModelManager, getStore, getVMManager, logException, showNormalCursor, showWaitCursor, waitUntilDisplaysAreDone, waitUntilDisplaysAreDone
actionPerformed, close, doMakeContents, getContents, getDialog, getFrame, getWindow, getWindowTitle, isShowing, removeAll, setMenuBar, setWindowTitle, shouldMakeDialog, show, show, showModal, toFront, windowIsClosing
private static final org.slf4j.Logger helpLogger
public static final String ARG_JYTHONARGS
public static final String ARG_LOGPATH
public static final String ARG_DOACTION
public static final String USAGE_MESSAGE
public static final String NO_PYTHON_MODULE
private List<String> jythonArguments
private String jythonScript
private String startupAction
String defaultUserDirectory
public ArgumentManager(IntegratedDataViewer idv, String[] args)
idv
- The IDV instance.args
- The command line arguments that were given.private static List<String> extractJythonArgs(int index, String... args)
protected int parseArg(String arg, String[] args, int idx) throws Exception
-forceaqua
flag so we can
mitigate some overlay issues we've been seeing on OS X Leopard.parseArg
in class ArgsManager
arg
- The current argument we're examining.args
- The actual array of arguments.idx
- The index of arg
within args
.Exception
- Throw bad things off to something that can handle 'em!public void runStartupAction()
startupAction
.
Calling this method will result in the contents of startupAction
being deleted.private static JComponent getMessageComponent(String msg, boolean breakLines)
JComponent
that displays the given message.msg
- Message to display.breakLines
- Whether or not "long" lines should be broken up.JComponent
that displays msg
.public static void userMessage(String msg, boolean breakLines)
msg
- Message to display.breakLines
- If true
, long lines are split.public static void userErrorMessage(String msg, boolean breakLines)
msg
- Error message to display.breakLines
- If true
, long lines are split.public void usage(String err)
usage
in class ArgsManager
err
- The usage messageprotected String msg(String arg, String desc)
ArgsManager.msg(String, String)
is that this method prefixes
each line with four "space" characters, rather than a single
"tab" character.msg
in class ArgsManager
arg
- Commandline argument.desc
- Description of the argument.getUsageMessage()
.protected String getUsageMessage()
getUsageMessage
in class ArgsManager
public boolean hasJythonArguments()
true
if the user has provided Jython arguments,
false
otherwise.public List<String> getJythonArguments()
public String getJythonScript()
protected void processInitialBundles() throws VisADException, RemoteException
Overridden by McIDAS-V to remove bundle file paths that are zero
characters long. This was happening because runMcV.bat
was
always passing '-bundle ""' on the command line (for Windows).
processInitialBundles
in class ArgsManager
VisADException
- When something untoward happensRemoteException
- When something untoward happenspublic List<PatternFileFilter> getBundleFileFilters()
getBundleFileFilters
in class ArgsManager
ArgsManager.getBundleFileFilters()
public List<PatternFileFilter> getBundleFilters(boolean fromOpen)
PatternFileFilter
s that can be used to determine
if a file is a bundle.
If fromOpen
is true
, the
returned list will contain PatternFileFilter
s for bundles as
well as ISL files. If false
, the returned list will only
contain filters for XML and zipped bundles.
fromOpen
- Whether or not this has been called from an
"open file" dialog.public PatternFileFilter getXidvFileFilter()
getXidvFileFilter
in class ArgsManager
ArgsManager.getXidvFileFilter()
public PatternFileFilter getZidvFileFilter()
getZidvFileFilter
in class ArgsManager
ArgsManager.getZidvFileFilter()
public PatternFileFilter getXidvZidvFileFilter()
getXidvZidvFileFilter
in class ArgsManager
ArgsManager.getXidvZidvFileFilter()
public boolean isZidvFile(String name)
isZidvFile
in class ArgsManager
public boolean isXidvFile(String name)
isXidvFile
in class ArgsManager
public static boolean isXmlBundle(String name)
name
has a known XML bundle extension.name
- Name of the bundle.name
has an XML bundle suffix.public static boolean isZippedBundle(String name)
name
has a known zipped bundle extension.name
- Name of the bundle.name
has zipped bundle suffix.public static boolean isBundle(String name)
name
to see if it has a known bundle extension.name
- Name of the bundle.name
has a bundle suffix.protected void clearAutomaticDisplayArgs()
ArgsManager.initParams
and ArgsManager.initDisplays
to
Collections.emptyList()
.