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

ReDNATCO plugin stage 15

parent 0e145caa
Branches
No related tags found
No related merge requests found
......@@ -24,9 +24,9 @@ export class ReDNATCOMspApiImpl implements ReDNATCOMspApi.Object {
this.onEvent(evt);
}
init(elemId: string, onEvent?: (evt: ReDNATCOMspApi.Event) => void, onInited?: () => void) {
init(elemId: string, onEvent?: (evt: ReDNATCOMspApi.Event) => void) {
this.onEvent = onEvent;
ReDNATCOMsp.init(elemId, onInited);
ReDNATCOMsp.init(elemId);
return this;
}
......
......@@ -39,7 +39,12 @@ export namespace ReDNATCOMspApi {
Commands.SwitchModel;
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 function StepDeselected(): StepDeselected {
......@@ -59,11 +64,17 @@ export namespace ReDNATCOMspApi {
return { type: 'step-selected', success: false, name: '' };
}
export type StructureLoaded = { type: 'structure-loaded' }
export function StructureLoaded(): StructureLoaded {
return { type: 'structure-loaded' };
}
}
export type Event =
Events.Ready |
Events.StepDeselected |
Events.StepRequested |
Events.StepSelected;
Events.StepSelected |
Events.StructureLoaded;
export namespace Queries {
export type Type = 'selected-step';
......@@ -78,7 +89,7 @@ export namespace ReDNATCOMspApi {
export interface Object {
command: (cmd: Command) => 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;
loadStructure: (data: string, type: 'cif'|'pdb') => void;
query: (type: Queries.Type) => Response;
......
......@@ -171,6 +171,7 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> {
this.viewer.loadStructure(data, type, this.state.display).then(() => {
this.presentConformers = this.viewer!.getPresentConformers();
this.forceUpdate();
ReDNATCOMspApi.event(Api.Events.StructureLoaded());
});
}
......@@ -190,9 +191,7 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> {
this.viewer = viewer;
this.viewer.loadReferenceConformers().then(() => {
ReDNATCOMspApi._bind(this);
if (this.props.onInited)
this.props.onInited();
ReDNATCOMspApi.event(Api.Events.Ready());
});
});
}
......@@ -413,15 +412,14 @@ export class ReDNATCOMsp extends React.Component<ReDNATCOMsp.Props, State> {
export namespace ReDNATCOMsp {
export interface Props {
elemId: string;
onInited?: () => void;
}
export function init(elemId: string, onInited?: () => void) {
export function init(elemId: string) {
const elem = document.getElementById(elemId);
if (!elem)
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 {
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);
if (!stepCurrent)
return void 0;
......@@ -923,7 +923,7 @@ export class ReDNATCOMspViewer {
b.to(IDs.ID('structure', 'remainder-slice', BaseRef))
.apply(
StateTransforms.Representation.StructureRepresentation3D,
this.substructureVisuals('cartoon'),
this.substructureVisuals(display.representation),
{ ref: IDs.ID('visual', 'remainder-slice', 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