Пример #1
0
    def traits_view(self):
        egrp = VGroup(HGroup(Item('ex'), Item('ey')),
                      BorderHGroup(icon_button_editor('increment_down_x', 'arrow_left'),
                                   icon_button_editor('increment_up_x', 'arrow_right'),
                                   UItem('x_magnitude'),
                                   label='X'),
                      BorderHGroup(icon_button_editor('increment_up_y', 'arrow_up'),
                                   icon_button_editor('increment_down_y', 'arrow_down'),
                                   UItem('y_magnitude'),
                                   label='Y'),
                      BorderHGroup(UItem('width'),
                                   icon_button_editor('width_increment_minus_button', 'delete'),
                                   icon_button_editor('width_increment_plus_button', 'add'), label='Width'),
                      BorderHGroup(UItem('height'),
                                   icon_button_editor('height_increment_minus_button', 'delete'),
                                   icon_button_editor('height_increment_plus_button', 'add'), label='Height'),


                      UItem('save_button'))

        g = VGroup(UItem('groups', style='custom',
                         editor=ListEditor(use_notebook=True,
                                           page_name='.name',
                                           selected='selected_group',
                                           editor=InstanceEditor())))

        v = View(VGroup(g, egrp))
        return v
Пример #2
0
    def traits_view(self):
        rgrp = BorderHGroup(
            UItem('selected_reactor_name',
                  editor=EnumEditor(name='reactor_names')),
            icon_button_editor(
                'add_reactor_button',
                'add',
                tooltip='Add Default Production for the selected '
                'Reactor to this Irradiation level'),
            icon_button_editor('update_reactor_default_button',
                               'arrow_up',
                               tooltip='Set current as the reactor default'),
            label='Available Default Productions')

        pgrp = BorderHGroup(
            UItem('selected_production_name',
                  editor=EnumEditor(name='production_names')),
            icon_button_editor('apply_selected_production',
                               'arrow_left',
                               tooltip='Apply selection'),
            icon_button_editor('add_production_button',
                               'database_add',
                               tooltip='Add a Production Ratio'),
            icon_button_editor('edit_production_button',
                               'database_edit',
                               enabled_when='selected_production',
                               tooltip='Edit Production Ratio'),
            label='Production'),
        pr_group = VGroup(rgrp,
                          pgrp,
                          UItem('selected_production', style='custom'),
                          label='Production Ratios')

        editor = TabularEditor(adapter=TrayAdapter(),
                               editable=False,
                               selected='selected_tray')
        tray_grp = VGroup(HGroup(
            icon_button_editor('add_tray_button',
                               'add',
                               tooltip='Add a tray from file')),
                          HSplit(
                              UItem('trays', editor=editor, width=0.25),
                              UItem('canvas',
                                    editor=ComponentEditor(),
                                    width=0.75)),
                          label='Tray')

        v = okcancel_view(VGroup(
            HGroup(Item('name'), Item('z')),
            VGroup(UItem('level_note', style='custom'),
                   label='Level Note',
                   show_border=True), Group(pr_group,
                                            tray_grp,
                                            layout='tabbed')),
                          width=550,
                          height=650,
                          title=self.title)
        return v
Пример #3
0
    def _get_edit_group(self):
        cnt_grp = self._get_cnt_grp()
        cmp_grp = self._get_cmp_grp()
        opt_grp = self._get_opt_grp()
        atype_grp = self._get_atype_grp()

        act_grp = BorderVGroup(
            HGroup(
                Item('action'),
                Item('nskip', enabled_when='action=="Skip N Runs"',
                     label='N')),
            HGroup(Item('use_truncation', label='Truncate'),
                   Item('use_termination', label='Terminate')),
            BorderHGroup(UItem(
                'extraction_str',
                tooltip='''modify extract value for associated runs. e.g.
1. 1,2,3 (increase step i by 1W, step i+1 by 2W, step i+2 by 3W)
2. 10%,50% (increase step i by 10%, step i+1 by 50%)'''),
                         visible_when='action=="Set Extract"',
                         label='Extraction'),
            label='Modification')
        edit_grp = VGroup(
            Item('attr',
                 label='Attribute',
                 editor=myEnumEditor(name='available_attrs')),
            VGroup(opt_grp,
                   cmp_grp,
                   cnt_grp,
                   atype_grp,
                   act_grp,
                   enabled_when='attr'))
        return edit_grp
Пример #4
0
 def traits_view(self):
     v = okcancel_view(
         BorderHGroup(UItem('delayed_start_enabled'),
                      UItem('start_date',
                            enabled_when='delayed_start_enabled'),
                      UItem('start_time',
                            enabled_when='delayed_start_enabled'),
                      label='Start'),
         BorderHGroup(UItem('scheduled_stop_enabled'),
                      UItem('stop_date',
                            enabled_when='scheduled_stop_enabled'),
                      UItem('stop_time',
                            enabled_when='scheduled_stop_enabled'),
                      label='Stop'),
         title='Configure Scheduler')
     return v
Пример #5
0
    def _get_edit_view(self):
        tooltip = """'Omit analyses based on the provided criteria. For example x>10 will omit any analysis
greater than 10. The value of x depends on the Auxiliary plot e.g. x is age for Analysis Number or K/Ca for KCa.
x is simply a placeholder and can be replaced by any letter or word except for a few exceptions
(i.e and, or, is, on, if, not...). To filter based on error or %error use "error" and "percent_error". Multiple predicates may be combined
with "and", "or". Valid comparators are "<,<=,>,>=,==,!=". "==" means "equals" and "!=" means "not equal".
Additional examples
1. x<10
2. age<10 or age>100
3. age<10 or error>1
4. x<=10 or percent_error>50
5. xyz<=10 and error>=0.1"""
        sigma_tooltip = """Omit analyses greater the N sigma from the arithmetic mean"""

        fgrp = BorderVGroup(HGroup(
            Item('filter_str', tooltip=tooltip, label='Filter'),
            UItem('filter_str_tag')),
                            HGroup(
                                Item('sigma_filter_n',
                                     label='Sigma Filter N',
                                     tooltip=sigma_tooltip),
                                UItem('sigma_filter_tag')),
                            label='Filtering')

        v = View(
            VGroup(HGroup(
                Item('name', editor=EnumEditor(name='names')),
                Item('scale', editor=EnumEditor(values=['linear', 'log']))),
                   Item('height'),
                   self._get_yticks_grp(),
                   BorderHGroup(UItem('marker',
                                      editor=EnumEditor(values=marker_names)),
                                Item('marker_size', label='Size'),
                                label='Marker'),
                   BorderHGroup(Item('ymin', label='Min'),
                                Item('ymax', label='Max'),
                                label='Y Limits'),
                   fgrp,
                   show_border=True))
        return v
Пример #6
0
 def _get_truncate_group(self):
     grp = VGroup(
         HGroup(
             run_factory_item('use_simple_truncation', label='Use Simple'),
             icon_button_editor(
                 run_factory_name('clear_conditionals'),
                 'delete',
                 tooltip='Clear Conditionals from selected runs')),
         BorderHGroup(run_factory_uitem(
             'trunc_attr',
             editor=myEnumEditor(name=run_factory_name('trunc_attrs'))),
                      run_factory_uitem('trunc_comp'),
                      run_factory_uitem('trunc_crit'),
                      spacer(-10),
                      run_factory_item('trunc_start', label='Start Count'),
                      label='Simple'),
         BorderHGroup(
             run_factory_item(
                 'conditionals_path',
                 editor=myEnumEditor(name=run_factory_name('conditionals')),
                 label='Path'),
             icon_button_editor(
                 run_factory_name('edit_conditionals_button'),
                 'table_edit',
                 enabled_when=run_factory_name('conditionals_path'),
                 tooltip='Edit the selected conditionals file'),
             icon_button_editor(
                 run_factory_name('new_conditionals_button'),
                 'table_add',
                 tooltip='Add a new conditionals file. Duplicated currently '
                 'selected file if applicable'),
             icon_button_editor(
                 run_factory_name('apply_conditionals_button'),
                 'arrow_left',
                 tooltip='Apply conditionals file to selected analyses'),
             label='File'),
         enabled_when=queue_factory_name('ok_make'),
         label='Run Conditionals')
     return grp
Пример #7
0
    def _get_global_group(self):
        g = BorderHGroup(
            Item('controller.save_enabled', label='Enabled'),
            Item('controller.fit'), UItem('controller.error_type', width=-75),
            Item('controller.filter_outliers', label='Filter Outliers'),
            Item('show_sniff'))

        gg = BorderVGroup(
            Item('controller.goodness_threshold',
                 label='Intercept Goodness',
                 tooltip='If % error is greater than "Goodness Threshold" '
                 'mark regression as "Bad"'),
            HGroup(
                Item(
                    'controller.slope_goodness',
                    label='Slope Goodness',
                    tooltip='If slope of regression is positive and the isotope '
                    'intensity is greater than "Slope Goodness Intensity" '
                    'then mark regression as "Bad"'),
                Item('controller.slope_goodness_intensity',
                     label='Intensity')),
            Item(
                'controller.outlier_goodness',
                label='Outlier Goodness',
                tooltip=
                'If more than "Outlier Goodness" points are identified as outliers'
                'then mark regression as "Bad"'),
            HGroup(Item('controller.curvature_goodness'),
                   Item('controller.curvature_goodness_at')),
            HGroup(
                Item(
                    'controller.rsquared_goodness',
                    tooltip=
                    'If R-squared is less than threshold mark regression as "Bad"'
                )),
            HGroup(
                Item(
                    'controller.signal_to_blank_goodness',
                    tooltip=
                    'If Blank/Signal*100 greater than threshold mark regression as "Bad"'
                )))

        agrp = self._get_analysis_group()
        return VGroup(
            agrp,
            Item('controller.global_goodness_visible',
                 label='Global Edit Visible'),
            BorderVGroup(g,
                         gg,
                         label='Global',
                         visible_when='controller.global_goodness_visible'))
Пример #8
0
    def traits_view(self):
        mi = BorderHGroup(UItem('mean_indicator_fontname'),
                          UItem('mean_indicator_fontsize'),
                          label='Mean Indicator')

        ee = BorderHGroup(UItem('error_info_fontname'),
                          UItem('error_info_fontsize'),
                          label='Error Info')

        ll = BorderHGroup(UItem('label_fontname'),
                          UItem('label_fontsize'),
                          label='Labels')

        fgrp = BorderVGroup(BorderHGroup(UItem('fontname'),
                                         label='Change All'),
                            HGroup(mi, ee),
                            ll,
                            HGroup(self._get_xfont_group(),
                                   self._get_yfont_group()),
                            label='Fonts')

        g = VGroup(self._get_nominal_group(), self._get_layout_group(),
                   self._get_padding_group(), fgrp)
        return self._make_view(g)
Пример #9
0
    def traits_view(self):

        load_grp = BorderHGroup(
            UItem('load_name', editor=EnumEditor(name='display_loads')),
            Item('limit_to_analysis_loads',
                 tooltip='Limit Loads based on the selected analyses',
                 label='Limit Loads by Analyses'),
            label='Load')
        inst_grp = BorderVGroup(
            HGroup(
                UItem('use_extract_device'),
                Item('extract_device',
                     enabled_when='enable_extract_device',
                     editor=EnumEditor(name='extract_devices'),
                     label='Extract Device')),
            HGroup(
                UItem('use_mass_spectrometer'),
                Item('mass_spectrometer',
                     label='Mass Spectrometer',
                     enabled_when='enable_mass_spectrometer',
                     editor=EnumEditor(name='mass_spectrometers'))),
            label='Instruments')

        filter_grp = BorderVGroup(
            Item('threshold',
                 tooltip=
                 'Maximum difference between references and unknowns in hours',
                 enabled_when='threshold_enabled',
                 label='Threshold (Hrs)'),
            Item('use_graphical_filter', label='Graphical Selection'),
            VGroup(UItem('analysis_types',
                         style='custom',
                         editor=CheckListEditor(
                             name='available_analysis_types', cols=2)),
                   show_border=True,
                   label='Analysis Types'),
            label='Filtering')

        v = self._view_factory(VGroup(load_grp, filter_grp, inst_grp))

        return v
Пример #10
0
    def traits_view(self):
        plat_grp = BorderHGroup(
            VGroup(
                Item('omit_non_plateau', label='Omit Non Plateau Steps'),
                Item('exclude_non_plateau',
                     label='Exclude Non Plateau Steps')),
            HGroup(Item('plateau_method',
                        tooltip='Fleck 1977={}\n'
                        'Mahon 1996={}'.format(FLECK_PLATEAU_DEFINITION,
                                               MAHON_PLATEAU_DEFINITION),
                        label='Method'),
                   icon_button_editor('edit_plateau_criteria',
                                      'cog',
                                      tooltip='Edit Plateau Criteria'),
                   visible_when='omit_non_plateau'),
            label='Plateau')

        g = Group(Item('error_calc_method',
                       width=-150,
                       label='Error Calculation Method'),
                  Item('regressor_kind', label='Method'),
                  plat_grp,
                  show_border=True,
                  label='Calculations')

        info_grp = HGroup(
            Item('show_info', label='Info'),
            BorderHGroup(UItem('info_fontname'), UItem('info_fontsize')))

        results_grp = HGroup(
            Item('show_results_info', label='Results'),
            VGroup(
                BorderVGroup(
                    HGroup(
                        Item('nsigma', label='NSigma'),
                        Item('results_info_spacing',
                             editor=RangeEditor(mode='spinner',
                                                low=2,
                                                high=20,
                                                is_float=False),
                             label='Spacing')),
                    HGroup(UItem('results_fontname'),
                           UItem('results_fontsize'))),
                BorderHGroup(Item('age_sig_figs', label='Age'),
                             Item('yintercept_sig_figs', label='Y-Int.'),
                             label='SigFigs'),
                BorderVGroup(Item('include_4036_mse', label='Ar40/Ar36'),
                             Item('include_age_mse', label='Age'),
                             Item('include_percent_error', label='%Error'),
                             label='Include')))

        ellipse_grp = BorderHGroup(Item('fill_ellipses', label='fill'),
                                   Item('ellipse_kind', label='Kind'),
                                   label='Error Ellipse')
        label_grp = BorderVGroup(Item('show_labels'),
                                 HGroup(Item('label_box'),
                                        UItem('label_fontname'),
                                        UItem('label_fontsize'),
                                        enabled_when='show_labels'),
                                 label='Labels')

        marker_grp = BorderHGroup(Item('marker_size', label='Size'),
                                  Item('marker', label='Marker'),
                                  label='Marker')
        g2 = Group(
            self._get_title_group(),
            BorderVGroup(info_grp, results_grp, label='Info'),
            Item('include_error_envelope'),
            marker_grp,
            ellipse_grp,
            label_grp,
            BorderVGroup(Item('show_nominal_intercept'),
                         HGroup(
                             Item('nominal_intercept_label',
                                  label='Label',
                                  enabled_when='show_nominal_intercept'),
                             Item('nominal_intercept_value',
                                  label='Value',
                                  enabled_when='show_nominal_intercept')),
                         label='Nominal Intercept'),
            BorderVGroup(Item('display_inset'),
                         Item('inset_location'),
                         HGroup(Item('inset_marker_size',
                                     label='Marker Size')),
                         HGroup(Item('inset_width', label='Width'),
                                Item('inset_height', label='Height')),
                         label='Inset'),
            show_border=True,
            label='Display')
        return self._make_view(VGroup(g, g2))
Пример #11
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
Пример #12
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 = BorderVGroup(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')),
                                 queue_factory_uitem('email', springy=True),
                                 label='Email')

        user_grp = BorderHGroup(
            UItem(queue_factory_name('username'),
                  editor=ComboboxEditor(name=queue_factory_name('usernames'))),
            icon_button_editor(queue_factory_name('edit_user'),
                               'database_edit'),
            label='User')

        load_select = BorderHGroup(
            queue_factory_uitem('load_name', width=150),
            queue_factory_item(
                'tray', editor=EnumEditor(name=queue_factory_name('trays'))),
            icon_button_editor(
                queue_factory_name('select_existing_load_name_button'),
                'database_go',
                tooltip='Get Load from Database'),
            label='Load')

        generate_queue = BorderHGroup(
            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'),
            label='Generate Queue')

        lgrp = VGroup(load_select, generate_queue)

        ms_ed_grp = BorderVGroup(HGroup(
            queue_factory_uitem(
                'mass_spectrometer',
                editor=myEnumEditor(
                    name=queue_factory_name('mass_spectrometers'))),
            queue_factory_uitem(
                'extract_device',
                editor=myEnumEditor(
                    name=queue_factory_name('extract_devices')))),
                                 lgrp,
                                 queue_factory_item('default_lighting'),
                                 label='Spectrometer/Extract Device')

        name = queue_factory_name('available_conditionals')
        queue_cond_grp = BorderHGroup(queue_factory_uitem(
            'queue_conditionals_name',
            label='Queue Conditionals',
            editor=myEnumEditor(name=name)),
                                      label='Queue Conditionals')

        delay_grp = BorderVGroup(
            queue_factory_item('delay_before_analyses',
                               label='Before Analyses (s)'),
            queue_factory_item('delay_between_analyses',
                               label='Between Analyses (s)'),
            queue_factory_item('delay_after_blank', label='After Blank (s)'),
            queue_factory_item('delay_after_air', label='After Air (s)'),
            label='Delays')

        note_grp = BorderVGroup(queue_factory_uitem('note',
                                                    style='custom',
                                                    height=150),
                                label='Note')
        queue_grp = VGroup(user_grp,
                           email_grp,
                           ms_ed_grp,
                           queue_cond_grp,
                           delay_grp,
                           note_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,
                        enabled_when='edit_enabled'),
                 kind='live',
                 width=225)
        return v