def setup(self): self.load() monlns = self.db.get_last_identifiers(self.monitor_name) unklns = self.db.get_last_identifiers(excludes=(self.monitor_name, )) if monlns: self.mon_maxs = get_maxs(monlns) if unklns: self.unk_maxs = get_maxs(unklns) info = self.edit_traits(view=View( Item('offset'), Item('level_offset'), Item('mon_start', label='Starting Monitor L#', editor=ComboboxEditor(name='mon_maxs')), Item('unk_start', label='Starting Unknown L#', editor=ComboboxEditor(name='unk_maxs')), kind='livemodal', title='Configure Identifier Generation', buttons=['OK', 'Cancel']), ) if info.result: self.dump() return True
def traits_view(self): notegrp = VGroup(Item('retain_note', tooltip='Retain the Note for the next hole', label='Lock'), Item('note', style='custom', show_label=False), show_border=True, label='Note') viewgrp = VGroup( HGroup(Item('use_cmap', label='Color Map'), UItem('cmap_name', enabled_when='use_cmap')), Item('show_hole_numbers'), Item('show_labnumbers'), Item('show_weights'), # Item('show_spans'), show_border=True, label='View') load_grp = VGroup( Item('username', editor=ComboboxEditor(name='available_user_names')), HGroup( Item('load_name', editor=EnumEditor(name='loads'), label='Loads'), icon_button_editor('add_button', 'add', tooltip='Add a load'), icon_button_editor('delete_button', 'delete', tooltip='Delete selected load'), icon_button_editor('archive_button', 'application-x-archive', tooltip='Archive a set of loads')), label='Load', show_border=True) samplegrp = VGroup( Item('irradiation', editor=ComboboxEditor(name='irradiations', refresh='refresh_irradiation')), Item('level', editor=ComboboxEditor(name='levels', refresh='refresh_level')), # Item('level'), Item('labnumber', editor=ComboboxEditor(name='labnumbers', refresh='refresh_labnumber')), Item('sample_info', style='readonly'), HGroup( Item('weight', label='Weight (mg)'), Item('retain_weight', label='Lock', tooltip='Retain the Weight for the next hole')), HGroup(Item('npositions', label='NPositions'), Item('auto_increment')), enabled_when='load_name', show_border=True, label='Sample') v = View(VGroup(load_grp, samplegrp, notegrp, viewgrp)) return v
def traits_view(self): pigrp = HGroup(UItem('principal_investigator', editor=ComboboxEditor(name='principal_investigators', use_filter=False)), icon_button_editor('configure_pi_button', 'cog', tooltip='Set optional values for Principal Investigator'), icon_button_editor('add_principal_investigator_button', 'add', enabled_when='principal_investigator', tooltip='Add a principal investigator'), label='PrincipalInvestigator', show_border=True) prgrp = HGroup(UItem('project', # editor=EnumEditor(name='projects')), editor=ComboboxEditor(name='projects', use_filter=False)), UItem('generate_project_button', tooltip='Generate a default name for this project'), UItem('set_optionals_button', tooltip='Set optional values for current project'), icon_button_editor('add_project_button', 'add', enabled_when='project', tooltip='Add a project'), enabled_when='project_enabled', label='Project', show_border=True) mgrp = HGroup(UItem('material', editor=EnumEditor(name='materials')), # editor=ComboboxEditor(name='materials', use_filter=False)), UItem('grainsize', editor=ComboboxEditor(name='grainsizes', use_filter=False)), # icon_button_editor('add_material_button', 'add', # enabled_when='material', # tooltip='Add a material'), label='Material', show_border=True) sgrp = VGroup(HGroup(UItem('sample'), icon_button_editor('configure_sample_button', 'cog', tooltip='Set additional sample ' 'attributes'), icon_button_editor('add_sample_button', 'add', enabled_when='add_sample_enabled', tooltip='Add a sample')), VGroup(UItem('note', style='custom'), label='Note', show_border=True), enabled_when='sample_enabled', label='Sample', show_border=True) v = View(VGroup(pigrp, prgrp, mgrp, sgrp, CustomLabel('pane.help_str') )) return v
def traits_view(self): agrp = HGroup(Item('principal_investigator', label='PI', editor=EnumEditor(name='principal_investigators')), Item('project', label='Project', editor=ComboboxEditor(name='projects')), Item('sample', label='Sample', editor=ComboboxEditor(name='samples'))) bgrp = VGroup(UItem('sessions', editor=TabularEditor(adapter=SessionAdapter(), selected='session'))) v = okcancel_view(VGroup(agrp, bgrp), title='Locate Sample') return v
def traits_view(self): pigrp = HGroup( UItem('principal_investigator', editor=ComboboxEditor(name='principal_investigators')), icon_button_editor('add_principal_investigator_button', 'add', enabled_when='principal_investigator', tooltip='Add a principal investigator'), label='PrincipalInvestigator', show_border=True) prgrp = HGroup(UItem('project', editor=ComboboxEditor(name='projects')), icon_button_editor('add_project_button', 'add', enabled_when='project', tooltip='Add a project'), enabled_when='project_enabled', label='Project', show_border=True) mgrp = HGroup(UItem('material', editor=ComboboxEditor(name='materials')), UItem('grainsize', editor=ComboboxEditor(name='grainsizes')), icon_button_editor('add_material_button', 'add', enabled_when='material', tooltip='Add a material'), label='Material', show_border=True) sgrp = HGroup(UItem('sample'), icon_button_editor('add_sample_button', 'add', enabled_when='sample', tooltip='Add a sample'), enabled_when='sample_enabled', label='Sample', show_border=True) v = View(VGroup( pigrp, prgrp, mgrp, sgrp, )) return v
def traits_view(self): v = okcancel_view(UItem( 'update_reactor_name', editor=ComboboxEditor(name='update_reactor_names')), width=300, title='Update Reactor Default') return v
def traits_view(self): self.sample_tabular_adapter.columns = [('Sample', 'name'), ('Material', 'material')] # tgrp = HGroup(icon_button_editor('clear_button', 'table_lightning', # enabled_when='selected', # tooltip='Clear contents of selected positions')) pi_grp = VGroup(UItem('principal_investigator', editor=EnumEditor(name='principal_investigators')), show_border=True, label='Principal Investigator') project_grp = VGroup(UItem('projects', editor=FilterTabularEditor(editable=False, use_fuzzy=True, selected='selected_projects', adapter=ProjectAdapter(), multi_select=True), width=175), show_border=True, label='Projects') sample_grp = VGroup(HGroup(UItem('sample_filter_parameter', editor=EnumEditor(name='sample_filter_parameters')), UItem('sample_filter', editor=ComboboxEditor(name='sample_filter_values'), width=75), # icon_button_editor('edit_sample_button', 'database_edit', # tooltip='Edit sample in database'), # icon_button_editor('add_sample_button', 'database_add', # tooltip='Add sample to database') icon_button_editor('clear_sample_button', 'clear', tooltip='Clear selected sample')), UItem('samples', editor=TabularEditor(adapter=self.sample_tabular_adapter, editable=False, selected='selected_samples', dclicked='dclicked', multi_select=True, column_clicked='column_clicked', stretch_last_section=False), width=75)) jgrp = HGroup(UItem('j'), Label(PLUSMINUS_ONE_SIGMA), UItem('j_err'), icon_button_editor('estimate_j_button', 'cog'), show_border=True, label='J') ngrp = HGroup(UItem('note'), UItem('weight'), show_border=True, label='Note') sgrp = HGroup(UItem('invert_flag'), Item('selection_freq', label='Freq'), show_border=True, label='Selection') v = View(VSplit(VGroup(HGroup(sgrp, jgrp), ngrp, pi_grp, project_grp), sample_grp, style_sheet=load_stylesheet('labnumber_entry'))) return v
def _get_pi_group(self): pi_grp = HGroup(UItem('principal_investigator_enabled'), UItem('principal_investigator', enabled_when='principal_investigator_enabled', editor=ComboboxEditor(name='principal_investigators')), label='PIs', show_border=True) return pi_grp
def traits_view(self): v = View(HGroup( Item('name', editor=ComboboxEditor(name='names')), Item('mass')), width=500, title='Add New Molecular Weight', buttons=['OK', 'Cancel'], resizable=True) return v
def traits_view(self): v = okcancel_view( Item('frequency_int'), Item('template', tooltip=TEMPLATE_HELP, editor=ComboboxEditor(name='controller.templates', addable=False)), title='Edit Frequency Options') return v
def setup(self): self.load() if not self.use_consecutive_identifiers: monlns = self.db.get_last_identifiers(self.monitor_name) unklns = self.db.get_last_identifiers( excludes=(self.monitor_name, )) if monlns: self.mon_maxs = list(map(str, get_maxs(monlns))) if unklns: self.unk_maxs = list(map(str, get_maxs(unklns))) self.mon_start = self.mon_maxs[0] if self.mon_maxs else 0 self.unk_start = self.unk_maxs[0] if self.unk_maxs else 0 else: unklns = self.db.get_last_identifiers() if unklns: self.unk_maxs = list(map(str, get_maxs(unklns))) self.unk_start = self.unk_maxs[0] if self.unk_maxs else 0 start_grp = VGroup( Item('mon_start', label='Starting Monitor Identifier', editor=ComboboxEditor(name='mon_maxs'), defined_when='not use_consecutive_identifiers'), Item('unk_start', label='Starting Unknown Identifier', editor=ComboboxEditor(name='unk_maxs'), defined_when='not use_consecutive_identifiers'), Item('unk_start', label='Starting Identifier', editor=ComboboxEditor(name='unk_maxs'), defined_when='use_consecutive_identifiers')) info = self.edit_traits( view=okcancel_view(Item('offset'), Item('level_offset'), start_grp, title='Configure Identifier Generation')) if info.result: self.dump() return True
def traits_view(self): v = View(Label('Copy "Source" preferences to "Destination"'), VGroup(UItem('src_user', width=225, editor=ComboboxEditor(name='users')), label='Source', show_border=True), VGroup(Item('copy_all', label='Copy All', tooltip='Copy "Source" to all destinations'), UItem('dest_user', editor=ComboboxEditor(name='users'), enabled_when='not copy_all', width=225), label='Destination', show_border=True), buttons=['OK', 'Cancel'], title='Login', kind='livemodal') return v
def traits_view(self): v = View(Label('Select your username or enter a new one'), HGroup( UItem('user', width=225, editor=ComboboxEditor(name='users'))), handler=LoginHandler(), buttons=['OK', 'Cancel'], title='Login', kind='livemodal') return v
def traits_view(self): agrp = HGroup( Item('principal_investigator', label='PI', editor=EnumEditor(name='principal_investigators')), Item('project', label='Project', editor=ComboboxEditor(name='projects')), Item('sample', label='Sample', editor=ComboboxEditor(name='samples'))) bgrp = VGroup( UItem('sessions', editor=TabularEditor(adapter=SessionAdapter(), selected='session'))) v = View(VGroup(agrp, bgrp), buttons=['OK', 'Cancel'], kind='livemodal', resizable=True, title='Locate Sample') return v
def traits_view(self): # style_sheet='QLabel {font-size: 10px} QLineEdit {font-size: 10px}' a = VGroup( Item('value', label='Repository Name'), Item('principal_investigator', editor=ComboboxEditor(name='principal_investigators')), UItem('error_message', style='readonly', style_sheet=STYLESHEET)) buttons = [OKButton(), 'Cancel'] return self._new_view(a, width=400, title='Add {}'.format(self.tag), buttons=buttons)
def _query_edit_view(self): v = View(HGroup( UItem('parameter', editor=EnumEditor(name='parameters')), UItem('comparator', editor=EnumEditor(name='comparisons')), UItem('criterion', editor=ComboboxEditor(name='criteria')), # UItem('criterion', # width=-25, # editor=EnumEditor(name='criteria')), UItem('chain_rule')), height=125) return v
def traits_view(self): v = View( Item('frequency_int'), # Item('before'), # Item('after'), Item('template', tooltip=TEMPLATE_HELP, editor=ComboboxEditor(name='controller.templates', addable=False)), title='Edit Frequency Options', buttons=['OK', 'Cancel'], resizable=True) return v
def _get_sample_group(self): irrad_grp = self._get_irrad_group() project_grp = self._get_project_group() exp_grp = self._get_repositories_group() analysis_type_group = self._get_analysis_type_group() date_grp = self._get_date_group() ms_grp = self._get_mass_spectrometer_group() ln_grp = self._get_identifier_group() pi_grp = self._get_pi_group() top_level_filter_grp = VGroup( # CustomLabel('filter_label', # style='custom', # width=-1.0, # visible_when='not filter_focus'), HGroup(pi_grp, ms_grp, ln_grp), HGroup(project_grp, exp_grp, irrad_grp), analysis_type_group, date_grp) # g1 = UItem('controller.tableview', style='custom') sample_tools = HGroup( UItem('sample_filter_parameter', width=-90, editor=EnumEditor(name='sample_filter_parameters')), UItem('sample_filter_comparator'), UItem('sample_filter', editor=ComboboxEditor(name='sample_filter_values')), icon_button_editor('clear_sample_table', 'clear', tooltip='Clear Sample Table')) sample_table = VGroup( sample_tools, UItem( 'samples', editor=myTabularEditor( adapter=self.model.labnumber_tabular_adapter, editable=False, selected='selected_samples', multi_select=True, dclicked='dclicked_sample', column_clicked='column_clicked', # update='update_sample_table', # refresh='update_sample_table', stretch_last_section=False)), show_border=True, label='Samples') grp = VGroup(top_level_filter_grp, sample_table) return grp
def traits_view(self): db_auth_grp = Group( Item('host', editor=TextEditor(enter_set=True, auto_set=False), width=125, label='Host'), Item('username', label='User', editor=TextEditor(enter_set=True, auto_set=False)), Item('password', label='Password', editor=TextEditor(enter_set=True, auto_set=False, password=True)), enabled_when='kind=="mysql"', show_border=True, label='Authentication') fav_grp = VGroup(Item('fav_name', show_label=False), Item('favorites', show_label=False, width=100, editor=ListStrEditor( editable=False, adapter=FavoritesAdapter(), selected='object.selected')), HGroup( icon_button_editor('add_favorite', 'add', tooltip='Add saved connection'), icon_button_editor('delete_favorite', 'delete', tooltip='Delete saved connection'), icon_button_editor('test_connection_button', 'database_connect', tooltip='Test connection'), Spring(width=10, springy=False), Label('Status:'), CustomLabel('_connected_label', label='Status', weight='bold', color_name='_connected_color'), spring, show_labels=False)) db_grp = Group(HGroup(Item('kind', show_label=False), Item('db_name', label='Database Name', editor=ComboboxEditor(name='_names')), # UItem('progress_icon', editor=AnimatedPNGEditor(state='progress_state')) ), # Item('save_username', label='User'), HGroup(fav_grp, db_auth_grp), show_border=True, label='Pychron DB') return View(db_grp)
def traits_view(self): v = okcancel_view( CustomLabel('message', color='red', size=14, defined_when='message'), CustomLabel('user_help', defined_when='not message'), HGroup(UItem('user', width=225, enabled_when='user_enabled', editor=ComboboxEditor(name='users'))), Label('Select your work environment'), HGroup(UItem('environment', width=225, editor=EnumEditor(name='environments')), icon_button_editor('directory_select_button', 'configure-2')), handler=LoginHandler(), title='Login') return v
def traits_view(self): # root_grp = VGroup(Item('root_dir', label='Pychron Directory'), # show_border=True, label='Root') user_grp = VGroup(Item('username', editor=ComboboxEditor(name='_usernames'), label='Name'), show_border=True, label='User') env_grp = VGroup(Item('environment', label='Directory'), show_border=True, label='Environment') # login_grp = VGroup(Item('use_login', label='Use Login'), # Item('multi_user', label='Multi User'), # label='Login', show_border=True) o_grp = VGroup(Item('organization', resizable=True, label='Name'), remote_status_item('Laboratory Repo'), show_border=True, label='Organization') v = View( VGroup( Item('confirm_quit', label='Confirm Quit', tooltip= 'Ask user for confirmation when quitting application'), Item( 'show_random_tip', label='Random Tip', tooltip='Display a Random Tip whe the application starts'), Item('default_principal_investigator', resizable=True, label='Default PI'), Item('lab_name', label='Laboratory Name'), # Item('use_advanced_ui', label='Advanced UI', # tooltip='Display the advanced UI'), # root_grp, # login_grp, user_grp, env_grp, o_grp, label='General', show_border=True)) return v
def traits_view(self): hgrp = VGroup(UItem('object.active_sample.steps', editor=TabularEditor(adapter=PrepStepAdapter(), selected='selected_step', dclicked='dclicked', editable=False)), label='History') hs = [] for steps, label in ((INITIAL_STEPS, 'Initial'), (HIGH_GRADE_STEPS, 'High Grade'), (IMAGE_STEPS, 'Imaging')): gs = [] for step in steps: fstep = 'object.prep_step.flag_{}'.format(step) g = HGroup( Item('object.prep_step.{}'.format(step), enabled_when='not {}'.format(fstep), editor=ComboboxEditor( name='object.prep_step.choices_{}'.format(step))), spring, UItem(fstep)) gs.append(g) vg = VGroup(show_border=True, label=label, *gs) hs.append(vg) hg = HGroup(*hs) sg = HGroup((Item('object.prep_step.status'), HGroup( Item('object.prep_step.comment'), icon_button_editor( 'object.prep_step.edit_comment_button', 'cog'))), show_border=True, label='Final') ngrp = VGroup(hg, sg, label='New') agrp = VGroup(HGroup( icon_button_editor('add_step_button', 'add', enabled_when='object.active_sample.name', tooltip='Add a sample prep step'), icon_button_editor('clear_step_button', 'clear', enabled_when='object.active_sample.name', tooltip='Clear values entered in "New"'), icon_button_editor('upload_image_button', 'image_add', tooltip='Add image'), icon_button_editor('view_camera_button', 'camera', tooltip='Take a picture'), icon_button_editor('view_image_button', 'insert-image-link', tooltip='View Associated Image'), spring, UItem('object.active_sample.name', style='readonly'), spring), Tabbed(hgrp, ngrp), enabled_when='object.active_sample.name') fgrp = HGroup(Item('fcrush', label='Crush'), spring, Item('fsieve', label='Sieve'), spring, Item('fwash', label='Wash'), spring, Item( 'facid', label='Acid', ), spring, Item( 'fheavy_liquid', label='Heavy Liquid', ), spring, Item('fpick', label='Pick'), spring, Item('fstatus', label='Status')) v = View(VGroup( fgrp, UItem('session_samples', editor=TabularEditor(adapter=SamplesAdapter(), editable=False, selected='active_sample')), agrp), handler=SamplePrepHandler()) return v
def traits_view(self): tgrp = HGroup( VGroup(icon_button_editor('add_project_button', 'database_add', tooltip='Add project'), show_border=True, label='Project'), VGroup(icon_button_editor('add_material_button', 'database_add', tooltip='Add material'), show_border=True, label='Material'), VGroup(icon_button_editor('add_sample_button', 'database_add', tooltip='Add sample'), show_border=True, label='Sample'), icon_button_editor( 'generate_identifiers_button', 'table_lightning', tooltip='Generate Identifiers for this irradiation'), icon_button_editor( 'preview_generate_identifiers_button', 'document-preview', tooltip= 'Preview identifiers generated for this irradiation level')) project_grp = VGroup(UItem('projects', editor=FilterTabularEditor( editable=False, selected='selected_projects', adapter=ProjectAdapter(), multi_select=True), width=175), show_border=True, label='Projects') sample_grp = VGroup( HGroup( UItem('sample_filter_parameter', editor=EnumEditor(name='sample_filter_parameters')), UItem('sample_filter', editor=ComboboxEditor(name='sample_filter_values'), width=75), icon_button_editor('edit_sample_button', 'database_edit', tooltip='Edit sample in database'), icon_button_editor('add_sample_button', 'database_add', tooltip='Add sample to database')), UItem('samples', editor=TabularEditor(adapter=self.labnumber_tabular_adapter, editable=False, selected='selected_samples', multi_select=False, column_clicked='column_clicked', stretch_last_section=False), width=75)) jgrp = HGroup(UItem('j'), Label(PLUSMINUS_SIGMA), UItem('j_err'), icon_button_editor('estimate_j_button', 'cog'), show_border=True, label='J') ngrp = HGroup(UItem('note'), UItem('weight'), show_border=True, label='Note') # wgrp = HGroup(UItem('weight'), show_border=True, label='Weight') sgrp = HGroup(UItem('invert_flag'), Item('selection_freq', label='Freq'), show_border=True, label='Selection') v = View( VSplit( VGroup( tgrp, HGroup(sgrp, jgrp), # wgrp, ngrp, project_grp), sample_grp)) return v
def _get_root_item(self): item = Item('root_directory', label='Directory', editor=ComboboxEditor(name='repository_identifiers')) return item
def traits_view(self): ss = ''' QLineEdit {font-size: 14px} QGroupBox {background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #E0E0E0, stop: 1 #FFFFFF); border: 2px solid gray; border-radius: 5px; margin-top: 1ex; /* leave space at the top for the title */ font-size: 14px; font-weight: bold;} QGroupBox::title {subcontrol-origin: margin; subcontrol-position: top left; /* position at the top center */ padding: 2 3px;} QComboBox {font-size: 14px} QLabel {font-size: 14px} QToolBox::tab {font-size: 15px} QToolTip {font-size: 14px} ''' add_button = icon_button_editor( 'add_button', 'add', # enabled_when='ok_add', tooltip='Add run') save_button = icon_button_editor('save_button', 'disk', tooltip='Save queue to file') edit_button = icon_button_editor('edit_mode_button', 'table_edit', enabled_when='edit_enabled', tooltip='Toggle edit mode') clear_button = icon_button_editor( 'clear_button', 'table_row_delete', tooltip='Clear all runs added using "frequency"') email_grp = VGroup(HGroup( queue_factory_item('use_email', label='Use Email', tooltip='Send email notifications'), queue_factory_item('use_group_email', tooltip='Email a group of users', label='Email Group'), icon_button_editor(queue_factory_name('edit_emails'), 'cog', tooltip='Edit user group')), Item(queue_factory_name('email')), show_border=True, label='Email') user_grp = HGroup(UItem( queue_factory_name('username'), show_label=False, editor=ComboboxEditor(name=queue_factory_name('usernames'))), icon_button_editor(queue_factory_name('edit_user'), 'database_edit'), show_border=True, label='User') ms_ed_grp = VGroup(HGroup( queue_factory_item( 'mass_spectrometer', show_label=False, editor=EnumEditor( name=queue_factory_name('mass_spectrometers'))), queue_factory_item( 'extract_device', show_label=False, editor=EnumEditor(name=queue_factory_name('extract_devices'))), queue_factory_item( 'load_name', width=150, label='Load', editor=ComboboxEditor(name=queue_factory_name('load_names'))), icon_button_editor( 'generate_queue_button', 'brick-go', tooltip='Generate a experiment queue from the selected load', enabled_when='load_name'), icon_button_editor( 'edit_queue_config_button', 'cog', tooltip='Configure experiment queue generation')), HGroup( queue_factory_item( 'queue_conditionals_name', label='Queue Conditionals', editor=EnumEditor(name=queue_factory_name( 'available_conditionals')))), label='Spectrometer/Extract Device', show_border=True) delay_grp = VGroup(queue_factory_item('delay_before_analyses'), queue_factory_item('delay_between_analyses'), show_border=True, label='Delays') queue_grp = VGroup(user_grp, email_grp, ms_ed_grp, delay_grp, label='Queue') button_bar = HGroup( save_button, add_button, clear_button, edit_button, CustomLabel(run_factory_name('edit_mode_label'), color='red', width=40), spring) button_bar2 = HGroup( Item('auto_increment_id', label='Auto Increment L#'), Item('auto_increment_position', label='Position'), ) edit_grp = VFold( queue_grp, VGroup(self._get_info_group(), self._get_extract_group(), enabled_when=queue_factory_name('ok_make'), label='General'), self._get_script_group(), self._get_truncate_group()) v = View( VGroup( button_bar, button_bar2, UItem('pane.info_label', style='readonly'), edit_grp, # lower_button_bar, style_sheet=ss), kind='live', width=225) return v
def traits_view(self): group_table = UItem('analysis_groups', label='Groups', width=0.6, editor=TabularEditor( adapter=self.pane.analysis_group_tabular_adapter, editable=False, selected='selected_analysis_groups', multi_select=True, dclicked='dclicked_analysis_group', # column_clicked='column_clicked', # update='update_sample_table', # refresh='update_sample_table', stretch_last_section=False)) sample_tools = HGroup(UItem('sample_filter_parameter', width=-90, editor=EnumEditor(name='sample_filter_parameters')), UItem('sample_filter', editor=ComboboxEditor(name='sample_filter_values')), icon_button_editor('clear_sample_table', 'clear', tooltip='Clear Sample Table')) sample_table = VGroup(sample_tools, UItem('samples', editor=TabularEditor( adapter=self.pane.labnumber_tabular_adapter, editable=False, selected='selected_samples', multi_select=True, dclicked='dclicked_sample', column_clicked='column_clicked', # update='update_sample_table', # refresh='update_sample_table', stretch_last_section=False)), show_border=True, label='Samples') def make_name(name): return 'object.analysis_table.{}'.format(name) analysis_tools = HGroup(UItem(make_name('analysis_filter_parameter'), width=-90, editor=EnumEditor(name=make_name('analysis_filter_parameters'))), UItem(make_name('analysis_filter'), editor=ComboboxEditor(name=make_name('analysis_filter_values')))) analysis_table = VGroup(analysis_tools, UItem(make_name('analyses'), width=0.4, editor=myTabularEditor( adapter=self.model.analysis_table.tabular_adapter, operations=['move'], refresh=make_name('refresh_needed'), selected=make_name('selected'), dclicked=make_name('dclicked'), multi_select=self.pane.multi_select, drag_external=True, scroll_to_row=make_name('scroll_to_row'), stretch_last_section=False)), # HGroup(spring, Item(make_name('omit_invalid'))), defined_when=self.pane.analyses_defined, show_border=True, label='Analyses') v = View(HGroup(sample_table, analysis_table)) return v
def traits_view(self): add_button = icon_button_editor('add_button', 'add', # enabled_when='ok_add', tooltip='Add run') save_button = icon_button_editor('save_button', 'disk', tooltip='Save queue to file') edit_button = icon_button_editor('edit_mode_button', 'table_edit', enabled_when='edit_enabled', tooltip='Toggle edit mode') clear_button = icon_button_editor('clear_button', 'table_row_delete', tooltip='Clear all runs added using "frequency"') email_grp = VGroup(HGroup(queue_factory_item('use_email', label='Use Email', tooltip='Send email notifications'), queue_factory_item('use_group_email', tooltip='Email a group of users', label='Email Group'), icon_button_editor(queue_factory_name('edit_emails'), 'cog', tooltip='Edit user group')), Item(queue_factory_name('email')), show_border=True, label='Email') user_grp = HGroup(UItem(queue_factory_name('username'), show_label=False, editor=ComboboxEditor(name=queue_factory_name('usernames'))), icon_button_editor(queue_factory_name('edit_user'), 'database_edit'), show_border=True, label='User') lgrp = HGroup(queue_factory_item('load_name', width=150, label='Load', editor=ComboboxEditor(name=queue_factory_name('load_names'))), icon_button_editor('generate_queue_button', 'brick-go', tooltip='Generate a experiment queue from the selected load', enabled_when='load_name'), icon_button_editor('edit_queue_config_button', 'cog', tooltip='Configure experiment queue generation')) ms_ed_grp = VGroup(HGroup(queue_factory_item('mass_spectrometer', show_label=False, editor=EnumEditor(name=queue_factory_name('mass_spectrometers'))), queue_factory_item('extract_device', show_label=False, editor=EnumEditor(name=queue_factory_name('extract_devices')))), lgrp, HGroup(queue_factory_item('queue_conditionals_name', label='Queue Conditionals', editor=EnumEditor( name=queue_factory_name('available_conditionals')))), label='Spectrometer/Extract Device', show_border=True) delay_grp = VGroup(queue_factory_item('delay_before_analyses'), queue_factory_item('delay_between_analyses'), show_border=True, label='Delays') queue_grp = VGroup(user_grp, email_grp, ms_ed_grp, delay_grp, label='Queue') button_bar = HGroup(save_button, add_button, clear_button, edit_button, CustomLabel(run_factory_name('edit_mode_label'), color='red', width=40), spring) button_bar2 = HGroup(Item('auto_increment_id', label='Auto Increment L#'), Item('auto_increment_position', label='Position'), ) edit_grp = VFold(queue_grp, VGroup(self._get_info_group(), self._get_extract_group(), enabled_when=queue_factory_name('ok_make'), label='General'), self._get_script_group(), self._get_truncate_group()) v = View(VGroup(button_bar, button_bar2, UItem('pane.info_label', style='readonly'), edit_grp, style_sheet=load_stylesheet('experiment_factory')), kind='live', width=225) return v
def _get_info_group(self): grp = Group(HGroup(run_factory_item('selected_irradiation', show_label=False, editor=EnumEditor(name=run_factory_name('irradiations'))), run_factory_item('selected_level', show_label=False, editor=EnumEditor(name=run_factory_name('levels')))), HGroup(run_factory_item('special_labnumber', show_label=False, editor=EnumEditor(values=SPECIAL_NAMES)), run_factory_item('run_block', show_label=False, editor=EnumEditor(name=run_factory_name('run_blocks'))), icon_button_editor(run_factory_name('edit_run_blocks'), 'cog'), run_factory_item('frequency_model.frequency_int', width=50), icon_button_editor(run_factory_name('edit_frequency_button'), 'cog'), # run_factory_item('freq_before', label='Before'), # run_factory_item('freq_after', label='After'), spring), # HGroup(run_factory_item('labnumber', # tooltip='Enter a Labnumber', # width=100, ), # run_factory_item('_labnumber', show_label=False, # editor=CheckListEditor(name=run_factory_name('labnumbers')), # width=-20), # run_factory_item('aliquot', # width=50), # spring), HGroup(run_factory_item('labnumber', tooltip='Enter a Labnumber', width=100, enabled_when='object.run_factory.special_labnumber == "Special Labnumber"', editor=ComboboxEditor(name=run_factory_name('labnumbers'))), run_factory_item('aliquot', width=50), spring), HGroup(run_factory_item('repository_identifier', label='Repository ID', editor=EnumEditor(name=run_factory_name('repository_identifiers'))), icon_button_editor(run_factory_name('add_repository_identifier'), 'add', tooltip='Add a new repository'), icon_button_editor(run_factory_name('set_repository_identifier_button'), 'arrow_left', tooltip='Set select runs repository_identifier to current value')), HGroup(run_factory_item('weight', label='Weight (mg)', tooltip='(Optional) Enter the weight of the sample in mg. ' 'Will be saved in Database with analysis'), run_factory_item('comment', tooltip='(Optional) Enter a comment for this sample. ' 'Will be saved in Database with analysis'), run_factory_item('auto_fill_comment', show_label=False, tooltip='Auto fill "Comment" with IrradiationLevel:Hole, e.g A:9'), # run_factory_item('comment_template', # editor=EnumEditor(name=run_factory_name('comment_templates')), # show_label=False), icon_button_editor(run_factory_name('edit_comment_template'), 'cog', tooltip='Edit comment template')), HGroup(run_factory_item('flux'), Label(u'\u00b1'), run_factory_item('flux_error', show_label=False), icon_button_editor(run_factory_name('save_flux_button'), 'database_save', tooltip='Save flux to database'), enabled_when=run_factory_name('labnumber')), show_border=True, label='Sample Info') return grp
def traits_view(self): class VBorder(VGroup): show_border = True class UUItem(UCustom): height = -50 unknown_grp = VGroup( Item('unknown_title', label='Table Heading', springy=True), VBorder(VBorder(UItem( 'unknown_note_name', editor=EnumEditor(name='available_unknown_note_names')), UItem('unknown_notes', style='custom'), label='Main'), VBorder(UUItem('unknown_corrected_note'), label='Corrected'), VBorder(UUItem('unknown_intercept_note'), label='Intercept'), VBorder(UUItem('unknown_time_note'), label='Time'), VBorder(UUItem('unknown_x_note'), label='X'), VBorder(UUItem('unknown_px_note'), label='pX'), label='Notes'), label='Unknowns Cont.') def note(name): tag = '{}s'.format(name.capitalize()) return VGroup(Item('{}_title'.format(name), label='Table Heading'), VBorder(UItem('{}_notes'.format(name), style='custom'), label='Notes'), label=tag) air_grp = note('air') blank_grp = note('blank') monitor_grp = note('monitor') grp = BorderVGroup(Item('name', label='Filename'), Item('root_directory'), Item('root_name', editor=ComboboxEditor(name='root_names'), enabled_when='not root_directory'), Item('auto_view', label='Open in Excel'), label='Save') units_grp = BorderVGroup( HGroup(Item('power_units', label='Power Units'), Item('age_units', label='Age Units')), HGroup(Item('intensity_units', label='Intensity Units'), Item('sensitivity_units', label='Sensitivity Units')), label='Units') sigma_grp = BorderHGroup(Item('asummary_kca_nsigma', label='K/Ca'), Item('asummary_age_nsigma', label='Age'), Item('asummary_trapped_ratio_nsigma', label='Trapped'), label='N. Sigma') sort_grp = BorderVGroup(HGroup( Item('group_age_sorting', label='Group'), Item('subgroup_age_sorting', label='SubGroup')), Item('individual_age_sorting', label='Individual'), label='Sorting') appearence_grp = BorderVGroup( HGroup(Item('hide_gridlines', label='Hide Gridlines'), Item('repeat_header', label='Repeat Header')), units_grp, sigma_grp, sort_grp, HGroup( Item('highlight_non_plateau'), UItem('highlight_color', enabled_when='highlight_non_plateau')), label='Appearance') def sigfig(k): return '{}_sig_figs'.format(k) def isigfig(k, label, **kw): return Item(sigfig(k), width=-40, label=label, **kw) sig_figs_grp = BorderVGroup( Item('sig_figs', label='Default'), HGroup(isigfig('age', 'Age'), isigfig('summary_age', 'Summary Age')), HGroup(isigfig('kca', 'K/Ca'), isigfig('summary_kca', 'Summary K/Ca')), HGroup(isigfig('radiogenic_yield', '%40Ar*'), isigfig('cumulative_ar39', 'Cum. %39Ar')), HGroup(isigfig('signal', 'Signal'), isigfig('j', 'Flux')), HGroup(isigfig('ic', 'IC'), isigfig('disc', 'Disc.')), HGroup(isigfig('decay', 'Decay'), isigfig('correction', 'Correction Factors')), HGroup(isigfig('sens', 'Sensitivity'), isigfig('k2o', 'K2O')), Item('ensure_trailing_zeros', label='Ensure Trailing Zeros'), label='Significant Figures') def inc(k): return 'include_{}'.format(k) def iinc(k, label, **kw): return Item(inc(k), label=label, **kw) arar_col_grp = VGroup(iinc('F', '40Ar*/39ArK'), iinc('percent_ar39', 'Cumulative %39Ar'), iinc('radiogenic_yield', '%40Ar*'), iinc('sensitivity', 'Sensitivity'), iinc('k2o', 'K2O wt. %'), iinc('production_ratios', 'Production Ratios'), iinc('isochron_ratios', 'Isochron Ratios'), iinc('time_delta', 'Time since Irradiation'), iinc('kca', 'K/Ca'), iinc('kcl', 'K/Cl'), Item('invert_kca_kcl', label='Invert K/Ca,K/Cl'), VGroup(iinc('lambda_k', 'Lambda K'), iinc('monitor_age', 'Age'), iinc('monitor_name', 'Name'), iinc('monitor_material', 'Material'), label='Flux Monitor'), label='Ar/Ar') general_col_grp = VGroup(Item('status_enabled', label='Status'), Item('analysis_label_enabled', label='Analysis Label'), Item('tag_enabled', label='Tag'), iinc('rundate', 'Analysis RunDate'), iinc('blanks', 'Applied Blank'), iinc('intercepts', 'Intercepts'), iinc('icfactors', 'ICFactors'), iinc('discrimination', 'Discrimination'), label='General') summary_rows_grp = BorderVGroup(iinc('summary_kca', 'Integrated K/Ca'), iinc('plateau_age', 'Plateau Age'), iinc('integrated_age', 'Total Integrated Age'), iinc('isochron_age', 'Isochron Age'), iinc('trapped_ratio', 'Trapped (40/36)atm'), label='Summary Rows') columns_grp = BorderHGroup(general_col_grp, arar_col_grp, label='Columns') unk_columns_grp = VGroup(HGroup(columns_grp, sig_figs_grp), summary_rows_grp, label='Unknowns') g1 = VGroup(HGroup(grp, appearence_grp), label='Main') def isum(k): return inc('summary_{}'.format(k)) def iisum(k, label, **kw): return Item(isum(k), label=label, **kw) summary_grp = VGroup( iisum('sheet', 'Summary Sheet'), VGroup(iisum('sample', 'Sample'), iisum('identifier', 'Identifier'), iisum('unit', 'Unit'), iisum('location', 'Location'), iisum('material', 'Material'), iisum('irradiation', 'Irradiation'), iisum('age_type', 'Age Type'), iisum('n', 'N'), iisum('percent_ar39', '%39Ar'), iisum('mswd', 'MSWD'), HGroup(iisum('kca', 'KCA'), Item('summary_kca_nsigma', label=SIGMA)), HGroup(iisum('age', 'Age'), Item('summary_age_nsigma', label=SIGMA)), iisum('comments', 'Comments'), enabled_when=isum('sheet'), label='Columns', show_border=True), VGroup(UItem('summary_notes', style='custom'), show_border=True, label='Notes'), label='Summary') calc_grp = VGroup(J_ERROR_GROUP, label='Calc.') v = okcancel_view(Tabbed(g1, unk_columns_grp, unknown_grp, calc_grp, blank_grp, air_grp, monitor_grp, summary_grp), resizable=True, width=775, height=0.75, title='XLSX Analysis Table Options', scrollable=True) return v
def traits_view(self): # self.sample_tabular_adapter.columns = [('Sample', 'name'), # ('Material', 'material'), # ('Grainsize', 'grainsize'), # ('Project', 'project'), # ('PI', 'principal_investigator'), # ('Note', 'note')] # tgrp = HGroup(icon_button_editor('clear_button', 'table_lightning', # enabled_when='selected', # tooltip='Clear contents of selected positions')) pi_grp = VGroup(UItem('principal_investigator', editor=EnumEditor(name='principal_investigator_names')), show_border=True, label='Principal Investigator') project_grp = VGroup(UItem('projects', editor=FilterTabularEditor(editable=False, use_fuzzy=True, selected='selected_projects', adapter=ProjectAdapter(), multi_select=True), width=175), show_border=True, label='Projects') sample_grp = VGroup(HGroup(UItem('sample_filter_parameter', editor=EnumEditor(name='sample_filter_parameters')), UItem('sample_filter', editor=ComboboxEditor(name='sample_filter_values'), width=75), # icon_button_editor('edit_sample_button', 'database_edit', # tooltip='Edit sample in database'), # icon_button_editor('add_sample_button', 'database_add', # tooltip='Add sample to database') icon_button_editor('clear_sample_button', 'clear', tooltip='Clear selected sample')), UItem('samples', editor=TabularEditor(adapter=self.sample_tabular_adapter, editable=False, refresh='pane.refresh_needed', selected='selected_samples', dclicked='dclicked', multi_select=True, column_clicked='column_clicked', stretch_last_section=False), width=75)) jgrp = HGroup(UItem('j'), Label(PLUSMINUS_ONE_SIGMA), UItem('j_err'), icon_button_editor('estimate_j_button', 'cog', tooltip='Estimate J based on irradiation ' 'chronology and the J/hr rate set in ' 'Preferences/Entry'), show_border=True, label='J') ngrp = HGroup(UItem('note'), Item('weight'), show_border=True, label='Note') # sgrp = HGroup(UItem('invert_flag'), # Item('selection_freq', label='Freq'), # show_border=True, # label='Selection') sagrp = HGroup(UItem('sample_search_str', tooltip='Search for sample from entire Database'), show_border=True, label='Sample') g1 = VGroup(HGroup(pi_grp, sagrp), project_grp) g2 = VGroup(sample_grp, HGroup(UItem('packet', tooltip='Packet label. Must be in the form ' '<number> or <prefix><number>. e.g. 1 or p1 or packet01'), icon_button_editor('set_packet_event', 'arrow_right', enabled_when='packet', tooltip='Apply the Packet to current selection'), Item('use_increment_packet', label='Auto-increment'), show_border=True, label='Packet'), HGroup(jgrp, ngrp)) v = View(VSplit(g1, g2), handler=IrradiationEditorHandler()) return v