From 3dda801cac360441ba8ad24bf6d40fae97765c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Mal=C3=BD?= <michal.maly@ibt.cas.cz> Date: Mon, 10 Oct 2022 15:09:03 +0200 Subject: [PATCH] ReDNATCO plugin stage 25 --- src/apps/rednatco/viewer.ts | 60 +++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 26 deletions(-) diff --git a/src/apps/rednatco/viewer.ts b/src/apps/rednatco/viewer.ts index a2fc2f7e8..7f9cd8621 100644 --- a/src/apps/rednatco/viewer.ts +++ b/src/apps/rednatco/viewer.ts @@ -967,32 +967,40 @@ export class ReDNATCOMspViewer { } async actionApplyFilter(filter: Filters.All) { - await this.plugin.state.data.build() - .to(IDs.ID('structure', 'nucleic', BaseRef)) - .update( - StateTransforms.Model.StructureSelectionFromExpression, - old => ({ - ...old, - expression: Filtering.toExpression(filter) - }) - ) - .to(IDs.ID('structure', 'protein', BaseRef)) - .update( - StateTransforms.Model.StructureSelectionFromExpression, - old => ({ - ...old, - expression: Filtering.toExpression(filter) - }) - ) - .to(IDs.ID('structure', 'protein', BaseRef)) - .update( - StateTransforms.Model.StructureSelectionFromExpression, - old => ({ - ...old, - expression: Filtering.toExpression(filter) - }) - ) - .commit(); + const b = this.plugin.state.data.build(); + if (this.has('structure', 'nucleic', BaseRef)) { + b.to(IDs.ID('structure', 'nucleic', BaseRef)) + .update( + StateTransforms.Model.StructureSelectionFromExpression, + old => ({ + ...old, + expression: Filtering.toExpression(filter) + }) + ); + } + + if (this.has('structure', 'protein', BaseRef)) { + b.to(IDs.ID('structure', 'protein', BaseRef)) + .update( + StateTransforms.Model.StructureSelectionFromExpression, + old => ({ + ...old, + expression: Filtering.toExpression(filter) + }) + ); + } + + if (this.has('structure', 'water', BaseRef)) { + b.to(IDs.ID('structure', 'water', BaseRef)) + .update( + StateTransforms.Model.StructureSelectionFromExpression, + old => ({ + ...old, + expression: Filtering.toExpression(filter) + }) + ); + } + await b.commit(); return true; } -- GitLab