Skip to content
Snippets Groups Projects
Commit 6791c3a3 authored by Paul McCarthy's avatar Paul McCarthy
Browse files

fslview_parseargs module updated to account for the new dynamic-ness of

the Display.overlayType property - uses new feature in props.cli module,
which allows the choices and default value to be overridden for Choice
properties.
parent 9cbd1435
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,10 @@
# Author: Paul McCarthy <pauldmccarthy@gmail.com>
#
import display
from displaycontext import DisplayContext
from display import Display
from sceneopts import SceneOpts
......@@ -14,3 +18,11 @@ from volumeopts import VolumeOpts
from maskopts import MaskOpts
from vectoropts import VectorOpts
from vectoropts import LineVectorOpts
ALL_OVERLAY_TYPES = list(set(
reduce(lambda a, b: a + b,
display.OVERLAY_TYPES.values())))
"""This attribute contains a list of all possible overlay types - see the :
:attr:`.Display.overlayType` property.
"""
......@@ -300,6 +300,14 @@ HELP = td.TypeDict({
'ModelOpts.outline' : 'Show model outline',
})
# Extra settings for some properties, passed through
# to the props.cli.addParserArguments function.
EXTRA = td.TypeDict({
'Display.overlayType' : {'choices' : fsldisplay.ALL_OVERLAY_TYPES,
'default' : fsldisplay.ALL_OVERLAY_TYPES[0]}
})
# Transform functions for properties where the
# value passed in on the command line needs to
# be manipulated before the property value is
......@@ -386,22 +394,28 @@ def _configParser(target, parser, propNames=None):
shortArgs = {}
longArgs = {}
helpTexts = {}
extra = {}
for propName in propNames:
shortArg, longArg = ARGUMENTS[target, propName]
helpText = HELP[ target, propName]
shortArg, longArg = ARGUMENTS[ target, propName]
helpText = HELP[ target, propName]
propExtra = EXTRA.get((target, propName), None)
shortArgs[propName] = shortArg
longArgs[ propName] = longArg
helpTexts[propName] = helpText
if propExtra is not None:
extra[propName] = propExtra
props.addParserArguments(target,
parser,
cliProps=propNames,
shortArgs=shortArgs,
longArgs=longArgs,
propHelp=helpTexts)
propHelp=helpTexts,
extra=extra)
def _configSceneParser(sceneParser):
......
......@@ -33,7 +33,9 @@ class TypeDict(object):
def __str__( self): return self.__dict.__str__()
def __repr__(self): return self.__dict.__repr__()
def keys( self): return self.__dict.keys()
def values( self): return self.__dict.values()
def items( self): return self.__dict.items()
def __setitem__(self, key, value):
self.__dict[self.__tokenifyKey(key)] = value
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment