diff --git a/aiidalab_widgets_base/structures.py b/aiidalab_widgets_base/structures.py index c3f4ecea8..d72b3b4f6 100644 --- a/aiidalab_widgets_base/structures.py +++ b/aiidalab_widgets_base/structures.py @@ -312,6 +312,7 @@ def _observe_input_structure(self, change): # If the `input_structure` trait is set to Atoms object, then the `structure` trait should be set to it as well. self.history = [] + self.structure = None if isinstance(change["new"], ase.Atoms): self.structure = change["new"] @@ -327,9 +328,6 @@ def _observe_input_structure(self, change): elif isinstance(change["new"], StructureData): self.structure = change["new"].get_ase() - else: - self.structure = None - @tl.observe("structure") def _structure_changed(self, change=None): """Perform some operations that depend on the value of `structure` trait. @@ -408,6 +406,7 @@ def _validate_and_fix_ase_cell(self, ase_structure, vacuum_ang=10.0): def _on_file_upload(self, change=None): """When file upload button is pressed.""" + self.structure = None for fname, item in change["new"].items(): self.structure = self._read_structure(fname, item["content"]) self.file_upload.value.clear() @@ -782,6 +781,7 @@ def _on_button_pressed(self, change=None): """Convert SMILES to ASE structure when button is pressed.""" self.output.value = "" + self.structure = None if not self.smiles.value: return spinner = f"Screening possible conformers {self.SPINNER}" # font-size:20em;