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

TimeSeriesControlPanel now uses WidgetList, just like HistogramControlPanel

parent 9f3c5b33
No related branches found
No related tags found
No related merge requests found
......@@ -204,14 +204,14 @@ labels = TypeDict({
'NewLutDialog.cancel' : 'Cancel',
'NewLutDialog.newLut' : 'New LUT',
'HistogramControlPanel.plotSettings' : 'General plot settings',
'HistogramControlPanel.currentSettings' : 'Settings for currently '
'PlotPanel.plotSettings' : 'General plot settings',
'PlotPanel.currentSettings' : 'Settings for currently '
'selected plot ({})',
'HistogramControlPanel.xlim' : 'X limits',
'HistogramControlPanel.ylim' : 'Y limits',
'HistogramControlPanel.labels' : 'Labels',
'HistogramControlPanel.xlabel' : 'X',
'HistogramControlPanel.ylabel' : 'Y',
'PlotPanel.xlim' : 'X limits',
'PlotPanel.ylim' : 'Y limits',
'PlotPanel.labels' : 'Labels',
'PlotPanel.xlabel' : 'X',
'PlotPanel.ylabel' : 'Y',
})
......
......@@ -13,7 +13,6 @@ from lightboxsettingspanel import LightBoxSettingsPanel
from locationpanel import LocationPanel
from orthosettingspanel import OrthoSettingsPanel
from lookuptablepanel import LookupTablePanel
from plotcontrolpanel import PlotControlPanel
from timeserieslistpanel import TimeSeriesListPanel
from timeseriescontrolpanel import TimeSeriesControlPanel
from histogramlistpanel import HistogramListPanel
......
......@@ -45,7 +45,7 @@ class HistogramControlPanel(fslpanel.FSLViewPanel):
self.__widgets.AddGroup(
'plotSettings',
strings.labels[self, 'plotSettings'])
strings.labels[hsPanel, 'plotSettings'])
for prop in plotProps:
self.__widgets.AddWidget(
......@@ -59,10 +59,10 @@ class HistogramControlPanel(fslpanel.FSLViewPanel):
labels = wx.BoxSizer(wx.HORIZONTAL)
labels.Add(wx.StaticText(self.__widgets,
label=strings.labels[self, 'xlabel']))
label=strings.labels[hsPanel, 'xlabel']))
labels.Add(xlabel, flag=wx.EXPAND, proportion=1)
labels.Add(wx.StaticText(self.__widgets,
label=strings.labels[self, 'ylabel']))
label=strings.labels[hsPanel, 'ylabel']))
labels.Add(ylabel, flag=wx.EXPAND, proportion=1)
limits = props.makeListWidgets(self.__widgets, hsPanel, 'limits')
......@@ -76,15 +76,15 @@ class HistogramControlPanel(fslpanel.FSLViewPanel):
self.__widgets.AddWidget(
labels,
strings.labels[self, 'labels'],
strings.labels[hsPanel, 'labels'],
groupName='plotSettings')
self.__widgets.AddWidget(
xlims,
strings.labels[self, 'xlim'],
strings.labels[hsPanel, 'xlim'],
groupName='plotSettings')
self.__widgets.AddWidget(
ylims,
strings.labels[self, 'ylim'],
strings.labels[hsPanel, 'ylim'],
groupName='plotSettings')
self.__currentHs = None
......
#!/usr/bin/env python
#
# plotcontrolpanel.py -
#
# Author: Paul McCarthy <pauldmccarthy@gmail.com>
#
import wx
import props
import fsl.fslview.panel as fslpanel
import fsl.data.strings as strings
class PlotControlPanel(fslpanel.FSLViewPanel):
def __init__(self, parent, overlayList, displayCtx, plotPanel):
fslpanel.FSLViewPanel.__init__(self, parent, overlayList, displayCtx)
self.__plotPanel = plotPanel
self.__logx = props.makeWidget(self, plotPanel, 'xLogScale')
self.__logy = props.makeWidget(self, plotPanel, 'yLogScale')
self.__smooth = props.makeWidget(self, plotPanel, 'smooth')
self.__legend = props.makeWidget(self, plotPanel, 'legend')
self.__ticks = props.makeWidget(self, plotPanel, 'ticks')
self.__grid = props.makeWidget(self, plotPanel, 'grid')
self.__autoScale = props.makeWidget(self, plotPanel, 'autoScale')
self.__xlabel = props.makeWidget(self, plotPanel, 'xlabel')
self.__ylabel = props.makeWidget(self, plotPanel, 'ylabel')
limits = props.makeListWidgets(self, plotPanel, 'limits')
self.__xmin = limits[0]
self.__xmax = limits[1]
self.__ymin = limits[2]
self.__ymax = limits[3]
self.__lblLabel = wx.StaticText(self)
self.__xlblLabel = wx.StaticText(self)
self.__ylblLabel = wx.StaticText(self)
self.__xlimLabel = wx.StaticText(self)
self.__ylimLabel = wx.StaticText(self)
self.__logx .SetLabel(strings.properties[plotPanel, 'xLogScale'])
self.__logy .SetLabel(strings.properties[plotPanel, 'yLogScale'])
self.__smooth .SetLabel(strings.properties[plotPanel, 'smooth'])
self.__legend .SetLabel(strings.properties[plotPanel, 'legend'])
self.__ticks .SetLabel(strings.properties[plotPanel, 'ticks'])
self.__grid .SetLabel(strings.properties[plotPanel, 'grid'])
self.__autoScale.SetLabel(strings.properties[plotPanel, 'autoScale'])
self.__xlimLabel.SetLabel(strings.labels[ self, 'xlim'])
self.__ylimLabel.SetLabel(strings.labels[ self, 'ylim'])
self.__lblLabel .SetLabel(strings.labels[ self, 'labels'])
self.__xlblLabel.SetLabel(strings.labels[ self, 'xlabel'])
self.__ylblLabel.SetLabel(strings.labels[ self, 'ylabel'])
self.__sizer = wx.GridSizer(6, 3)
self.SetSizer(self.__sizer)
self.__xlblSizer = wx.BoxSizer(wx.HORIZONTAL)
self.__xlblSizer.Add(self.__xlblLabel)
self.__xlblSizer.Add(self.__xlabel, flag=wx.EXPAND, proportion=1)
self.__ylblSizer = wx.BoxSizer(wx.HORIZONTAL)
self.__ylblSizer.Add(self.__ylblLabel)
self.__ylblSizer.Add(self.__ylabel, flag=wx.EXPAND, proportion=1)
self.__sizer.Add(self.__legend, flag=wx.EXPAND)
self.__sizer.Add(self.__ticks, flag=wx.EXPAND)
self.__sizer.Add(self.__grid, flag=wx.EXPAND)
self.__sizer.Add(self.__smooth, flag=wx.EXPAND)
self.__sizer.Add(self.__logx, flag=wx.EXPAND)
self.__sizer.Add(self.__logy, flag=wx.EXPAND)
self.__sizer.Add(self.__autoScale, flag=wx.EXPAND)
self.__sizer.Add((-1, -1), flag=wx.EXPAND)
self.__sizer.Add((-1, -1), flag=wx.EXPAND)
self.__sizer.Add(self.__lblLabel, flag=wx.EXPAND)
self.__sizer.Add(self.__xlblSizer, flag=wx.EXPAND)
self.__sizer.Add(self.__ylblSizer, flag=wx.EXPAND)
self.__sizer.Add(self.__xlimLabel, flag=wx.EXPAND)
self.__sizer.Add(self.__xmin, flag=wx.EXPAND)
self.__sizer.Add(self.__xmax, flag=wx.EXPAND)
self.__sizer.Add(self.__ylimLabel, flag=wx.EXPAND)
self.__sizer.Add(self.__ymin, flag=wx.EXPAND)
self.__sizer.Add(self.__ymax, flag=wx.EXPAND)
self.Layout()
plotPanel.addListener('autoScale', self._name, self.__autoScaleChanged)
self.__autoScaleChanged()
def __autoScaleChanged(self, *a):
enableLim = not self.__plotPanel.autoScale
self.__xlimLabel.Enable(enableLim)
self.__ylimLabel.Enable(enableLim)
self.__xmin .Enable(enableLim)
self.__xmax .Enable(enableLim)
self.__ymin .Enable(enableLim)
self.__ymax .Enable(enableLim)
......@@ -7,11 +7,11 @@
import wx
import props
import props
import pwidgets.widgetlist as widgetlist
import fsl.fslview.panel as fslpanel
import fsl.data.strings as strings
import plotcontrolpanel
class TimeSeriesControlPanel(fslpanel.FSLViewPanel):
......@@ -20,37 +20,69 @@ class TimeSeriesControlPanel(fslpanel.FSLViewPanel):
fslpanel.FSLViewPanel.__init__(self, parent, overlayList, displayCtx)
self.__tsPanel = tsPanel
self.__tsPanel = tsPanel
self.__widgets = widgetlist.WidgetList(self)
self.__sizer = wx.BoxSizer(wx.VERTICAL)
self.__plotControl = plotcontrolpanel.PlotControlPanel(
self, overlayList, displayCtx, tsPanel)
self.__plotControl.SetWindowStyleFlag(wx.SUNKEN_BORDER)
self.__demean = props.makeWidget(self, tsPanel, 'demean')
self.__usePixdim = props.makeWidget(self, tsPanel, 'usePixdim')
self.__showCurrent = props.makeWidget(self, tsPanel, 'showCurrent')
self.__demean .SetLabel(strings.properties[tsPanel, 'demean'])
self.__usePixdim .SetLabel(strings.properties[tsPanel, 'usePixdim'])
self.__showCurrent.SetLabel(strings.properties[tsPanel, 'showCurrent'])
self.__optSizer = wx.GridSizer(1, 3)
self.__optSizer.Add(self.__demean, flag=wx.EXPAND)
self.__optSizer.Add(self.__usePixdim, flag=wx.EXPAND)
self.__optSizer.Add(self.__showCurrent, flag=wx.EXPAND)
self.__sizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(self.__sizer)
self.__sizer.Add(self.__plotControl,
flag=wx.EXPAND | wx.ALL,
border=5,
proportion=1)
self.__sizer.Add(self.__optSizer,
flag=wx.EXPAND)
self.Layout()
self.SetMinSize(self.__sizer.GetMinSize())
self.SetMaxSize(self.__sizer.GetMinSize())
self.__sizer.Add(self.__widgets, flag=wx.EXPAND, proportion=1)
tsProps = ['demean',
'usePixdim',
'showCurrent']
plotProps = ['xLogScale',
'yLogScale',
'smooth',
'legend',
'ticks',
'grid',
'autoScale']
for prop in tsProps:
self.__widgets.AddWidget(
props.makeWidget(self.__widgets, tsPanel, prop),
displayName=strings.properties[tsPanel, prop])
self.__widgets.AddGroup(
'plotSettings',
strings.labels[tsPanel, 'plotSettings'])
for prop in plotProps:
self.__widgets.AddWidget(
props.makeWidget(self.__widgets, tsPanel, prop),
displayName=strings.properties[tsPanel, prop],
groupName='plotSettings')
xlabel = props.makeWidget(self.__widgets, tsPanel, 'xlabel')
ylabel = props.makeWidget(self.__widgets, tsPanel, 'ylabel')
labels = wx.BoxSizer(wx.HORIZONTAL)
labels.Add(wx.StaticText(self.__widgets,
label=strings.labels[tsPanel, 'xlabel']))
labels.Add(xlabel, flag=wx.EXPAND, proportion=1)
labels.Add(wx.StaticText(self.__widgets,
label=strings.labels[tsPanel, 'ylabel']))
labels.Add(ylabel, flag=wx.EXPAND, proportion=1)
limits = props.makeListWidgets(self.__widgets, tsPanel, 'limits')
xlims = wx.BoxSizer(wx.HORIZONTAL)
ylims = wx.BoxSizer(wx.HORIZONTAL)
xlims.Add(limits[0], flag=wx.EXPAND, proportion=1)
xlims.Add(limits[1], flag=wx.EXPAND, proportion=1)
ylims.Add(limits[2], flag=wx.EXPAND, proportion=1)
ylims.Add(limits[3], flag=wx.EXPAND, proportion=1)
self.__widgets.AddWidget(
labels,
strings.labels[tsPanel, 'labels'],
groupName='plotSettings')
self.__widgets.AddWidget(
xlims,
strings.labels[tsPanel, 'xlim'],
groupName='plotSettings')
self.__widgets.AddWidget(
ylims,
strings.labels[tsPanel, 'ylim'],
groupName='plotSettings')
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