コード例 #1
0
 def get_layout(self):
     """ Returns a LayoutItem that reflects the layout of the current
     splitter.
     """
     ORIENTATION_MAP = {QtCore.Qt.Horizontal: 'horizontal',
                        QtCore.Qt.Vertical: 'vertical'}
     # obtain layout based on children layouts
     if not self.is_leaf():
         layout = Splitter(self.leftchild.get_layout(),
                         self.rightchild.get_layout(),
                         orientation=ORIENTATION_MAP[self.orientation()])
     # obtain the Tabbed layout
     else:
         if self.is_empty():
             layout = Tabbed(PaneItem(id=-1,
                                     width=self.width(),
                                     height=self.height()),
                             active_tab=0)
         else:
             items = []
             for i in range(self.tabwidget().count()):
                 widget = self.tabwidget().widget(i)
                 # mark identification for empty_widget
                 editor = self.editor_area._get_editor(widget)
                 item_id = self.editor_area.editors.index(editor)
                 item_width = self.width()
                 item_height = self.height()
                 items.append(PaneItem(id=item_id,
                                     width=item_width,
                                     height=item_height))
             layout = Tabbed(*items, active_tab=self.tabwidget().currentIndex())
     return layout
コード例 #2
0
ファイル: task.py プロジェクト: ael-noblegas/pychron
 def _default_layout_default(self):
     return TaskLayout(left=Splitter(Splitter(PaneItem('pychron.pipeline.pane',
                                                       width=200),
                                              PaneItem('pychron.pipeline.analyses',
                                                       width=200)),
                                     PaneItem('pychron.pipeline.repository'),
                                     orientation='vertical'))
コード例 #3
0
 def _default_layout_default(self):
     return TaskLayout(
         left=Splitter(
             PaneItem('pychron.spectrometer.controls'),
             orientation='vertical'),
         right=VSplitter(PaneItem('pychron.spectrometer.intensities'),
                         PaneItem('pychron.spectrometer.readout')))
コード例 #4
0
    def _default_layout_default(self):
        return TaskLayout(left=VSplitter(
            PaneItem('pychron.mass_calibration.cal_points'),
            PaneItem('pychron.mass_calibration.controls'),
        )

        )
コード例 #5
0
    def _default_layout_default(self):
        left = VSplitter(PaneItem('pychron.sys_mon.analyses'),
                         PaneItem('pychron.processing.controls'))
        right = Tabbed(PaneItem('pychron.processing.figures.plotter_options'),
                       PaneItem('pychron.console'))

        return TaskLayout(left=left, right=right)
コード例 #6
0
 def _default_layout_default(self):
     return TaskLayout(
         left=PaneItem('{}.stage'.format(self.id)),
         top=Splitter(
             PaneItem('{}.control'.format(self.id), width=200),
             PaneItem('pychron.lasers.pulse', width=300),
             Tabbed(PaneItem('pychron.lasers.optics'),
                    PaneItem('{}.supplemental'.format(self.id)))))
コード例 #7
0
ファイル: reduction_task.py プロジェクト: waffle-iron/pychron
 def _default_layout_default(self):
     return TaskLayout(
         id='pychron.processing.reduction',
         left=HSplitter(
             browser_pane_item(),
             Tabbed(PaneItem('pychron.processing.unknowns'),
                    PaneItem('pychron.processing.references'),
                    PaneItem('pychron.processing.controls'))))
     # ============= EOF =============================================
コード例 #8
0
    def _default_layout_default(self):
        return TaskLayout(
            id='pychron.processing',
            left=HSplitter(
                PaneItem('pychron.browser'),
                Tabbed(PaneItem('pychron.processing.figures.saved_figures'),
                       PaneItem('pychron.processing.unknowns'),
                       PaneItem('pychron.processing.figures.plotter_options'),
                       PaneItem('pychron.plot_editor'))))


#============= EOF =============================================
#@classmethod
# def group_by(cls, editor, items, key):
#     ids = []
#     for it in items:
#         v = key(it)
#         if not v in ids:
#             ids.append(v)
#
#     sitems = sorted(items, key=key)
#     for k, analyses in groupby(sitems, key=key):
#         gid = ids.index(k)
#         idxs = [items.index(ai) for ai in analyses]
#         editor.set_group(idxs, gid, refresh=False)
# def _append_figure(self, klass):
#     """
#         if selected_samples append all analyses
#         else append selected analyses
#
#     """
#     return
#
#     if isinstance(self.active_editor, klass):
#         sa = self.analysis_table.selected
#         if sa:
#             ts = self.manager.make_analyses(sa)
#         else:
#             ts = [ai for si in self.selected_sample
#                   for ai in self._get_sample_analyses(si)]
#
#         ans = self.manager.make_analyses(ts)
#         if ans:
#             pans = self.active_editor.analyses
#             uuids = [p.uuid for p in pans]
#             fans = [ai for ai in ans if ai.uuid not in uuids]
#
#             pans.extend(fans)
#             self.active_editor.trait_set(unknowns=pans)
#
#         gid = 0
#         for _, gans in groupby(self.active_editor.unknowns, key=lambda x: x.sample):
#             for ai in gans:
#                 ai.group_id = gid
#             gid += 1
#
#         self.active_editor.rebuild(compress_groups=False)
コード例 #9
0
 def _default_layout_default(self):
     return TaskLayout(
         id='pychron.processing.ic_factor',
         left=HSplitter(
             PaneItem('pychron.browser'),
             VSplitter(
                 Tabbed(PaneItem('pychron.processing.unknowns'),
                        PaneItem('pychron.processing.references')),
                 PaneItem('pychron.processing.controls'),
             )))
コード例 #10
0
 def _default_layout_default(self):
     return TaskLayout(
         id='pychron.processing',
         left=HSplitter(
             VSplitter(
                 PaneItem('pychron.processing.irradiation'),
                 Tabbed(PaneItem('pychron.processing.unknowns'),
                        PaneItem('pychron.processing.references'),
                        PaneItem('pychron.processing.analyses')),
                 PaneItem('pychron.processing.controls'))))
コード例 #11
0
ファイル: video_task.py プロジェクト: sgallet/pychron
    def _default_layout_default(self):
        return TaskLayout(
            #                           top=PaneItem('pychron.extraction_line.gauges'),
            left=Splitter(PaneItem('pychron.video.source'),
                          PaneItem('pychron.video.controls'),
                          orientation='vertical'),

            #                          width=500,
            #                          height=500
        )
コード例 #12
0
ファイル: task.py プロジェクト: stephen-e-cox/pychron
 def _default_layout_default(self):
     return TaskLayout(
         left=Splitter(
             PaneItem('pychron.labnumber.irradiation'),
             Tabbed(
                 # PaneItem('pychron.labnumber.extractor'),
                 PaneItem('pychron.labnumber.editor')),
             orientation='vertical'),
         right=Splitter(PaneItem('pychron.entry.level'),
                        PaneItem('pychron.entry.chronology'),
                        PaneItem('pychron.entry.irradiation_canvas'),
                        orientation='vertical'))
コード例 #13
0
    def _default_layout_default(self):
        #c=PaneItem('pychron.smart_selection.configure')
        search = Tabbed(PaneItem('pychron.browser'))
        #PaneItem('pychron.search.query'))

        #a=Splitter(d,orientation='vertical')

        unk = PaneItem('pychron.processing.unknowns')

        left = Splitter(search, unk)

        return TaskLayout(id='pychron.processing.batch', left=left)
コード例 #14
0
 def _default_layout_default(self):
     return TaskLayout(
         id='pychron.processing.isotope_evolution',
         left=HSplitter(
             browser_pane_item(),
             # Tabbed(PaneItem('pychron.browser'),
             #        PaneItem('pychron.search.query')
             # ),
             VSplitter(
                 Tabbed(PaneItem('pychron.plot_editor'),
                        PaneItem('pychron.processing.unknowns')),
                 PaneItem('pychron.processing.controls'))))
コード例 #15
0
ファイル: blanks_task.py プロジェクト: sgallet/pychron
 def _default_layout_default(self):
     return TaskLayout(
         id='pychron.processing.blanks',
         left=HSplitter(
             Tabbed(
                 PaneItem('pychron.browser'),
                 PaneItem('pychron.search.query'),
             ),
             Tabbed(
                 PaneItem('pychron.processing.unknowns'),
                 PaneItem('pychron.processing.references'),
                 PaneItem('pychron.processing.controls')
             ),
         ),
     )
コード例 #16
0
ファイル: spectrometer_task.py プロジェクト: sgallet/pychron
    def _default_layout_default(self):
        return TaskLayout(
            left=Splitter(PaneItem('pychron.spectrometer.controls'),
                          Tabbed(PaneItem('pychron.spectrometer.intensities'),
                                 PaneItem('pychron.spectrometer.readout')),
                          orientation='vertical')

            #                          right=Splitter(
            #                                         PaneItem('pychron.experiment.stats'),
            #                                         PaneItem('pychron.experiment.console'),
            #                                         orientation='vertical'
            #                                         ),
            #                          bottom=PaneItem('pychron.experiment.console'),
            #                          top=PaneItem('pychron.experiment.controls')
        )
コード例 #17
0
ファイル: task_window_backend.py プロジェクト: pbrod/pyface
 def _get_pane(self, dock_widget):
     """ Returns a PaneItem for a control.
     """
     for dock_pane in self.state.dock_panes:
         if dock_pane.control == dock_widget:
             return PaneItem(id=dock_pane.id)
     return None
コード例 #18
0
 def _default_layout_default(self):
     return TaskLayout(
         left=Splitter(
             PaneItem('pychron.wait', height=100),
             Tabbed(PaneItem('pychron.experiment.factory'),
                    PaneItem('pychron.experiment.isotope_evolution')),
             orientation='vertical'),
         right=Splitter(Tabbed(
             PaneItem('pychron.experiment.stats'),
             PaneItem('pychron.console', height=425),
             PaneItem('pychron.experiment.explanation', height=425),
             PaneItem('pychron.experiment.connection_status')),
                        PaneItem('pychron.extraction_line.canvas_dock'),
                        orientation='vertical'),
         top=PaneItem('pychron.experiment.controls'))
コード例 #19
0
 def _default_layout_default(self):
     return TaskLayout(left=Splitter(Splitter(
         PaneItem('pychron.sys_mon.connection'),
         PaneItem('pychron.processing.controls'),
         orientation='vertical'),
                                     PaneItem('pychron.sys_mon.analyses'),
                                     orientation='horizontal'),
                       right=VSplitter(
                           Tabbed(PaneItem('pychron.console'),
                                  PaneItem('pychron.plot_editor')),
                           PaneItem('pychron.dashboard.client')))
コード例 #20
0
ファイル: respository_task.py プロジェクト: sgallet/pychron
    def _default_layout_default(self):
        return TaskLayout(
            id='pychron.repository',
            left=HSplitter(PaneItem('pychron.browser'), )
            #                           left=HSplitter(

            #                                     PaneItem('pychron.browser'),
            #                                     Splitter(
            #                                          Tabbed(
            #                                                 PaneItem('pychron.processing.unknowns'),
            # #                                                 PaneItem('pychron.processing.figures.plotter_options')
            #                                                 ),
            # #                                          Tabbed(
            # #                                                 PaneItem('pychron.processing.controls'),
            # #                                                 PaneItem('pychron.processing.editor'),
            # #                                                 ),
            #                                          orientation='vertical'
            #                                          )
            #                                     ),
        )
コード例 #21
0
ファイル: pyscript_task.py プロジェクト: ael-noblegas/pychron
    def _default_layout_default(self):
        # left = Splitter(Tabbed(PaneItem('pychron.pyscript.commands', height=300, width=125),
        #                        PaneItem('pychron.pyscript.script_browser')),
        #                 PaneItem('pychron.pyscript.commands_editor', height=100, width=125),
        #                 orientation='vertical')
        # bottom = PaneItem('pychron.pyscript.description')
        left = VSplitter(PaneItem('pychron.pyscript.commands'),
                         PaneItem('pychron.pyscript.commands_editor'))

        if self.use_git_repo:
            right = Tabbed(PaneItem('pychron.pyscript.repo'),
                           PaneItem('pychron.pyscript.context_editor'))
        else:
            right = VSplitter(
                PaneItem('pychron.pyscript.context_editor', width=200),
                PaneItem('pychron.pyscript.script_browser', width=200))

        return TaskLayout(id='pychron.pyscript', left=left, right=right)
コード例 #22
0
    def _default_layout_default(self):
        a = Tabbed(browser_pane_item(),
                   PaneItem('pychron.processing.figures.plotter_options'))
        b = PaneItem('pychron.processing.unknowns')
        left = HSplitter(a, b)

        # HSplitter(VSplitter(
        #                       Tabbed(browser_pane_item(),
        #                              PaneItem('pychron.processing.figures.plotter_options'),
        #                              PaneItem('pychron.plot_editor'))),
        #                              PaneItem('pychron.processing.unknowns'))

        return TaskLayout(id='pychron.processing',
                          left=left)

# return TaskLayout(
#     id='pychron.processing',
# left=HSplitter(
#     browser_pane_item(),
#     Tabbed(
#         # PaneItem('pychron.processing.figures.saved_figures'),
#         PaneItem('pychron.processing.unknowns'),
#         PaneItem('pychron.processing.figures.plotter_options'),
#         PaneItem('pychron.plot_editor'))))
# ============= EOF =============================================
#@classmethod
# def group_by(cls, editor, items, key):
#     ids = []
#     for it in items:
#         v = key(it)
#         if not v in ids:
#             ids.append(v)
#
#     sitems = sorted(items, key=key)
#     for k, analyses in groupby(sitems, key=key):
#         gid = ids.index(k)
#         idxs = [items.index(ai) for ai in analyses]
#         editor.set_group(idxs, gid, refresh=False)
# def _append_figure(self, klass):
#     """
#         if selected_samples append all analyses
#         else append selected analyses
#
#     """
#     return
#
#     if isinstance(self.active_editor, klass):
#         sa = self.analysis_table.selected
#         if sa:
#             ts = self.manager.make_analyses(sa)
#         else:
#             ts = [ai for si in self.selected_sample
#                   for ai in self._get_sample_analyses(si)]
#
#         ans = self.manager.make_analyses(ts)
#         if ans:
#             pans = self.active_editor.analyses
#             uuids = [p.uuid for p in pans]
#             fans = [ai for ai in ans if ai.uuid not in uuids]
#
#             pans.extend(fans)
#             self.active_editor.trait_set(unknowns=pans)
#
#         gid = 0
#         for _, gans in groupby(self.active_editor.unknowns, key=lambda x: x.sample):
#             for ai in gans:
#                 ai.group_id = gid
#             gid += 1
#
#         self.active_editor.rebuild(compress_groups=False)
# # new figure editor
# editor = klass(
# name=name,
# processor=self.manager)
#
# if ans is None:
#         ans = self.unknowns_pane.items
#
#     if ans:
#         editor.analyses = ans
#         editor.set_name()
#         editor.rebuild()
#         # if set_ans:
#         #     self.unknowns_pane.items = ans
#
#     self._open_editor(editor)
#
#     # add_associated = False
#     # if not add_associated:
#     #     self.debug('Not adding associated editors')
#     # else:
#     #     if tklass and add_table:
#     #         # open table
#     #         teditor = self._new_table(ans, name, tklass)
#     #         if teditor:
#     #             editor.associated_editors.append(weakref.ref(teditor)())
#     #
#     #     if add_iso:
#     #         # open associated isochron
#     #         ieditor = self._new_associated_isochron(ans, name)
#     #         if ieditor:
#     #             editor.associated_editors.append(weakref.ref(ieditor)())
#     #             ieditor.parent_editor = editor
#
#     # activate figure editor
#     # self.editor_area.activate_editor(editor)
#     return editor
コード例 #23
0
ファイル: load_task.py プロジェクト: sgallet/pychron
 def _default_layout_default(self):
     return TaskLayout(left=PaneItem('pychron.loading.controls'),
                       bottom=PaneItem('pychron.loading.positions'))
コード例 #24
0
 def _default_layout_default(self):
     return TaskLayout(top=PaneItem('pychron.extraction_line.gauges'),
                       left=PaneItem('pychron.extraction_line.explanation'),
                       right=PaneItem('pychron.console'))
コード例 #25
0
 def _default_layout_default(self):
     return TaskLayout(left=PaneItem('pychron.thermofurnace.controls'))
コード例 #26
0
 def _default_layout_default(self):
     l = TaskLayout(left=VSplitter(
         PaneItem('hardware.devices'),
         Tabbed(PaneItem('hardware.configuration'), PaneItem(
             'hardware.info'))))
     return l
コード例 #27
0
ファイル: task.py プロジェクト: waffle-iron/pychron
 def _default_layout_default(self):
     return TaskLayout(left=PaneItem('pychron.dashboard.devices'))
コード例 #28
0
 def split_editors(self, a, b, h1=-1, h2=-1, orientation='horizontal'):
     layout = Splitter(PaneItem(id=a, height=h1),
                       PaneItem(id=b, height=h2),
                       orientation=orientation)
     self.set_editor_layout(layout)
コード例 #29
0
 def _default_layout_default(self):
     return TaskLayout(left=PaneItem(id='pychron.image.browser'),
                       right=PaneItem(id='pychron.image.info'))
コード例 #30
0
 def _default_layout_default(self):
     return TaskLayout(left=PaneItem('pychron.repo.selection'))