Source code for diffpy.pdfgui.gui.phaseresultspanel

#!/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, Dmitriy Bryndin
#
# 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:05:14 2019


import wx
import wx.grid

from diffpy.pdfgui.gui import phasepanelutils, tooltips
from diffpy.pdfgui.gui.pdfpanel import PDFPanel
from diffpy.pdfgui.gui.wxextensions.autowidthlabelsgrid import AutoWidthLabelsGrid


[docs] class PhaseResultsPanel(wx.Panel, PDFPanel): """GUI Panel, holds phase (structure) related constraints.""" def __init__(self, *args, **kwds): PDFPanel.__init__(self) # begin wxGlade: PhaseResultsPanel.__init__ kwds["style"] = kwds.get("style", 0) | wx.TAB_TRAVERSAL wx.Panel.__init__(self, *args, **kwds) sizerMain = wx.BoxSizer(wx.VERTICAL) sizerPanelName = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, ""), wx.HORIZONTAL) sizerMain.Add(sizerPanelName, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 5) self.labelPanelName = wx.StaticText(self, wx.ID_ANY, "Phase Results") self.labelPanelName.SetFont( wx.Font( 18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "", ) ) sizerPanelName.Add(self.labelPanelName, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 5) sizerLatticeParameters = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, ""), wx.HORIZONTAL) sizerMain.Add(sizerLatticeParameters, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 5) grid_sizer_3 = wx.FlexGridSizer(2, 6, 0, 0) sizerLatticeParameters.Add(grid_sizer_3, 1, wx.EXPAND, 0) self.labelA = wx.StaticText(self, wx.ID_ANY, "a") grid_sizer_3.Add(self.labelA, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlA = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_3.Add(self.textCtrlA, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelB = wx.StaticText(self, wx.ID_ANY, "b") grid_sizer_3.Add(self.labelB, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlB = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_3.Add(self.textCtrlB, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelC = wx.StaticText(self, wx.ID_ANY, "c") grid_sizer_3.Add(self.labelC, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlC = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_3.Add(self.textCtrlC, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelAlpha = wx.StaticText(self, wx.ID_ANY, "alpha") grid_sizer_3.Add(self.labelAlpha, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlAlpha = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_3.Add(self.textCtrlAlpha, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelBeta = wx.StaticText(self, wx.ID_ANY, "beta") grid_sizer_3.Add(self.labelBeta, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlBeta = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_3.Add(self.textCtrlBeta, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelGamma = wx.StaticText(self, wx.ID_ANY, "gamma") grid_sizer_3.Add(self.labelGamma, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlGamma = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_3.Add(self.textCtrlGamma, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) sizerAdditionalParameters = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, ""), wx.HORIZONTAL) sizerMain.Add(sizerAdditionalParameters, 0, wx.EXPAND | wx.LEFT | wx.RIGHT, 5) grid_sizer_4 = wx.FlexGridSizer(3, 6, 0, 0) sizerAdditionalParameters.Add(grid_sizer_4, 1, wx.EXPAND, 0) self.labelScaleFactor = wx.StaticText(self, wx.ID_ANY, "Scale Factor") grid_sizer_4.Add( self.labelScaleFactor, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5, ) self.textCtrlScaleFactor = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_4.Add(self.textCtrlScaleFactor, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) grid_sizer_4.Add((20, 10), 0, 0, 0) grid_sizer_4.Add((20, 10), 0, 0, 0) grid_sizer_4.Add((20, 10), 0, 0, 0) grid_sizer_4.Add((20, 10), 0, 0, 0) self.labelDelta1 = wx.StaticText(self, wx.ID_ANY, "delta1") grid_sizer_4.Add(self.labelDelta1, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlDelta1 = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_4.Add(self.textCtrlDelta1, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelDelta2 = wx.StaticText(self, wx.ID_ANY, "delta2") grid_sizer_4.Add(self.labelDelta2, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlDelta2 = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_4.Add(self.textCtrlDelta2, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelSpdiameter = wx.StaticText(self, wx.ID_ANY, "spdiameter") grid_sizer_4.Add( self.labelSpdiameter, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5, ) self.textCtrlSpdiameter = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_4.Add(self.textCtrlSpdiameter, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelSratio = wx.StaticText(self, wx.ID_ANY, "sratio") grid_sizer_4.Add(self.labelSratio, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlSratio = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_4.Add(self.textCtrlSratio, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelRcut = wx.StaticText(self, wx.ID_ANY, "rcut") grid_sizer_4.Add(self.labelRcut, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlRcut = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_4.Add(self.textCtrlRcut, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) self.labelStepcut = wx.StaticText(self, wx.ID_ANY, "stepcut") grid_sizer_4.Add(self.labelStepcut, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT | wx.ALL, 5) self.textCtrlStepcut = wx.TextCtrl(self, wx.ID_ANY, "", style=wx.TE_READONLY) grid_sizer_4.Add(self.textCtrlStepcut, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) sizerAtoms = wx.StaticBoxSizer(wx.StaticBox(self, wx.ID_ANY, ""), wx.VERTICAL) sizerMain.Add(sizerAtoms, 1, wx.EXPAND | wx.LEFT | wx.RIGHT, 5) sizer_1 = wx.BoxSizer(wx.HORIZONTAL) sizerAtoms.Add(sizer_1, 0, wx.EXPAND, 0) self.labelIncludedPairs = wx.StaticText(self, wx.ID_ANY, "Included Pairs") sizer_1.Add(self.labelIncludedPairs, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) self.textCtrlIncludedPairs = wx.TextCtrl(self, wx.ID_ANY, "all-all", style=wx.TE_READONLY) self.textCtrlIncludedPairs.SetMinSize((240, 25)) sizer_1.Add(self.textCtrlIncludedPairs, 0, wx.ALL, 5) self.gridAtoms = AutoWidthLabelsGrid(self, wx.ID_ANY, size=(1, 1)) self.gridAtoms.CreateGrid(0, 11) self.gridAtoms.EnableEditing(0) self.gridAtoms.EnableDragRowSize(0) self.gridAtoms.SetColLabelValue(0, "elem") self.gridAtoms.SetColLabelValue(1, "x") self.gridAtoms.SetColLabelValue(2, "y") self.gridAtoms.SetColLabelValue(3, "z") self.gridAtoms.SetColLabelValue(4, "u11") self.gridAtoms.SetColLabelValue(5, "u22") self.gridAtoms.SetColLabelValue(6, "u33") self.gridAtoms.SetColLabelValue(7, "u12") self.gridAtoms.SetColLabelValue(8, "u13") self.gridAtoms.SetColLabelValue(9, "u23") self.gridAtoms.SetColLabelValue(10, "occ") sizerAtoms.Add(self.gridAtoms, 1, wx.EXPAND, 0) self.SetSizer(sizerMain) sizerMain.Fit(self) self.Layout() # end wxGlade self.__customProperties() return # ######################################################################## # Misc Methods def __customProperties(self): """Custom properties for the panel.""" # The resulting structure self.structure = None self.constraints = {} self.results = None # Define tooltips. self.setToolTips(tooltips.phasepanel) return def _cache(self): """Cache the current structure and constraints for future comparison.""" pass
[docs] def refresh(self): """Refreshes wigets on the panel.""" # This makes the right thing happen in phasepanelutils. It saves a lot # of coding. pairs = self.structure.getSelectedPairs() self.textCtrlIncludedPairs.SetValue(pairs) self.structure = self.results phasepanelutils.refreshTextCtrls(self) phasepanelutils.refreshGrid(self) return
# end of class PhaseResultsPanel