From 5eedd14b3f3c676a7842a3b459ab964aa8f2d23b Mon Sep 17 00:00:00 2001 From: Ivan Usov Date: Wed, 7 Apr 2021 16:47:48 +0200 Subject: [PATCH] Handle DataFactory for 3 possible detectors --- pyzebra/anatric.py | 27 ++++++++++++++++++++++++++- pyzebra/app/panel_hdf_anatric.py | 28 +++++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/pyzebra/anatric.py b/pyzebra/anatric.py index 3dd4573..fbc58d3 100644 --- a/pyzebra/anatric.py +++ b/pyzebra/anatric.py @@ -236,12 +236,37 @@ class AnatricConfig: @property def dataFactory_dist1(self): - return self._tree.find("DataFactory").find("dist1").attrib["value"] + elem = self._tree.find("DataFactory").find("dist1") + if elem is not None: + return elem.attrib["value"] + return None @dataFactory_dist1.setter def dataFactory_dist1(self, value): self._tree.find("DataFactory").find("dist1").attrib["value"] = value + @property + def dataFactory_dist2(self): + elem = self._tree.find("DataFactory").find("dist2") + if elem is not None: + return elem.attrib["value"] + return None + + @dataFactory_dist2.setter + def dataFactory_dist2(self, value): + self._tree.find("DataFactory").find("dist2").attrib["value"] = value + + @property + def dataFactory_dist3(self): + elem = self._tree.find("DataFactory").find("dist3") + if elem is not None: + return elem.attrib["value"] + return None + + @dataFactory_dist3.setter + def dataFactory_dist3(self, value): + self._tree.find("DataFactory").find("dist3").attrib["value"] = value + @property def reflectionPrinter_format(self): return self._tree.find("ReflectionPrinter").attrib["format"] diff --git a/pyzebra/app/panel_hdf_anatric.py b/pyzebra/app/panel_hdf_anatric.py index 9604a94..db6340b 100644 --- a/pyzebra/app/panel_hdf_anatric.py +++ b/pyzebra/app/panel_hdf_anatric.py @@ -44,7 +44,12 @@ def create(): ub_textareainput.value = config.crystal_UB dataFactory_implementation_select.value = config.dataFactory_implementation - dataFactory_dist1_textinput.value = config.dataFactory_dist1 + if config.dataFactory_dist1 is not None: + dataFactory_dist1_textinput.value = config.dataFactory_dist1 + if config.dataFactory_dist2 is not None: + dataFactory_dist2_textinput.value = config.dataFactory_dist2 + if config.dataFactory_dist3 is not None: + dataFactory_dist3_textinput.value = config.dataFactory_dist3 reflectionPrinter_format_select.value = config.reflectionPrinter_format set_active_widgets(config.algorithm) @@ -200,9 +205,21 @@ def create(): def dataFactory_dist1_textinput_callback(_attr, _old, new): config.dataFactory_dist1 = new - dataFactory_dist1_textinput = TextInput(title="dist1:", width=145) + dataFactory_dist1_textinput = TextInput(title="dist1:", width=75) dataFactory_dist1_textinput.on_change("value", dataFactory_dist1_textinput_callback) + def dataFactory_dist2_textinput_callback(_attr, _old, new): + config.dataFactory_dist2 = new + + dataFactory_dist2_textinput = TextInput(title="dist2:", width=75) + dataFactory_dist2_textinput.on_change("value", dataFactory_dist2_textinput_callback) + + def dataFactory_dist3_textinput_callback(_attr, _old, new): + config.dataFactory_dist3 = new + + dataFactory_dist3_textinput = TextInput(title="dist3:", width=75) + dataFactory_dist3_textinput.on_change("value", dataFactory_dist3_textinput_callback) + # ---- BackgroundProcessor # ---- DetectorEfficency @@ -369,7 +386,12 @@ def create(): row(lambda_textinput, zeroOM_textinput), row(zeroSTT_textinput, zeroCHI_textinput), ub_textareainput, - row(dataFactory_implementation_select, dataFactory_dist1_textinput), + row( + dataFactory_implementation_select, + dataFactory_dist1_textinput, + dataFactory_dist2_textinput, + dataFactory_dist3_textinput, + ), reflectionPrinter_format_select, )