From de782defc47e9b362e24b5d1cdc34fd196c38005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Mal=C3=BD?= <michal.maly@ibt.cas.cz> Date: Tue, 11 Oct 2022 17:51:11 +0200 Subject: [PATCH] ReDNATCO plugin stage 26 --- src/apps/rednatco/api.ts | 10 ++++++++-- src/apps/rednatco/index.tsx | 2 ++ src/apps/rednatco/viewer.ts | 14 +++++++------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/apps/rednatco/api.ts b/src/apps/rednatco/api.ts index e4b91fb28..1010c7098 100644 --- a/src/apps/rednatco/api.ts +++ b/src/apps/rednatco/api.ts @@ -93,21 +93,27 @@ export namespace ReDNATCOMspApi { Events.StructureLoaded; export namespace Queries { - export type Type = 'current-filter'|'selected-step'; + export type Type = 'current-filter'|'current-model-number'|'selected-step'; export type CurrentFilter = { type: 'current-filter', filter: Filters.All } export function CurrentFilter(filter: Filters.All): CurrentFilter { return { type: 'current-filter', filter }; } + export type CurrentModelNumber = { type: 'current-model-number', num: number }; + export function CurrentModelNumber(num: number): CurrentModelNumber { + return { type: 'current-model-number', num }; + } + export type SelectedStep = { type: 'selected-step', name: string, rmsd?: number } export function SelectedStep(name: string, rmsd?: number): SelectedStep { return { type: 'selected-step', name, rmsd }; } } - export type Response = Queries.CurrentFilter|Queries.SelectedStep; + export type Response = Queries.CurrentFilter|Queries.CurrentModelNumber|Queries.SelectedStep; export type ResponseTypes = { 'current-filter': Queries.CurrentFilter, + 'current-model-number': Queries.CurrentModelNumber, 'selected-step': Queries.SelectedStep, } diff --git a/src/apps/rednatco/index.tsx b/src/apps/rednatco/index.tsx index 79264bae8..37342bbd6 100644 --- a/src/apps/rednatco/index.tsx +++ b/src/apps/rednatco/index.tsx @@ -151,6 +151,8 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> { apiQuery(type: Api.Queries.Type): Api.Response { if (type === 'current-filter') { return Api.Queries.CurrentFilter(this.currentFilter); + } else if (type === 'current-model-number') { + return Api.Queries.CurrentModelNumber(this.viewer!.currentModelNumber()); } else if (type === 'selected-step') { if (this.selectedStep) return Api.Queries.SelectedStep(this.selectedStep.name, this.selectedStep.rmsd); diff --git a/src/apps/rednatco/viewer.ts b/src/apps/rednatco/viewer.ts index 7f9cd8621..c54638ddf 100644 --- a/src/apps/rednatco/viewer.ts +++ b/src/apps/rednatco/viewer.ts @@ -263,13 +263,6 @@ export class ReDNATCOMspViewer { this.app = app; } - private currentModelNumber() { - const model = this.plugin.state.data.cells.get(IDs.ID('model', '', BaseRef))?.obj; - if (!model) - return -1; - return (model as StateObject<Model>).data.modelNum; - } - private focusOnLoci(loci: StructureElement.Loci) { if (!this.plugin.canvas3d) return; @@ -668,6 +661,13 @@ export class ReDNATCOMspViewer { await b.commit(); } + currentModelNumber() { + const model = this.plugin.state.data.cells.get(IDs.ID('model', '', BaseRef))?.obj; + if (!model) + return -1; + return (model as StateObject<Model>).data.modelNum; + } + focusOnSelectedStep() { // Focus camera on the selection const sel = this.plugin.state.data.cells.get(IDs.ID('superposition', '', NtCSupSel)); -- GitLab