def _upload_failed(self, exception=None):
"""The upload failed, add a button to restart the upload.
Args:
exception: the error that caused the upload.
"""
logging.info("Adding try again button on upload failure.")
self.Freeze()
try_again = wx.Button(self, label="Try again")
self._upload_sizer.Add(try_again, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=5)
self.Bind(wx.EVT_BUTTON, self._retry_upload, id=try_again.GetId())
self.Layout()
self.Thaw()
python类TOP的实例源码
InvalidSampleSheetsPanel.py 文件源码
项目:irida-miseq-uploader
作者: phac-nml
项目源码
文件源码
阅读 17
收藏 0
点赞 0
评论 0
def __init__(self, parent, sheets_directory):
"""Initalize InvalidSampleSheetsPanel.
Args:
parent: the owning Window
sheets_directory: the parent directory for searching sample sheets. This
argument is used in the error message that's displayed to the user to
tell them where to look to fix any issues.
"""
wx.Panel.__init__(self, parent)
self._sizer = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(self._sizer)
header = wx.StaticText(self, label=u"? Looks like some sample sheets are not valid.")
header.SetFont(wx.Font(18, wx.DEFAULT, wx.NORMAL, wx.BOLD))
header.SetForegroundColour(wx.Colour(255, 0, 0))
header.Wrap(350)
self._sizer.Add(header,flag=wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER, border=5)
self._sizer.Add(wx.StaticText(self,
label=wordwrap((
"I found the following sample sheets in {}, but I couldn't understand "
"their contents. Check these sample sheets in an editor outside "
"of the uploader, then click the 'Scan Again' button below.").format(sheets_directory),
350, wx.ClientDC(self))), flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=5)
self._errors_tree = wx.TreeCtrl(self, style=wx.TR_DEFAULT_STYLE | wx.TR_FULL_ROW_HIGHLIGHT | wx.TR_LINES_AT_ROOT | wx.TR_HIDE_ROOT)
self._errors_tree_root = self._errors_tree.AddRoot("")
self._sizer.Add(self._errors_tree, flag=wx.EXPAND, proportion=1)
scan_again_button = wx.Button(self, label="Scan Again")
self.Bind(wx.EVT_BUTTON, lambda evt: send_message(SettingsDialog.settings_closed_topic), id=scan_again_button.GetId())
self._sizer.Add(scan_again_button, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=5)
pub.subscribe(self._sample_sheet_error, DirectoryScannerTopics.garbled_sample_sheet)
pub.subscribe(self._sample_sheet_error, DirectoryScannerTopics.missing_files)
def initControls(self):
nFreqControlBox = widgets.ControlBox(self, label='Num Freqs', orient=wx.HORIZONTAL)
self.nFreqText = wx.StaticText(self, label='%3d' % self.pg.waveletConfig.nFreq)
nFreqTextSizer = wx.BoxSizer(orient=wx.VERTICAL)
nFreqTextSizer.Add(self.nFreqText, proportion=1, flag=wx.LEFT | wx.RIGHT | wx.EXPAND, border=8)
self.nFreqSlider = wx.Slider(self, style=wx.SL_HORIZONTAL,
value=self.pg.waveletConfig.nFreq/5, minValue=1, maxValue=100)
nFreqControlBox.Add(nFreqTextSizer, proportion=0, flag=wx.TOP, border=10)
nFreqControlBox.Add(self.nFreqSlider, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
self.Bind(wx.EVT_SLIDER, self.setNFreq, self.nFreqSlider)
self.sizer.Add(nFreqControlBox, proportion=0, flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
spanControlBox = widgets.ControlBox(self, label='Span', orient=wx.HORIZONTAL)
self.spanText = wx.StaticText(self, label='%3d' % self.pg.waveletConfig.span)
spanTextSizer = wx.BoxSizer(orient=wx.VERTICAL)
spanTextSizer.Add(self.spanText, proportion=1, flag=wx.LEFT | wx.RIGHT | wx.EXPAND, border=8)
self.spanSlider = wx.Slider(self, style=wx.SL_HORIZONTAL,
value=self.pg.waveletConfig.span, minValue=1, maxValue=50)
spanControlBox.Add(spanTextSizer, proportion=0, flag=wx.TOP, border=10)
spanControlBox.Add(self.spanSlider, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
self.Bind(wx.EVT_SLIDER, self.setSpan, self.spanSlider)
self.sizer.Add(spanControlBox, proportion=0, flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
def initGridLayout(self):
gridLayoutControlBox = widgets.ControlBox(self, label='Layout', orient=wx.VERTICAL)
topSizer = wx.BoxSizer(orient=wx.HORIZONTAL)
bottomSizer = wx.BoxSizer(orient=wx.HORIZONTAL)
self.gridLayoutLowButton = wx.Button(self, label='Low')
self.gridLayoutUppButton = wx.Button(self, label='Upp')
self.gridLayoutNumButton = wx.Button(self, label='Num')
self.gridLayoutEtcButton = wx.Button(self, label='Etc')
self.gridLayoutSymButton = wx.Button(self, label='Sym')
topSizer.Add(self.gridLayoutLowButton, proportion=0,
flag=wx.TOP | wx.LEFT | wx.BOTTOM, border=10)
self.Bind(wx.EVT_BUTTON, self.setGridLayoutLow, self.gridLayoutLowButton)
topSizer.Add(self.gridLayoutUppButton, proportion=0,
flag=wx.TOP | wx.BOTTOM, border=10)
self.Bind(wx.EVT_BUTTON, self.setGridLayoutUpp, self.gridLayoutUppButton)
topSizer.Add(self.gridLayoutNumButton, proportion=0,
flag=wx.BOTTOM | wx.RIGHT | wx.TOP, border=10)
self.Bind(wx.EVT_BUTTON, self.setGridLayoutNum, self.gridLayoutNumButton)
bottomSizer.Add(self.gridLayoutEtcButton, proportion=0,
flag=wx.LEFT | wx.BOTTOM, border=10)
self.Bind(wx.EVT_BUTTON, self.setGridLayoutEtc, self.gridLayoutEtcButton)
bottomSizer.Add(self.gridLayoutSymButton, proportion=0,
flag=wx.RIGHT | wx.BOTTOM , border=10)
self.Bind(wx.EVT_BUTTON, self.setGridLayoutSym, self.gridLayoutSymButton)
gridLayoutControlBox.Add(topSizer, proportion=0, flag=wx.EXPAND)
gridLayoutControlBox.Add(bottomSizer, proportion=0, flag=wx.EXPAND)
self.sizer.Add(gridLayoutControlBox, proportion=0,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
def initControls(self):
orderControlBox = widgets.ControlBox(self, label='Model Order', orient=wx.HORIZONTAL)
self.orderText = wx.StaticText(self, label='%3d' % self.pg.autoregConfig.order)
orderTextSizer = wx.BoxSizer(orient=wx.VERTICAL)
orderTextSizer.Add(self.orderText, proportion=1,
flag=wx.LEFT | wx.RIGHT | wx.EXPAND, border=8)
self.orderSlider = wx.Slider(self, style=wx.SL_HORIZONTAL,
value=self.pg.autoregConfig.order, minValue=1, maxValue=100)
orderControlBox.Add(orderTextSizer, proportion=0, flag=wx.TOP, border=10)
orderControlBox.Add(self.orderSlider, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
self.Bind(wx.EVT_SLIDER, self.setOrder, self.orderSlider)
self.sizer.Add(orderControlBox, proportion=0,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
nFreqControlBox = widgets.ControlBox(self, label='Num Freqs', orient=wx.HORIZONTAL)
self.nFreqText = wx.StaticText(self, label='%3d' % self.pg.autoregConfig.nFreq)
nFreqTextSizer = wx.BoxSizer(orient=wx.VERTICAL)
nFreqTextSizer.Add(self.nFreqText, proportion=1,
flag=wx.LEFT | wx.RIGHT | wx.EXPAND, border=8)
self.nFreqSlider = wx.Slider(self, style=wx.SL_HORIZONTAL,
value=self.pg.autoregConfig.nFreq/5, minValue=1, maxValue=100)
nFreqControlBox.Add(nFreqTextSizer, proportion=0, flag=wx.TOP, border=10)
nFreqControlBox.Add(self.nFreqSlider, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
self.Bind(wx.EVT_SLIDER, self.setNFreq, self.nFreqSlider)
self.sizer.Add(nFreqControlBox, proportion=0,
flag=wx.LEFT | wx.BOTTOM | wx.RIGHT | wx.EXPAND, border=10)
def initTiming(self):
timingSizer = wx.BoxSizer(orient=wx.HORIZONTAL)
widthControlBox = widgets.ControlBox(self, label='Train Width', orient=wx.VERTICAL)
self.widthFloatSpin = agwfs.FloatSpin(self, min_val=0.5, max_val=60.0,
increment=0.25, value=self.pg.width)
self.widthFloatSpin.SetFormat('%f')
self.widthFloatSpin.SetDigits(3)
self.Bind(agwfs.EVT_FLOATSPIN, self.setWidth, self.widthFloatSpin)
self.offlineControls += [self.widthFloatSpin]
widthControlBox.Add(self.widthFloatSpin, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
timingSizer.Add(widthControlBox, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
retrainDelayControlBox = widgets.ControlBox(self, label='Retrain Delay', orient=wx.VERTICAL)
self.retrainDelayFloatSpin = agwfs.FloatSpin(self, min_val=2.0, max_val=60.0,
increment=0.25, value=self.pg.retrainDelay)
self.retrainDelayFloatSpin.SetFormat('%f')
self.retrainDelayFloatSpin.SetDigits(4)
self.Bind(agwfs.EVT_FLOATSPIN, self.setRetrainDelay, self.retrainDelayFloatSpin)
self.offlineControls += [self.retrainDelayFloatSpin]
retrainDelayControlBox.Add(self.retrainDelayFloatSpin, proportion=1,
flag=wx.ALL | wx.EXPAND, border=10)
timingSizer.Add(retrainDelayControlBox, proportion=1,
flag=wx.BOTTOM | wx.RIGHT | wx.TOP | wx.EXPAND, border=10)
self.sizer.Add(timingSizer, proportion=0, flag=wx.EXPAND)
def initRateControls(self):
"""Initialize the sample rate and poll size controls.
"""
rateSizer = wx.BoxSizer(orient=wx.VERTICAL)
pollSizeControlBox = widgets.ControlBox(self, label='Poll Size', orient=wx.HORIZONTAL)
self.pollSizeSpinCtrl = wx.SpinCtrl(self, style=wx.SP_WRAP,
value=str(self.src.pollSize), min=1, max=32)
pollSizeControlBox.Add(self.pollSizeSpinCtrl, flag=wx.ALL | wx.EXPAND, border=10)
self.Bind(wx.EVT_SPINCTRL, self.setPollSize, self.pollSizeSpinCtrl)
rateSizer.Add(pollSizeControlBox, proportion=0,
flag=wx.BOTTOM | wx.RIGHT | wx.TOP, border=10)
self.sizer.Add(rateSizer)
def initRateControls(self):
"""Initialize the sample rate and poll size controls.
"""
rateSizer = wx.BoxSizer(orient=wx.VERTICAL)
pollSizeControlBox = widgets.ControlBox(self, label='Poll Size', orient=wx.HORIZONTAL)
self.pollSizeSpinCtrl = wx.SpinCtrl(self, style=wx.SP_WRAP,
value=str(self.src.pollSize), min=1, max=32)
pollSizeControlBox.Add(self.pollSizeSpinCtrl, flag=wx.ALL | wx.EXPAND, border=10)
self.Bind(wx.EVT_SPINCTRL, self.setPollSize, self.pollSizeSpinCtrl)
rateSizer.Add(pollSizeControlBox, proportion=0,
flag=wx.BOTTOM | wx.RIGHT | wx.TOP, border=10)
sampRates = np.array((128,256,512,1024))
self.sampRateRadios = [wx.RadioButton(self, label=str(sampRates[0])+'Hz', style=wx.RB_GROUP)] +\
[wx.RadioButton(self, label=str(sr)+'Hz') for sr in sampRates[1:]]
self.sampRateRadios[0].SetValue(True)
sampRateControlBox= widgets.ControlBox(self, label='Sample Rate', orient=wx.VERTICAL)
for sr,rbtn in zip(sampRates, self.sampRateRadios):
def sampRadioWrapper(event, sr=sr):
self.src.setSampRate(sr)
self.Bind(wx.EVT_RADIOBUTTON, sampRadioWrapper, id=rbtn.GetId())
for rbtn in self.sampRateRadios[:-1]:
sampRateControlBox.Add(rbtn, proportion=0,
flag=wx.TOP | wx.LEFT | wx.RIGHT, border=10)
sampRateControlBox.Add(self.sampRateRadios[-1], proportion=0, flag=wx.ALL, border=10)
rateSizer.Add(sampRateControlBox, proportion=0,
flag=wx.BOTTOM | wx.RIGHT, border=10)
self.sizer.Add(rateSizer)
def initRateControls(self):
"""Initialize the sample rate and poll size controls.
"""
rateSizer = wx.BoxSizer(orient=wx.VERTICAL)
pollSizeControlBox = widgets.ControlBox(self, label='Poll Size', orient=wx.HORIZONTAL)
self.pollSizeSpinCtrl = wx.SpinCtrl(self, style=wx.SP_WRAP,
value=str(self.src.pollSize), min=1, max=32)
pollSizeControlBox.Add(self.pollSizeSpinCtrl, flag=wx.ALL | wx.EXPAND, border=10)
self.Bind(wx.EVT_SPINCTRL, self.setPollSize, self.pollSizeSpinCtrl)
rateSizer.Add(pollSizeControlBox, proportion=0,
flag=wx.BOTTOM | wx.RIGHT | wx.TOP, border=10)
sampRates = np.array((128,256,512,1024))
self.sampRateRadios = [wx.RadioButton(self, label=str(sampRates[0])+'Hz', style=wx.RB_GROUP)] +\
[wx.RadioButton(self, label=str(sr)+'Hz') for sr in sampRates[1:]]
self.sampRateRadios[0].SetValue(True)
sampRateControlBox = widgets.ControlBox(self, label='Sample Rate', orient=wx.VERTICAL)
for sr,rbtn in zip(sampRates, self.sampRateRadios):
def sampRadioWrapper(event, sr=sr):
try:
self.src.setSampRate(sr)
except Exception as e:
wx.LogError('Failed to set sample rate: ' + str(e.message))
self.Bind(wx.EVT_RADIOBUTTON, sampRadioWrapper, id=rbtn.GetId())
for rbtn in self.sampRateRadios[:-1]:
sampRateControlBox.Add(rbtn, proportion=0,
flag=wx.TOP | wx.LEFT | wx.RIGHT, border=10)
sampRateControlBox.Add(self.sampRateRadios[-1], proportion=0, flag=wx.ALL, border=10)
rateSizer.Add(sampRateControlBox, proportion=0,
flag=wx.BOTTOM | wx.RIGHT, border=10)
self.sizer.Add(rateSizer)
def initResponse(self):
self.freqResponseFig = plt.Figure()
self.freqResponseCanvas = FigureCanvas(parent=self,
id=wx.ID_ANY, figure=self.freqResponseFig)
self.freqResponseAx = self.freqResponseFig.add_subplot(1,1,1)
#self.freqResponseFig.tight_layout()
self.phaseResponseFig = plt.Figure()
self.phaseResponseCanvas = FigureCanvas(parent=self,
id=wx.ID_ANY, figure=self.phaseResponseFig)
self.phaseResponseAx = self.phaseResponseFig.add_subplot(1,1,1)
#self.freqResponseFig.tight_layout()
responseSizer = wx.BoxSizer(wx.VERTICAL)
freqResponseControlBox = widgets.ControlBox(self,
label='Freqency Response', orient=wx.VERTICAL)
freqResponseControlBox.Add(self.freqResponseCanvas, proportion=1,
flag=wx.ALL | wx.EXPAND, border=8)
responseSizer.Add(freqResponseControlBox, proportion=1,
flag=wx.TOP | wx.RIGHT | wx.BOTTOM | wx.EXPAND, border=10)
phaseResponseControlBox = widgets.ControlBox(self,
label='Phase Response', orient=wx.VERTICAL)
phaseResponseControlBox.Add(self.phaseResponseCanvas, proportion=1,
flag=wx.ALL | wx.EXPAND, border=8)
responseSizer.Add(phaseResponseControlBox, proportion=1,
flag=wx.RIGHT | wx.BOTTOM | wx.EXPAND, border=10)
self.bottomSizer.Add(responseSizer, proportion=1, flag=wx.EXPAND)
self.freqResponseCanvas.SetMinSize((0,0))
self.phaseResponseCanvas.SetMinSize((0,0))
# could we prevent resize when panel is not visible? XXX - idfah
self.freqResponseLastSize = (0,0)
self.freqResponseCanvas.Bind(wx.EVT_SIZE, self.freqResponseResize)
self.phaseResponseLastSize = (0,0)
self.phaseResponseCanvas.Bind(wx.EVT_SIZE, self.phaseResponseResize)
self.updateResponse()
def initOptions(self):
optionsSizer = wx.BoxSizer(wx.HORIZONTAL)
self.filtTypeComboBox = wx.ComboBox(self, choices=self.flt.filtMap.keys(),
value=self.flt.filtType, style=wx.CB_DROPDOWN)
self.Bind(wx.EVT_COMBOBOX, self.setFiltType, self.filtTypeComboBox)
optionsSizer.Add(self.filtTypeComboBox, proportion=1,
flag=wx.LEFT | wx.TOP | wx.RIGHT | wx.ALIGN_CENTER, border=20)
self.sizer.Add(optionsSizer, proportion=0)#, flag=wx.EXPAND)
def initResponse(self):
self.freqResponseFig = plt.Figure()
self.freqResponseCanvas = FigureCanvas(parent=self,
id=wx.ID_ANY, figure=self.freqResponseFig)
self.freqResponseAx = self.freqResponseFig.add_subplot(1,1,1)
#self.freqResponseFig.tight_layout()
self.phaseResponseFig = plt.Figure()
self.phaseResponseCanvas = FigureCanvas(parent=self,
id=wx.ID_ANY, figure=self.phaseResponseFig)
self.phaseResponseAx = self.phaseResponseFig.add_subplot(1,1,1)
#self.freqResponseFig.tight_layout()
responseSizer = wx.BoxSizer(wx.VERTICAL)
freqResponseControlBox = widgets.ControlBox(self,
label='Freqency Response', orient=wx.VERTICAL)
freqResponseControlBox.Add(self.freqResponseCanvas, proportion=1,
flag=wx.ALL | wx.EXPAND, border=8)
responseSizer.Add(freqResponseControlBox, proportion=1,
flag=wx.TOP | wx.RIGHT | wx.BOTTOM | wx.EXPAND, border=10)
phaseResponseControlBox = widgets.ControlBox(self,
label='Phase Response', orient=wx.VERTICAL)
phaseResponseControlBox.Add(self.phaseResponseCanvas, proportion=1,
flag=wx.ALL | wx.EXPAND, border=8)
responseSizer.Add(phaseResponseControlBox, proportion=1,
flag=wx.RIGHT | wx.BOTTOM | wx.EXPAND, border=10)
self.bottomSizer.Add(responseSizer, proportion=1, flag=wx.EXPAND)
self.freqResponseCanvas.SetMinSize((0,0))
self.phaseResponseCanvas.SetMinSize((0,0))
# could we prevent resize when panel is not visible? XXX - idfah
self.freqResponseLastSize = (0,0)
self.freqResponseCanvas.Bind(wx.EVT_SIZE, self.freqResponseResize)
self.phaseResponseLastSize = (0,0)
self.phaseResponseCanvas.Bind(wx.EVT_SIZE, self.phaseResponseResize)
self.updateResponse()
def initOptions(self):
optionsSizer = wx.BoxSizer(wx.HORIZONTAL)
# sizes should only be odd, easiest way is to implement this as slider with odd values XXX - idfah
sizeControlBox = widgets.ControlBox(self, label='Size', orient=wx.HORIZONTAL)
self.sizeSpinCtrl = wx.SpinCtrl(self, value=str(self.flt.size), min=3, max=100)
self.Bind(wx.EVT_SPINCTRL, self.setSize, self.sizeSpinCtrl)
sizeControlBox.Add(self.sizeSpinCtrl, proportion=1, flag=wx.ALL, border=8)
optionsSizer.Add(sizeControlBox, proportion=0,
flag=wx.TOP | wx.RIGHT | wx.BOTTOM | wx.EXPAND, border=8)
# need to add slider for noise parameter XXX - idfah
self.sizer.Add(optionsSizer, proportion=0)#, flag=wx.EXPAND)
def __init__(self, parent):
wx.Panel.__init__(self, parent, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize)
self.ztv_frame = self.GetTopLevelParent()
self.ztv_frame.primary_image_panel.popup_menu_cursor_modes.append('Slice plot')
self.ztv_frame.primary_image_panel.available_cursor_modes['Slice plot'] = {
'set-to-mode':self.set_cursor_to_plot_mode,
'on_button_press':self.on_button_press,
'on_motion':self.on_motion,
'on_button_release':self.on_button_release}
for cur_key in ['c', 'C', 'v', 'V', 'y', 'Y']:
self.ztv_frame.primary_image_panel.available_key_presses[cur_key] = self.do_column_plot
for cur_key in ['r', 'R', 'h', 'H', 'x', 'X']:
self.ztv_frame.primary_image_panel.available_key_presses[cur_key] = self.do_row_plot
for cur_key in ['z', 'Z']:
self.ztv_frame.primary_image_panel.available_key_presses[cur_key] = self.do_stack_plot
self.primary_image_patch = None
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.plot_panel = PlotPlotPanel(self)
self.sizer.Add(self.plot_panel, 1, wx.LEFT | wx.TOP | wx.EXPAND)
self.hideshow_button = wx.Button(self, wx.ID_ANY, u"Hide", wx.DefaultPosition, wx.DefaultSize, 0)
self.sizer.Add(self.hideshow_button, 0, wx.ALL|wx.ALIGN_RIGHT|wx.ALIGN_BOTTOM, 2)
self.hideshow_button.Bind(wx.EVT_BUTTON, self.on_hideshow_button)
self.SetSizer(self.sizer)
self.Fit()
self.start_pt = wx.RealPoint(0., 0.)
self.end_pt = wx.RealPoint(0., 0.)
self.redraw()
pub.subscribe(self.on_new_xy0, 'set-new-slice-plot-xy0')
pub.subscribe(self.on_new_xy1, 'set-new-slice-plot-xy1')
pub.subscribe(self.queue_redraw, 'primary-xy-limits-changed')
pub.subscribe(self.queue_redraw, 'recalc-display-image-called')
pub.subscribe(self.remove_overplot_on_image, 'hide-plot-panel-overplot')
pub.subscribe(self.redraw_overplot_on_image, 'show-plot-panel-overplot')
pub.subscribe(self.publish_xy0xy1_to_stream, 'get-slice-plot-coords')
def __init__(self, parent):
wx.Panel.__init__(self, parent, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize)
self.ztv_frame = self.GetTopLevelParent()
self.ztv_frame.primary_image_panel.popup_menu_cursor_modes.append('Slice plot')
self.ztv_frame.primary_image_panel.available_cursor_modes['Slice plot'] = {
'set-to-mode':self.set_cursor_to_plot_mode,
'on_button_press':self.on_button_press,
'on_motion':self.on_motion,
'on_button_release':self.on_button_release}
for cur_key in ['c', 'C', 'v', 'V', 'y', 'Y']:
self.ztv_frame.primary_image_panel.available_key_presses[cur_key] = self.do_column_plot
for cur_key in ['r', 'R', 'h', 'H', 'x', 'X']:
self.ztv_frame.primary_image_panel.available_key_presses[cur_key] = self.do_row_plot
for cur_key in ['z', 'Z']:
self.ztv_frame.primary_image_panel.available_key_presses[cur_key] = self.do_stack_plot
self.primary_image_patch = None
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.plot_panel = PlotPlotPanel(self)
self.sizer.Add(self.plot_panel, 1, wx.LEFT | wx.TOP | wx.EXPAND)
self.hideshow_button = wx.Button(self, wx.ID_ANY, u"Hide", wx.DefaultPosition, wx.DefaultSize, 0)
self.sizer.Add(self.hideshow_button, 0, wx.ALL|wx.ALIGN_RIGHT|wx.ALIGN_BOTTOM, 2)
self.hideshow_button.Bind(wx.EVT_BUTTON, self.on_hideshow_button)
self.SetSizer(self.sizer)
self.Fit()
self.start_pt = wx.RealPoint(0., 0.)
self.end_pt = wx.RealPoint(0., 0.)
self.redraw()
pub.subscribe(self.on_new_xy0, 'set-new-slice-plot-xy0')
pub.subscribe(self.on_new_xy1, 'set-new-slice-plot-xy1')
pub.subscribe(self.queue_redraw, 'primary-xy-limits-changed')
pub.subscribe(self.queue_redraw, 'recalc-display-image-called')
pub.subscribe(self.remove_overplot_on_image, 'hide-plot-panel-overplot')
pub.subscribe(self.redraw_overplot_on_image, 'show-plot-panel-overplot')
pub.subscribe(self.publish_xy0xy1_to_stream, 'get-slice-plot-coords')
def __init__(self, parent,ancestor):
wx.Panel.__init__(self, parent, style=wx.SUNKEN_BORDER)
vbox = wx.BoxSizer(wx.VERTICAL)
title = StaticTextNew(self, label="Pipeline Comments:")
title.SetToolTipNew("Pipeline Comments.")
vbox.Add(title ,0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.txt = wx.TextCtrl(self, style=wx.TE_BESTWRAP | wx.TE_MULTILINE)
self.txt.Enable(True)
vbox.Add(self.txt, 1, wx.EXPAND | wx.ALL, 2)
self.SetAutoLayout(True)
self.SetSizer( vbox )
def __init__(self, parent):
wx.Panel.__init__(self, parent, style=wx.SUNKEN_BORDER)
vbox = wx.BoxSizer(wx.VERTICAL)
title = StaticTextNew(self, label="Scale Arrays")
title.SetToolTipNew("Scale array by a specified factor")
vbox.Add(title ,0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.input_filename = TextPanelObject(self, "Input File: ", "",150,"Numpy files (*.npy)|*.npy|All files (*.*)|*.*")
vbox.Add(self.input_filename, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.output_filename = TextPanelObject(self, "Output File: ", "output.npy",150,"Numpy files (*.npy)|*.npy|All files (*.*)|*.*")
vbox.Add(self.output_filename, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.scale = SpinnerObject(self,"Scale factor:",MAX_INT,0.0,1.0,1.0,150,150)
self.scale.label.SetToolTipNew("Scale factor.")
vbox.Add(self.scale, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.SetAutoLayout(True)
self.SetSizer( vbox )
def __init__(self, parent):
wx.Panel.__init__(self, parent, style=wx.SUNKEN_BORDER)
self.panelphase = self.GetParent().GetParent().GetParent()
self.font = self.GetParent().font
self.file = None
vbox = wx.BoxSizer(wx.VERTICAL)
title = wx.StaticText(self, label="Convert HDF5 to Numpy array.")
vbox.Add(title ,0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.input_filename = TextPanelObject(self, "Input HDF5 File: ", "",150,"HDF files (*.hdf)|*.hdf|HDF5 files (*.h5)|*.h5|All files (*.*)|*.*")
vbox.Add(self.input_filename, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
hbox = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1,"HDF Key Path:" , style =wx.ALIGN_RIGHT, size=(150,-1) )
label.SetFont(self.font)
hbox.Add( label, 0, wx.CENTER )
def OnEdit(event):
self.objectpath.ChangeValue(event.GetString())
self.objectpath = TextCtrlNew(self, -1)
self.objectpath.SetFont(self.font)
self.objectpath.SetValue("")
self.objectpath.SetToolTipNew("Comma separated key names.")
self.objectpath.Bind(wx.EVT_TEXT_ENTER, OnEdit)
hbox.Add( self.objectpath, 1, wx.CENTER |wx.EXPAND )
self.button = ButtonNew(self, -1, "Browse")
self.button.SetFont(self.font)
self.button.SetToolTipNew("Browse for HDF5 key path.")
self.button.Bind(wx.EVT_BUTTON, self.OnBrowse)
hbox.Add( self.button, 0, wx.LEFT|wx.CENTER)
vbox.Add(hbox, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.output_filename = TextPanelObject(self, "Output File: ", "output.npy",150,'*.npy')
vbox.Add(self.output_filename, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.SetAutoLayout(True)
self.SetSizer( vbox )
def __init__(self, parent):
wx.Panel.__init__(self, parent, style=wx.SUNKEN_BORDER)
vbox = wx.BoxSizer(wx.VERTICAL)
title = wx.StaticText(self, label="Convert SPE to Numpy array")
vbox.Add(title ,0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.input_filename = TextPanelObject(self, "Input SPE File: ", "",150,'*.SPE')
vbox.Add(self.input_filename, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.output_filename = TextPanelObject(self, "Output File: ", "",150,'*.npy')
vbox.Add(self.output_filename, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.SetAutoLayout(True)
self.SetSizer( vbox )
def __init__(self, parent):
wx.Panel.__init__(self, parent, style=wx.SUNKEN_BORDER)
vbox = wx.BoxSizer(wx.VERTICAL)
title = wx.StaticText(self, label="Convert Image file to Numpy array")
vbox.Add(title ,0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.input_filename = TextPanelObject(self, "Input Image File: ", "",150,"PNG files (*.png)|*.png|JPEG files (*.jpg)|*.jpg|PPM files (*.ppm)|*.ppm|TIF files (*.tif)|*.tif|All files (*.*)|*.*")
vbox.Add(self.input_filename, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.output_filename = TextPanelObject(self, "Output File: ", "",150,'*.npy')
vbox.Add(self.output_filename, 0, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=2)
self.SetAutoLayout(True)
self.SetSizer( vbox )