class _RolesView(HasTraits): """This represents the view used to select a role.""" #### '_UsersView' interface ############################################### # The list of roles to select from. model = List(_Role) # The selected user. selection = Instance(_Role) # The editor used by the view. table_editor = TableEditor( columns=[ObjectColumn(name='name'), ObjectColumn(name='description')], selected='selection', sort_model=True, configurable=False) # The default view. traits_view = View( Item( 'model', show_label=False, editor=table_editor), title="Select a Role", style='readonly', kind='modal', buttons=OKCancelButtons)
class ParticleList(HasTraits): particles = List particles_editor = TableEditor( columns=[ ObjectColumn(name='mass'), ObjectColumn(name='velocity'), ObjectColumn(name='momentum'), ExpressionColumn(label='Rel. momentum', expression="object.momentum / \ sqrt(1 - object.velocity**2 / c**2)", globals=dict(sqrt=sqrt, c=c)) ] ) view = View( Group( Item('particles', editor=particles_editor, show_label=False ), label='Particles', show_border=True, springy=True ), width=400, height=200, resizable=True, buttons=OKCancelButtons )
def build_method_step_table_editor(known_solution_names=None): """ Build a custom table editor to control a list of MethodSteps """ if known_solution_names is None: known_solution_names = [] editor = TableEditor( columns=[ ObjectColumn(name='name', label="Step Name"), ObjectColumn(name='step_type', label='Step Type'), ObjectColumn(name='_solutions0_name', label='Solution A', editor=EnumEditor(values=known_solution_names)), ObjectColumn(name='_solutions1_name', label='Solution B', editor=EnumEditor(values=known_solution_names)), UnitScalarColumn(name='flow_rate', label='Flow Rate', editor=UnitScalarEditor()), UnitScalarColumn(name='volume', label='Volume', editor=UnitScalarEditor()), ], deletable=True, auto_size=True, row_factory=MethodStep, row_factory_kw={"name": "New Step"}, show_toolbar=True, sortable=False, ) return editor
def traits_view(self): cols = [ CheckboxColumn(name='enabled'), ObjectColumn(name='name', editable=False), ObjectColumn(name='port') ] txgrp = VGroup(UItem('_protocols', editor=TableEditor(columns=cols)), enabled_when='use_twisted') ehs_grp = VGroup( Item('enable_hardware_server', label='Enabled'), VGroup( Item('use_twisted'), txgrp, # Item('enable_system_lock'), enabled_when='enable_hardware_server'), show_border=True, label='Pychron Proxy Server') sgrp = VGroup(Item('auto_find_handle'), Item('auto_write_handle', enabled_when='auto_find_handle'), show_border=True, label='Serial') v = View(VGroup(ehs_grp, sgrp)) return v
def build_component_descr_editor(expert_mode): """ Build a table editor to edit a list of ComponentDescription. """ columns = [ObjectColumn(name='name', style="readonly", label="Component name", tooltip="Name of component to build product with. " "Must exist in user data.")] if expert_mode: tooltip = ("Enter the expression to compute the component's " "concentration, as a function of the total product " "concentration ('product_concentration') and the component " "assay names.") columns += [ObjectColumn(name='concentration_exps', label="Component concentration expression", tooltip=tooltip)] editor = TableEditor( columns=columns, editable=True, sortable=False, deletable=True, ) return editor
def new_readout_view(rv): rv.start() from traitsui.api import UItem, VGroup, Item, HGroup, View, TableEditor, Tabbed from traitsui.table_column import ObjectColumn from pychron.processing.analyses.view.magnitude_editor import MagnitudeColumn cols = [ ObjectColumn(name='name', label='Name'), ObjectColumn(name='value', format='%0.3f', label='Value'), MagnitudeColumn(name='value', label='', width=200), ] dcols = [ ObjectColumn(name='name', label='Name', width=100), ObjectColumn(name='value', label='Value', width=100) ] a = HGroup(Item('refresh_period', label='Period (s)')) b = VGroup(UItem('readouts', editor=TableEditor(columns=cols, editable=False)), label='General') c = VGroup(UItem('deflections', editor=TableEditor(columns=dcols, sortable=False, editable=False)), label='Deflections') v = View(VGroup(a, Tabbed(b, c)), handler=ReadoutHandler(), title='Spectrometer Readout', width=500, resizable=True) return v
def traits_view(self): vv = View( VGroup(Item('name'), Item('project', editor=EnumEditor(name='_projects')), Item('material', editor=EnumEditor(name='_materials')))) cols = [ ObjectColumn(name='id', editable=False, text_font='arial 10'), ObjectColumn(name='name', editable=False, text_font='arial 10'), ObjectColumn(name='project', editable=False, text_font='arial 10'), ObjectColumn(name='material', editable=False, text_font='arial 10') ] a = UItem('sample') b = UItem('samples', editor=TableEditor(columns=cols, orientation='vertical', edit_view=vv)) v = View(VGroup(a, b), kind='livemodal', width=500, height=400, buttons=[ SaveAction(), ], title='Edit Sample', resizable=True) return v
def _get_fit_group(self): cols = [ ObjectColumn( name='name', editable=False, tooltip='If name is an isotope e.g Ar40 ' 'fit is for a signal, if name is a detector e.g H1 fit is for a baseline' ), ObjectColumn(name='fit', editor=EnumEditor(name='fit_types'), width=75), ObjectColumn(name='error_type', editor=EnumEditor(name='error_types'), label='Error', width=75), CheckboxColumn(name='filter_outliers', label='Out.'), ObjectColumn(name='filter_iterations', label='Iter.'), ObjectColumn(name='filter_std_devs', label='SD') ] editor = myTableEditor( columns=cols, selected='selected', selection_mode='rows', sortable=False, edit_on_first_click=False, clear_selection_on_dclicked=True, on_command_key=self._update_command_key, ) grp = UItem('fits', style='custom', editor=editor) return grp
def traits_view(self): cols = [ObjectColumn(name='name', editable=False), ObjectColumn(name='user', editable=False), CheckboxColumn(name='omit_ideo'), CheckboxColumn(name='omit_spec'), CheckboxColumn(name='omit_iso'), CheckboxColumn(name='omit_series')] editor = TableEditor(columns=cols, selected='selected', sortable=False, ) v = View(UItem('tags', editor=editor), HGroup( icon_button_editor('add_tag_button', 'add', tooltip='Add a tag'), icon_button_editor('delete_tag_button', 'delete', tooltip='Delete selected tags'), icon_button_editor('save_button', 'database_save', tooltip='Save changes from the "Tag" table to the database')), UItem('items', editor=TabularEditor(adapter=ItemAdapter(), multi_select=True, operations=['delete'])), HGroup(Item('use_filter', label='Remove "Invalid" analyses from figure')), resizable=True, width=500, height=400, buttons=['OK', 'Cancel'], kind='livemodal', title='Tags') return v
def _table_editor(self): cols = [ CheckboxColumn(name='use', label='', width=30), ObjectColumn(name='parameter', editor=EnumEditor(name='parameters'), label='Param.', width=125), ObjectColumn(name='comparator', editor=EnumEditor(name='comparisons'), label='', width=50), ObjectColumn(name='criterion', editor=EnumEditor(name='criteria'), label='Value', width=125), ObjectColumn(name='chain_rule', label='Chain Rule')] editor = TableEditor(columns=cols, deletable=True, show_toolbar=True, sortable=False, selected=selector_name('selected_query'), edit_view=self._query_edit_view(), row_factory=self.model.database_selector.query_factory) return editor
def traits_view(self): cols = [ ObjectColumn( name='text', label='Text', width=0.40, ), ObjectColumn(name='data_x', format='%0.1f', width=0.22, label='Time(s)', editable=False), ObjectColumn(name='data_y', format='%0.4f', width=0.22, label='Intensity', editable=False), CheckboxColumn(name='visible', width=0.12) ] grp = VGroup( HGroup(icon_button_editor('start_record_button', 'media-record', tooltip='Start recording', enabled_when='not _recording'), icon_button_editor('stop_record_button', 'media-playback-stop', tooltip='Stop recording', enabled_when='_recording'), icon_button_editor('add_marker_button', 'flag', enabled_when='_recording'), show_border=True, label='Record Scan'), HGroup( icon_button_editor('snapshot_button', 'camera'), show_border=True, label='Snapshot', ), VGroup(HGroup( icon_button_editor('clear_all_markers_button', 'delete', tooltip='Remove all markers'), icon_button_editor('object.graph.add_visual_marker_button', 'add'), Item('object.graph.marker_text', label='Text'), Item('object.graph.marker_tool.label_with_intensity', tooltip='Label marker with isotopic intensity', label='Intensity')), UItem('object.graph.markers', editor=TableEditor(columns=cols, selection_mode='rows', sortable=False, deletable=True)), show_border=True, label='Markers')) v = View(grp) return v
def traits_view(self): cols = [ObjectColumn(name='name', editable=False), ObjectColumn(name='connected', editable=False)] v = View(UItem('connectables', editor=TableEditor(editable=False, sortable=False, columns=cols))) return v
def traits_view(self): cols = [ ObjectColumn(name='isotope', editor=EnumEditor(name='isotopes')), ObjectColumn(name='dac') ] return View( UItem('object.scanner.calibration_peaks', editor=TableEditor(columns=cols, selected='object.scanner.selected')))
def traits_view(self): cols = [ObjectColumn(name='name'), ObjectColumn(name='email'), CheckboxColumn(name='enabled')] v = View(HGroup(UItem('filter_attribute'), UItem('filter_str')), UItem('users', editor=TableEditor(columns=cols))) return v
def traits_view(self): cols = [ ObjectColumn(name='name', label='', editable=False), ObjectColumn(name='counts'), ObjectColumn(name='settle', label='Settle (s)'), ObjectColumn(name='isotopes_label', editable=False, width=175, label='Isotopes') ] hgrp = VGroup( UItem('object.hop_sequence.hops', editor=myTableEditor(columns=cols, clear_selection_on_dclicked=True, sortable=False, selected='selected')), HGroup( icon_button_editor('add_hop_button', 'add', tooltip='Add peak hop'), icon_button_editor('remove_hop_button', 'delete', tooltip='Delete selected peak hop', enabled_when='selected'))) sgrp = UItem('selected', style='custom', editor=InstanceEditor()) grp = HSplit(hgrp, sgrp) save_action = Action(name='Save', image=icon('document-save'), enabled_when='object.saveable', action='save') save_as_acion = Action( name='Save As', image=icon('document-save-as'), action='save_as', enabled_when='object.saveasable', ) teditor = myTextEditor(bgcolor='#F7F6D0', fontsize=12, fontsize_name='fontsize', wrap=False, tab_width=15) v = View( VGroup( VGroup(grp, label='Editor'), VGroup(UItem('object.text', editor=teditor, style='custom'), label='Text')), # toolbar=ToolBar(), width=690, title=self.title, buttons=['OK', save_action, save_as_acion], resizable=True) return v
def traits_view(self): cols = [ColorColumn(cell_color_name='color', label='Color'), ObjectColumn(name='name', width=175), ObjectColumn(name='intensity', width=100), ObjectColumn(name='std', label=u'\u00b11\u03c3', width=100)] g = UItem('detectors', editor=TableEditor(columns=cols, sortable=False, editable=False)) v = View(g) return v
def traits_view(self): cols = [ CheckboxColumn(name='enabled'), ObjectColumn(name='name'), ObjectColumn(name='email', label='Address') ] v = okcancel_view(UItem('addresses', editor=TableEditor(columns=cols)), title='Configure Email') return v
def traits_view(self): cols = [ObjectColumn(name='name', label='Name', editable=False), CheckboxColumn(name='visible', label='Visible'), ObjectColumn(name='alpha', label='Opacity', width=200), ObjectColumn(name='dirname', label='Directory', editable=False) ] v = View(UItem('overlays', editor=TableEditor(columns=cols, sortable=False ))) return v
class TableTest ( HasStrictTraits ): #--------------------------------------------------------------------------- # Trait definitions: #--------------------------------------------------------------------------- #people = Instance( Person ) people = List( Person ) #--------------------------------------------------------------------------- # Traits view definitions: #--------------------------------------------------------------------------- _valid_states = List(["AL", "AR", "AZ", "AK"]) _state_editor = EnumEditor( name = "_valid_states", evaluate = evaluate_value, object = 'table_editor_object' ) table_editor = TableEditor( columns = [ ObjectColumn( name = 'name' ), ObjectColumn( name = 'age' ), ObjectColumn( name = 'phone' ), ObjectColumn( name = 'state', editor=_state_editor), ], editable = True, deletable = True, sortable = True, sort_model = True, show_lines = True, orientation = 'vertical', show_column_labels = True, edit_view = View( [ 'name', 'age', 'phone', 'state', '|[]' ], resizable = True ), filter = None, filters = filters, row_factory = Person ) traits_view = View( [ Item( 'people', id = 'people', editor = table_editor ), '|[]<>' ], title = 'Table Editor Test', id = 'traitsui.tests.table_editor_test', dock = 'horizontal', width = .4, height = .3, resizable = True, kind = 'live' )
def _blanks_group(self): cols = [ ObjectColumn(name='name', editable=False), ObjectColumn(name='nominal_value', width=75, label='Value'), ObjectColumn(name='std_dev', width=75, label='Error'), CheckboxColumn(name='use', label='Save') ] grp = VGroup(UItem('blanks', editor=TableEditor(columns=cols, sortable=False)), label='Blanks') return grp
def traits_view(self): columns = [ ObjectColumn(name='name', editable=False, label='Name', width=150), ObjectColumn(name='value', label='Value', width=100) ] editor = TableEditor(columns=columns, sortable=False) v = View(UItem('parameters', style='custom', editor=editor), resizable=True, width=300, title='Spectrometer Settings') return v
def traits_view(self): cols = [CheckboxColumn(name='enabled'), ObjectColumn(name='name'), ObjectColumn(name='old_deflection'), ObjectColumn(name='new_deflection')] v = View(UItem('results', editor=TableEditor(columns=cols, sortable=False)), title='Deflection Results', buttons=['OK', 'Cancel'], kind='livemodal') return v
def traits_view(self): cols = [ ObjectColumn(name='numerator', editor=EnumEditor(name='isotopes')), ObjectColumn(name='denominator', editor=EnumEditor(name='isotopes')) ] v = View( BorderVGroup(UItem('ratios', editor=TableEditor(sortable=False, columns=cols)), label='Cocktail Options')) return v
def traits_view(self): cols = [ ObjectColumn(name='name', editable=False, width=100), ObjectColumn(name='email', editable=False, width=200), CheckboxColumn(name='enabled') ] v = View(UItem('items', editor=TableEditor(columns=cols)), title='Select Users to Email', handler=EmailSelectionViewHandler(), buttons=['OK', 'Cancel'], resizable=True) return v
def _get_table_columns(self): if self.iscoolinghistory: return [ObjectColumn(name='runid', editable=False), CheckboxColumn(name='inner', label='Inner'), CheckboxColumn(name='outer', label='Outer'), ] else: cols = [ObjectColumn(name='runid', editable=False), CheckboxColumn(name='show_sample', label='Sample'), CheckboxColumn(name='show_model', label='Model')] if self.isspectrum: cols.append(CheckboxColumn(name='show_inverse_model', label='Inv. Model')) return cols
def traits_view(self): cols = [ CheckboxColumn(name='enabled'), ObjectColumn(name='name'), ObjectColumn(name='old_deflection'), ObjectColumn(name='new_deflection') ] v = okcancel_view(UItem('results', editor=TableEditor(columns=cols, sortable=False)), title='Deflection Results') return v
def traits_view(self): cols = [ ObjectColumn(name='binding', editor=KeyBindingEditor()), ObjectColumn(name='description', editable=False, width=400) ] v = View(UItem('bindings', editor=TableEditor(columns=cols)), width=500, height=600, title='Edit Key Bindings', kind='livemodal', buttons=['OK', 'Cancel'], resizable=True) return v
def traits_view(self): cols = [ ObjectColumn(name='name', editable=False), ObjectColumn(name='x'), ObjectColumn(name='y') ] v = View( UItem('items', editor=TableEditor(columns=cols, selected='selected', selection_mode='rows')), ) return v
def _get_columns(self): cols = [ ObjectColumn(name='name', editable=False), CheckboxColumn(name='show'), ObjectColumn(name='fit', editor=EnumEditor(name='fit_types'), width=150), ObjectColumn(name='error_type', editor=EnumEditor(name='error_types'), width=50), CheckboxColumn(name='use', label='Save DB') ] return cols
def traits_view(self): # self.model.load_mftable(True) cols = [ObjectColumn(name='isotope', editable=False)] for di in self.model._detectors: cols.append(ObjectColumn(name=di, format='%0.5f', label=di)) v = okcancel_view(UItem('items', editor=TableEditor(columns=cols, sortable=False)), title='Edit Magnet Field Table') return v