Skip to content
Snippets Groups Projects
Commit d1758703 authored by Michal Malý's avatar Michal Malý
Browse files

ReDNATCO plugin stage 15

parent 0e145caa
No related branches found
No related tags found
No related merge requests found
...@@ -24,9 +24,9 @@ export class ReDNATCOMspApiImpl implements ReDNATCOMspApi.Object { ...@@ -24,9 +24,9 @@ export class ReDNATCOMspApiImpl implements ReDNATCOMspApi.Object {
this.onEvent(evt); this.onEvent(evt);
} }
init(elemId: string, onEvent?: (evt: ReDNATCOMspApi.Event) => void, onInited?: () => void) { init(elemId: string, onEvent?: (evt: ReDNATCOMspApi.Event) => void) {
this.onEvent = onEvent; this.onEvent = onEvent;
ReDNATCOMsp.init(elemId, onInited); ReDNATCOMsp.init(elemId);
return this; return this;
} }
......
...@@ -39,7 +39,12 @@ export namespace ReDNATCOMspApi { ...@@ -39,7 +39,12 @@ export namespace ReDNATCOMspApi {
Commands.SwitchModel; Commands.SwitchModel;
export namespace Events { export namespace Events {
export type Type = 'step-deselected'|'step-requested'|'step-selected'; export type Type = 'ready'|'step-deselected'|'step-requested'|'step-selected'|'structure-loaded';
export type Ready = { type: 'ready' }
export function Ready(): Ready {
return { type: 'ready' };
}
export type StepDeselected = { type: 'step-deselected' } export type StepDeselected = { type: 'step-deselected' }
export function StepDeselected(): StepDeselected { export function StepDeselected(): StepDeselected {
...@@ -59,11 +64,17 @@ export namespace ReDNATCOMspApi { ...@@ -59,11 +64,17 @@ export namespace ReDNATCOMspApi {
return { type: 'step-selected', success: false, name: '' }; return { type: 'step-selected', success: false, name: '' };
} }
export type StructureLoaded = { type: 'structure-loaded' }
export function StructureLoaded(): StructureLoaded {
return { type: 'structure-loaded' };
}
} }
export type Event = export type Event =
Events.Ready |
Events.StepDeselected | Events.StepDeselected |
Events.StepRequested | Events.StepRequested |
Events.StepSelected; Events.StepSelected |
Events.StructureLoaded;
export namespace Queries { export namespace Queries {
export type Type = 'selected-step'; export type Type = 'selected-step';
...@@ -78,7 +89,7 @@ export namespace ReDNATCOMspApi { ...@@ -78,7 +89,7 @@ export namespace ReDNATCOMspApi {
export interface Object { export interface Object {
command: (cmd: Command) => void; command: (cmd: Command) => void;
event: (evt: Event) => void; event: (evt: Event) => void;
init: (elemId: string, onEvent?: (evt: Event) => void, onInited?: () => void) => void; init: (elemId: string, onEvent?: (evt: Event) => void) => void;
isReady: () => boolean; isReady: () => boolean;
loadStructure: (data: string, type: 'cif'|'pdb') => void; loadStructure: (data: string, type: 'cif'|'pdb') => void;
query: (type: Queries.Type) => Response; query: (type: Queries.Type) => Response;
......
...@@ -171,6 +171,7 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> { ...@@ -171,6 +171,7 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> {
this.viewer.loadStructure(data, type, this.state.display).then(() => { this.viewer.loadStructure(data, type, this.state.display).then(() => {
this.presentConformers = this.viewer!.getPresentConformers(); this.presentConformers = this.viewer!.getPresentConformers();
this.forceUpdate(); this.forceUpdate();
ReDNATCOMspApi.event(Api.Events.StructureLoaded());
}); });
} }
...@@ -190,9 +191,7 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> { ...@@ -190,9 +191,7 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> {
this.viewer = viewer; this.viewer = viewer;
this.viewer.loadReferenceConformers().then(() => { this.viewer.loadReferenceConformers().then(() => {
ReDNATCOMspApi._bind(this); ReDNATCOMspApi._bind(this);
ReDNATCOMspApi.event(Api.Events.Ready());
if (this.props.onInited)
this.props.onInited();
}); });
}); });
} }
...@@ -413,15 +412,14 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> { ...@@ -413,15 +412,14 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> {
export namespace ReDNATCOMsp { export namespace ReDNATCOMsp {
export interface Props { export interface Props {
elemId: string; elemId: string;
onInited?: () => void;
} }
export function init(elemId: string, onInited?: () => void) { export function init(elemId: string) {
const elem = document.getElementById(elemId); const elem = document.getElementById(elemId);
if (!elem) if (!elem)
throw new Error(`Element ${elemId} does not exist`); throw new Error(`Element ${elemId} does not exist`);
ReactDOM.render(<ReDNATCOMsp elemId={elemId} onInited={onInited} />, elem); ReactDOM.render(<ReDNATCOMsp elemId={elemId} />, elem);
} }
} }
......
...@@ -853,7 +853,7 @@ export class ReDNATCOMspViewer { ...@@ -853,7 +853,7 @@ export class ReDNATCOMspViewer {
this.resetCameraRadius(); this.resetCameraRadius();
} }
async actionSelectStep(stepName: string, stepNamePrev: string|undefined, stepNameNext: string|undefined, referenceNtc: string, references: ('sel'|'prev'|'next')[], display: Partial<Display>): Promise<{ rmsd: number }|undefined> { async actionSelectStep(stepName: string, stepNamePrev: string|undefined, stepNameNext: string|undefined, referenceNtc: string, references: ('sel'|'prev'|'next')[], display: Display): Promise<{ rmsd: number }|undefined> {
const stepCurrent = this.stepFromName(stepName); const stepCurrent = this.stepFromName(stepName);
if (!stepCurrent) if (!stepCurrent)
return void 0; return void 0;
...@@ -923,7 +923,7 @@ export class ReDNATCOMspViewer { ...@@ -923,7 +923,7 @@ export class ReDNATCOMspViewer {
b.to(IDs.ID('structure', 'remainder-slice', BaseRef)) b.to(IDs.ID('structure', 'remainder-slice', BaseRef))
.apply( .apply(
StateTransforms.Representation.StructureRepresentation3D, StateTransforms.Representation.StructureRepresentation3D,
this.substructureVisuals('cartoon'), this.substructureVisuals(display.representation),
{ ref: IDs.ID('visual', 'remainder-slice', BaseRef) } { ref: IDs.ID('visual', 'remainder-slice', BaseRef) }
) )
.delete(IDs.ID('visual', 'nucleic', BaseRef)); .delete(IDs.ID('visual', 'nucleic', BaseRef));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment