def __init__(self, parent, enable_required=True):
wx.Dialog.__init__(self, parent, title=_('Project properties'),
style=wx.DEFAULT_DIALOG_STYLE)
main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
main_sizer.AddGrowableCol(0)
main_sizer.AddGrowableRow(0)
self.ProjectProperties = ProjectPropertiesPanel(
self,
enable_required=enable_required)
main_sizer.AddWindow(self.ProjectProperties, flag=wx.GROW)
self.ButtonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL | wx.CENTRE)
self.Bind(wx.EVT_BUTTON, self.OnOK,
self.ButtonSizer.GetAffirmativeButton())
main_sizer.AddSizer(self.ButtonSizer, border=20,
flag=wx.ALIGN_RIGHT | wx.BOTTOM | wx.LEFT | wx.RIGHT)
self.SetSizer(main_sizer)
self.ProjectProperties.Fit()
self.Fit()
python类LEFT的实例源码
def rgb(self, hist):
panel = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
back = wx.BoxSizer( wx.VERTICAL )
back.Add(panel, 1, wx.EXPAND)
sizer = wx.BoxSizer( wx.VERTICAL )
rgb = ['Red', 'Green', 'Blue']
for i in (0,1,2):
histc = HistCanvas(panel)
histc.set_hist(hist[i])
txt = wx.StaticText( panel, wx.ID_ANY, 'Channel:'+ rgb[i], wx.DefaultPosition, wx.DefaultSize, 0 )
sizer.Add( txt, 0, wx.LEFT|wx.RIGHT, 8 )
sizer.Add( histc, 0, wx.LEFT|wx.RIGHT, 8 )
mean, lim = np.dot(hist[i], range(256))/hist[i].sum(), np.where(hist[i]>0)[0]
sta = 'Statistic: Mean:%s Min:%s Max:%s'%(mean.round(1), lim.min(), lim.max())
txt = wx.StaticText( panel, wx.ID_ANY, sta, wx.DefaultPosition, wx.DefaultSize, 0 )
sizer.Add( txt, 0, wx.LEFT|wx.RIGHT|wx.BOTTOM, 8 )
panel.SetSizer( sizer )
self.SetSizer(back)
self.Fit()
def gray(self, hist):
panel = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL )
back = wx.BoxSizer( wx.VERTICAL )
back.Add(panel, 1, wx.EXPAND)
sizer = wx.BoxSizer( wx.VERTICAL )
histc = HistCanvas(panel)
histc.set_hist(hist)
txt = wx.StaticText( panel, wx.ID_ANY, 'Channel:'+'Gray', wx.DefaultPosition, wx.DefaultSize, 0 )
sizer.Add( txt, 0, wx.LEFT|wx.RIGHT, 8 )
sizer.Add( histc, 0, wx.LEFT|wx.RIGHT, 8 )
mean, lim = np.dot(hist, range(256))/hist.sum(), np.where(hist>0)[0]
sta = 'Statistic: Mean:%s Min:%s Max:%s'%(mean.round(1), lim.min(), lim.max())
txt = wx.StaticText( panel, wx.ID_ANY, sta, wx.DefaultPosition, wx.DefaultSize, 0 )
sizer.Add( txt, 0, wx.LEFT|wx.RIGHT|wx.BOTTOM, 8 )
panel.SetSizer( sizer )
self.SetSizer(back)
self.Fit()
def __do_layout(self):
# begin wxGlade: MyFrame.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(5, 2, 0, 0)
grid_sizer_1.Add(self.label_1, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_1, 0, wx.TOP, 20)
grid_sizer_1.Add(self.label_2, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_2, 0, wx.TOP, 20)
grid_sizer_1.Add(self.label_3, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_3, 0, wx.RIGHT|wx.TOP, 20)
grid_sizer_1.Add(self.label_4, 0, wx.LEFT|wx.TOP|wx.BOTTOM|wx.EXPAND, 20)
grid_sizer_1.Add(self.combo_box_4, 0, wx.RIGHT|wx.TOP|wx.BOTTOM, 20)
grid_sizer_1.Add(self.button_1, 0, wx.TOP|wx.ALIGN_RIGHT, 0)
grid_sizer_1.Add(self.button_2, 0, wx.LEFT, 30)
sizer_1.Add(grid_sizer_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
# end wxGlade
def __do_layout(self):
# begin wxGlade: CE_TE.__do_layout
sizer_5 = wx.BoxSizer(wx.VERTICAL)
sizer_8 = wx.BoxSizer(wx.HORIZONTAL)
sizer_7 = wx.BoxSizer(wx.HORIZONTAL)
sizer_6 = wx.BoxSizer(wx.HORIZONTAL)
sizer_6.Add(self.label_1, 0, wx.LEFT, 0)
sizer_6.Add(self.text_ctrl_1, 0, wx.LEFT|wx.ALIGN_RIGHT, 35)
sizer_5.Add(sizer_6, 1, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 30)
sizer_7.Add(self.label_2, 0, wx.LEFT, 0)
sizer_7.Add(self.text_ctrl_2, 0, wx.LEFT, 35)
sizer_5.Add(sizer_7, 1, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 30)
sizer_8.Add(self.button_2, 0, 0, 0)
sizer_8.Add(self.button_1, 0, wx.LEFT, 35)
sizer_5.Add(sizer_8, 1, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 20)
self.SetSizer(sizer_5)
self.text_ctrl_1.SetFocus()
self.Layout()
# end wxGlade
def __do_layout(self):
# begin wxGlade: working_days.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(4, 2, 10, 10)
grid_sizer_1.Add(self.label_1, 0, wx.LEFT, 20)
grid_sizer_1.Add(self.combo_box_1, 0, wx.RIGHT, 20)
grid_sizer_1.Add(self.label_5, 0, wx.LEFT, 74)
grid_sizer_1.Add((0, 0), 0, 0, 0)
grid_sizer_1.Add(self.label_2, 0, wx.LEFT | wx.TOP, 7)
grid_sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
grid_sizer_1.Add(self.label_3, 0, wx.LEFT | wx.TOP, 7)
grid_sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
grid_sizer_1.Add(self.label_4, 0, wx.LEFT | wx.TOP, 10)
grid_sizer_1.Add(self.text_ctrl_3, 0, 0, 0)
grid_sizer_1.Add(self.button_1, 0, wx.LEFT, 60)
grid_sizer_1.Add(self.button_2, 0, wx.LEFT, 10)
sizer_1.Add(grid_sizer_1, 1, wx.ALL | wx.EXPAND, 5)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
# end wxGlade
def __do_layout(self):
# begin wxGlade: disclaimer_win.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3 = wx.BoxSizer(wx.VERTICAL)
sizer_6 = wx.BoxSizer(wx.VERTICAL)
sizer_4 = wx.BoxSizer(wx.HORIZONTAL)
sizer_6_copy = wx.BoxSizer(wx.HORIZONTAL)
sizer_5 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3.Add(self.label_1, 1, wx.TOP | wx.ALIGN_CENTER_HORIZONTAL, 10)
sizer_3.Add(self.text_ctrl_1, 5, wx.EXPAND, 0)
sizer_5.Add(self.button_disagree, 0, wx.RIGHT, 20)
sizer_4.Add(sizer_5, 1, wx.ALIGN_CENTER_HORIZONTAL, 0)
sizer_6_copy.Add(self.button_agree, 0, wx.LEFT, 20)
sizer_4.Add(sizer_6_copy, 1, 0, 0)
sizer_6.Add(sizer_4, 1, wx.EXPAND, 0)
sizer_3.Add(sizer_6, 1, wx.ALIGN_CENTER_HORIZONTAL, 0)
sizer_2.Add(sizer_3, 1, wx.EXPAND, 0)
sizer_1.Add(sizer_2, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
# end wxGlade
def __do_layout(self):
# begin wxGlade: chng_pass.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_2 = wx.BoxSizer(wx.VERTICAL)
sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
grid_sizer_1 = wx.GridSizer(4, 2, 0, 0)
grid_sizer_1.Add(self.label_3, 0, wx.TOP, 10)
grid_sizer_1.Add(self.combo_box_1, 0, 0, 0)
grid_sizer_1.Add(self.label_4, 0, wx.TOP, 10)
grid_sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
grid_sizer_1.Add(self.label_5, 0, wx.TOP, 10)
grid_sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
grid_sizer_1.Add(self.label_6, 0, wx.TOP, 10)
grid_sizer_1.Add(self.text_ctrl_3, 0, 0, 0)
sizer_2.Add(grid_sizer_1, 1, wx.EXPAND, 0)
sizer_3.Add(self.button_1, 0, wx.LEFT, 80)
sizer_3.Add(self.button_2, 0, wx.LEFT, 30)
sizer_2.Add(sizer_3, 0, wx.TOP | wx.EXPAND, 20)
sizer_1.Add(sizer_2, 1, wx.ALL | wx.EXPAND, 20)
self.SetSizer(sizer_1)
sizer_1.Fit(self)
self.Layout()
self.Centre()
# end wxGlade
def __do_layout(self):
# begin wxGlade: MyFrame.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(5, 2, 0, 0)
grid_sizer_1.Add(self.label_1, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_1, 0, wx.TOP, 20)
grid_sizer_1.Add(self.label_2, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_2, 0, wx.TOP, 20)
grid_sizer_1.Add(self.label_3, 0, wx.LEFT|wx.TOP, 20)
grid_sizer_1.Add(self.combo_box_3, 0, wx.RIGHT|wx.TOP, 20)
#grid_sizer_1.Add(self.button_3, 0, wx.LEFT|wx.TOP|wx.BOTTOM|wx.EXPAND, 20)
#grid_sizer_1.Add(self.combo_box_4, 0, wx.RIGHT|wx.TOP|wx.BOTTOM, 20)
grid_sizer_1.Add(self.button_1, 0, wx.TOP|wx.ALIGN_RIGHT, 0)
grid_sizer_1.Add(self.button_2, 0, wx.LEFT, 30)
sizer_1.Add(grid_sizer_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
def __do_layout(self):
# begin wxGlade: working_days.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(4, 2, 10, 10)
grid_sizer_1.Add(self.label_1, 0, wx.LEFT, 20)
grid_sizer_1.Add(self.combo_box_1, 0, wx.RIGHT, 20)
grid_sizer_1.Add(self.label_5, 0, wx.LEFT, 74)
grid_sizer_1.Add((0, 0), 0, 0, 0)
grid_sizer_1.Add(self.label_2, 0, wx.LEFT | wx.TOP, 7)
grid_sizer_1.Add(self.text_ctrl_1, 0, 0, 0)
grid_sizer_1.Add(self.label_3, 0, wx.LEFT | wx.TOP, 7)
grid_sizer_1.Add(self.text_ctrl_2, 0, 0, 0)
grid_sizer_1.Add(self.label_4, 0, wx.LEFT | wx.TOP, 10)
grid_sizer_1.Add(self.text_ctrl_3, 0, 0, 0)
grid_sizer_1.Add(self.button_1, 0, wx.LEFT, 60)
grid_sizer_1.Add(self.button_2, 0, wx.LEFT, 10)
sizer_1.Add(grid_sizer_1, 1, wx.ALL | wx.EXPAND, 5)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
# end wxGlade
def __do_layout(self):
# begin wxGlade: add_academic_year.__do_layout
sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
sizer_2 = wx.BoxSizer(wx.VERTICAL)
grid_sizer_1 = wx.GridSizer(2, 1, 10, 10)
sizer_4 = wx.BoxSizer(wx.VERTICAL)
sizer_5 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3 = wx.BoxSizer(wx.HORIZONTAL)
sizer_3.Add(self.label_3, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
sizer_3.Add(self.text_ctrl_1, 0, wx.ALIGN_CENTER_VERTICAL, 0)
sizer_3.Add(self.label_4, 0, wx.ALIGN_CENTER_VERTICAL, 0)
sizer_3.Add(self.text_ctrl_2, 0, wx.ALIGN_CENTER_VERTICAL, 0)
grid_sizer_1.Add(sizer_3, 1, wx.EXPAND, 0)
sizer_5.Add(self.button_close, 0, wx.RIGHT, 20)
sizer_5.Add(self.button_add, 0, wx.LEFT, 20)
sizer_4.Add(sizer_5, 1, wx.ALIGN_CENTER_VERTICAL, 10)
grid_sizer_1.Add(sizer_4, 1, wx.TOP | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 30)
sizer_2.Add(grid_sizer_1, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
sizer_1.Add(sizer_2, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 0)
self.SetSizer(sizer_1)
self.Layout()
# end wxGlade
def getPanelBottomButtons(self):
panel = wx.Panel(self)
sizer = wx.BoxSizer(wx.HORIZONTAL)
b1 = wx.Button(panel, -1, "OK")
sizer.Add(b1, 0, wx.ALIGN_RIGHT, border=5)
b2 = wx.Button(panel, -1, "Apply")
sizer.Add(b2, 0, wx.ALIGN_RIGHT, border=5)
b3 = wx.Button(panel, -1, "Cancel")
sizer.Add(b3, 0, wx.LEFT|wx.RIGHT, border=5)
b1.Bind(wx.EVT_BUTTON, self._OnButtonOK)
b2.Bind(wx.EVT_BUTTON, self._OnButtonApply)
b3.Bind(wx.EVT_BUTTON, self._OnButtonCancel)
panel.SetSizer(sizer)
return panel
def __init__(self, parent, table, pos=(150, 680), size=(1000, 200)):
wx.Panel.__init__(self, parent, pos=pos, size=size)
self.parent = parent
self.table = table
self.size = size
sizer = wx.BoxSizer(wx.HORIZONTAL)
self.sndView = GuiSndViewPlayHead(self.parent, size=self.size)
self.sndView.setTable(self.table)
sizer.Add(self.sndView, 0, wx.EXPAND)
# def createSndTable(self):
# print self.parent.GetSize()
# sizer = wx.BoxSizer(wx.HORIZONTAL) # jr 1 juin 2017
# self.sndview = GuiSndViewPlayHead(self.parent, size=(1000, 400))
# self.sndview.setTable(self.table)
# sizer.Add(self.sndview, 0, wx.LEFT | wx.EXPAND, 155) # JR 1 juin 2017
# return sizer
# def createTimeSlider(self):
# sizer = wx.BoxSizer(wx.VERTICAL)
# self.timeSlider = PyoGuiControlSlider(self.parent, 0, self.table.getDur(False), 0, orient=wx.HORIZONTAL)
# self.timeSlider.Bind(EVT_PYO_GUI_CONTROL_SLIDER, self.moveTimeSlider)
# # self.timeSlider = wx.Slider(self.parent, -1, value=0, minValue=0, maxValue=self.table.getDur(False),
# # style=wx.SL_HORIZONTAL|wx.SL_LABELS)
## self.timeSlider.Bind(wx.EVT_SLIDER, self.moveTimeSlider)
# sizer.Add(self.timeSlider, 0, wx.LEFT | wx.EXPAND, 155)
# return sizer
# def moveTimeSlider(self,e):
# print self.timeSlider.value
#
# def setRange(self,min,max):
# self.timeSlider.setRange(min,max)
def InitLayout(self):
"""Lay out controls and add buttons."""
sizer = wx.BoxSizer(wx.HORIZONTAL)
txtSizer = wx.BoxSizer(wx.VERTICAL)
btnSizer = wx.BoxSizer(wx.VERTICAL)
replaceSizer = wx.BoxSizer(wx.HORIZONTAL)
txtSizer.Add(wx.StaticText(self, -1, "Unrecognised Word:"), 0, wx.LEFT|wx.TOP, 5)
txtSizer.Add(self.error_text, 1, wx.ALL|wx.EXPAND, 5)
replaceSizer.Add(wx.StaticText(self, -1, "Replace with:"), 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5)
replaceSizer.Add(self.replace_text, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5)
txtSizer.Add(replaceSizer, 0, wx.EXPAND, 0)
txtSizer.Add(self.replace_list, 2, wx.ALL|wx.EXPAND, 5)
sizer.Add(txtSizer, 1, wx.EXPAND, 0)
self.buttons = []
for label, action, tip in (\
("Ignore", self.OnIgnore, "Ignore this word and continue"),
("Ignore All", self.OnIgnoreAll, "Ignore all instances of this word and continue"),
("Replace", self.OnReplace, "Replace this word"),
("Replace All", self.OnReplaceAll, "Replace all instances of this word"),
("Add", self.OnAdd, "Add this word to the dictionary"),
("Done", self.OnDone, "Finish spell-checking and accept changes"),
):
btn = wx.Button(self, -1, label)
btn.SetToolTip(wx.ToolTip(tip))
btnSizer.Add(btn, 0, wx.ALIGN_RIGHT|wx.ALL, 4)
btn.Bind(wx.EVT_BUTTON, action)
self.buttons.append(btn)
sizer.Add(btnSizer, 0, wx.ALL|wx.EXPAND, 5)
self.SetAutoLayout(True)
self.SetSizer(sizer)
sizer.Fit(self)
def InitUI(self):
sb = wx.StaticText(self, label='Stop! Open or Create new project first!')
ic = wx.ArtProvider.GetBitmap( wx.ART_TIP, size=(48,48) )
icn= wx.StaticBitmap(self,-1,ic,name='Stop')
lbl_mt = wx.StaticText(self, label="")
vbox = wx.BoxSizer(wx.VERTICAL)
self.SetSizer(vbox)
vbox.Add(lbl_mt,flag=wx.CENTER, border=2)
vbox.Add(sb,flag=wx.CENTER, border=2)
vbox.Add(icn,flag=wx.CENTER, border=0)
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
OButton = wx.Button(self, label='Open')
NButton = wx.Button(self, label='New')
hbox2.Add(OButton, flag=wx.CENTER, border=2)
hbox2.Add(NButton, flag=wx.LEFT, border=5)
vbox.Add(hbox2,flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=2)
OButton.Bind(wx.EVT_BUTTON,self.OpenBtn)
NButton.Bind(wx.EVT_BUTTON,self.NewBtn)
self.Show()
self.SetFocus()
self.SetWindowStyle( wx.STAY_ON_TOP )
def __init__(self, parent, name, number, minnamelen, maxnamelen):
wxskinDialog.__init__(self, parent, -1, "Phonebook edit entry")
self.SetAutoLayout(True)
self.name = None
self.number = None
nameTextId = wx.NewId()
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "Enter the phonebook entry name, number and press OK.")
border.Add(label, 1, wx.ALL, 10)
#fgs = wx.FlexGridSizer(2,3,5,20)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Name (max %d): " % maxnamelen)
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.nameCtrl = wx.TextCtrl(self, nameTextId, name, validator = pySIMvalidator(None, minnamelen, maxnamelen))
fgs.Add(self.nameCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Number (max 20): ")
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.numberCtrl = wx.TextCtrl(self, -1, number, validator = pySIMvalidator("+*#pw0123456789", None, 20))
fgs.Add(self.numberCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_OK, "Okay"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_OK, self.onOK)
wx.EVT_TEXT_ENTER(self, nameTextId, self.onOK)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()
def createWidgets(self):
sizer = wx.GridSizer(3,3,5,5)
self.SIM.gatherInfo()
sizer.Add(wx.Size(0,0), 10, 1, wx.LEFT, 10) # Spacer
sizer.Add(wxskinStaticText(self, -1, "Activated"), 1, wx.LEFT | wx.RIGHT, 10)
sizer.Add(wxskinStaticText(self, -1, "Tries left"), 1, wx.RIGHT, 10)
sizer.Add(wxskinStaticText(self, -1, "PIN1"), 1, wx.LEFT, 10)
if self.SIM.chv1_enabled:
sizer.Add(wx.TextCtrl(self, -1, "Yes", style=wx.TE_READONLY), 1, wx.RIGHT, 10)
else:
sizer.Add(wx.TextCtrl(self, -1, "No", style=wx.TE_READONLY), 1, wx.RIGHT, 10)
sizer.Add(wx.TextCtrl(self, -1, "%d" % self.SIM.chv1_tries_left, style=wx.TE_READONLY), 1, wx.RIGHT, 10)
sizer.Add(wxskinStaticText(self, -1, "PIN2"), 1, wx.LEFT, 10)
if self.SIM.chv2_enabled:
sizer.Add(wx.TextCtrl(self, -1, "Yes", style=wx.TE_READONLY), 1, wx.RIGHT, 10)
else:
sizer.Add(wx.TextCtrl(self, -1, "No", style=wx.TE_READONLY), 1, wx.RIGHT, 10)
sizer.Add(wx.TextCtrl(self, -1, "%d" % self.SIM.chv2_tries_left, style=wx.TE_READONLY), 1, wx.RIGHT, 10)
self.SetSizer(sizer)
self.SetAutoLayout(1)
sizer.Fit(self)
sizer.Layout()
def __init__(self, parent, name, number, minnamelen, maxnamelen):
wxskinDialog.__init__(self, parent, -1, "Phonebook edit entry")
self.SetAutoLayout(True)
self.name = None
self.number = None
nameTextId = wx.NewId()
# Main window resizer object
border = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(self, -1, "Enter the phonebook entry name, number and press OK.")
border.Add(label, 1, wx.ALL, 10)
#fgs = wx.FlexGridSizer(2,3,5,20)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Name (max %d): " % maxnamelen)
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.nameCtrl = wx.TextCtrl(self, nameTextId, name, validator = pySIMvalidator(None, minnamelen, maxnamelen))
fgs.Add(self.nameCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
fgs = wx.BoxSizer(wx.HORIZONTAL)
label = wx.StaticText(self, -1, "Number (max 20): ")
fgs.Add(label, 1, wx.ALIGN_LEFT | wx.LEFT, 10)
self.numberCtrl = wx.TextCtrl(self, -1, number, validator = pySIMvalidator("+*#pw0123456789", None, 20))
fgs.Add(self.numberCtrl, 1, wx.ALIGN_RIGHT | wx.RIGHT, 10)
border.Add(fgs, 1, wx.ALL)
buttons = wx.BoxSizer(wx.HORIZONTAL)
buttons.Add(wx.Button(self, ID_BUTTON_OK, "Okay"), 1, wx.ALIGN_LEFT | wx.ALL, 20)
buttons.Add(wx.Button(self, wx.ID_CANCEL, "Cancel"), 1, wx.ALIGN_RIGHT | wx.ALL, 20)
border.Add(buttons, 1, wx.ALL)
wx.EVT_BUTTON(self, ID_BUTTON_OK, self.onOK)
wx.EVT_TEXT_ENTER(self, nameTextId, self.onOK)
self.SetAutoLayout(1);
self.SetSizer(border)
border.Fit(self)
self.Layout()
def _finished_loading(self):
"""Update the display when the run scan is finished.
When the `DirectoryScannerTopics.finished_run_scan` topic is received, add
the upload button to the page so that the user can start the upload.
"""
if not self._invalid_sheets_panel.IsShown():
self.Freeze()
if self._discovered_runs:
upload_button = wx.Button(self, label="Upload")
self._upload_sizer.Add(upload_button, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=5)
self.Bind(wx.EVT_BUTTON, self._start_upload, id=upload_button.GetId())
else:
all_uploaded_sizer = wx.BoxSizer(wx.HORIZONTAL)
all_uploaded_header = wx.StaticText(self, label=u"? All sample sheets uploaded.")
all_uploaded_header.SetFont(wx.Font(18, wx.DEFAULT, wx.NORMAL, wx.BOLD))
all_uploaded_header.SetForegroundColour(wx.Colour(51, 204, 51))
all_uploaded_header.Wrap(350)
all_uploaded_sizer.Add(all_uploaded_header, flag=wx.LEFT | wx.RIGHT, border=5)
self._sizer.Add(all_uploaded_sizer, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=5)
all_uploaded_details = wx.StaticText(self, label="I scanned {}, but I didn't find any sample sheets that weren't already uploaded. Click 'Scan again' to try finding new runs.".format(self._get_default_directory()))
all_uploaded_details.Wrap(350)
self._sizer.Add(all_uploaded_details, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=5)
scan_again = wx.Button(self, label="Scan again")
self._sizer.Add(scan_again, flag=wx.ALIGN_CENTER | wx.TOP | wx.BOTTOM, border=5)
self.Bind(wx.EVT_BUTTON, self._settings_changed, id=scan_again.GetId())
self.Layout()
self.Thaw()
def __init__(self, parent, run, api):
"""Initialize the RunPanel.
Args:
parent: The parent Window for this panel.
run: The sequencing run that should be displayed.
api: An initialized instance of an API for interacting with IRIDA.
"""
ScrolledPanel.__init__(self, parent, style=wx.SUNKEN_BORDER)
box = wx.StaticBox(self, label=run.sample_sheet_name)
self._timer = wx.Timer(self)
self._run = run
self._progress_value = 0
self._last_progress = 0
self._last_timer_progress = 0
self._sample_panels = {}
# the current overall progress for the run is calculated as a percentage
# of the total file size of all samples in the run.
self._progress_max = sum(sample.get_files_size() for sample in run.samples_to_upload)
logging.info("Total file size for run is {}".format(self._progress_max))
self._sizer = wx.StaticBoxSizer(box, wx.VERTICAL)
pub.subscribe(self._upload_started, run.upload_started_topic)
pub.subscribe(self._handle_progress, run.upload_progress_topic)
pub.subscribe(self._upload_complete, run.upload_completed_topic)
pub.subscribe(self._upload_failed, run.upload_failed_topic)
for sample in run.sample_list:
self._sample_panels[sample.get_id()] = SamplePanel(self, sample, run, api)
self._sizer.Add(self._sample_panels[sample.get_id()], flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=5)
self.SetSizer(self._sizer)
self.Bind(wx.EVT_TIMER, self._update_progress_timer, self._timer)
self.Layout()
self.SetupScrolling()