def __init__(self, parent): wx.Dialog.__init__(self, parent.GetParent(), -1, 'Edit Plan') self.parent = parent self.plan = parent.plan strows = wx.StaticText(self, -1, 'Bad rows:') stcolumns = wx.StaticText(self, -1, 'Bad columns:') stpixels = wx.StaticText(self, -1, 'Bad Pixel (x,y):') pixels = ', '.join(map(str, self.plan['pixels'])) rows = ', '.join(map(str, self.plan['rows'])) columns = ', '.join(map(str, self.plan['columns'])) self.tcrows = wx.TextCtrl(self, -1, rows) self.tccolumns = wx.TextCtrl(self, -1, columns) self.tcpixels = wx.TextCtrl(self, -1, pixels) self.cdespike = wx.CheckBox(self, -1, 'Despike images') self.cdespike_size = IntEntry(self, -1, min=1, chars=4) self.cdespike_threshold = FloatEntry(self, -1, min=0, chars=4) self.cdespike.SetValue(self.plan['despike']) self.cdespike_size.SetValue(self.plan['despike size']) self.cdespike_threshold.SetValue(self.plan['despike threshold']) szdespike = wx.GridBagSizer(5, 5) szdespike.Add(self.cdespike, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Neighborhood size:') szdespike.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szdespike.Add( self.cdespike_size, (1, 1), (1, 1), wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Threshold:') szdespike.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szdespike.Add( self.cdespike_threshold, (2, 1), (1, 1), wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) szdespike.AddGrowableCol(1) bsave = wx.Button(self, wx.ID_OK, 'Save') bcancel = wx.Button(self, wx.ID_CANCEL, 'Cancel') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(bsave, (0, 0), (1, 1), wx.ALIGN_CENTER) szbutton.Add(bcancel, (0, 1), (1, 1), wx.ALIGN_CENTER) szplan = wx.GridBagSizer(5, 5) szplan.Add(strows, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szplan.Add(self.tcrows, (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) szplan.Add(stcolumns, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szplan.Add(self.tccolumns, (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) szplan.Add(stpixels, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szplan.Add(self.tcpixels, (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) szplan.Add(szdespike, (3, 0), (1, 2), wx.EXPAND) sz = wx.GridBagSizer(5, 5) sz.Add(szplan, (0, 0), (1, 1), wx.ALIGN_RIGHT | wx.ALL, border=5) sz.Add(szbutton, (1, 0), (1, 1), wx.ALIGN_RIGHT | wx.ALL, border=5) self.SetSizerAndFit(sz) self.Bind(wx.EVT_BUTTON, self.onSave, bsave)
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Blob finding') sbszblobs = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['blobs border'] = IntEntry(self, -1, min=0, chars=6) self.widgets['blobs max'] = IntEntry(self, -1, min=0, chars=6) self.widgets['blobs max size'] = IntEntry(self, -1, min=0, chars=6) szblobs = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Border:') szblobs.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szblobs.Add(self.widgets['blobs border'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Max. blobs:') szblobs.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szblobs.Add(self.widgets['blobs max'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Max. blob size:') szblobs.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szblobs.Add(self.widgets['blobs max size'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE|wx.ALIGN_RIGHT) szblobs.AddGrowableCol(1) sbszblobs.Add(szblobs, 1, wx.EXPAND|wx.ALL, 5) self.btest = wx.Button(self, -1, 'Test') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.btest, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) szbutton.AddGrowableCol(0) self.Bind(wx.EVT_BUTTON, self.onTestButton, self.btest) return [sbszblobs, szbutton]
def addRCTSettings(self): sb = wx.StaticBox(self, -1, 'RCT Options') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) sizer = wx.GridBagSizer(5, 4) bordersize = 3 label = wx.StaticText(self, -1, 'List of Tilts to Collect (in degrees)') sizer.Add(label, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) self.widgets['tilts'] = Entry(self, -1, chars=15, style=wx.ALIGN_RIGHT) sizer.Add(self.widgets['tilts'], (0,2), (1,2), wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'Maximum Tilt Stepsize (in degrees)') sizer.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['stepsize'] = IntEntry(self, -1, chars=2, value='15') sizer.Add(self.widgets['stepsize'], (1,1), (1,1), wx.ALL|wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'Pause Between Steps') sizer.Add(label, (1, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['pause'] = FloatEntry(self, -1, chars=2, value='1') sizer.Add(self.widgets['pause'], (1,3), (1,1), wx.ALL|wx.ALIGN_CENTER_VERTICAL, bordersize) ''' label = wx.StaticText(self, -1, 'Min Feature Size') sizer.Add(label, (2,0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['minsize'] = FloatEntry(self, -1, chars=6, value='0.0') #sizer.Add(self.widgets['minsize'], (2,1), (1,1), wx.ALL|wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'Max Feature Size') sizer.Add(label, (2, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['maxsize'] = FloatEntry(self, -1, chars=6, value='0.0') sizer.Add(self.widgets['maxsize'], (2,3), (1,1), wx.ALL|wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'Median Filter (pixels)') sizer.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['medfilt'] = IntEntry(self, -1, chars=2, value='0') sizer.Add(self.widgets['medfilt'], (3,1), (1,1), wx.ALL|wx.ALIGN_CENTER_VERTICAL, bordersize) ''' label = wx.StaticText(self, -1, 'LowPass Filter (pixels)') sizer.Add(label, (3, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['lowfilt'] = IntEntry(self, -1, chars=2, value='0') sizer.Add(self.widgets['lowfilt'], (3,3), (1,1), wx.ALL|wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'Drift threshold') sizer.Add(label, (4, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['drift threshold'] = FloatEntry(self, -1, chars=6, value='0.0') sizer.Add(self.widgets['drift threshold'], (4,1), (1,1), wx.ALL|wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'Drift preset') sizer.Add(label, (4, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) presets = self.node.presetsclient.getPresetNames() self.widgets['drift preset'] = PresetChoice(self, -1) self.widgets['drift preset'].setChoices(presets) sizer.Add(self.widgets['drift preset'], (4,3), (1,1), wx.ALL|wx.ALIGN_CENTER_VERTICAL, bordersize) sbsz.Add(sizer, 0, wx.ALIGN_CENTER|wx.ALL, 2) return sbsz
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Blob Finding') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['threshold'] = FloatEntry(self, -1, min=0, chars=6) self.widgets['blobs'] = {} self.widgets['blobs']['border'] = IntEntry(self, -1, min=0, chars=6) self.widgets['blobs']['max'] = IntEntry(self, -1, min=0, chars=6) self.widgets['blobs']['min size'] = IntEntry(self, -1, min=0, chars=6) self.widgets['blobs']['max size'] = IntEntry(self, -1, min=0, chars=6) self.widgets['blobs']['min mean'] = FloatEntry(self, -1, chars=6) self.widgets['blobs']['max mean'] = FloatEntry(self, -1, chars=6) self.widgets['blobs']['min stdev'] = FloatEntry(self, -1, chars=6) self.widgets['blobs']['max stdev'] = FloatEntry(self, -1, chars=6) szrange = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Min.') szrange.Add(label, (0, 1), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'Max.') szrange.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'Blob size:') szrange.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER) szrange.Add(self.widgets['blobs']['min size'], (1, 1), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) szrange.Add(self.widgets['blobs']['max size'], (1, 2), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Blob mean:') szrange.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER) szrange.Add(self.widgets['blobs']['min mean'], (2, 1), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) szrange.Add(self.widgets['blobs']['max mean'], (2, 2), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Blob stdev.:') szrange.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER) szrange.Add(self.widgets['blobs']['min stdev'], (3, 1), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) szrange.Add(self.widgets['blobs']['max stdev'], (3, 2), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) sz = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Threshold:') sz.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['threshold'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Border:') sz.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['blobs']['border'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Max. number of blobs:') sz.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['blobs']['max'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) sz.Add(szrange, (3, 0), (1, 2), wx.ALIGN_CENTER) sz.AddGrowableCol(1) sbsz.Add(sz, 1, wx.EXPAND | wx.ALL, 5) return [sbsz]
class Dialog(wx.Dialog): def __init__(self, parent, title, ring=None): wx.Dialog.__init__(self, parent, -1, title) sbszring = wx.StaticBoxSizer(wx.StaticBox(self, -1, 'Ring'), wx.VERTICAL) self.ieinside = IntEntry(self, -1, min=0, chars=4) self.ieoutside = IntEntry(self, -1, min=0, chars=4) if ring is not None: if not parent.validate(ring): raise ValueError inside, outside = ring self.ieinside.SetValue(inside) self.ieoutside.SetValue(outside) szring = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Inside') szring.Add(label, (0, 1), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'Outside') szring.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'Diameter') szring.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szring.Add(self.ieinside, (1, 1), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) szring.Add(self.ieoutside, (1, 2), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'pixels') szring.Add(label, (1, 3), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbszring.Add(szring, 1, wx.EXPAND | wx.ALL, 5) self.bok = wx.Button(self, wx.ID_OK, 'OK') self.bcancel = wx.Button(self, wx.ID_CANCEL, 'Cancel') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.bok, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) szbutton.Add(self.bcancel, (0, 1), (1, 1), wx.ALIGN_CENTER) szbutton.AddGrowableCol(0) sz = wx.GridBagSizer(5, 5) sz.Add(sbszring, (0, 0), (1, 1), wx.EXPAND | wx.ALL, 10) sz.Add(szbutton, (1, 0), (1, 1), wx.EXPAND | wx.ALL, 10) self.SetSizerAndFit(sz) self.Bind(wx.EVT_BUTTON, self.onOK, self.bok) def onOK(self, evt): ring = (self.ieinside.GetValue(), self.ieoutside.GetValue()) if not self.GetParent().validate(ring): dialog = wx.MessageDialog(self, 'Invalid ring dimensions', 'Error', wx.OK | wx.ICON_ERROR) dialog.ShowModal() dialog.Destroy() else: self.ring = ring evt.Skip()
class Dialog(wx.Dialog): def __init__(self, parent, title, target=None, targetname='Relative target'): wx.Dialog.__init__(self, parent, -1, title) sbsztarget = wx.StaticBoxSizer(wx.StaticBox(self, -1, 'Target'), wx.VERTICAL) self.targetname = targetname self.iex = IntEntry(self, -1, chars=4) self.iey = IntEntry(self, -1, chars=4) if target is not None: if not parent.validate(target): raise ValueError x, y = target self.iex.SetValue(x) self.iey.SetValue(y) sztarget = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'x') sztarget.Add(label, (0, 1), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'y') sztarget.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, self.targetname) sztarget.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztarget.Add(self.iex, (1, 1), (1, 1), wx.ALIGN_CENTER|wx.FIXED_MINSIZE) sztarget.Add(self.iey, (1, 2), (1, 1), wx.ALIGN_CENTER|wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'pixels') sztarget.Add(label, (1, 3), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbsztarget.Add(sztarget, 1, wx.EXPAND|wx.ALL, 5) self.bok = wx.Button(self, wx.ID_OK, 'OK') self.bcancel = wx.Button(self, wx.ID_CANCEL, 'Cancel') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.bok, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT) szbutton.Add(self.bcancel, (0, 1), (1, 1), wx.ALIGN_CENTER) szbutton.AddGrowableCol(0) sz = wx.GridBagSizer(5, 5) sz.Add(sbsztarget, (0, 0), (1, 1), wx.EXPAND|wx.ALL, 10) sz.Add(szbutton, (1, 0), (1, 1), wx.EXPAND|wx.ALL, 10) self.SetSizerAndFit(sz) self.Bind(wx.EVT_BUTTON, self.onOK, self.bok) def onOK(self, evt): target = (self.iex.GetValue(), self.iey.GetValue()) if not self.GetParent().validate(target): dialog = wx.MessageDialog(self, 'Invalid target dimensions', 'Error', wx.OK|wx.ICON_ERROR) dialog.ShowModal() dialog.Destroy() else: self.target = target evt.Skip()
def initialize(self): sizers = leginon.gui.wx.Acquisition.ScrolledSettings.initialize(self) sb = wx.StaticBox(self, -1, 'Tilt Imaging and Correlation') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) sizer = wx.GridBagSizer(5, 5) self.widgets['tableau type'] = Choice(self, -1, choices=self.node.tableau_types) label = wx.StaticText(self, -1, 'Tableau Type (method-display):') sizer.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['tableau type'], (0, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['beam tilt'] = FloatEntry(self, -1, min=0.0, allownone=False, chars=6, value='0.005') bt_sizer = wx.GridBagSizer(5, 5) bt_sizer.Add(self.widgets['beam tilt'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL|wx.FIXED_MINSIZE) bt_sizer.Add(wx.StaticText(self, -1, 'radian'), (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Beam Tilt:') sizer.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(bt_sizer, (1, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['sites'] = IntEntry(self, -1, min=0, allownone=False, chars=4, value='0') label = wx.StaticText(self, -1, 'Number of tilt directions:') sizer.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['sites'], (2, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['startangle'] = FloatEntry(self, -1, min=0, allownone=False, chars=4, value='0') label = wx.StaticText(self, -1, 'Start Angle:') sizer.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['startangle'], (3, 1), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'degrees') sizer.Add(label, (3, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['correlation type'] = Choice(self, -1, choices=self.node.correlation_types) label = wx.StaticText(self, -1, 'Correlation Type:') sizer.Add(label, (4, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['correlation type'], (4, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['tableau binning'] = IntEntry(self, -1, min=1, allownone=False, chars=4, value='2') label = wx.StaticText(self, -1, 'Tableau Binning:') sizer.Add(label, (5, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['tableau binning'], (5, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['beam tilt count'] = IntEntry(self, -1, min=1, allownone=False, chars=4, value='1') label = wx.StaticText(self, -1, 'Beam Tilt Count:') sizer.Add(label, (6, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['beam tilt count'], (6, 1), (1, 1), wx.ALIGN_CENTER) self.widgets['tableau split'] = IntEntry(self, -1, min=1, allownone=False, chars=4, value='8') label = wx.StaticText(self, -1, 'Tableau Split:') sizer.Add(label, (7, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.widgets['tableau split'], (7, 1), (1, 1), wx.ALIGN_CENTER) sbsz.Add(sizer, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5) self.widgets['tableau type'].Bind(wx.EVT_CHOICE, self.onTableauTypeChoice) return sizers + [sbsz]
def createOffsetSizer(self): # set widgets self.widgets['target offset row'] = IntEntry(self, -1, chars=6) self.widgets['target offset col'] = IntEntry(self, -1, chars=6) # make sizer sz_offset = wx.BoxSizer(wx.HORIZONTAL) sz_offset.Add(wx.StaticText(self, -1, 'offset target x:')) sz_offset.Add(self.widgets['target offset col']) sz_offset.Add(wx.StaticText(self, -1, 'y:')) sz_offset.Add(self.widgets['target offset row']) return sz_offset
def __init__(self, parent, title, target=None, targetname='Relative target'): wx.Dialog.__init__(self, parent, -1, title) sbsztarget = wx.StaticBoxSizer(wx.StaticBox(self, -1, 'Target'), wx.VERTICAL) self.targetname = targetname self.iex = IntEntry(self, -1, chars=4) self.iey = IntEntry(self, -1, chars=4) if target is not None: if not parent.validate(target): raise ValueError x, y = target self.iex.SetValue(x) self.iey.SetValue(y) sztarget = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'x') sztarget.Add(label, (0, 1), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'y') sztarget.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, self.targetname) sztarget.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sztarget.Add(self.iex, (1, 1), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) sztarget.Add(self.iey, (1, 2), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'pixels') sztarget.Add(label, (1, 3), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbsztarget.Add(sztarget, 1, wx.EXPAND | wx.ALL, 5) self.bok = wx.Button(self, wx.ID_OK, 'OK') self.bcancel = wx.Button(self, wx.ID_CANCEL, 'Cancel') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.bok, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) szbutton.Add(self.bcancel, (0, 1), (1, 1), wx.ALIGN_CENTER) szbutton.AddGrowableCol(0) sz = wx.GridBagSizer(5, 5) sz.Add(sbsztarget, (0, 0), (1, 1), wx.EXPAND | wx.ALL, 10) sz.Add(szbutton, (1, 0), (1, 1), wx.EXPAND | wx.ALL, 10) self.SetSizerAndFit(sz) self.Bind(wx.EVT_BUTTON, self.onOK, self.bok)
def addBasicTiltSettings(self): sb = wx.StaticBox(self, -1, 'Tilt Options') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) sizer = wx.GridBagSizer(5, 4) bordersize = 3 label = wx.StaticText(self, -1, 'Activation Interval') sizer.Add(label, (0, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) self.widgets['activation interval'] = IntEntry(self, -1, chars=5, style=wx.ALIGN_RIGHT) sizer.Add(self.widgets['activation interval'], (0, 2), (1, 2), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'List of Tilts to Collect (in degrees)') sizer.Add(label, (1, 0), (1, 2), wx.ALIGN_CENTER_VERTICAL) self.widgets['tilts'] = Entry(self, -1, chars=15, style=wx.ALIGN_RIGHT) sizer.Add(self.widgets['tilts'], (1, 2), (1, 2), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'Min Feature Size') sizer.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['minsize'] = FloatEntry(self, -1, chars=6, value='0.0') sizer.Add(self.widgets['minsize'], (2, 1), (1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'Max Feature Size') sizer.Add(label, (2, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['maxsize'] = FloatEntry(self, -1, chars=6, value='0.0') sizer.Add(self.widgets['maxsize'], (2, 3), (1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'Median Filter (pixels)') sizer.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['medfilt'] = IntEntry(self, -1, chars=2, value='0') sizer.Add(self.widgets['medfilt'], (3, 1), (1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, bordersize) label = wx.StaticText(self, -1, 'LowPass Filter (pixels)') sizer.Add(label, (3, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.widgets['lowfilt'] = FloatEntry(self, -1, chars=2, value='0.0') sizer.Add(self.widgets['lowfilt'], (3, 3), (1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, bordersize) sbsz.Add(sizer, 0, wx.ALIGN_CENTER | wx.ALL, 2) return sbsz
def onInitialize(self): c2sizer = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'C2 size: ') c2sizer.Add(label, (0, 0), (1, 1), wx.ALIGN_LEFT) self.c2sizectrl = IntEntry(self, -1, chars=6) c2sizer.Add(self.c2sizectrl, (0, 1), (1, 1), wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'um') c2sizer.Add(label, (0, 2), (1, 1), wx.ALIGN_LEFT) self.sz.Add(c2sizer, (0, 0), (1, 1), wx.EXPAND|wx.ALL,10) savebtn = wx.Button(self, -1, 'Save') self.sz.Add(savebtn, (1, 0), (1, 1), wx.EXPAND|wx.ALL,5) self.sz.AddGrowableCol(0) self.Bind(wx.EVT_BUTTON, self.onSave, savebtn)
def onInitialize(self): mag1lab = wx.StaticText(self, -1, 'Mag 1:') self.mag1 = IntEntry(self, -1, chars=8) mag2lab = wx.StaticText(self, -1, 'Mag 2:') self.mag2 = IntEntry(self, -1, chars=8) p1lab = wx.StaticText(self, -1, 'Pixel 1:') self.p1row = FloatEntry(self, -1, chars=4) self.p1col = FloatEntry(self, -1, chars=4) p2lab = wx.StaticText(self, -1, 'Pixel 2:') self.p2row = FloatEntry(self, -1, chars=4) self.p2col = FloatEntry(self, -1, chars=4) angle1lab = wx.StaticText(self, -1, 'Angle 1') self.angle1 = wx.StaticText(self, -1, '') len1lab = wx.StaticText(self, -1, 'Length 1') self.len1 = wx.StaticText(self, -1, '') angle2lab = wx.StaticText(self, -1, 'Angle 2') self.angle2 = wx.StaticText(self, -1, '') len2lab = wx.StaticText(self, -1, 'Length 2') self.len2 = wx.StaticText(self, -1, '') calcp1 = wx.Button(self, -1, 'Calculate') self.Bind(wx.EVT_BUTTON, self.calcp1, calcp1) calcp2 = wx.Button(self, -1, 'Calculate') self.Bind(wx.EVT_BUTTON, self.calcp2, calcp2) self.sz.Add(mag1lab, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.mag1, (0, 1), (1, 2), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(mag2lab, (0, 3), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.mag2, (0, 4), (1, 2), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(p1lab, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.p1row, (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.p1col, (1, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(p2lab, (1, 3), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.p2row, (1, 4), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.p2col, (1, 5), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(angle1lab, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.angle1, (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(angle2lab, (2, 3), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.angle2, (2, 4), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(len1lab, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.len1, (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(len2lab, (3, 3), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.len2, (3, 4), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(calcp1, (4, 0), (1, 3), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(calcp2, (4, 3), (1, 3), wx.ALIGN_CENTER_VERTICAL)
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Target Filter') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) targettypes = ['acquisition', 'focus', 'preview'] self.widgets['bypass'] = wx.CheckBox(self, -1, 'Bypass Filter') self.widgets['target type'] = wx.Choice(self, -1, choices=targettypes) self.widgets['user check'] = wx.CheckBox( self, -1, 'Verify filter before submitting') self.widgets['limit'] = IntEntry(self, -1, min=0, chars=6) sz = wx.GridBagSizer(5, 10) ## filter sz.Add(self.widgets['bypass'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Filtering Target Type') sz.Add(label, (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['target type'], (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['user check'], (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.AddGrowableCol(0) label = wx.StaticText(self, -1, 'Limit Targets to the center-most') sz.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['limit'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) sbsz.Add(sz, 0, wx.ALIGN_CENTER | wx.ALL, 5) return [sbsz]
def __init__(self, parent, title='Main'): self.parent = parent wx.StaticBoxSizer.__init__(self, wx.StaticBox(self.parent, -1, title), wx.VERTICAL) self.sz = wx.GridBagSizer(5, 5) self.Add(self.sz, 1, wx.EXPAND|wx.ALL, 5) parameterorder = [ 'High tension', 'Magnification', 'Intensity', 'Spot size', ] self.parameters = { 'High tension': wx.StaticText(self.parent, -1, ''), 'Magnification': wx.Choice(self.parent, -1), 'Intensity': FloatEntry(self.parent, -1, chars=7, allownone=True), 'Spot size': IntEntry(self.parent, -1, chars=2, allownone=True), } for i, p in enumerate(parameterorder): st = wx.StaticText(self.parent, -1, p + ':') style = wx.ALIGN_CENTER if isinstance(self.parameters[p], Entry): style |= wx.FIXED_MINSIZE self.sz.Add(st, (i, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) self.sz.Add(self.parameters[p], (i, 1), (1, 1), style) self.sz.AddGrowableRow(i) self.parameters[p].Enable(False) self.sz.AddGrowableCol(1)
def createSimulatedTargetLoopBoxSizer(self): sbsim = wx.StaticBox(self, -1, 'Simulated Target Loop') sbszsim = wx.StaticBoxSizer(sbsim, wx.VERTICAL) # simulate loop settings self.widgets['wait time'] = FloatEntry(self, -1, min=0.0, chars=6) self.widgets['iterations'] = IntEntry(self, -1, min=0.0, chars=6) szwaittime = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Wait Time:') szwaittime.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szwaittime.Add(self.widgets['wait time'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'seconds') szwaittime.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sziterations = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Iterations:') sziterations.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sziterations.Add(self.widgets['iterations'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) # simluate target loop szsim = wx.GridBagSizer(5, 5) szsim.Add(szwaittime, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szsim.Add(sziterations, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbszsim.Add(szsim, 0, wx.ALIGN_CENTER) return sbszsim
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Transform Management') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['min mag'] = IntEntry(self, -1, min=1, chars=9) #self.instrumentselection = leginon.gui.wx.Instrument.SelectionPanel(self, passive=True) #self.panel.setInstrumentSelection(self.instrumentselection) #self.widgets['camera settings'] = leginon.gui.wx.Camera.CameraPanel(self) #self.widgets['camera settings'].setSize(self.node.instrument.camerasize) regtypes = self.node.getRegistrationTypes() self.widgets['registration'] = Choice(self, -1, choices=regtypes) szminmag = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Minimum Magnification') szminmag.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szminmag.Add(self.widgets['min mag'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Register images using') szminmag.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szminmag.Add(self.widgets['registration'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) sz = wx.GridBagSizer(5, 10) sz.Add(szminmag, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) #sz.Add(self.instrumentselection, (1, 0), (1, 1), wx.EXPAND) #sz.Add(self.widgets['camera settings'], (2, 0), (1, 1), wx.EXPAND) sbsz.Add(sz, 0, wx.ALIGN_CENTER | wx.ALL, 5) return [sbsz]
def initialize(self): tfsd = leginon.gui.wx.TargetFinder.ScrolledSettings.initialize(self) if self.show_basic: return tfsd else: sb = wx.StaticBox(self, -1, 'Hole Finder Settings') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['skip'] = wx.CheckBox(self, -1, 'Skip automated hole finder') self.widgets['focus interval'] = IntEntry(self, -1, chars=6) sz = wx.GridBagSizer(5, 5) sz.Add(self.widgets['skip'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Focus every') sz.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add( self.widgets['focus interval'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'image') sz.Add(label, (1, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbsz.Add(sz, 0, wx.ALIGN_CENTER | wx.ALL, 5) return tfsd + [sbsz]
def __init__(self, parent): WizardPage.__init__(self, parent) self.pagesizer = wx.GridBagSizer() self.sizer = wx.GridBagSizer() self.sizer.Add( wx.StaticText( self, -1, '''Enter illumination limiting aperture size (likely C2) you will use at high magnification imaging if you would like to see its imprint when targeting'''), (0, 0), (1, 1)) c2sizer = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'C2 size: ') c2sizer.Add(label, (0, 0), (1, 1), wx.ALIGN_LEFT) self.c2sizectrl = IntEntry(self, -1, chars=6, value='100') c2sizer.Add(self.c2sizectrl, (0, 1), (1, 1), wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'um') c2sizer.Add(label, (0, 2), (1, 1), wx.ALIGN_LEFT) self.sizer.Add(c2sizer, (2, 0), (1, 1), wx.EXPAND | wx.ALL, 10) self.sizer.AddGrowableCol(0) self.pagesizer.Add(self.sizer, (0, 0), (1, 1), wx.ALIGN_CENTER) self.pagesizer.AddGrowableRow(0) self.pagesizer.AddGrowableCol(0) self.SetSizerAndFit(self.pagesizer)
def __init__(self, parent): self.node = parent.node wx.Dialog.__init__(self, parent, -1, 'Test Reproducibiltiy') self.measure = wx.Button(self, -1, 'Run') self.Bind(wx.EVT_BUTTON, self.onMeasureButton, self.measure) szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.measure, (0, 0), (1, 1), wx.EXPAND) sbsz = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Label:') self.labvalue = Entry(self, -1, chars=20, value='test1') sbsz.Add(label, (0, 0), (1, 1)) sbsz.Add(self.labvalue, (0, 1), (1, 1)) label = wx.StaticText(self, -1, 'Moves:') self.movesvalue = IntEntry(self, -1, allownone=False, chars=5, value='10') sbsz.Add(label, (1, 0), (1, 1)) sbsz.Add(self.movesvalue, (1, 1), (1, 1)) label = wx.StaticText(self, -1, 'Distance:') self.distvalue = FloatEntry(self, -1, allownone=False, chars=5, value='1e-5') sbsz.Add(label, (2, 0), (1, 1)) sbsz.Add(self.distvalue, (2, 1), (1, 1)) label = wx.StaticText(self, -1, 'Angle:') self.angvalue = FloatEntry(self, -1, allownone=True, chars=5, value='') sbsz.Add(label, (3, 0), (1, 1)) sbsz.Add(self.angvalue, (3, 1), (1, 1)) self.sizer = wx.GridBagSizer(5, 5) self.sizer.Add(sbsz, (0, 0), (1, 1), wx.EXPAND | wx.ALL, 10) self.sizer.Add(self.measure, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 10) self.SetSizerAndFit(self.sizer)
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Target Filter') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) targettypes = ['acquisition', 'focus', 'preview'] self.widgets['bypass'] = wx.CheckBox(self, -1, 'Bypass Filter') self.widgets['target type'] = wx.Choice(self, -1, choices=targettypes) self.widgets['user check'] = wx.CheckBox( self, -1, 'Verify filter before submitting') self.widgets['square length'] = IntEntry(self, -1, min=0, chars=6) self.widgets['bright number'] = IntEntry(self, -1, min=0, chars=6) self.widgets['dark number'] = IntEntry(self, -1, min=0, chars=6) self.widgets['median number'] = IntEntry(self, -1, min=0, chars=6) sz = wx.GridBagSizer(5, 10) ## filter sz.Add(self.widgets['bypass'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Filtering Target Type') sz.Add(label, (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['target type'], (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['user check'], (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.AddGrowableCol(0) label = wx.StaticText( self, -1, 'length of the square to consider intensity stats:') sz.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['square length'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'number of brightest targets:') sz.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['bright number'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'number of darkest targets:') sz.Add(label, (4, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['dark number'], (4, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'number of closest-to-median targets:') sz.Add(label, (5, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['median number'], (5, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) sbsz.Add(sz, 0, wx.ALIGN_CENTER | wx.ALL, 5) return [sbsz]
def __init__(self, parent, title, ring=None): wx.Dialog.__init__(self, parent, -1, title) sbszring = wx.StaticBoxSizer(wx.StaticBox(self, -1, 'Ring'), wx.VERTICAL) self.ieinside = IntEntry(self, -1, min=0, chars=4) self.ieoutside = IntEntry(self, -1, min=0, chars=4) if ring is not None: if not parent.validate(ring): raise ValueError inside, outside = ring self.ieinside.SetValue(inside) self.ieoutside.SetValue(outside) szring = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Inside') szring.Add(label, (0, 1), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'Outside') szring.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER) label = wx.StaticText(self, -1, 'Diameter') szring.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szring.Add(self.ieinside, (1, 1), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) szring.Add(self.ieoutside, (1, 2), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'pixels') szring.Add(label, (1, 3), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbszring.Add(szring, 1, wx.EXPAND | wx.ALL, 5) self.bok = wx.Button(self, wx.ID_OK, 'OK') self.bcancel = wx.Button(self, wx.ID_CANCEL, 'Cancel') szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.bok, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) szbutton.Add(self.bcancel, (0, 1), (1, 1), wx.ALIGN_CENTER) szbutton.AddGrowableCol(0) sz = wx.GridBagSizer(5, 5) sz.Add(sbszring, (0, 0), (1, 1), wx.EXPAND | wx.ALL, 10) sz.Add(szbutton, (1, 0), (1, 1), wx.EXPAND | wx.ALL, 10) self.SetSizerAndFit(sz) self.Bind(wx.EVT_BUTTON, self.onOK, self.bok)
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Image-Shift Coma Calibration') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['imageshift coma tilt'] = FloatEntry(self, -1, chars=9) self.widgets['imageshift coma step'] = FloatEntry(self, -1, chars=9) self.widgets['imageshift coma number'] = IntEntry(self, -1, min=1, chars=2) self.widgets['imageshift coma repeat'] = IntEntry(self, -1, min=1, chars=2) sz = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Coma measurement beam tilt (+/-)') sz.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['imageshift coma tilt'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Measure coma at') sz.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['imageshift coma number'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'positions per image shift direction') sz.Add(label, (1, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'Add additional') sz.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['imageshift coma step'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'm image shift at each position') sz.Add(label, (2, 2), (1, 1), wx.ALIGN_LEFT) label = wx.StaticText(self, -1, 'Repeat coma measurement') sz.Add(label, (3, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(self.widgets['imageshift coma repeat'], (3, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'times') sz.Add(label, (3, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) sbsz.Add(sz, 0, wx.ALIGN_CENTER | wx.ALL, 5) return [sbsz]
def __init__(self, parent): self.parent = parent self.theta = self.parent.data['theta'] wx.Dialog.__init__(self, self.parent.frame, -1, "Measure Tilt Angle, Theta") inforow = wx.FlexGridSizer(3, 3, 15, 15) thetastr = ("****** %3.3f ******" % self.theta) label = wx.StaticText(self, -1, "Current tilt angle: ", style=wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) self.tiltvalue = wx.StaticText(self, -1, thetastr, style=wx.ALIGN_CENTER|wx.ALIGN_CENTER_VERTICAL) #self.tiltvalue = FloatEntry(self, -1, allownone=True, chars=5, value=thetastr) label3 = wx.StaticText(self, -1, "degrees", style=wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) inforow.Add(label, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) inforow.Add(self.tiltvalue, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 3) inforow.Add(label3, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 3) arealimstr = str(int(self.parent.data['arealim'])) label = wx.StaticText(self, -1, "Minimum Triangle Area: ", style=wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) self.arealimit = IntEntry(self, -1, allownone=False, chars=8, value=arealimstr) label2 = wx.StaticText(self, -1, "square pixels", style=wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) inforow.Add(label, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) inforow.Add(self.arealimit, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 3) inforow.Add(label2, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 3) label = wx.StaticText(self, -1, "Triangles Used: ", style=wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) self.trilabel1 = wx.StaticText(self, -1, " ", style=wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) self.trilabel2 = wx.StaticText(self, -1, " ", style=wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) inforow.Add(label, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 3) inforow.Add(self.trilabel1, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 3) inforow.Add(self.trilabel2, 0, wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 3) self.canceltiltang = wx.Button(self, wx.ID_CANCEL, '&Cancel') self.applytiltang = wx.Button(self, wx.ID_APPLY, '&Apply') self.runtiltang = wx.Button(self, -1, '&Run') self.Bind(wx.EVT_BUTTON, self.onRunTiltAng, self.runtiltang) self.Bind(wx.EVT_BUTTON, self.onApplyTiltAng, self.applytiltang) buttonrow = wx.GridSizer(1,3) buttonrow.Add(self.canceltiltang, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0) buttonrow.Add(self.applytiltang, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0) buttonrow.Add(self.runtiltang, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0) self.sizer = wx.FlexGridSizer(2,1) self.sizer.Add(inforow, 0, wx.EXPAND|wx.ALL, 10) self.sizer.Add(buttonrow, 0, wx.EXPAND|wx.ALL, 5) self.SetSizerAndFit(self.sizer)
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Raptor Settings') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['process'] = wx.CheckBox(self, -1, 'Process images when event received') self.widgets['path'] = Entry(self, -1) self.widgets['time'] = IntEntry(self, -1) self.widgets['binning'] = IntEntry(self, -1) sbsz.Add(self.widgets['process']) sbsz.Add(self.widgets['path']) sbsz.Add(self.widgets['time']) sbsz.Add(self.widgets['binning']) return [sbsz]
def createTemplateDiameterEntry(self, sz, start_position): self.widgets['template diameter'] = IntEntry(self, -1, chars=4) label = wx.StaticText(self, -1, 'Final Template Diameter') # add to main newrow, newcol = self.addToSizer(sz, label, start_position, (1, 1)) return self.addToSizer(sz, self.widgets['template diameter'], (start_position[0], newcol), (1, 1), wx.ALIGN_CENTER | wx.FIXED_MINSIZE)
def initialize(self): leginon.gui.wx.Settings.ScrolledDialog.initialize(self) sb = wx.StaticBox(self, -1, 'Mosaics') sbsz = wx.StaticBoxSizer(sb, wx.VERTICAL) choices = self.node.calclients.keys() self.widgets['calibration parameter'] = Choice(self, -1, choices=choices) self.widgets['scale image'] = wx.CheckBox(self, -1, 'Scale image to') self.widgets['scale size'] = IntEntry(self, -1, min=1, chars=4) self.widgets['create on tile change'] = Choice( self, -1, choices=['all', 'final', 'none']) self.bcreate = wx.Button(self, -1, 'Create') self.bsave = wx.Button(self, -1, 'Save') szp = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Calibration parameter') szp.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szp.Add(self.widgets['calibration parameter'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) szs = wx.GridBagSizer(5, 5) szs.Add(self.widgets['scale image'], (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szs.Add(self.widgets['scale size'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'pixels in largest dimension') szs.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) szb = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Mosaic image:') szb.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szb.Add(self.bcreate, (0, 1), (1, 1), wx.ALIGN_CENTER) szb.Add(self.bsave, (0, 2), (1, 1), wx.ALIGN_CENTER) szc = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Auto create mosaic for new tiles') szc.Add(label, (0, 0), (1, 1)) szc.Add(self.widgets['create on tile change'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz = wx.GridBagSizer(5, 5) sz.Add(szp, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(szs, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(szc, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz.Add(szb, (3, 0), (1, 1), wx.ALIGN_CENTER) sbsz.Add(sz, 1, wx.EXPAND | wx.ALL, 5) self.bcreate.Enable(self.node.mosaic.hasTiles()) self.bsave.Enable(self.node.hasMosaicImage()) self.Bind(wx.EVT_BUTTON, self.onCreateButton, self.bcreate) self.Bind(wx.EVT_BUTTON, self.onSaveButton, self.bsave) return [sbsz]
class ReproTestDialog(wx.Dialog): def __init__(self, parent): self.node = parent.node wx.Dialog.__init__(self, parent, -1, 'Test Reproducibiltiy') self.measure = wx.Button(self, -1, 'Run') self.Bind(wx.EVT_BUTTON, self.onMeasureButton, self.measure) szbutton = wx.GridBagSizer(5, 5) szbutton.Add(self.measure, (0, 0), (1, 1), wx.EXPAND) sbsz = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Label:') self.labvalue = Entry(self, -1, chars=20, value='test1') sbsz.Add(label, (0, 0), (1, 1)) sbsz.Add(self.labvalue, (0, 1), (1, 1)) label = wx.StaticText(self, -1, 'Moves:') self.movesvalue = IntEntry(self, -1, allownone=False, chars=5, value='10') sbsz.Add(label, (1, 0), (1, 1)) sbsz.Add(self.movesvalue, (1, 1), (1, 1)) label = wx.StaticText(self, -1, 'Distance:') self.distvalue = FloatEntry(self, -1, allownone=False, chars=5, value='1e-5') sbsz.Add(label, (2, 0), (1, 1)) sbsz.Add(self.distvalue, (2, 1), (1, 1)) label = wx.StaticText(self, -1, 'Angle:') self.angvalue = FloatEntry(self, -1, allownone=True, chars=5, value='') sbsz.Add(label, (3, 0), (1, 1)) sbsz.Add(self.angvalue, (3, 1), (1, 1)) self.sizer = wx.GridBagSizer(5, 5) self.sizer.Add(sbsz, (0, 0), (1, 1), wx.EXPAND | wx.ALL, 10) self.sizer.Add(self.measure, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 10) self.SetSizerAndFit(self.sizer) def onMeasureButton(self, evt): self.Close() label = self.labvalue.GetValue() moves = self.movesvalue.GetValue() distance = self.distvalue.GetValue() angle = self.angvalue.GetValue() threading.Thread(target=self.node.move_away_move_back, args=(label, moves, distance, angle)).start()
def addBasicGonModelerSettings(self): sb = wx.StaticBox(self, -1, 'Measurement') sbszmeasure = wx.StaticBoxSizer(sb, wx.VERTICAL) sb = wx.StaticBox(self, -1, 'Modeling') sbszmodel = wx.StaticBoxSizer(sb, wx.VERTICAL) self.widgets['measure axis'] = Choice(self, -1, choices=self.node.axes) self.widgets['measure points'] = IntEntry(self, -1, min=2, chars=5) self.widgets['measure interval'] = FloatEntry(self, -1, chars=9) self.widgets['model mag only'] = wx.CheckBox( self, -1, 'Scale and Rotation Adjustment Only') self.widgets['model terms'] = IntEntry(self, -1, chars=2) szmeasure = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Axis:') szmeasure.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmeasure.Add(self.widgets['measure axis'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT) label = wx.StaticText(self, -1, 'Points:') szmeasure.Add(label, (1, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmeasure.Add( self.widgets['measure points'], (1, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.FIXED_MINSIZE) label = wx.StaticText(self, -1, 'Interval') szmeasure.Add(label, (2, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmeasure.Add( self.widgets['measure interval'], (2, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.FIXED_MINSIZE) sbszmeasure.Add(szmeasure, 1, wx.EXPAND | wx.ALL, 5) szmodel = wx.GridBagSizer(5, 5) label = wx.StaticText(self, -1, 'Terms:') szmodel.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) szmodel.Add( self.widgets['model terms'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.FIXED_MINSIZE) szmodel.Add(self.widgets['model mag only'], (1, 0), (1, 2), wx.ALIGN_CENTER) szmodel.AddGrowableCol(1) sbszmodel.Add(szmodel, 1, wx.EXPAND | wx.ALL, 5) return [sbszmeasure, sbszmodel]
def createRepeatTimeEntry(self, start_position): sz_time = wx.GridBagSizer(1, 4) label1 = wx.StaticText(self, -1, 'Wait for at least') self.widgets['repeat time'] = IntEntry(self, -1, chars=6, min=0) label2 = wx.StaticText(self, -1, 'seconds before fixing condition') sz_time.Add(label1, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_time.Add(self.widgets['repeat time'], (0, 1), (1, 1), wx.EXPAND) sz_time.Add(label2, (0, 2), (1, 2), wx.ALIGN_CENTER_VERTICAL | wx.EXPAND) self.sz.Add(sz_time, start_position, (1, 2), wx.ALIGN_LEFT | wx.ALL)
def createBadRecheckSizer(self): # recheck self.widgets['recheck pause time'] = IntEntry(self, -1, chars=8) sz_recheck = wx.GridBagSizer(0, 0) label = wx.StaticText(self, -1, 'Wait for') sz_recheck.Add(label, (0, 0), (1, 1), wx.ALIGN_CENTER_VERTICAL) sz_recheck.Add(self.widgets['recheck pause time'], (0, 1), (1, 1), wx.ALIGN_CENTER_VERTICAL) label = wx.StaticText(self, -1, 'second if recheck') sz_recheck.Add(label, (0, 2), (1, 1), wx.ALIGN_CENTER_VERTICAL) return sz_recheck