Source code for diffpy.pdfgui.gui.datasetpanel

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
##############################################################################
#
# PDFgui            by DANSE Diffraction group
#                   Simon J. L. Billinge
#                   (c) 2006 trustees of the Michigan State University.
#                   All rights reserved.
#
# File coded by:    Chris Farrow
#
# See AUTHORS.txt for a list of people who contributed.
# See LICENSE.txt for license information.
#
##############################################################################

# generated by wxGlade 0.9.3 on Fri Jul 19 16:01:11 2019

import wx

from diffpy.pdfgui.gui.datasetconfigurepanel import DataSetConfigurePanel
from diffpy.pdfgui.gui.datasetconstraintpanel import DataSetConstraintPanel
from diffpy.pdfgui.gui.datasetresultspanel import DataSetResultsPanel
from diffpy.pdfgui.gui.pdfpanel import PDFPanel


[docs] class DataSetPanel(wx.Panel, PDFPanel): def __init__(self, *args, **kwds): PDFPanel.__init__(self) # begin wxGlade: DataSetPanel.__init__ kwds["style"] = kwds.get("style", 0) | wx.TAB_TRAVERSAL wx.Panel.__init__(self, *args, **kwds) self.dataSetNotebook = wx.Notebook(self, wx.ID_ANY, style=0) self.configurePage = wx.Panel(self.dataSetNotebook, wx.ID_ANY) self.configurePanel = DataSetConfigurePanel(self.configurePage, wx.ID_ANY) self.constraintsPage = wx.Panel(self.dataSetNotebook, wx.ID_ANY) self.constraintPanel = DataSetConstraintPanel(self.constraintsPage, wx.ID_ANY) self.resultsPage = wx.Panel(self.dataSetNotebook, wx.ID_ANY) self.resultsPanel = DataSetResultsPanel(self.resultsPage, wx.ID_ANY) self.__set_properties() self.__do_layout() self.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED, self.onNotebookChanged, self.dataSetNotebook) # end wxGlade self.__customProperties() def __set_properties(self): # begin wxGlade: DataSetPanel.__set_properties pass # end wxGlade def __do_layout(self): # begin wxGlade: DataSetPanel.__do_layout sizer_3 = wx.BoxSizer(wx.VERTICAL) sizer_7 = wx.BoxSizer(wx.HORIZONTAL) sizer_6 = wx.BoxSizer(wx.HORIZONTAL) sizer_1 = wx.BoxSizer(wx.HORIZONTAL) sizer_1.Add(self.configurePanel, 1, wx.EXPAND, 0) self.configurePage.SetSizer(sizer_1) sizer_6.Add(self.constraintPanel, 1, wx.EXPAND, 0) self.constraintsPage.SetSizer(sizer_6) sizer_7.Add(self.resultsPanel, 1, wx.EXPAND, 0) self.resultsPage.SetSizer(sizer_7) self.dataSetNotebook.AddPage(self.configurePage, "Configure") self.dataSetNotebook.AddPage(self.constraintsPage, "Constraints") self.dataSetNotebook.AddPage(self.resultsPage, "Results") sizer_3.Add(self.dataSetNotebook, 1, wx.EXPAND, 0) self.SetSizer(sizer_3) sizer_3.Fit(self) self.Layout() # end wxGlade # USER CONFIGURATION CODE ################################################# def __customProperties(self): self.configuration = {} self.constraints = {} self.results = {} # Methods overloaded from PDFPanel
[docs] def refresh(self): self.configurePanel.treeCtrlMain = self.treeCtrlMain self.constraintPanel.treeCtrlMain = self.treeCtrlMain self.resultsPanel.treeCtrlMain = self.treeCtrlMain self.configurePanel.mainFrame = self.mainFrame self.constraintPanel.mainFrame = self.mainFrame self.resultsPanel.mainFrame = self.mainFrame self.configurePanel.configuration = self.configuration self.configurePanel.constraints = self.constraints self.constraintPanel.constraints = self.constraints self.resultsPanel.results = self.results # Refresh the visible panel self.refreshSelectedPage() return
[docs] def refreshSelectedPage(self): """Refresh the panel corresponding to the currently selected page.""" # self.configurePanel.refresh() # self.constraintPanel.refresh() # self.resultsPanel.refresh() id = self.dataSetNotebook.GetCurrentPage().GetId() if id == self.configurePage.GetId(): self.configurePanel.refresh() elif id == self.constraintsPage.GetId(): self.constraintPanel.refresh() elif id == self.resultsPage.GetId(): self.resultsPanel.refresh() return id
# EVENT CODE #############################################################
[docs] def onNotebookChanged(self, event): # wxGlade: DataSetPanel.<event_handler> """Refresh the selected panel.""" self.refreshSelectedPage() return
# Overloaded from Panel.
[docs] def Enable(self, enable=True): """Keep the notebook enabled, just not the panels.""" self.configurePanel.Enable(enable) self.constraintPanel.Enable(enable) self.resultsPanel.Enable(enable) return
# end of class DataSetPanel