def makeToolbar(self): """Make bottom toolbar.""" # init toolbar panel panel = mwx.bgrPanel(self, -1, images.lib['bgrBottombar'], size=(-1, mwx.BOTTOMBAR_HEIGHT)) self.add_butt = wx.BitmapButton(panel, -1, images.lib['documentsAdd'], size=(mwx.BOTTOMBAR_TOOLSIZE), style=wx.BORDER_NONE) self.add_butt.SetToolTip(wx.ToolTip("Add...")) self.add_butt.Bind(wx.EVT_BUTTON, self.onAdd) self.delete_butt = wx.BitmapButton(panel, -1, images.lib['documentsDelete'], size=(mwx.BOTTOMBAR_TOOLSIZE), style=wx.BORDER_NONE) self.delete_butt.SetToolTip(wx.ToolTip("Remove...")) self.delete_butt.Bind(wx.EVT_BUTTON, self.onDelete) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.BOTTOMBAR_LSPACE) sizer.Add(self.add_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.delete_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.AddSpacer(mwx.BOTTOMBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeControlbar1(self): """Make composition controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrControlbarBorder'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make controls formulaMin_label = wx.StaticText(panel, -1, "Minimal formula:") formulaMin_label.SetFont(wx.SMALL_FONT) self.formulaMin_value = mwx.formulaCtrl(panel, -1, config.massToFormula['formulaMin'], size=(150, -1)) formulaMax_label = wx.StaticText(panel, -1, "Maximal formula:") formulaMax_label.SetFont(wx.SMALL_FONT) self.formulaMax_value = mwx.formulaCtrl(panel, -1, config.massToFormula['formulaMax'], size=(150, -1)) # pack controls sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(formulaMin_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.formulaMin_value, 1, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.AddSpacer(20) sizer.Add(formulaMax_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.formulaMax_value, 1, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make tools self.pmf_butt = wx.BitmapButton(panel, ID_profoundPMF, images.lib['profoundPMFOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.pmf_butt.SetToolTip(wx.ToolTip("Peptide mass fingerprint")) self.pmf_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.query_butt = wx.BitmapButton(panel, ID_profoundQuery, images.lib['profoundQueryOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.query_butt.SetToolTip(wx.ToolTip("Peak list")) self.query_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.search_butt = wx.Button(panel, -1, "Search", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.search_butt.Bind(wx.EVT_BUTTON, self.onSearch) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.TOOLBAR_LSPACE) sizer.Add(self.pmf_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.query_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.search_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbarNoBorder'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make elements if wx.Platform == '__WXMAC__': self.search_value = wx.SearchCtrl(panel, -1, size=(150, mwx.SMALL_SEARCH_HEIGHT), style=wx.TE_PROCESS_ENTER) self.search_value.ShowCancelButton(True) self.search_value.SetDescriptiveText('Search') self.search_value.Bind(wx.EVT_TEXT, self.onSearch) self.search_value.Bind(wx.EVT_SEARCHCTRL_CANCEL_BTN, lambda evt: self.search_value.SetValue('')) else: self.search_value = wx.TextCtrl(panel, -1, size=(150, mwx.SMALL_SEARCH_HEIGHT), style=wx.TE_PROCESS_ENTER) self.search_value.Bind(wx.EVT_TEXT, self.onSearch) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.TOOLBAR_LSPACE) sizer.Add(self.search_value, 1, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_LSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeIonseriesPanel(self): """Make controls for ionseries.""" # init panel ctrlPanel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make controls ionseriesAgent_label = wx.StaticText(ctrlPanel, -1, "Agent:") ionseriesAgent_label.SetFont(wx.SMALL_FONT) self.ionseriesAgentFormula_value = wx.TextCtrl(ctrlPanel, -1, config.massCalculator['ionseriesAgent'], size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.ionseriesAgentFormula_value.SetFont(wx.SMALL_FONT) self.ionseriesAgentFormula_value.Bind(wx.EVT_TEXT, self.onCompoundChanged) ionseriesAgentCharge_label = wx.StaticText(ctrlPanel, -1, "Agent charge:") ionseriesAgentCharge_label.SetFont(wx.SMALL_FONT) self.ionseriesAgentCharge_value = wx.TextCtrl(ctrlPanel, -1, str(config.massCalculator['ionseriesAgentCharge']), size=(40, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('int')) self.ionseriesAgentCharge_value.SetFont(wx.SMALL_FONT) self.ionseriesAgentCharge_value.Bind(wx.EVT_TEXT, self.onCompoundChanged) ionseriesPolarity_label = wx.StaticText(ctrlPanel, -1, "Polarity:") ionseriesPolarity_label.SetFont(wx.SMALL_FONT) self.ionseriesPositive_radio = wx.RadioButton(ctrlPanel, -1, "Positive", style=wx.RB_GROUP) self.ionseriesPositive_radio.SetFont(wx.SMALL_FONT) self.ionseriesPositive_radio.Bind(wx.EVT_RADIOBUTTON, self.onCompoundChanged) self.ionseriesNegative_radio = wx.RadioButton(ctrlPanel, -1, "Negative") self.ionseriesNegative_radio.SetFont(wx.SMALL_FONT) self.ionseriesNegative_radio.Bind(wx.EVT_RADIOBUTTON, self.onCompoundChanged) if config.massCalculator['ionseriesPolarity'] == -1: self.ionseriesNegative_radio.SetValue(True) else: self.ionseriesPositive_radio.SetValue(True) # pack controls controls = wx.BoxSizer(wx.HORIZONTAL) controls.AddSpacer(mwx.CONTROLBAR_LSPACE) controls.Add(ionseriesAgent_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) controls.Add(self.ionseriesAgentFormula_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(ionseriesAgentCharge_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) controls.Add(self.ionseriesAgentCharge_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(ionseriesPolarity_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) controls.Add(self.ionseriesPositive_radio, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) controls.Add(self.ionseriesNegative_radio, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(mwx.CONTROLBAR_RSPACE) controls.Fit(ctrlPanel) ctrlPanel.SetSizer(controls) # make ions list self.makeIonsList() # pack main mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(ctrlPanel, 0, wx.EXPAND) mainSizer.Add(self.ionsList, 1, wx.EXPAND|wx.ALL, mwx.LISTCTRL_NO_SPACE) return mainSizer
def makeControlbar(self): """Make controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make elements filter_label = wx.StaticText(panel, -1, "Remove:") filter_label.SetFont(wx.SMALL_FONT) self.filterAnnotations_check = wx.CheckBox(panel, -1, "Annotated") self.filterAnnotations_check.SetFont(wx.SMALL_FONT) self.filterAnnotations_check.SetValue( config.match['filterAnnotations']) self.filterAnnotations_check.Bind(wx.EVT_CHECKBOX, self.onFilter) self.filterMatches_check = wx.CheckBox(panel, -1, "Matched") self.filterMatches_check.SetFont(wx.SMALL_FONT) self.filterMatches_check.SetValue(config.match['filterMatches']) self.filterMatches_check.Bind(wx.EVT_CHECKBOX, self.onFilter) self.filterUnselected_check = wx.CheckBox(panel, -1, "Unselected") self.filterUnselected_check.SetFont(wx.SMALL_FONT) self.filterUnselected_check.SetValue(config.match['filterUnselected']) self.filterUnselected_check.Bind(wx.EVT_CHECKBOX, self.onFilter) self.filterIsotopes_check = wx.CheckBox(panel, -1, "Isotopes") self.filterIsotopes_check.SetFont(wx.SMALL_FONT) self.filterIsotopes_check.SetValue(config.match['filterIsotopes']) self.filterIsotopes_check.Bind(wx.EVT_CHECKBOX, self.onFilter) self.filterUnknown_check = wx.CheckBox(panel, -1, "Unknown") self.filterUnknown_check.SetFont(wx.SMALL_FONT) self.filterUnknown_check.SetValue(config.match['filterUnknown']) self.filterUnknown_check.Bind(wx.EVT_CHECKBOX, self.onFilter) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(filter_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.filterAnnotations_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.filterMatches_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.filterUnselected_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.filterIsotopes_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.filterUnknown_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeReferencesPanel(self): """Make references selection panel.""" # init panel ctrlPanel = mwx.bgrPanel(self, -1, images.lib["bgrControlbar"], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make controls references_label = wx.StaticText(ctrlPanel, -1, "References:") references_label.SetFont(wx.SMALL_FONT) choices = libs.references.keys() choices.sort() choices.insert(0, "Reference lists") self.references_choice = wx.Choice(ctrlPanel, -1, choices=choices, size=(250, mwx.SMALL_CHOICE_HEIGHT)) self.references_choice.Select(0) self.references_choice.Bind(wx.EVT_CHOICE, self.onReferencesSelected) tolerance_label = wx.StaticText(ctrlPanel, -1, "Tolerance:") tolerance_label.SetFont(wx.SMALL_FONT) self.tolerance_value = wx.TextCtrl( ctrlPanel, -1, str(config.calibration["tolerance"]), size=(50, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator("floatPos"), ) self.tolerance_value.SetFont(wx.SMALL_FONT) self.toleranceUnits_label = wx.StaticText(ctrlPanel, -1, config.calibration["units"]) self.toleranceUnits_label.SetFont(wx.SMALL_FONT) self.statCalibration_check = wx.CheckBox(ctrlPanel, -1, "Statistical only") self.statCalibration_check.SetFont(wx.SMALL_FONT) self.statCalibration_check.Bind(wx.EVT_CHECKBOX, self.onStatCalibration) self.makeReferencesList() # pack controls sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(references_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.references_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(tolerance_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.tolerance_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.toleranceUnits_label, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.statCalibration_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) controls = wx.BoxSizer(wx.VERTICAL) controls.Add(sizer, 1, wx.EXPAND) controls.Fit(ctrlPanel) ctrlPanel.SetSizer(controls) # pack main mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(ctrlPanel, 0, wx.EXPAND, 0) mainSizer.Add(self.referencesList, 1, wx.EXPAND | wx.ALL, mwx.LISTCTRL_NO_SPACE) return mainSizer
def makeControlbar2(self): """Make rules controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make controls rules_label = wx.StaticText(panel, -1, "Composition rules:") rules_label.SetFont(wx.SMALL_FONT) self.ruleHC_check = wx.CheckBox(panel, -1, "H/C") self.ruleHC_check.SetFont(wx.SMALL_FONT) self.ruleHC_check.SetValue(('HC' in config.massToFormula['rules'])) self.ruleHC_check.Bind(wx.EVT_CHECKBOX, self.onApplyRules) self.ruleNOPSC_check = wx.CheckBox(panel, -1, "NOPS/C") self.ruleNOPSC_check.SetFont(wx.SMALL_FONT) self.ruleNOPSC_check.SetValue(('NOPSC' in config.massToFormula['rules'])) self.ruleNOPSC_check.Bind(wx.EVT_CHECKBOX, self.onApplyRules) self.ruleNOPS_check = wx.CheckBox(panel, -1, "NOPS") self.ruleNOPS_check.SetFont(wx.SMALL_FONT) self.ruleNOPS_check.SetValue(('NOPS' in config.massToFormula['rules'])) self.ruleNOPS_check.Bind(wx.EVT_CHECKBOX, self.onApplyRules) self.ruleRDBE_check = wx.CheckBox(panel, -1, "RDBE") self.ruleRDBE_check.SetFont(wx.SMALL_FONT) self.ruleRDBE_check.SetValue(('RDBE' in config.massToFormula['rules'])) self.ruleRDBE_check.Bind(wx.EVT_CHECKBOX, self.onApplyRules) self.ruleRDBEInt_check = wx.CheckBox(panel, -1, "Integer RDBE") self.ruleRDBEInt_check.SetFont(wx.SMALL_FONT) self.ruleRDBEInt_check.SetValue(('RDBEInt' in config.massToFormula['rules'])) self.ruleRDBEInt_check.Bind(wx.EVT_CHECKBOX, self.onApplyRules) self.checkPattern_check = wx.CheckBox(panel, -1, "Check isotopic pattern") self.checkPattern_check.SetFont(wx.SMALL_FONT) self.checkPattern_check.SetValue(config.massToFormula['checkPattern']) # pack controls sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(rules_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.ruleHC_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.ruleNOPSC_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.ruleNOPS_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.ruleRDBE_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.ruleRDBEInt_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 40) sizer.Add(self.checkPattern_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeControlbar(self): """Make controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make elements filter_label = wx.StaticText(panel, -1, "Remove:") filter_label.SetFont(wx.SMALL_FONT) self.filterAnnotations_check = wx.CheckBox(panel, -1, "Annotated") self.filterAnnotations_check.SetFont(wx.SMALL_FONT) self.filterAnnotations_check.SetValue(config.match['filterAnnotations']) self.filterAnnotations_check.Bind(wx.EVT_CHECKBOX, self.onFilter) self.filterMatches_check = wx.CheckBox(panel, -1, "Matched") self.filterMatches_check.SetFont(wx.SMALL_FONT) self.filterMatches_check.SetValue(config.match['filterMatches']) self.filterMatches_check.Bind(wx.EVT_CHECKBOX, self.onFilter) self.filterUnselected_check = wx.CheckBox(panel, -1, "Unselected") self.filterUnselected_check.SetFont(wx.SMALL_FONT) self.filterUnselected_check.SetValue(config.match['filterUnselected']) self.filterUnselected_check.Bind(wx.EVT_CHECKBOX, self.onFilter) self.filterIsotopes_check = wx.CheckBox(panel, -1, "Isotopes") self.filterIsotopes_check.SetFont(wx.SMALL_FONT) self.filterIsotopes_check.SetValue(config.match['filterIsotopes']) self.filterIsotopes_check.Bind(wx.EVT_CHECKBOX, self.onFilter) self.filterUnknown_check = wx.CheckBox(panel, -1, "Unknown") self.filterUnknown_check.SetFont(wx.SMALL_FONT) self.filterUnknown_check.SetValue(config.match['filterUnknown']) self.filterUnknown_check.Bind(wx.EVT_CHECKBOX, self.onFilter) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(filter_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.filterAnnotations_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.filterMatches_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.filterUnselected_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.filterIsotopes_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.filterUnknown_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make buttons self.summary_butt = wx.BitmapButton(panel, ID_massCalculatorSummary, images.lib['massCalculatorSummaryOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.summary_butt.SetToolTip(wx.ToolTip("Compound summary")) self.summary_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.ionseries_butt = wx.BitmapButton(panel, ID_massCalculatorIonSeries, images.lib['massCalculatorIonSeriesOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.ionseries_butt.SetToolTip(wx.ToolTip("Ion series")) self.ionseries_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.pattern_butt = wx.BitmapButton(panel, ID_massCalculatorPattern, images.lib['massCalculatorPatternOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.pattern_butt.SetToolTip(wx.ToolTip("Isotopic pattern")) self.pattern_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) # make compound fields compound_label = wx.StaticText(panel, -1, "Formula:") self.compound_value = mwx.formulaCtrl(panel, -1, "", size=(250, -1), style=wx.TE_PROCESS_ENTER) compound_label.SetFont(wx.SMALL_FONT) self.compound_value.Bind(wx.EVT_TEXT, self.onCompoundChanged) self.compound_value.Bind(wx.EVT_TEXT_ENTER, self.onCompoundChanged) # make save button self.save_butt = wx.Button(panel, -1, "Save", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.save_butt.Bind(wx.EVT_BUTTON, self.onSave) # pack elements self.toolbar = wx.BoxSizer(wx.HORIZONTAL) self.toolbar.AddSpacer(mwx.TOOLBAR_LSPACE) self.toolbar.Add(self.summary_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.Add(self.ionseries_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) self.toolbar.Add(self.pattern_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) self.toolbar.AddSpacer(20) self.toolbar.Add(compound_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) self.toolbar.Add(self.compound_value, 1, wx.ALIGN_CENTER_VERTICAL) self.toolbar.AddSpacer(20) self.toolbar.Add(self.save_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(self.toolbar, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbarNoBorder'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make tools references_label = wx.StaticText(panel, -1, "References:") references_label.SetFont(wx.SMALL_FONT) choices = libs.references.keys() choices.sort() choices.insert(0,'Reference lists') self.references_choice = wx.Choice(panel, -1, choices=choices, size=(200, mwx.SMALL_CHOICE_HEIGHT)) self.references_choice.Select(0) self.references_choice.Bind(wx.EVT_CHOICE, self.onReferencesSelected) # make buttons self.match_butt = wx.Button(panel, -1, "Match", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.match_butt.Bind(wx.EVT_BUTTON, self.onMatch) self.annotate_butt = wx.Button(panel, -1, "Annotate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.annotate_butt.Bind(wx.EVT_BUTTON, self.onAnnotate) self.remove_butt = wx.Button(panel, -1, "Remove", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.remove_butt.Bind(wx.EVT_BUTTON, self.onRemove) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(references_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.references_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.match_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) sizer.Add(self.annotate_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) sizer.Add(self.remove_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make highlights highlight_label = wx.StaticText(panel, -1, "Highlight:") highlight_label.SetFont(wx.SMALL_FONT) choices = ['None', '---', 'Metals', 'Alkali Metals', 'Alkaline Earth Metals', 'Inner Transition Metals', 'Lanthanides', 'Actinides', 'Transition Metals', 'Post-Transition Metals', '---', 'Nonmetals', 'Halogens', 'Noble Gasses', 'Other Nonmetals', '---', 'Metalloids'] self.highlight_choice = wx.Choice(panel, -1, choices=choices, size=(-1, mwx.SMALL_CHOICE_HEIGHT)) self.highlight_choice.Select(0) self.highlight_choice.Bind(wx.EVT_CHOICE, self.onHighlightGroup) # make buttons self.isotopes_butt = wx.Button(panel, -1, "Isotopes", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.isotopes_butt.Bind(wx.EVT_BUTTON, self.onIsotopes) self.isotopes_butt.Enable(False) self.wiki_butt = wx.Button(panel, -1, "Wikipedia", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.wiki_butt.Bind(wx.EVT_BUTTON, self.onWiki) self.photos_butt = wx.Button(panel, -1, "Photos", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.photos_butt.Bind(wx.EVT_BUTTON, self.onPhotos) self.photos_butt.Enable(False) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(highlight_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.highlight_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.isotopes_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) sizer.Add(self.wiki_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) sizer.Add(self.photos_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make bottom toolbar.""" # init toolbar panel panel = mwx.bgrPanel(self, -1, images.lib['bgrBottombar'], size=(-1, mwx.BOTTOMBAR_HEIGHT)) self.addPeak_butt = wx.BitmapButton(panel, -1, images.lib['peaklistAdd'], size=(mwx.BOTTOMBAR_TOOLSIZE), style=wx.BORDER_NONE) self.addPeak_butt.SetToolTip(wx.ToolTip("Add peak manually...")) self.addPeak_butt.Bind(wx.EVT_BUTTON, self.onAdd) self.deletePeak_butt = wx.BitmapButton(panel, -1, images.lib['peaklistDelete'], size=(mwx.BOTTOMBAR_TOOLSIZE), style=wx.BORDER_NONE) self.deletePeak_butt.SetToolTip(wx.ToolTip("Remove peaks...")) self.deletePeak_butt.Bind(wx.EVT_BUTTON, self.onDelete) self.annotatePeak_butt = wx.BitmapButton(panel, -1, images.lib['peaklistAnnotate'], size=(mwx.BOTTOMBAR_TOOLSIZE), style=wx.BORDER_NONE) self.annotatePeak_butt.SetToolTip(wx.ToolTip("Annotate peak...")) self.annotatePeak_butt.Bind(wx.EVT_BUTTON, self.onAnnotate) self.editPeak_butt = wx.BitmapButton(panel, -1, images.lib['peaklistEditorOff'], size=(mwx.BOTTOMBAR_TOOLSIZE), style=wx.BORDER_NONE) self.editPeak_butt.SetToolTip(wx.ToolTip("Show / hide peak editor")) self.editPeak_butt.Bind(wx.EVT_BUTTON, self.onEdit) self.peaksCount = wx.StaticText(panel, -1, "") self.peaksCount.SetFont(wx.SMALL_FONT) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.BOTTOMBAR_LSPACE) sizer.Add(self.addPeak_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.deletePeak_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.Add(self.annotatePeak_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.Add(self.editPeak_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.AddSpacer(10) sizer.Add(self.peaksCount, 0, wx.ALIGN_CENTER_VERTICAL, 0) sizer.AddSpacer(mwx.BOTTOMBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeControlbar(self): """Make controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make elements self.collapse_butt = wx.BitmapButton(panel, -1, images.lib['arrowsDown'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.collapse_butt.Bind(wx.EVT_BUTTON, self.onCollapse) self.showPeaks_check = wx.CheckBox(panel, -1, "Show peaks") self.showPeaks_check.SetFont(wx.SMALL_FONT) self.showPeaks_check.SetValue(config.spectrumGenerator['showPeaks']) self.showPeaks_check.Bind(wx.EVT_CHECKBOX, self.onShowPeaks) self.showOverlay_check = wx.CheckBox(panel, -1, "Show overlay") self.showOverlay_check.SetFont(wx.SMALL_FONT) self.showOverlay_check.SetValue(config.spectrumGenerator['showOverlay']) self.showOverlay_check.Bind(wx.EVT_CHECKBOX, self.onShowOverlay) self.showFlipped_check = wx.CheckBox(panel, -1, "Flip overlay") self.showFlipped_check.SetFont(wx.SMALL_FONT) self.showFlipped_check.SetValue(config.spectrumGenerator['showFlipped']) self.showFlipped_check.Bind(wx.EVT_CHECKBOX, self.onShowFlipped) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(self.collapse_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(10) sizer.Add(self.showPeaks_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.showOverlay_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.showFlipped_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make buttons self.image_butt = wx.BitmapButton(panel, ID_documentExportImage, images.lib['documentExportImageOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.image_butt.SetToolTip(wx.ToolTip("Export spectrum image")) self.image_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.peaklist_butt = wx.BitmapButton(panel, ID_documentExportPeaklist, images.lib['documentExportPeaklistOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.peaklist_butt.SetToolTip(wx.ToolTip("Export peak list")) self.peaklist_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.spectrum_butt = wx.BitmapButton(panel, ID_documentExportSpectrum, images.lib['documentExportSpectrumOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.spectrum_butt.SetToolTip(wx.ToolTip("Export spectrum data")) self.spectrum_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) # make controls self.export_butt = wx.Button(panel, -1, "Export", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.export_butt.Bind(wx.EVT_BUTTON, self.onExport) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.TOOLBAR_LSPACE) sizer.Add(self.image_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.peaklist_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.Add(self.spectrum_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.export_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make buttons self.summary_butt = wx.BitmapButton(panel, ID_documentInfoSummary, images.lib['documentInfoSummaryOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.summary_butt.SetToolTip(wx.ToolTip("Document summary")) self.summary_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.spectrum_butt = wx.BitmapButton(panel, ID_documentInfoSpectrum, images.lib['documentInfoSpectrumOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.spectrum_butt.SetToolTip(wx.ToolTip("Spectrum information")) self.spectrum_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.notes_butt = wx.BitmapButton(panel, ID_documentInfoNotes, images.lib['documentInfoNotesOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.notes_butt.SetToolTip(wx.ToolTip("Analysis notes")) self.notes_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.presets_butt = wx.BitmapButton(panel, -1, images.lib['toolsPresets'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.presets_butt.SetToolTip(wx.ToolTip("Operator presets")) self.presets_butt.Bind(wx.EVT_BUTTON, self.onPresets) # pack elements self.toolbar = wx.BoxSizer(wx.HORIZONTAL) self.toolbar.AddSpacer(mwx.TOOLBAR_LSPACE) self.toolbar.Add(self.summary_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.Add(self.spectrum_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) self.toolbar.Add(self.notes_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) self.toolbar.AddSpacer(20) self.toolbar.Add(self.presets_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(self.toolbar, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make buttons self.references_butt = wx.BitmapButton( panel, ID_calibrationReferences, images.lib['calibrationReferencesOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.references_butt.SetToolTip(wx.ToolTip("Calibration references")) self.references_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.errors_butt = wx.BitmapButton(panel, ID_calibrationErrors, images.lib['calibrationErrorsOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.errors_butt.SetToolTip(wx.ToolTip("Calibration error plot")) self.errors_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) # make controls fitting_label = wx.StaticText(panel, -1, "Fitting:") fitting_label.SetFont(wx.SMALL_FONT) self.linearFit_radio = wx.RadioButton(panel, -1, "Linear", style=wx.RB_GROUP) self.linearFit_radio.SetFont(wx.SMALL_FONT) self.linearFit_radio.SetValue(True) self.linearFit_radio.Bind(wx.EVT_RADIOBUTTON, self.onModelChanged) self.quadraticFit_radio = wx.RadioButton(panel, -1, "Quadratic") self.quadraticFit_radio.SetFont(wx.SMALL_FONT) self.quadraticFit_radio.SetValue( (config.calibration['fitting'] == 'quadratic')) self.quadraticFit_radio.Bind(wx.EVT_RADIOBUTTON, self.onModelChanged) units_label = wx.StaticText(panel, -1, "Units:") units_label.SetFont(wx.SMALL_FONT) self.unitsDa_radio = wx.RadioButton(panel, -1, "Da", style=wx.RB_GROUP) self.unitsDa_radio.SetFont(wx.SMALL_FONT) self.unitsDa_radio.SetValue(True) self.unitsDa_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.unitsPpm_radio = wx.RadioButton(panel, -1, "ppm") self.unitsPpm_radio.SetFont(wx.SMALL_FONT) self.unitsPpm_radio.SetValue((config.calibration['units'] == 'ppm')) self.unitsPpm_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.assign_butt = wx.Button(panel, -1, "Assign", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.assign_butt.Bind(wx.EVT_BUTTON, self.onAssign) self.apply_butt = wx.Button(panel, -1, "Apply", size=(100, mwx.SMALL_BUTTON_HEIGHT)) self.apply_butt.Bind(wx.EVT_BUTTON, self.onApply) self.apply_butt.Disable() # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.TOOLBAR_LSPACE) sizer.Add(self.references_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.errors_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.AddSpacer(20) sizer.Add(fitting_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.linearFit_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.quadraticFit_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(units_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.unitsDa_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.unitsPpm_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.assign_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) sizer.Add(self.apply_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make buttons self.summary_butt = wx.BitmapButton( panel, ID_massCalculatorSummary, images.lib['massCalculatorSummaryOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.summary_butt.SetToolTip(wx.ToolTip("Compound summary")) self.summary_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.ionseries_butt = wx.BitmapButton( panel, ID_massCalculatorIonSeries, images.lib['massCalculatorIonSeriesOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.ionseries_butt.SetToolTip(wx.ToolTip("Ion series")) self.ionseries_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.pattern_butt = wx.BitmapButton( panel, ID_massCalculatorPattern, images.lib['massCalculatorPatternOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.pattern_butt.SetToolTip(wx.ToolTip("Isotopic pattern")) self.pattern_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) # make compound fields compound_label = wx.StaticText(panel, -1, "Formula:") self.compound_value = mwx.formulaCtrl(panel, -1, "", size=(250, -1), style=wx.TE_PROCESS_ENTER) compound_label.SetFont(wx.SMALL_FONT) self.compound_value.Bind(wx.EVT_TEXT, self.onCompoundChanged) self.compound_value.Bind(wx.EVT_TEXT_ENTER, self.onCompoundChanged) # make save button self.save_butt = wx.Button(panel, -1, "Save", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.save_butt.Bind(wx.EVT_BUTTON, self.onSave) # pack elements self.toolbar = wx.BoxSizer(wx.HORIZONTAL) self.toolbar.AddSpacer(mwx.TOOLBAR_LSPACE) self.toolbar.Add(self.summary_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.Add(self.ionseries_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) self.toolbar.Add(self.pattern_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) self.toolbar.AddSpacer(20) self.toolbar.Add(compound_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) self.toolbar.Add(self.compound_value, 1, wx.ALIGN_CENTER_VERTICAL) self.toolbar.AddSpacer(20) self.toolbar.Add(self.save_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(self.toolbar, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeReferencesPanel(self): """Make references selection panel.""" # init panel ctrlPanel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make controls references_label = wx.StaticText(ctrlPanel, -1, "References:") references_label.SetFont(wx.SMALL_FONT) choices = libs.references.keys() choices.sort() choices.insert(0, 'Reference lists') self.references_choice = wx.Choice(ctrlPanel, -1, choices=choices, size=(250, mwx.SMALL_CHOICE_HEIGHT)) self.references_choice.Select(0) self.references_choice.Bind(wx.EVT_CHOICE, self.onReferencesSelected) tolerance_label = wx.StaticText(ctrlPanel, -1, "Tolerance:") tolerance_label.SetFont(wx.SMALL_FONT) self.tolerance_value = wx.TextCtrl( ctrlPanel, -1, str(config.calibration['tolerance']), size=(50, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('floatPos')) self.tolerance_value.SetFont(wx.SMALL_FONT) self.toleranceUnits_label = wx.StaticText(ctrlPanel, -1, config.calibration['units']) self.toleranceUnits_label.SetFont(wx.SMALL_FONT) self.statCalibration_check = wx.CheckBox(ctrlPanel, -1, "Statistical only") self.statCalibration_check.SetFont(wx.SMALL_FONT) self.statCalibration_check.Bind(wx.EVT_CHECKBOX, self.onStatCalibration) self.makeReferencesList() # pack controls sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(references_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.references_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(tolerance_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.tolerance_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.toleranceUnits_label, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.statCalibration_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) controls = wx.BoxSizer(wx.VERTICAL) controls.Add(sizer, 1, wx.EXPAND) controls.Fit(ctrlPanel) ctrlPanel.SetSizer(controls) # pack main mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(ctrlPanel, 0, wx.EXPAND, 0) mainSizer.Add(self.referencesList, 1, wx.EXPAND | wx.ALL, mwx.LISTCTRL_NO_SPACE) return mainSizer
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbarNoBorder'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make match fields difference_label = wx.StaticText(panel, -1, "Difference:") difference_label.SetFont(wx.SMALL_FONT) self.difference_value = wx.TextCtrl(panel, -1, '', size=(100, -1), style=wx.TE_PROCESS_ENTER, validator=mwx.validator('floatPos')) self.difference_value.Bind(wx.EVT_TEXT_ENTER, self.onSearch) self.aminoacids_check = wx.CheckBox(panel, -1, "Amino acids") self.aminoacids_check.SetFont(wx.SMALL_FONT) self.aminoacids_check.SetValue(config.peakDifferences['aminoacids']) self.dipeptides_check = wx.CheckBox(panel, -1, "Dipeptides") self.dipeptides_check.SetFont(wx.SMALL_FONT) self.dipeptides_check.SetValue(config.peakDifferences['dipeptides']) massType_label = wx.StaticText(panel, -1, "Mass:") massType_label.SetFont(wx.SMALL_FONT) self.massTypeMo_radio = wx.RadioButton(panel, -1, "Mo", style=wx.RB_GROUP) self.massTypeMo_radio.SetFont(wx.SMALL_FONT) self.massTypeMo_radio.SetValue(True) self.massTypeAv_radio = wx.RadioButton(panel, -1, "Av") self.massTypeAv_radio.SetFont(wx.SMALL_FONT) self.massTypeAv_radio.SetValue(config.peakDifferences['massType']) tolerance_label = wx.StaticText(panel, -1, "Tolerance:") tolerance_label.SetFont(wx.SMALL_FONT) self.tolerance_value = wx.TextCtrl(panel, -1, str(config.peakDifferences['tolerance']), size=(50, -1), validator=mwx.validator('floatPos')) toleranceUnits_label = wx.StaticText(panel, -1, "m/z") toleranceUnits_label.SetFont(wx.SMALL_FONT) self.consolidate_check = wx.CheckBox(panel, -1, "Hide umatched") self.consolidate_check.SetFont(wx.SMALL_FONT) self.consolidate_check.SetValue(config.peakDifferences['consolidate']) self.search_butt = wx.Button(panel, -1, "Search", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.search_butt.Bind(wx.EVT_BUTTON, self.onSearch) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(difference_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.difference_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.aminoacids_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.dipeptides_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(massType_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.massTypeMo_radio, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.massTypeAv_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(tolerance_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.tolerance_value, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(toleranceUnits_label, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.consolidate_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.search_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeControlbar(self): """Make controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make elements massType_label = wx.StaticText(panel, -1, "Mass:") massType_label.SetFont(wx.SMALL_FONT) self.massTypeMo_radio = wx.RadioButton(panel, -1, "Mo", style=wx.RB_GROUP) self.massTypeMo_radio.SetFont(wx.SMALL_FONT) self.massTypeMo_radio.SetValue(True) self.massTypeAv_radio = wx.RadioButton(panel, -1, "Av") self.massTypeAv_radio.SetFont(wx.SMALL_FONT) self.massTypeAv_radio.SetValue(config.compoundsSearch['massType']) maxCharge_label = wx.StaticText(panel, -1, "Max charge:") maxCharge_label.SetFont(wx.SMALL_FONT) self.maxCharge_value = wx.TextCtrl( panel, -1, str(config.compoundsSearch['maxCharge']), size=(30, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('int')) self.maxCharge_value.SetFont(wx.SMALL_FONT) self.radicals_check = wx.CheckBox(panel, -1, "M*") self.radicals_check.SetFont(wx.SMALL_FONT) self.radicals_check.SetValue(config.compoundsSearch['radicals']) adducts_label = wx.StaticText(panel, -1, "Adducts:") adducts_label.SetFont(wx.SMALL_FONT) self.adductNa_check = wx.CheckBox(panel, -1, "Na") self.adductNa_check.SetFont(wx.SMALL_FONT) self.adductNa_check.SetValue( config.compoundsSearch['adducts'].count('Na')) self.adductK_check = wx.CheckBox(panel, -1, "K") self.adductK_check.SetFont(wx.SMALL_FONT) self.adductK_check.SetValue( config.compoundsSearch['adducts'].count('K')) self.adductLi_check = wx.CheckBox(panel, -1, "Li") self.adductLi_check.SetFont(wx.SMALL_FONT) self.adductLi_check.SetValue( config.compoundsSearch['adducts'].count('Li')) self.adductNH4_check = wx.CheckBox(panel, -1, "NH4") self.adductNH4_check.SetFont(wx.SMALL_FONT) self.adductNH4_check.SetValue( config.compoundsSearch['adducts'].count('NH4')) self.adductH2O_check = wx.CheckBox(panel, -1, "-H2O") self.adductH2O_check.SetFont(wx.SMALL_FONT) self.adductH2O_check.SetValue( config.compoundsSearch['adducts'].count('-H2O')) self.adductACN_check = wx.CheckBox(panel, -1, "ACN") self.adductACN_check.SetFont(wx.SMALL_FONT) self.adductACN_check.SetValue( config.compoundsSearch['adducts'].count('ACN')) self.adductMeOH_check = wx.CheckBox(panel, -1, "MeOH") self.adductMeOH_check.SetFont(wx.SMALL_FONT) self.adductMeOH_check.SetValue( config.compoundsSearch['adducts'].count('MeOH')) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(massType_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.massTypeMo_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.massTypeAv_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(maxCharge_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.maxCharge_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.radicals_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(adducts_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.adductNa_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.adductK_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.adductLi_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.adductNH4_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.adductH2O_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.adductACN_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.adductMeOH_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbarNoBorder'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make elements compare_label = wx.StaticText(panel, -1, "Compare:") compare_label.SetFont(wx.SMALL_FONT) choices = ['Peak Lists', 'Notations (measured)', 'Notations (theoretical)'] self.compare_choice = wx.Choice(panel, -1, choices=choices, size=(180, mwx.SMALL_CHOICE_HEIGHT)) self.compare_choice.Bind(wx.EVT_CHOICE, self.onUpdatePeaklist) self.compare_choice.Select(0) if config.comparePeaklists['compare'] == 'measured': self.compare_choice.Select(1) elif config.comparePeaklists['compare'] == 'theoretical': self.compare_choice.Select(2) tolerance_label = wx.StaticText(panel, -1, "Tolerance:") tolerance_label.SetFont(wx.SMALL_FONT) self.tolerance_value = wx.TextCtrl(panel, -1, str(config.comparePeaklists['tolerance']), size=(60, -1), style=wx.TE_PROCESS_ENTER, validator=mwx.validator('floatPos')) self.tolerance_value.Bind(wx.EVT_TEXT_ENTER, self.onCompare) self.unitsDa_radio = wx.RadioButton(panel, -1, "Da", style=wx.RB_GROUP) self.unitsDa_radio.SetFont(wx.SMALL_FONT) self.unitsDa_radio.SetValue(True) self.unitsPpm_radio = wx.RadioButton(panel, -1, "ppm") self.unitsPpm_radio.SetFont(wx.SMALL_FONT) self.unitsPpm_radio.SetValue((config.comparePeaklists['units'] == 'ppm')) self.ignoreCharge_check = wx.CheckBox(panel, -1, "Ignore charge") self.ignoreCharge_check.SetFont(wx.SMALL_FONT) self.ignoreCharge_check.SetValue(config.comparePeaklists['ignoreCharge']) self.ratioCheck_check = wx.CheckBox(panel, -1, "Int. ratio:") self.ratioCheck_check.SetFont(wx.SMALL_FONT) self.ratioCheck_check.SetValue(config.comparePeaklists['ratioCheck']) self.ratioCheck_check.Bind(wx.EVT_CHECKBOX, self.onRatioCheckChanged) self.ratioDirection_choice = wx.Choice(panel, -1, choices=['Above', 'Below'], size=(80, mwx.SMALL_CHOICE_HEIGHT)) self.ratioDirection_choice.Select(0) if config.comparePeaklists['ratioDirection'] == -1: self.ratioDirection_choice.Select(1) self.ratioThreshold_value = wx.TextCtrl(panel, -1, str(config.comparePeaklists['ratioThreshold']), size=(50, -1), validator=mwx.validator('floatPos')) self.compare_butt = wx.Button(panel, -1, "Compare", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.compare_butt.Bind(wx.EVT_BUTTON, self.onCompare) self.onRatioCheckChanged() # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(compare_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.compare_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(tolerance_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.tolerance_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(10) sizer.Add(self.unitsDa_radio, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.unitsPpm_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.ignoreCharge_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.ratioCheck_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.ratioDirection_choice, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) sizer.Add(self.ratioThreshold_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.compare_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make tools self.compounds_butt = wx.BitmapButton(panel, ID_compoundsSearchCompounds, images.lib['compoundsSearchCompoundsOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.compounds_butt.SetToolTip(wx.ToolTip("Compounds search")) self.compounds_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.formula_butt = wx.BitmapButton(panel, ID_compoundsSearchFormula, images.lib['compoundsSearchFormulaOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.formula_butt.SetToolTip(wx.ToolTip("Formula search")) self.formula_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.tool_label = wx.StaticText(panel, -1, "Compounds:") self.tool_label.SetFont(wx.SMALL_FONT) choices = libs.compounds.keys() choices.sort() choices.insert(0,'Compounds lists') self.compounds_choice = wx.Choice(panel, -1, choices=choices, size=(250, mwx.SMALL_CHOICE_HEIGHT)) self.compounds_choice.Select(0) self.compounds_choice.Bind(wx.EVT_CHOICE, self.onGenerate) self.formula_value = wx.TextCtrl(panel, -1, "", size=(270,-1)) # make buttons self.generate_butt = wx.Button(panel, -1, "Generate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.generate_butt.Bind(wx.EVT_BUTTON, self.onGenerate) self.match_butt = wx.Button(panel, -1, "Match", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.match_butt.Bind(wx.EVT_BUTTON, self.onMatch) self.annotate_butt = wx.Button(panel, -1, "Annotate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.annotate_butt.Bind(wx.EVT_BUTTON, self.onAnnotate) # pack elements self.toolbar = wx.BoxSizer(wx.HORIZONTAL) self.toolbar.AddSpacer(mwx.TOOLBAR_LSPACE) self.toolbar.Add(self.compounds_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.Add(self.formula_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) self.toolbar.AddSpacer(20) self.toolbar.Add(self.tool_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) self.toolbar.Add(self.compounds_choice, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.Add(self.formula_value, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.AddStretchSpacer() self.toolbar.AddSpacer(20) self.toolbar.Add(self.generate_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) self.toolbar.Add(self.match_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) self.toolbar.Add(self.annotate_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.AddSpacer(mwx.TOOLBAR_RSPACE) self.toolbar.Hide(5) self.toolbar.Hide(6) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(self.toolbar, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeControlbar(self): """Make controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make elements self.collapse_butt = wx.BitmapButton(panel, -1, images.lib['arrowsDown'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.collapse_butt.Bind(wx.EVT_BUTTON, self.onCollapse) fitTo_label = wx.StaticText(panel, -1, "Fit to:") fitTo_label.SetFont(wx.SMALL_FONT) self.fitToPeaklist_radio = wx.RadioButton(panel, -1, "Peak list", style=wx.RB_GROUP) self.fitToPeaklist_radio.SetFont(wx.SMALL_FONT) self.fitToSpectrum_radio = wx.RadioButton(panel, -1, "Spectrum") self.fitToSpectrum_radio.SetFont(wx.SMALL_FONT) self.fitToPeaklist_radio.SetValue(True) if config.envelopeFit['fit'] == 'spectrum': self.fitToSpectrum_radio.SetValue(True) fwhm_label = wx.StaticText(panel, -1, "Default FWHM:") fwhm_label.SetFont(wx.SMALL_FONT) self.fwhm_value = wx.TextCtrl(panel, -1, str(config.envelopeFit['fwhm']), size=(50, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('floatPos')) self.fwhm_value.SetFont(wx.SMALL_FONT) self.forceFwhm_check = wx.CheckBox(panel, -1, "Force") self.forceFwhm_check.SetFont(wx.SMALL_FONT) self.forceFwhm_check.SetValue(config.envelopeFit['forceFwhm']) relThreshold_label = wx.StaticText(panel, -1, "Rel. int. threshold:") relThreshold_label.SetFont(wx.SMALL_FONT) relThresholdUnits_label = wx.StaticText(panel, -1, "%") relThresholdUnits_label.SetFont(wx.SMALL_FONT) self.relThreshold_value = wx.TextCtrl(panel, -1, str(config.envelopeFit['relThreshold']*100), size=(50, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('floatPos')) self.relThreshold_value.SetFont(wx.SMALL_FONT) self.autoAlign_check = wx.CheckBox(panel, -1, "Auto align") self.autoAlign_check.SetFont(wx.SMALL_FONT) self.autoAlign_check.SetValue(config.envelopeFit['autoAlign']) self.average_label = wx.StaticText(panel, -1, "", size=(100, -1)) self.average_label.SetFont(wx.SMALL_FONT) self.updateAverageLabel() # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(self.collapse_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(10) sizer.Add(fitTo_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.fitToPeaklist_radio, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.fitToSpectrum_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(fwhm_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.fwhm_value, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.forceFwhm_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(relThreshold_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.relThreshold_value, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(relThresholdUnits_label, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.autoAlign_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.average_label, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make highlights highlight_label = wx.StaticText(panel, -1, "Highlight:") highlight_label.SetFont(wx.SMALL_FONT) choices = [ 'None', '---', 'Metals', 'Alkali Metals', 'Alkaline Earth Metals', 'Inner Transition Metals', 'Lanthanides', 'Actinides', 'Transition Metals', 'Post-Transition Metals', '---', 'Nonmetals', 'Halogens', 'Noble Gasses', 'Other Nonmetals', '---', 'Metalloids' ] self.highlight_choice = wx.Choice(panel, -1, choices=choices, size=(-1, mwx.SMALL_CHOICE_HEIGHT)) self.highlight_choice.Select(0) self.highlight_choice.Bind(wx.EVT_CHOICE, self.onHighlightGroup) # make buttons self.isotopes_butt = wx.Button(panel, -1, "Isotopes", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.isotopes_butt.Bind(wx.EVT_BUTTON, self.onIsotopes) self.isotopes_butt.Enable(False) self.wiki_butt = wx.Button(panel, -1, "Wikipedia", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.wiki_butt.Bind(wx.EVT_BUTTON, self.onWiki) self.photos_butt = wx.Button(panel, -1, "Photos", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.photos_butt.Bind(wx.EVT_BUTTON, self.onPhotos) self.photos_butt.Enable(False) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(highlight_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.highlight_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.isotopes_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) sizer.Add(self.wiki_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) sizer.Add(self.photos_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeControlbar(self): """Make controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make elements relIntCutoff_label = wx.StaticText(panel, -1, "Int. threshold:") relIntCutoff_label.SetFont(wx.SMALL_FONT) relIntCutoffUnits_label = wx.StaticText(panel, -1, "%") relIntCutoffUnits_label.SetFont(wx.SMALL_FONT) self.relIntCutoff_value = wx.TextCtrl( panel, -1, str(config.massDefectPlot['relIntCutoff'] * 100), size=(50, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('floatPos')) self.relIntCutoff_value.SetFont(wx.SMALL_FONT) self.removeIsotopes_check = wx.CheckBox(panel, -1, "Remove isotopes") self.removeIsotopes_check.SetFont(wx.SMALL_FONT) self.removeIsotopes_check.SetValue( config.massDefectPlot['removeIsotopes']) self.ignoreCharge_check = wx.CheckBox(panel, -1, "Ignore charge") self.ignoreCharge_check.SetFont(wx.SMALL_FONT) self.ignoreCharge_check.SetValue(config.massDefectPlot['ignoreCharge']) self.showNotations_check = wx.CheckBox(panel, -1, "Highlight annotated") self.showNotations_check.SetFont(wx.SMALL_FONT) self.showNotations_check.SetValue( config.massDefectPlot['showNotations']) self.showNotations_check.Bind(wx.EVT_CHECKBOX, self.onShowNotations) self.showAllDocuments_check = wx.CheckBox(panel, -1, "Show all documents") self.showAllDocuments_check.SetFont(wx.SMALL_FONT) self.showAllDocuments_check.SetValue(False) self.showAllDocuments_check.Bind(wx.EVT_CHECKBOX, self.onShowAllDocuments) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(relIntCutoff_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.relIntCutoff_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(relIntCutoffUnits_label, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.removeIsotopes_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.ignoreCharge_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.showNotations_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.showAllDocuments_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make elements formula_label = wx.StaticText(panel, -1, "Formula:") formula_label.SetFont(wx.SMALL_FONT) self.formula_value = mwx.formulaCtrl(panel, -1, "", size=(220, -1)) charge_label = wx.StaticText(panel, -1, "Charge:") charge_label.SetFont(wx.SMALL_FONT) self.charge_value = wx.TextCtrl(panel, -1, str(config.envelopeFit['charge']), size=(35, -1), validator=mwx.validator('int')) exchange_label = wx.StaticText(panel, -1, "Exchange:") exchange_label.SetFont(wx.SMALL_FONT) self.exchangeLoss_value = mwx.formulaCtrl(panel, -1, str(config.envelopeFit['loss']), size=(60, -1)) exchangeVs_label = wx.StaticText(panel, -1, " vs.") exchangeVs_label.SetFont(wx.SMALL_FONT) self.exchangeGain_value = mwx.formulaCtrl(panel, -1, str(config.envelopeFit['gain']), size=(60, -1)) scale_label = wx.StaticText(panel, -1, "Range:") scale_label.SetFont(wx.SMALL_FONT) scaleDash_label = wx.StaticText(panel, -1, "-") scaleDash_label.SetFont(wx.SMALL_FONT) self.scaleMin_value = wx.TextCtrl(panel, -1, str(config.envelopeFit['scaleMin']), size=(35, -1), validator=mwx.validator('intPos')) self.scaleMax_value = wx.TextCtrl(panel, -1, str(config.envelopeFit['scaleMax']), size=(35, -1), validator=mwx.validator('intPos')) self.calculate_butt = wx.Button(panel, -1, "Calculate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.calculate_butt.Bind(wx.EVT_BUTTON, self.onCalculate) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(formula_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.formula_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(charge_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.charge_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(exchange_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.exchangeLoss_value, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(exchangeVs_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.exchangeGain_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(scale_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.scaleMin_value, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(scaleDash_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.scaleMax_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.calculate_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make elements mass_label = wx.StaticText(panel, -1, "Mo. mass:") mass_label.SetFont(wx.SMALL_FONT) self.mass_value = wx.TextCtrl(panel, -1, "", size=(120, -1), style=wx.TE_PROCESS_ENTER, validator=mwx.validator('floatPos')) self.mass_value.Bind(wx.EVT_TEXT_ENTER, self.onGenerate) charge_label = wx.StaticText(panel, -1, "Charge:") charge_label.SetFont(wx.SMALL_FONT) self.charge_value = wx.TextCtrl(panel, -1, str(config.massToFormula['charge']), size=(40, -1), validator=mwx.validator('int')) choices = ['M', 'M*', 'H+', 'Na+', 'K+', 'Li+', 'NH4+'] self.ionization_choice = wx.Choice(panel, -1, choices=choices, size=(80, mwx.SMALL_CHOICE_HEIGHT)) choices = ['', 'e', 'H', 'Na', 'K', 'Li', 'NH4'] if config.massToFormula['ionization'] in choices: self.ionization_choice.Select(choices.index(config.massToFormula['ionization'])) tolerance_label = wx.StaticText(panel, -1, "Tolerance:") tolerance_label.SetFont(wx.SMALL_FONT) self.tolerance_value = wx.TextCtrl(panel, -1, str(config.massToFormula['tolerance']), size=(50, -1), validator=mwx.validator('floatPos')) self.tolerance_value.Bind(wx.EVT_TEXT_ENTER, self.onGenerate) self.unitsDa_radio = wx.RadioButton(panel, -1, "Da", style=wx.RB_GROUP) self.unitsDa_radio.SetFont(wx.SMALL_FONT) self.unitsDa_radio.SetValue(True) self.unitsDa_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.unitsPpm_radio = wx.RadioButton(panel, -1, "ppm") self.unitsPpm_radio.SetFont(wx.SMALL_FONT) self.unitsPpm_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.unitsPpm_radio.SetValue((config.massToFormula['units'] == 'ppm')) self.generate_butt = wx.Button(panel, -1, "Generate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.generate_butt.Bind(wx.EVT_BUTTON, self.onGenerate) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(mass_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.mass_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(charge_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.charge_value, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) sizer.Add(self.ionization_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(tolerance_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.tolerance_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(10) sizer.Add(self.unitsDa_radio, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.unitsPpm_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.generate_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbarNoBorder'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make elements compare_label = wx.StaticText(panel, -1, "Compare:") compare_label.SetFont(wx.SMALL_FONT) choices = [ 'Peak Lists', 'Notations (measured)', 'Notations (theoretical)' ] self.compare_choice = wx.Choice(panel, -1, choices=choices, size=(180, mwx.SMALL_CHOICE_HEIGHT)) self.compare_choice.Bind(wx.EVT_CHOICE, self.onUpdatePeaklist) self.compare_choice.Select(0) if config.comparePeaklists['compare'] == 'measured': self.compare_choice.Select(1) elif config.comparePeaklists['compare'] == 'theoretical': self.compare_choice.Select(2) tolerance_label = wx.StaticText(panel, -1, "Tolerance:") tolerance_label.SetFont(wx.SMALL_FONT) self.tolerance_value = wx.TextCtrl( panel, -1, str(config.comparePeaklists['tolerance']), size=(60, -1), style=wx.TE_PROCESS_ENTER, validator=mwx.validator('floatPos')) self.tolerance_value.Bind(wx.EVT_TEXT_ENTER, self.onCompare) self.unitsDa_radio = wx.RadioButton(panel, -1, "Da", style=wx.RB_GROUP) self.unitsDa_radio.SetFont(wx.SMALL_FONT) self.unitsDa_radio.SetValue(True) self.unitsPpm_radio = wx.RadioButton(panel, -1, "ppm") self.unitsPpm_radio.SetFont(wx.SMALL_FONT) self.unitsPpm_radio.SetValue( (config.comparePeaklists['units'] == 'ppm')) self.ignoreCharge_check = wx.CheckBox(panel, -1, "Ignore charge") self.ignoreCharge_check.SetFont(wx.SMALL_FONT) self.ignoreCharge_check.SetValue( config.comparePeaklists['ignoreCharge']) self.ratioCheck_check = wx.CheckBox(panel, -1, "Int. ratio:") self.ratioCheck_check.SetFont(wx.SMALL_FONT) self.ratioCheck_check.SetValue(config.comparePeaklists['ratioCheck']) self.ratioCheck_check.Bind(wx.EVT_CHECKBOX, self.onRatioCheckChanged) self.ratioDirection_choice = wx.Choice(panel, -1, choices=['Above', 'Below'], size=(80, mwx.SMALL_CHOICE_HEIGHT)) self.ratioDirection_choice.Select(0) if config.comparePeaklists['ratioDirection'] == -1: self.ratioDirection_choice.Select(1) self.ratioThreshold_value = wx.TextCtrl( panel, -1, str(config.comparePeaklists['ratioThreshold']), size=(50, -1), validator=mwx.validator('floatPos')) self.compare_butt = wx.Button(panel, -1, "Compare", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.compare_butt.Bind(wx.EVT_BUTTON, self.onCompare) self.onRatioCheckChanged() # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(compare_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.compare_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(tolerance_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.tolerance_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(10) sizer.Add(self.unitsDa_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.unitsPpm_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.ignoreCharge_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.ratioCheck_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.ratioDirection_choice, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) sizer.Add(self.ratioThreshold_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.compare_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbarNoBorder'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make tools references_label = wx.StaticText(panel, -1, "References:") references_label.SetFont(wx.SMALL_FONT) choices = libs.references.keys() choices.sort() choices.insert(0, 'Reference lists') self.references_choice = wx.Choice(panel, -1, choices=choices, size=(200, mwx.SMALL_CHOICE_HEIGHT)) self.references_choice.Select(0) self.references_choice.Bind(wx.EVT_CHOICE, self.onReferencesSelected) # make buttons self.match_butt = wx.Button(panel, -1, "Match", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.match_butt.Bind(wx.EVT_BUTTON, self.onMatch) self.annotate_butt = wx.Button(panel, -1, "Annotate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.annotate_butt.Bind(wx.EVT_BUTTON, self.onAnnotate) self.remove_butt = wx.Button(panel, -1, "Remove", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.remove_butt.Bind(wx.EVT_BUTTON, self.onRemove) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(references_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.references_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.match_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) sizer.Add(self.annotate_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) sizer.Add(self.remove_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeControlbar(self): """Make controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib["bgrControlbar"], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make elements self.collapse_butt = wx.BitmapButton( panel, -1, images.lib["arrowsDown"], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE ) self.collapse_butt.Bind(wx.EVT_BUTTON, self.onCollapse) fitTo_label = wx.StaticText(panel, -1, "Fit to:") fitTo_label.SetFont(wx.SMALL_FONT) self.fitToPeaklist_radio = wx.RadioButton(panel, -1, "Peak list", style=wx.RB_GROUP) self.fitToPeaklist_radio.SetFont(wx.SMALL_FONT) self.fitToSpectrum_radio = wx.RadioButton(panel, -1, "Spectrum") self.fitToSpectrum_radio.SetFont(wx.SMALL_FONT) self.fitToPeaklist_radio.SetValue(True) if config.envelopeFit["fit"] == "spectrum": self.fitToSpectrum_radio.SetValue(True) fwhm_label = wx.StaticText(panel, -1, "Default FWHM:") fwhm_label.SetFont(wx.SMALL_FONT) self.fwhm_value = wx.TextCtrl( panel, -1, str(config.envelopeFit["fwhm"]), size=(50, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator("floatPos"), ) self.fwhm_value.SetFont(wx.SMALL_FONT) self.forceFwhm_check = wx.CheckBox(panel, -1, "Force") self.forceFwhm_check.SetFont(wx.SMALL_FONT) self.forceFwhm_check.SetValue(config.envelopeFit["forceFwhm"]) relThreshold_label = wx.StaticText(panel, -1, "Rel. int. threshold:") relThreshold_label.SetFont(wx.SMALL_FONT) relThresholdUnits_label = wx.StaticText(panel, -1, "%") relThresholdUnits_label.SetFont(wx.SMALL_FONT) self.relThreshold_value = wx.TextCtrl( panel, -1, str(config.envelopeFit["relThreshold"] * 100), size=(50, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator("floatPos"), ) self.relThreshold_value.SetFont(wx.SMALL_FONT) self.autoAlign_check = wx.CheckBox(panel, -1, "Auto align") self.autoAlign_check.SetFont(wx.SMALL_FONT) self.autoAlign_check.SetValue(config.envelopeFit["autoAlign"]) self.average_label = wx.StaticText(panel, -1, "", size=(100, -1)) self.average_label.SetFont(wx.SMALL_FONT) self.updateAverageLabel() # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(self.collapse_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(10) sizer.Add(fitTo_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.fitToPeaklist_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.fitToSpectrum_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(fwhm_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.fwhm_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.forceFwhm_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(relThreshold_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.relThreshold_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(relThresholdUnits_label, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.autoAlign_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.average_label, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make tools self.compounds_butt = wx.BitmapButton( panel, ID_compoundsSearchCompounds, images.lib['compoundsSearchCompoundsOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.compounds_butt.SetToolTip(wx.ToolTip("Compounds search")) self.compounds_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.formula_butt = wx.BitmapButton( panel, ID_compoundsSearchFormula, images.lib['compoundsSearchFormulaOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.formula_butt.SetToolTip(wx.ToolTip("Formula search")) self.formula_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.tool_label = wx.StaticText(panel, -1, "Compounds:") self.tool_label.SetFont(wx.SMALL_FONT) choices = libs.compounds.keys() choices.sort() choices.insert(0, 'Compounds lists') self.compounds_choice = wx.Choice(panel, -1, choices=choices, size=(250, mwx.SMALL_CHOICE_HEIGHT)) self.compounds_choice.Select(0) self.compounds_choice.Bind(wx.EVT_CHOICE, self.onGenerate) self.formula_value = wx.TextCtrl(panel, -1, "", size=(270, -1)) # make buttons self.generate_butt = wx.Button(panel, -1, "Generate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.generate_butt.Bind(wx.EVT_BUTTON, self.onGenerate) self.match_butt = wx.Button(panel, -1, "Match", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.match_butt.Bind(wx.EVT_BUTTON, self.onMatch) self.annotate_butt = wx.Button(panel, -1, "Annotate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.annotate_butt.Bind(wx.EVT_BUTTON, self.onAnnotate) # pack elements self.toolbar = wx.BoxSizer(wx.HORIZONTAL) self.toolbar.AddSpacer(mwx.TOOLBAR_LSPACE) self.toolbar.Add(self.compounds_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.Add(self.formula_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) self.toolbar.AddSpacer(20) self.toolbar.Add(self.tool_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) self.toolbar.Add(self.compounds_choice, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.Add(self.formula_value, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.AddStretchSpacer() self.toolbar.AddSpacer(20) self.toolbar.Add(self.generate_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) self.toolbar.Add(self.match_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) self.toolbar.Add(self.annotate_butt, 0, wx.ALIGN_CENTER_VERTICAL) self.toolbar.AddSpacer(mwx.TOOLBAR_RSPACE) self.toolbar.Hide(5) self.toolbar.Hide(6) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(self.toolbar, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib["bgrToolbar"], size=(-1, mwx.TOOLBAR_HEIGHT)) # make elements formula_label = wx.StaticText(panel, -1, "Formula:") formula_label.SetFont(wx.SMALL_FONT) self.formula_value = mwx.formulaCtrl(panel, -1, "", size=(220, -1)) charge_label = wx.StaticText(panel, -1, "Charge:") charge_label.SetFont(wx.SMALL_FONT) self.charge_value = wx.TextCtrl( panel, -1, str(config.envelopeFit["charge"]), size=(35, -1), validator=mwx.validator("int") ) exchange_label = wx.StaticText(panel, -1, "Exchange:") exchange_label.SetFont(wx.SMALL_FONT) self.exchangeLoss_value = mwx.formulaCtrl(panel, -1, str(config.envelopeFit["loss"]), size=(60, -1)) exchangeVs_label = wx.StaticText(panel, -1, " vs.") exchangeVs_label.SetFont(wx.SMALL_FONT) self.exchangeGain_value = mwx.formulaCtrl(panel, -1, str(config.envelopeFit["gain"]), size=(60, -1)) scale_label = wx.StaticText(panel, -1, "Range:") scale_label.SetFont(wx.SMALL_FONT) scaleDash_label = wx.StaticText(panel, -1, "-") scaleDash_label.SetFont(wx.SMALL_FONT) self.scaleMin_value = wx.TextCtrl( panel, -1, str(config.envelopeFit["scaleMin"]), size=(35, -1), validator=mwx.validator("intPos") ) self.scaleMax_value = wx.TextCtrl( panel, -1, str(config.envelopeFit["scaleMax"]), size=(35, -1), validator=mwx.validator("intPos") ) self.calculate_butt = wx.Button(panel, -1, "Calculate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.calculate_butt.Bind(wx.EVT_BUTTON, self.onCalculate) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(formula_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.formula_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(charge_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.charge_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(exchange_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.exchangeLoss_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(exchangeVs_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.exchangeGain_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(scale_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.scaleMin_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(scaleDash_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.scaleMax_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.calculate_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib["bgrToolbar"], size=(-1, mwx.TOOLBAR_HEIGHT)) # make buttons self.references_butt = wx.BitmapButton( panel, ID_calibrationReferences, images.lib["calibrationReferencesOff"], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE, ) self.references_butt.SetToolTip(wx.ToolTip("Calibration references")) self.references_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.errors_butt = wx.BitmapButton( panel, ID_calibrationErrors, images.lib["calibrationErrorsOff"], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE, ) self.errors_butt.SetToolTip(wx.ToolTip("Calibration error plot")) self.errors_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) # make controls fitting_label = wx.StaticText(panel, -1, "Fitting:") fitting_label.SetFont(wx.SMALL_FONT) self.linearFit_radio = wx.RadioButton(panel, -1, "Linear", style=wx.RB_GROUP) self.linearFit_radio.SetFont(wx.SMALL_FONT) self.linearFit_radio.SetValue(True) self.linearFit_radio.Bind(wx.EVT_RADIOBUTTON, self.onModelChanged) self.quadraticFit_radio = wx.RadioButton(panel, -1, "Quadratic") self.quadraticFit_radio.SetFont(wx.SMALL_FONT) self.quadraticFit_radio.SetValue((config.calibration["fitting"] == "quadratic")) self.quadraticFit_radio.Bind(wx.EVT_RADIOBUTTON, self.onModelChanged) units_label = wx.StaticText(panel, -1, "Units:") units_label.SetFont(wx.SMALL_FONT) self.unitsDa_radio = wx.RadioButton(panel, -1, "Da", style=wx.RB_GROUP) self.unitsDa_radio.SetFont(wx.SMALL_FONT) self.unitsDa_radio.SetValue(True) self.unitsDa_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.unitsPpm_radio = wx.RadioButton(panel, -1, "ppm") self.unitsPpm_radio.SetFont(wx.SMALL_FONT) self.unitsPpm_radio.SetValue((config.calibration["units"] == "ppm")) self.unitsPpm_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.assign_butt = wx.Button(panel, -1, "Assign", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.assign_butt.Bind(wx.EVT_BUTTON, self.onAssign) self.apply_butt = wx.Button(panel, -1, "Apply", size=(100, mwx.SMALL_BUTTON_HEIGHT)) self.apply_butt.Bind(wx.EVT_BUTTON, self.onApply) self.apply_butt.Disable() # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.TOOLBAR_LSPACE) sizer.Add(self.references_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.errors_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.AddSpacer(20) sizer.Add(fitting_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.linearFit_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.quadraticFit_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(units_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.unitsDa_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.unitsPpm_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.assign_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) sizer.Add(self.apply_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeEditor(self): """Make panel for peak editing.""" # init panel panel = mwx.bgrPanel(self, -1, images.lib['bgrPeakEditor']) # make elements peakMz_label = wx.StaticText(panel, -1, "m/z:") self.peakMz_value = wx.TextCtrl(panel, -1, '', size=(80, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('floatPos')) peakMz_label.SetFont(wx.SMALL_FONT) self.peakMz_value.SetFont(wx.SMALL_FONT) peakAi_label = wx.StaticText(panel, -1, "a.i.:") self.peakAi_value = wx.TextCtrl(panel, -1, '', size=(80, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('floatPos')) peakAi_label.SetFont(wx.SMALL_FONT) self.peakAi_value.SetFont(wx.SMALL_FONT) peakBase_label = wx.StaticText(panel, -1, "base:") self.peakBase_value = wx.TextCtrl(panel, -1, '', size=(80, mwx.SMALL_TEXTCTRL_HEIGHT), style=wx.TE_PROCESS_ENTER, validator=mwx.validator('floatPos')) peakBase_label.SetFont(wx.SMALL_FONT) self.peakBase_value.SetFont(wx.SMALL_FONT) peakSN_label = wx.StaticText(panel, -1, "s/n:") self.peakSN_value = wx.TextCtrl(panel, -1, '', size=(80, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('floatPos')) peakSN_label.SetFont(wx.SMALL_FONT) self.peakSN_value.SetFont(wx.SMALL_FONT) peakCharge_label = wx.StaticText(panel, -1, "charge:") self.peakCharge_value = wx.TextCtrl(panel, -1, '', size=(80, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('int')) peakCharge_label.SetFont(wx.SMALL_FONT) self.peakCharge_value.SetFont(wx.SMALL_FONT) peakFwhm_label = wx.StaticText(panel, -1, "fwhm:") self.peakFwhm_value = wx.TextCtrl(panel, -1, '', size=(80, mwx.SMALL_TEXTCTRL_HEIGHT), style=wx.TE_PROCESS_ENTER, validator=mwx.validator('floatPos')) peakFwhm_label.SetFont(wx.SMALL_FONT) self.peakFwhm_value.SetFont(wx.SMALL_FONT) peakGroup_label = wx.StaticText(panel, -1, "group:") self.peakGroup_value = wx.TextCtrl(panel, -1, '', size=(80, mwx.SMALL_TEXTCTRL_HEIGHT), style=wx.TE_PROCESS_ENTER) peakGroup_label.SetFont(wx.SMALL_FONT) self.peakGroup_value.SetFont(wx.SMALL_FONT) self.peakMonoisotopic_check = wx.CheckBox(panel, -1, "monoisotopic") self.peakMonoisotopic_check.SetValue(True) self.peakMonoisotopic_check.SetFont(wx.SMALL_FONT) self.peakAdd_butt = wx.Button(panel, -1, "Add", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.peakAdd_butt.Bind(wx.EVT_BUTTON, self.onAddPeak) self.peakReplace_butt = wx.Button(panel, -1, "Update", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.peakReplace_butt.Bind(wx.EVT_BUTTON, self.onReplacePeak) self.peakReplace_butt.Enable(False) # pack elements grid = wx.GridBagSizer(mwx.GRIDBAG_VSPACE, mwx.GRIDBAG_HSPACE) grid.Add(peakMz_label, (0,0), flag=wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) grid.Add(self.peakMz_value, (0,1), flag=wx.EXPAND) grid.Add(peakAi_label, (1,0), flag=wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) grid.Add(self.peakAi_value, (1,1), flag=wx.EXPAND) grid.Add(peakBase_label, (2,0), flag=wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) grid.Add(self.peakBase_value, (2,1), flag=wx.EXPAND) grid.Add(peakSN_label, (3,0), flag=wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) grid.Add(self.peakSN_value, (3,1), flag=wx.EXPAND) grid.Add(peakCharge_label, (4,0), flag=wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) grid.Add(self.peakCharge_value, (4,1), flag=wx.EXPAND) grid.Add(peakFwhm_label, (5,0), flag=wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) grid.Add(self.peakFwhm_value, (5,1), flag=wx.EXPAND) grid.Add(peakGroup_label, (6,0), flag=wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) grid.Add(self.peakGroup_value, (6,1), flag=wx.EXPAND) grid.Add(self.peakMonoisotopic_check, (7,1), flag=wx.ALIGN_LEFT|wx.ALIGN_CENTER_VERTICAL) grid.AddGrowableCol(1) buttons = wx.BoxSizer(wx.HORIZONTAL) buttons.Add(self.peakAdd_butt, 0, wx.RIGHT, 10) buttons.Add(self.peakReplace_butt, 0) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(grid, 0, wx.EXPAND|wx.ALIGN_CENTER|wx.ALL, 10) mainSizer.Add(buttons, 0, wx.ALIGN_CENTER|wx.RIGHT|wx.LEFT|wx.BOTTOM, 10) # fit layout mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make elements peakShape_label = wx.StaticText(panel, -1, "Peak shape:") peakShape_label.SetFont(wx.SMALL_FONT) self.peakShape_choice = wx.Choice(panel, -1, choices=['Symmetrical', 'Asymmetrical'], size=(125, mwx.CHOICE_HEIGHT)) self.peakShape_choice.Select(0) if config.spectrumGenerator['peakShape'] == 'gausslorentzian': self.peakShape_choice.Select(1) fwhm_label = wx.StaticText(panel, -1, "Default FWHM:") fwhm_label.SetFont(wx.SMALL_FONT) self.fwhm_value = wx.TextCtrl(panel, -1, str(config.spectrumGenerator['fwhm']), size=(60, -1), validator=mwx.validator('floatPos')) self.forceFwhm_check = wx.CheckBox(panel, -1, "Force") self.forceFwhm_check.SetFont(wx.SMALL_FONT) self.forceFwhm_check.SetValue(config.spectrumGenerator['forceFwhm']) points_label = wx.StaticText(panel, -1, "Points/peak:") points_label.SetFont(wx.SMALL_FONT) self.points_value = wx.TextCtrl(panel, -1, str(config.spectrumGenerator['points']), size=(60, -1), validator=mwx.validator('intPos')) noise_label = wx.StaticText(panel, -1, "Noise width:") noise_label.SetFont(wx.SMALL_FONT) self.noise_value = wx.TextCtrl(panel, -1, str(config.spectrumGenerator['noise']), size=(80, -1), validator=mwx.validator('floatPos')) self.generate_butt = wx.Button(panel, -1, "Generate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.generate_butt.Bind(wx.EVT_BUTTON, self.onGenerate) self.apply_butt = wx.Button(panel, -1, "Apply", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.apply_butt.Bind(wx.EVT_BUTTON, self.onApply) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(peakShape_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.peakShape_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(fwhm_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.fwhm_value, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.forceFwhm_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(points_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.points_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(noise_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.noise_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.AddStretchSpacer() sizer.Add(self.generate_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) sizer.Add(self.apply_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeControlbar(self): """Make controlbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make elements massType_label = wx.StaticText(panel, -1, "Mass:") massType_label.SetFont(wx.SMALL_FONT) self.massTypeMo_radio = wx.RadioButton(panel, -1, "Mo", style=wx.RB_GROUP) self.massTypeMo_radio.SetFont(wx.SMALL_FONT) self.massTypeMo_radio.SetValue(True) self.massTypeAv_radio = wx.RadioButton(panel, -1, "Av") self.massTypeAv_radio.SetFont(wx.SMALL_FONT) self.massTypeAv_radio.SetValue(config.compoundsSearch['massType']) maxCharge_label = wx.StaticText(panel, -1, "Max charge:") maxCharge_label.SetFont(wx.SMALL_FONT) self.maxCharge_value = wx.TextCtrl(panel, -1, str(config.compoundsSearch['maxCharge']), size=(30, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('int')) self.maxCharge_value.SetFont(wx.SMALL_FONT) self.radicals_check = wx.CheckBox(panel, -1, "M*") self.radicals_check.SetFont(wx.SMALL_FONT) self.radicals_check.SetValue(config.compoundsSearch['radicals']) adducts_label = wx.StaticText(panel, -1, "Adducts:") adducts_label.SetFont(wx.SMALL_FONT) self.adductNa_check = wx.CheckBox(panel, -1, "Na") self.adductNa_check.SetFont(wx.SMALL_FONT) self.adductNa_check.SetValue(config.compoundsSearch['adducts'].count('Na')) self.adductK_check = wx.CheckBox(panel, -1, "K") self.adductK_check.SetFont(wx.SMALL_FONT) self.adductK_check.SetValue(config.compoundsSearch['adducts'].count('K')) self.adductLi_check = wx.CheckBox(panel, -1, "Li") self.adductLi_check.SetFont(wx.SMALL_FONT) self.adductLi_check.SetValue(config.compoundsSearch['adducts'].count('Li')) self.adductNH4_check = wx.CheckBox(panel, -1, "NH4") self.adductNH4_check.SetFont(wx.SMALL_FONT) self.adductNH4_check.SetValue(config.compoundsSearch['adducts'].count('NH4')) self.adductH2O_check = wx.CheckBox(panel, -1, "-H2O") self.adductH2O_check.SetFont(wx.SMALL_FONT) self.adductH2O_check.SetValue(config.compoundsSearch['adducts'].count('-H2O')) self.adductACN_check = wx.CheckBox(panel, -1, "ACN") self.adductACN_check.SetFont(wx.SMALL_FONT) self.adductACN_check.SetValue(config.compoundsSearch['adducts'].count('ACN')) self.adductMeOH_check = wx.CheckBox(panel, -1, "MeOH") self.adductMeOH_check.SetFont(wx.SMALL_FONT) self.adductMeOH_check.SetValue(config.compoundsSearch['adducts'].count('MeOH')) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(massType_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.massTypeMo_radio, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.massTypeAv_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(maxCharge_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.maxCharge_value, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.radicals_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(adducts_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.adductNa_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.adductK_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.adductLi_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.adductNH4_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.adductH2O_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.adductACN_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.adductMeOH_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) mainSizer.Fit(panel) panel.SetSizer(mainSizer) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make buttons self.errors_butt = wx.BitmapButton(panel, ID_matchErrors, images.lib['matchErrorsOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.errors_butt.SetToolTip(wx.ToolTip("Error plot")) self.errors_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.summary_butt = wx.BitmapButton(panel, ID_matchSummary, images.lib['matchSummaryOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.summary_butt.SetToolTip(wx.ToolTip("Match summary")) self.summary_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) # make match fields tolerance_label = wx.StaticText(panel, -1, "Tolerance:") tolerance_label.SetFont(wx.SMALL_FONT) self.tolerance_value = wx.TextCtrl(panel, -1, str(config.match['tolerance']), size=(60, -1), validator=mwx.validator('floatPos')) self.unitsDa_radio = wx.RadioButton(panel, -1, "Da", style=wx.RB_GROUP) self.unitsDa_radio.SetFont(wx.SMALL_FONT) self.unitsDa_radio.SetValue(True) self.unitsDa_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.unitsPpm_radio = wx.RadioButton(panel, -1, "ppm") self.unitsPpm_radio.SetFont(wx.SMALL_FONT) self.unitsPpm_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.unitsPpm_radio.SetValue((config.match['units'] == 'ppm')) self.ignoreCharge_check = wx.CheckBox(panel, -1, "Ignore charge") self.ignoreCharge_check.SetFont(wx.SMALL_FONT) self.ignoreCharge_check.SetValue(config.match['ignoreCharge']) if self.currentModule == 'massfilter': self.ignoreCharge_check.Disable() self.match_butt = wx.Button(panel, -1, "Match", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.match_butt.Bind(wx.EVT_BUTTON, self.onMatch) self.calibrate_butt = wx.Button(panel, -1, "Calibrate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.calibrate_butt.Bind(wx.EVT_BUTTON, self.onCalibrate) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.TOOLBAR_LSPACE) sizer.Add(self.errors_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.summary_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.AddSpacer(20) sizer.Add(tolerance_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.tolerance_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(10) sizer.Add(self.unitsDa_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.unitsPpm_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.ignoreCharge_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.match_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 10) sizer.Add(self.calibrate_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbarNoBorder'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make match fields difference_label = wx.StaticText(panel, -1, "Difference:") difference_label.SetFont(wx.SMALL_FONT) self.difference_value = wx.TextCtrl( panel, -1, '', size=(100, -1), style=wx.TE_PROCESS_ENTER, validator=mwx.validator('floatPos')) self.difference_value.Bind(wx.EVT_TEXT_ENTER, self.onSearch) self.aminoacids_check = wx.CheckBox(panel, -1, "Amino acids") self.aminoacids_check.SetFont(wx.SMALL_FONT) self.aminoacids_check.SetValue(config.peakDifferences['aminoacids']) self.dipeptides_check = wx.CheckBox(panel, -1, "Dipeptides") self.dipeptides_check.SetFont(wx.SMALL_FONT) self.dipeptides_check.SetValue(config.peakDifferences['dipeptides']) massType_label = wx.StaticText(panel, -1, "Mass:") massType_label.SetFont(wx.SMALL_FONT) self.massTypeMo_radio = wx.RadioButton(panel, -1, "Mo", style=wx.RB_GROUP) self.massTypeMo_radio.SetFont(wx.SMALL_FONT) self.massTypeMo_radio.SetValue(True) self.massTypeAv_radio = wx.RadioButton(panel, -1, "Av") self.massTypeAv_radio.SetFont(wx.SMALL_FONT) self.massTypeAv_radio.SetValue(config.peakDifferences['massType']) tolerance_label = wx.StaticText(panel, -1, "Tolerance:") tolerance_label.SetFont(wx.SMALL_FONT) self.tolerance_value = wx.TextCtrl( panel, -1, str(config.peakDifferences['tolerance']), size=(50, -1), validator=mwx.validator('floatPos')) toleranceUnits_label = wx.StaticText(panel, -1, "m/z") toleranceUnits_label.SetFont(wx.SMALL_FONT) self.consolidate_check = wx.CheckBox(panel, -1, "Hide umatched") self.consolidate_check.SetFont(wx.SMALL_FONT) self.consolidate_check.SetValue(config.peakDifferences['consolidate']) self.search_butt = wx.Button(panel, -1, "Search", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.search_butt.Bind(wx.EVT_BUTTON, self.onSearch) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(difference_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.difference_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.aminoacids_check, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.dipeptides_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(massType_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.massTypeMo_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.massTypeAv_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(tolerance_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.tolerance_value, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(toleranceUnits_label, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.consolidate_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.search_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.CONTROLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makePatternPanel(self): """Make controls for pattern simulation.""" # init panel ctrlPanel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make controls self.patternCollapse_butt = wx.BitmapButton(ctrlPanel, ID_massCalculatorCollapse, images.lib['arrowsDown'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.patternCollapse_butt.Bind(wx.EVT_BUTTON, self.onCollapse) patternPeakShape_label = wx.StaticText(ctrlPanel, -1, "Shape:") patternPeakShape_label.SetFont(wx.SMALL_FONT) self.patternPeakShape_choice = wx.Choice(ctrlPanel, -1, choices=['Symmetrical', 'Asymmetrical'], size=(125, mwx.CHOICE_HEIGHT)) self.patternPeakShape_choice.Select(0) if config.massCalculator['patternPeakShape'] == 'gausslorentzian': self.patternPeakShape_choice.Select(1) self.patternPeakShape_choice.Bind(wx.EVT_CHOICE, self.onProfileChanged) patternFwhm_label = wx.StaticText(ctrlPanel, -1, "FWHM:") patternFwhm_label.SetFont(wx.SMALL_FONT) self.patternFwhm_value = mwx.scrollTextCtrl(ctrlPanel, -1, str(config.massCalculator['patternFwhm']), multiplier=0.1, limits=(0.001,10), digits=4, size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.patternFwhm_value.SetFont(wx.SMALL_FONT) self.patternFwhm_value.Bind(wx.EVT_TEXT, self.onPatternChanged) patternIntensity_label = wx.StaticText(ctrlPanel, -1, "Intensity:") patternIntensity_label.SetFont(wx.SMALL_FONT) self.patternIntensity_value = mwx.scrollTextCtrl(ctrlPanel, -1, str(config.massCalculator['patternIntensity']), multiplier=0.1, limits=(1,None), size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.patternIntensity_value.SetFont(wx.SMALL_FONT) self.patternIntensity_value.Bind(wx.EVT_TEXT, self.onProfileChanged) patternBaseline_label = wx.StaticText(ctrlPanel, -1, "Baseline:") patternBaseline_label.SetFont(wx.SMALL_FONT) self.patternBaseline_value = mwx.scrollTextCtrl(ctrlPanel, -1, str(config.massCalculator['patternBaseline']), multiplier=0.1, limits=(0,None), size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.patternBaseline_value.SetFont(wx.SMALL_FONT) self.patternBaseline_value.Bind(wx.EVT_TEXT, self.onProfileChanged) patternShift_label = wx.StaticText(ctrlPanel, -1, "Shift:") patternShift_label.SetFont(wx.SMALL_FONT) self.patternShift_value = mwx.scrollTextCtrl(ctrlPanel, -1, "0", step=0.001, digits=3, limits=(-1.,1.), size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.patternShift_value.SetFont(wx.SMALL_FONT) self.patternShift_value.Bind(wx.EVT_TEXT, self.onProfileChanged) self.showPeaks_check = wx.CheckBox(ctrlPanel, -1, "Peaks") self.showPeaks_check.SetFont(wx.SMALL_FONT) self.showPeaks_check.SetValue(config.massCalculator['patternShowPeaks']) self.showPeaks_check.Bind(wx.EVT_CHECKBOX, self.onProfileChanged) # pack controls controls = wx.BoxSizer(wx.HORIZONTAL) controls.AddSpacer(mwx.CONTROLBAR_RSPACE) controls.Add(self.patternCollapse_butt, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(10) controls.Add(patternPeakShape_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) controls.Add(self.patternPeakShape_choice, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(patternFwhm_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) controls.Add(self.patternFwhm_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(patternIntensity_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) controls.Add(self.patternIntensity_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(patternBaseline_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) controls.Add(self.patternBaseline_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(patternShift_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) controls.Add(self.patternShift_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(self.showPeaks_check, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(mwx.CONTROLBAR_RSPACE) controls.Fit(ctrlPanel) ctrlPanel.SetSizer(controls) # make plot canvas self.makePatternCanvas() # pack main self.patternSizer = wx.BoxSizer(wx.VERTICAL) self.patternSizer.Add(ctrlPanel, 0, wx.EXPAND, 0) self.patternSizer.Add(self.patternCanvas, 1, wx.EXPAND) return self.patternSizer
def makeIonseriesPanel(self): """Make controls for ionseries.""" # init panel ctrlPanel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make controls ionseriesAgent_label = wx.StaticText(ctrlPanel, -1, "Agent:") ionseriesAgent_label.SetFont(wx.SMALL_FONT) self.ionseriesAgentFormula_value = wx.TextCtrl( ctrlPanel, -1, config.massCalculator['ionseriesAgent'], size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.ionseriesAgentFormula_value.SetFont(wx.SMALL_FONT) self.ionseriesAgentFormula_value.Bind(wx.EVT_TEXT, self.onCompoundChanged) ionseriesAgentCharge_label = wx.StaticText(ctrlPanel, -1, "Agent charge:") ionseriesAgentCharge_label.SetFont(wx.SMALL_FONT) self.ionseriesAgentCharge_value = wx.TextCtrl( ctrlPanel, -1, str(config.massCalculator['ionseriesAgentCharge']), size=(40, mwx.SMALL_TEXTCTRL_HEIGHT), validator=mwx.validator('int')) self.ionseriesAgentCharge_value.SetFont(wx.SMALL_FONT) self.ionseriesAgentCharge_value.Bind(wx.EVT_TEXT, self.onCompoundChanged) ionseriesPolarity_label = wx.StaticText(ctrlPanel, -1, "Polarity:") ionseriesPolarity_label.SetFont(wx.SMALL_FONT) self.ionseriesPositive_radio = wx.RadioButton(ctrlPanel, -1, "Positive", style=wx.RB_GROUP) self.ionseriesPositive_radio.SetFont(wx.SMALL_FONT) self.ionseriesPositive_radio.Bind(wx.EVT_RADIOBUTTON, self.onCompoundChanged) self.ionseriesNegative_radio = wx.RadioButton(ctrlPanel, -1, "Negative") self.ionseriesNegative_radio.SetFont(wx.SMALL_FONT) self.ionseriesNegative_radio.Bind(wx.EVT_RADIOBUTTON, self.onCompoundChanged) if config.massCalculator['ionseriesPolarity'] == -1: self.ionseriesNegative_radio.SetValue(True) else: self.ionseriesPositive_radio.SetValue(True) # pack controls controls = wx.BoxSizer(wx.HORIZONTAL) controls.AddSpacer(mwx.CONTROLBAR_LSPACE) controls.Add(ionseriesAgent_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) controls.Add(self.ionseriesAgentFormula_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(ionseriesAgentCharge_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) controls.Add(self.ionseriesAgentCharge_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(ionseriesPolarity_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) controls.Add(self.ionseriesPositive_radio, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) controls.Add(self.ionseriesNegative_radio, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(mwx.CONTROLBAR_RSPACE) controls.Fit(ctrlPanel) ctrlPanel.SetSizer(controls) # make ions list self.makeIonsList() # pack main mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(ctrlPanel, 0, wx.EXPAND) mainSizer.Add(self.ionsList, 1, wx.EXPAND | wx.ALL, mwx.LISTCTRL_NO_SPACE) return mainSizer
def makePatternPanel(self): """Make controls for pattern simulation.""" # init panel ctrlPanel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) # make controls self.patternCollapse_butt = wx.BitmapButton( ctrlPanel, ID_massCalculatorCollapse, images.lib['arrowsDown'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.patternCollapse_butt.Bind(wx.EVT_BUTTON, self.onCollapse) patternPeakShape_label = wx.StaticText(ctrlPanel, -1, "Shape:") patternPeakShape_label.SetFont(wx.SMALL_FONT) self.patternPeakShape_choice = wx.Choice( ctrlPanel, -1, choices=['Symmetrical', 'Asymmetrical'], size=(125, mwx.CHOICE_HEIGHT)) self.patternPeakShape_choice.Select(0) if config.massCalculator['patternPeakShape'] == 'gausslorentzian': self.patternPeakShape_choice.Select(1) self.patternPeakShape_choice.Bind(wx.EVT_CHOICE, self.onProfileChanged) patternFwhm_label = wx.StaticText(ctrlPanel, -1, "FWHM:") patternFwhm_label.SetFont(wx.SMALL_FONT) self.patternFwhm_value = mwx.scrollTextCtrl( ctrlPanel, -1, str(config.massCalculator['patternFwhm']), multiplier=0.1, limits=(0.001, 10), digits=4, size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.patternFwhm_value.SetFont(wx.SMALL_FONT) self.patternFwhm_value.Bind(wx.EVT_TEXT, self.onPatternChanged) patternIntensity_label = wx.StaticText(ctrlPanel, -1, "Intensity:") patternIntensity_label.SetFont(wx.SMALL_FONT) self.patternIntensity_value = mwx.scrollTextCtrl( ctrlPanel, -1, str(config.massCalculator['patternIntensity']), multiplier=0.1, limits=(1, None), size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.patternIntensity_value.SetFont(wx.SMALL_FONT) self.patternIntensity_value.Bind(wx.EVT_TEXT, self.onProfileChanged) patternBaseline_label = wx.StaticText(ctrlPanel, -1, "Baseline:") patternBaseline_label.SetFont(wx.SMALL_FONT) self.patternBaseline_value = mwx.scrollTextCtrl( ctrlPanel, -1, str(config.massCalculator['patternBaseline']), multiplier=0.1, limits=(0, None), size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.patternBaseline_value.SetFont(wx.SMALL_FONT) self.patternBaseline_value.Bind(wx.EVT_TEXT, self.onProfileChanged) patternShift_label = wx.StaticText(ctrlPanel, -1, "Shift:") patternShift_label.SetFont(wx.SMALL_FONT) self.patternShift_value = mwx.scrollTextCtrl( ctrlPanel, -1, "0", step=0.001, digits=3, limits=(-1., 1.), size=(60, mwx.SMALL_TEXTCTRL_HEIGHT)) self.patternShift_value.SetFont(wx.SMALL_FONT) self.patternShift_value.Bind(wx.EVT_TEXT, self.onProfileChanged) self.showPeaks_check = wx.CheckBox(ctrlPanel, -1, "Peaks") self.showPeaks_check.SetFont(wx.SMALL_FONT) self.showPeaks_check.SetValue( config.massCalculator['patternShowPeaks']) self.showPeaks_check.Bind(wx.EVT_CHECKBOX, self.onProfileChanged) # pack controls controls = wx.BoxSizer(wx.HORIZONTAL) controls.AddSpacer(mwx.CONTROLBAR_RSPACE) controls.Add(self.patternCollapse_butt, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(10) controls.Add(patternPeakShape_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) controls.Add(self.patternPeakShape_choice, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(patternFwhm_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) controls.Add(self.patternFwhm_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(patternIntensity_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) controls.Add(self.patternIntensity_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(patternBaseline_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) controls.Add(self.patternBaseline_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(patternShift_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) controls.Add(self.patternShift_value, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(20) controls.Add(self.showPeaks_check, 0, wx.ALIGN_CENTER_VERTICAL) controls.AddSpacer(mwx.CONTROLBAR_RSPACE) controls.Fit(ctrlPanel) ctrlPanel.SetSizer(controls) # make plot canvas self.makePatternCanvas() # pack main self.patternSizer = wx.BoxSizer(wx.VERTICAL) self.patternSizer.Add(ctrlPanel, 0, wx.EXPAND, 0) self.patternSizer.Add(self.patternCanvas, 1, wx.EXPAND) return self.patternSizer
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make buttons self.errors_butt = wx.BitmapButton(panel, ID_matchErrors, images.lib['matchErrorsOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.errors_butt.SetToolTip(wx.ToolTip("Error plot")) self.errors_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.summary_butt = wx.BitmapButton(panel, ID_matchSummary, images.lib['matchSummaryOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.summary_butt.SetToolTip(wx.ToolTip("Match summary")) self.summary_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) # make match fields tolerance_label = wx.StaticText(panel, -1, "Tolerance:") tolerance_label.SetFont(wx.SMALL_FONT) self.tolerance_value = wx.TextCtrl(panel, -1, str(config.match['tolerance']), size=(60, -1), validator=mwx.validator('floatPos')) self.unitsDa_radio = wx.RadioButton(panel, -1, "Da", style=wx.RB_GROUP) self.unitsDa_radio.SetFont(wx.SMALL_FONT) self.unitsDa_radio.SetValue(True) self.unitsDa_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.unitsPpm_radio = wx.RadioButton(panel, -1, "ppm") self.unitsPpm_radio.SetFont(wx.SMALL_FONT) self.unitsPpm_radio.Bind(wx.EVT_RADIOBUTTON, self.onUnitsChanged) self.unitsPpm_radio.SetValue((config.match['units'] == 'ppm')) self.ignoreCharge_check = wx.CheckBox(panel, -1, "Ignore charge") self.ignoreCharge_check.SetFont(wx.SMALL_FONT) self.ignoreCharge_check.SetValue(config.match['ignoreCharge']) if self.currentModule == 'massfilter': self.ignoreCharge_check.Disable() self.match_butt = wx.Button(panel, -1, "Match", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.match_butt.Bind(wx.EVT_BUTTON, self.onMatch) self.calibrate_butt = wx.Button(panel, -1, "Calibrate", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.calibrate_butt.Bind(wx.EVT_BUTTON, self.onCalibrate) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.TOOLBAR_LSPACE) sizer.Add(self.errors_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.summary_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.AddSpacer(20) sizer.Add(tolerance_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.tolerance_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(10) sizer.Add(self.unitsDa_radio, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) sizer.Add(self.unitsPpm_radio, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(self.ignoreCharge_check, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.match_butt, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10) sizer.Add(self.calibrate_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make buttons self.image_butt = wx.BitmapButton(panel, ID_documentExportImage, images.lib['documentExportImageOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.image_butt.SetToolTip(wx.ToolTip("Export spectrum image")) self.image_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.peaklist_butt = wx.BitmapButton( panel, ID_documentExportPeaklist, images.lib['documentExportPeaklistOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.peaklist_butt.SetToolTip(wx.ToolTip("Export peak list")) self.peaklist_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) self.spectrum_butt = wx.BitmapButton( panel, ID_documentExportSpectrum, images.lib['documentExportSpectrumOff'], size=(mwx.TOOLBAR_TOOLSIZE), style=wx.BORDER_NONE) self.spectrum_butt.SetToolTip(wx.ToolTip("Export spectrum data")) self.spectrum_butt.Bind(wx.EVT_BUTTON, self.onToolSelected) # make controls self.export_butt = wx.Button(panel, -1, "Export", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.export_butt.Bind(wx.EVT_BUTTON, self.onExport) # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.TOOLBAR_LSPACE) sizer.Add(self.image_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.peaklist_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.Add(self.spectrum_butt, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, mwx.BUTTON_SIZE_CORRECTION) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.export_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeToolbar(self): """Make toolbar.""" # init toolbar panel = mwx.bgrPanel(self, -1, images.lib['bgrToolbar'], size=(-1, mwx.TOOLBAR_HEIGHT)) # make tools yAxis_label = wx.StaticText(panel, -1, "MD type:") yAxis_label.SetFont(wx.SMALL_FONT) choices = [ 'Fractional Mass', 'Mass Defect', 'Relative Mass Defect', 'Kendrick Mass Defect' ] self.yAxis_choice = wx.Choice(panel, -1, choices=choices, size=(175, mwx.SMALL_CHOICE_HEIGHT)) self.yAxis_choice.Select(1) choices = ['fraction', 'standard', 'relative', 'kendrick'] if config.massDefectPlot['yAxis'] in choices: self.yAxis_choice.Select( choices.index(config.massDefectPlot['yAxis'])) self.yAxis_choice.Bind(wx.EVT_CHOICE, self.onAxisChanged) nominalMass_label = wx.StaticText(panel, -1, "Nominal mass:") nominalMass_label.SetFont(wx.SMALL_FONT) choices = ['Ceil', 'Round', 'Floor'] self.nominalMass_choice = wx.Choice(panel, -1, choices=choices, size=(80, mwx.SMALL_CHOICE_HEIGHT)) self.nominalMass_choice.Select(1) if config.massDefectPlot['nominalMass'].title() in choices: self.nominalMass_choice.Select( choices.index(config.massDefectPlot['nominalMass'].title())) kendrickFormula_label = wx.StaticText(panel, -1, "Kendrick formula:") kendrickFormula_label.SetFont(wx.SMALL_FONT) self.kendrickFormula_value = mwx.formulaCtrl( panel, -1, config.massDefectPlot['kendrickFormula'], size=(80, -1)) # make buttons self.plot_butt = wx.Button(panel, -1, "Plot", size=(-1, mwx.SMALL_BUTTON_HEIGHT)) self.plot_butt.Bind(wx.EVT_BUTTON, self.onPlot) self.onAxisChanged() # pack elements sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.AddSpacer(mwx.CONTROLBAR_LSPACE) sizer.Add(yAxis_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.yAxis_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(nominalMass_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.nominalMass_choice, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(20) sizer.Add(kendrickFormula_label, 0, wx.ALIGN_CENTER_VERTICAL | wx.RIGHT, 5) sizer.Add(self.kendrickFormula_value, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddStretchSpacer() sizer.AddSpacer(20) sizer.Add(self.plot_butt, 0, wx.ALIGN_CENTER_VERTICAL) sizer.AddSpacer(mwx.TOOLBAR_RSPACE) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(sizer, 1, wx.EXPAND) panel.SetSizer(mainSizer) mainSizer.Fit(panel) return panel
def makeQueryPanel(self): """Make controls for query.""" # init panels ctrlPanel = mwx.bgrPanel(self, -1, images.lib['bgrControlbar'], size=(-1, mwx.CONTROLBAR_HEIGHT)) pklPanel = wx.Panel(self, -1) # make elements filter_label = wx.StaticText(ctrlPanel, -1, "Remove:") filter_label.SetFont(wx.SMALL_FONT) self.filterAnnotations_check = wx.CheckBox(ctrlPanel, -1, "Annotated") self.filterAnnotations_check.SetFont(wx.SMALL_FONT) self.filterAnnotations_check.SetValue(config.profound['filterAnnotations']) self.filterAnnotations_check.Bind(wx.EVT_CHECKBOX, self.onGetPeaklist) self.filterMatches_check = wx.CheckBox(ctrlPanel, -1, "Matched") self.filterMatches_check.SetFont(wx.SMALL_FONT) self.filterMatches_check.SetValue(config.profound['filterMatches']) self.filterMatches_check.Bind(wx.EVT_CHECKBOX, self.onGetPeaklist) self.filterUnselected_check = wx.CheckBox(ctrlPanel, -1, "Unselected") self.filterUnselected_check.SetFont(wx.SMALL_FONT) self.filterUnselected_check.SetValue(config.profound['filterUnselected']) self.filterUnselected_check.Bind(wx.EVT_CHECKBOX, self.onGetPeaklist) self.filterIsotopes_check = wx.CheckBox(ctrlPanel, -1, "Isotopes") self.filterIsotopes_check.SetFont(wx.SMALL_FONT) self.filterIsotopes_check.SetValue(config.profound['filterIsotopes']) self.filterIsotopes_check.Bind(wx.EVT_CHECKBOX, self.onGetPeaklist) self.filterUnknown_check = wx.CheckBox(ctrlPanel, -1, "Unknown") self.filterUnknown_check.SetFont(wx.SMALL_FONT) self.filterUnknown_check.SetValue(config.profound['filterUnknown']) self.filterUnknown_check.Bind(wx.EVT_CHECKBOX, self.onGetPeaklist) self.paramQuery_value = wx.TextCtrl(pklPanel, -1, "", size=(300, 300), style=wx.TE_MULTILINE) self.paramQuery_value.SetFont(wx.SMALL_FONT) # pack elements ctrlSizer = wx.BoxSizer(wx.HORIZONTAL) ctrlSizer.AddSpacer(mwx.CONTROLBAR_LSPACE) ctrlSizer.Add(filter_label, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) ctrlSizer.Add(self.filterAnnotations_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) ctrlSizer.Add(self.filterMatches_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) ctrlSizer.Add(self.filterUnselected_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) ctrlSizer.Add(self.filterIsotopes_check, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 5) ctrlSizer.Add(self.filterUnknown_check, 0, wx.ALIGN_CENTER_VERTICAL) ctrlSizer.AddSpacer(mwx.CONTROLBAR_RSPACE) ctrlSizer.Fit(ctrlPanel) ctrlPanel.SetSizer(ctrlSizer) pklSizer = wx.BoxSizer(wx.VERTICAL) if wx.Platform == '__WXMAC__': pklSizer.AddSpacer(mwx.PANEL_SPACE_MAIN) pklSizer.Add(self.paramQuery_value, 1, wx.EXPAND|wx.ALIGN_CENTER|wx.LEFT|wx.RIGHT|wx.BOTTOM, mwx.PANEL_SPACE_MAIN) pklSizer.Fit(pklPanel) pklPanel.SetSizer(pklSizer) mainSizer = wx.BoxSizer(wx.VERTICAL) mainSizer.Add(ctrlPanel, 0, wx.EXPAND|wx.ALIGN_CENTER) mainSizer.Add(pklPanel, 1, wx.EXPAND|wx.ALIGN_CENTER) return mainSizer