Commit 5977036a authored by eric pellegrini's avatar eric pellegrini
Browse files

Simplified the outputfiles widget and its related configurator

parent 8871cc38
...@@ -47,16 +47,9 @@ class OutputFilesWidget(IWidget): ...@@ -47,16 +47,9 @@ class OutputFilesWidget(IWidget):
def add_widgets(self): def add_widgets(self):
sizer = wx.BoxSizer(wx.VERTICAL) sizer = wx.BoxSizer(wx.VERTICAL)
startDirectory = os.getcwd() self._filename = wxfile.FileBrowseButton(self._widgetPanel, wx.ID_ANY, fileMode=wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT, labelText="Basename")
self._dirname = wxfile.DirBrowseButton(self._widgetPanel, wx.ID_ANY, startDirectory=startDirectory, newDirectory=True)
self._dirname.SetValue(startDirectory)
label = wx.StaticText(self._widgetPanel, label="Basename", style=wx.ALIGN_LEFT)
self._basename = wx.TextCtrl(self._widgetPanel, value="")
self._formats = wx.combo.ComboCtrl(self._widgetPanel, value="output formats", style=wx.CB_READONLY) self._formats = wx.combo.ComboCtrl(self._widgetPanel, value="output formats", style=wx.CB_READONLY)
tcp = ComboCheckbox(self._configurator.formats) tcp = ComboCheckbox(self._configurator.formats)
...@@ -65,11 +58,9 @@ class OutputFilesWidget(IWidget): ...@@ -65,11 +58,9 @@ class OutputFilesWidget(IWidget):
hSizer = wx.BoxSizer(wx.HORIZONTAL) hSizer = wx.BoxSizer(wx.HORIZONTAL)
hSizer.Add(label, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5) hSizer.Add(self._filename, 1, wx.EXPAND|wx.ALL, 5)
hSizer.Add(self._basename, 1, wx.EXPAND|wx.ALL, 5) hSizer.Add(self._formats, 0, wx.EXPAND|wx.ALL, 5)
hSizer.Add(self._formats, 0, wx.ALL, 5)
sizer.Add(self._dirname, 0, wx.ALL|wx.EXPAND)
sizer.Add(hSizer, 0, wx.ALL|wx.EXPAND, 0) sizer.Add(hSizer, 0, wx.ALL|wx.EXPAND, 0)
pub.subscribe(self.on_set_trajectory, ("set_trajectory")) pub.subscribe(self.on_set_trajectory, ("set_trajectory"))
...@@ -78,13 +69,11 @@ class OutputFilesWidget(IWidget): ...@@ -78,13 +69,11 @@ class OutputFilesWidget(IWidget):
def get_widget_value(self): def get_widget_value(self):
dirname = self._dirname.GetValue() filename = self._filename.GetValue()
basename = self._basename.GetValue().strip()
formats = self._formats.GetPopupControl().GetControl().GetCheckedStrings() formats = self._formats.GetPopupControl().GetControl().GetCheckedStrings()
return (dirname, basename, formats) return (filename, formats)
def on_set_trajectory(self, message): def on_set_trajectory(self, message):
...@@ -92,5 +81,9 @@ class OutputFilesWidget(IWidget): ...@@ -92,5 +81,9 @@ class OutputFilesWidget(IWidget):
if not window in self.Parent.widgets.values(): if not window in self.Parent.widgets.values():
return return
self._basename.SetValue("output_%s" % (os.path.splitext(os.path.basename(filename))[0])) trajectoryDir = os.path.dirname(filename)
\ No newline at end of file basename = "output_%s" % os.path.splitext(os.path.basename(filename))[0]
self._filename.SetValue(os.path.join(trajectoryDir,basename))
...@@ -75,16 +75,13 @@ class OutputFilesConfigurator(IConfigurator): ...@@ -75,16 +75,13 @@ class OutputFilesConfigurator(IConfigurator):
if the output directory, 2nd element the basename and 3rd element a list of file formats. if the output directory, 2nd element the basename and 3rd element a list of file formats.
:type value: 3-tuple :type value: 3-tuple
''' '''
dirname, basename, formats = value
if not dirname: root, formats = value
dirname = os.getcwd()
if not basename: if not root:
raise ConfiguratorError("empty basename for the output file.", self) raise ConfiguratorError("empty root name for the output file.", self)
root = os.path.join(dirname, basename) dirname = os.path.dirname(root)
try: try:
PLATFORM.create_directory(dirname) PLATFORM.create_directory(dirname)
...@@ -102,7 +99,7 @@ class OutputFilesConfigurator(IConfigurator): ...@@ -102,7 +99,7 @@ class OutputFilesConfigurator(IConfigurator):
if not REGISTRY["format"].has_key(fmt): if not REGISTRY["format"].has_key(fmt):
raise ConfiguratorError("the output file format %r is not registered as a valid file format." % fmt, self) raise ConfiguratorError("the output file format %r is not registered as a valid file format." % fmt, self)
self["root"] = root self['root'] = root
self["formats"] = formats self["formats"] = formats
self["files"] = ["%s%s" % (root,REGISTRY["format"][f].extension) for f in formats] self["files"] = ["%s%s" % (root,REGISTRY["format"][f].extension) for f in formats]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment