Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
 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
Пример #5
0
    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
Пример #6
0
 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
Пример #7
0
    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
Пример #8
0
    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
Пример #10
0
 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
Пример #11
0
    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
Пример #12
0
 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
Пример #13
0
 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
Пример #14
0
 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
Пример #15
0
    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)
Пример #16
0
 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
Пример #17
0
 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
Пример #18
0
    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
Пример #19
0
    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)
Пример #20
0
    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
Пример #21
0
    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
Пример #22
0
    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
Пример #23
0
    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
Пример #24
0
 def _get_root_item(self):
     item = Item('root_directory', label='Directory',
                 editor=ComboboxEditor(name='repository_identifiers'))
     return item
Пример #25
0
    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
Пример #26
0
    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
Пример #27
0
    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
Пример #28
0
    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
Пример #29
0
    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
Пример #30
0
    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