def __init__(self, parent, phil=None): BasePanel.__init__(self, parent=parent) self.regenerate_params(phil) # Title box self.project_title = ct.InputCtrl(self, label='Project Title: ', label_size=(140, -1)) # Output file box self.out_box = ct.InputCtrl(self, label='Project folder: ', label_size=(140, -1), label_style='bold', value=os.path.abspath(os.curdir), buttons=True) # Input file box self.inp_box = FileListCtrl(self) # Options opt_box = wx.FlexGridSizer(2, 3, 10, 10) self.opt_chk_useref = wx.CheckBox(self, label='Use reference in refinement') self.opt_chk_useref.Disable() self.opt_spc_nres = ct.SpinCtrl(self, label='No. of Residues: ', label_size=(160, -1), ctrl_size=(100, -1), ctrl_value=500, ctrl_min=10, ctrl_max=100000) procs = multiprocessing.cpu_count() self.opt_spc_nproc = ct.SpinCtrl(self, label='No. of Processors: ', label_size=(160, -1), ctrl_max=procs, ctrl_min=1, ctrl_value=str(int(procs / 2))) self.opt_btn = wx.Button(self, label='Advanced Options...') opt_box.AddMany([(self.opt_chk_useref), (0, 0), (self.opt_spc_nres), (self.opt_btn), (0, 0), (self.opt_spc_nproc)]) opt_box.AddGrowableCol(1) # Add to sizers self.main_sizer.Add(self.project_title, flag=f.expand, border=10) self.main_sizer.Add(self.out_box, flag=f.expand, border=10) self.main_sizer.Add(self.inp_box, 1, flag=wx.EXPAND | wx.ALL, border=10) self.main_sizer.Add(wx.StaticLine(self), flag=wx.EXPAND) self.main_sizer.Add(opt_box, flag=wx.ALL | wx.EXPAND, border=10) # Button bindings self.out_box.btn_browse.Bind(wx.EVT_BUTTON, self.onOutputBrowse) self.opt_btn.Bind(wx.EVT_BUTTON, self.onAdvancedOptions)
def __init__(self, parent): BasePanel.__init__(self, parent=parent) self.parent = parent self.img_filename = None self.input_phil = None self.sparams = None self.coord_filename = None self.mtz_filename = None self.stol_filename = None self.ref_img_filename = None self.dblclick = False self.project_folder = ct.InputCtrl(self, label='Project Folder: ', label_size=(150, -1), label_style='bold', value=os.path.abspath(os.curdir), buttons=True) self.project_title = ct.InputCtrl(self, label='Description', label_size=(150, -1), label_style='normal') self.splitter = wx.SplitterWindow(self, style=wx.SP_LIVE_UPDATE | wx.SP_3DSASH | wx.SP_NOBORDER) self.file_panel = wx.Panel(self.splitter, size=(-1, 200)) self.file_sizer = wx.BoxSizer(wx.VERTICAL) self.file_panel.SetSizer(self.file_sizer) self.preview_panel = wx.Panel(self.splitter, size=(-1, 500)) self.preview_sizer = wx.BoxSizer(wx.VERTICAL) self.preview_panel.SetSizer(self.preview_sizer) self.splitter.SplitHorizontally(self.file_panel, self.preview_panel, 200) self.input = FileListCtrl(self.file_panel) self.file_sizer.Add(self.input, 1, flag=wx.ALL | wx.EXPAND, border=10) # Image preview box w/ options prev_box = wx.GridBagSizer(5, 15) # self.opt_knb_start = ct.KnobCtrl(self.preview_panel, # label='start', # label_size=(40, -1), # spin_ctr_size=(50, -1), # knob_size=(120, 120), # values_start=0, # values_end=360, # values_step=1, # value=0) # # self.opt_knb_end = ct.KnobCtrl(self.preview_panel, # label='end', # label_size=(40, -1), # spin_ctr_size=(50, -1), # knob_size=(120, 120), # values_start=0, # values_end=360, # values_step=1, # value=360) self.opt_spc_start = ct.SpinCtrl(self.preview_panel, label='start:', label_size=(50, -1), ctrl_size=(60, -1), ctrl_value='0', ctrl_max=360, ctrl_min=0, ctrl_step=0.1, ctrl_digits=1) self.opt_spc_end = ct.SpinCtrl(self.preview_panel, label='finish:', label_size=(50, -1), ctrl_size=(60, -1), ctrl_value='360', ctrl_max=360, ctrl_min=0, ctrl_step=0.1, ctrl_digits=1) self.opt_spc_osc = ct.SpinCtrl(self.preview_panel, label='step:', label_size=(50, -1), ctrl_size=(60, -1), ctrl_value='1.0', ctrl_max=360, ctrl_min=0, ctrl_step=0.1, ctrl_digits=2) self.opt_btn_prev = wx.Button(self.preview_panel, label='PREVIEW IMAGE') self.opt_chk_bkg = wx.CheckBox(self.preview_panel, label='Add Background') self.opt_chk_bkg.SetValue(True) self.opt_chk_noise = wx.CheckBox(self.preview_panel, label='Add Noise') self.opt_chk_noise.SetValue(True) self.opt_chk_rand = wx.CheckBox(self.preview_panel, label='Randomize Orientation') self.opt_chk_rand.SetValue(True) self.opt_spc_scale = ct.SpinCtrl(self.preview_panel, label='Crystal size (um): ', label_size=(120, -1), ctrl_size=(100, -1), ctrl_min=1, ctrl_max=1000, ctrl_step=1, ctrl_value=30) self.img_figure = Figure(figsize=(3, 3)) self.img_axes = self.img_figure.add_subplot(111) self.img_axes.set_frame_on(False) self.img_axes.axis('off') self.img_axes.set_aspect('equal') self.img_figure.patch.set_visible(False) self.img_canvas = FigureCanvas(self.preview_panel, -1, self.img_figure) prev_box.Add(self.opt_spc_start, pos=(0, 0)) prev_box.Add(self.opt_spc_end, pos=(0, 1)) prev_box.Add(self.opt_spc_osc, pos=(1, 0)) prev_box.Add(self.opt_chk_bkg, flag=wx.EXPAND, pos=(4, 0), span=(1, 2)) prev_box.Add(self.opt_chk_noise, flag=wx.EXPAND, pos=(5, 0), span=(1, 2)) prev_box.Add(self.opt_chk_rand, flag=wx.EXPAND, pos=(6, 0), span=(1, 2)) prev_box.Add(self.opt_spc_scale, flag=wx.EXPAND, pos=(7, 0), span=(1, 2)) prev_box.Add(self.opt_btn_prev, flag=wx.EXPAND, pos=(8, 0), span=(1, 2)) prev_box.Add(self.img_canvas, pos=(0, 2), span=(9, 1), flag=wx.EXPAND) prev_box.AddGrowableCol(2) prev_box.AddGrowableRow(8) self.preview_sizer.Add(prev_box, 1, flag=wx.EXPAND | wx.ALL, border=10) self.main_sizer.Add(self.project_title, flag=wx.EXPAND | wx.ALL, border=10) self.main_sizer.Add(self.project_folder, flag=wx.EXPAND | wx.ALL, border=10) self.main_sizer.Add(self.splitter, 1, flag=wx.EXPAND) # Button bindings self.Bind(wx.EVT_BUTTON, self.onRunPreview, self.opt_btn_prev) # Thread bindings self.Bind(thr.EVT_NBDONE, self.onFinishedSimThread) # Image bindings xid = self.img_canvas.mpl_connect('button_press_event', self.on_button_press) xid = self.img_canvas.mpl_connect('button_release_event', self.on_button_release)