Skip to content
Snippets Groups Projects
Commit a6721155 authored by Alexander Rose's avatar Alexander Rose
Browse files

Merge branch 'master' of https://github.com/molstar/molstar

parents 8f54ea13 4171008c
No related branches found
No related tags found
No related merge requests found
...@@ -23,6 +23,7 @@ import { ObjectKeys } from '../../mol-util/type-helpers'; ...@@ -23,6 +23,7 @@ import { ObjectKeys } from '../../mol-util/type-helpers';
import { PluginState } from '../../mol-plugin/state'; import { PluginState } from '../../mol-plugin/state';
import { DownloadDensity } from '../../mol-plugin-state/actions/volume'; import { DownloadDensity } from '../../mol-plugin-state/actions/volume';
import { PluginLayoutControlsDisplay } from '../../mol-plugin/layout'; import { PluginLayoutControlsDisplay } from '../../mol-plugin/layout';
import { BuiltInTrajectoryFormat } from '../../mol-plugin-state/formats/trajectory';
require('mol-plugin-ui/skin/light.scss'); require('mol-plugin-ui/skin/light.scss');
...@@ -59,7 +60,7 @@ type ViewerOptions = typeof DefaultViewerOptions; ...@@ -59,7 +60,7 @@ type ViewerOptions = typeof DefaultViewerOptions;
export class Viewer { export class Viewer {
plugin: PluginContext plugin: PluginContext
constructor(elementId: string, options: Partial<ViewerOptions> = {}) { constructor(elementOrId: string | HTMLElement, options: Partial<ViewerOptions> = {}) {
const o = { ...DefaultViewerOptions, ...options }; const o = { ...DefaultViewerOptions, ...options };
const spec: PluginSpec = { const spec: PluginSpec = {
...@@ -99,21 +100,23 @@ export class Viewer { ...@@ -99,21 +100,23 @@ export class Viewer {
] ]
}; };
const element = document.getElementById(elementId); const element = typeof elementOrId === 'string'
if (!element) throw new Error(`Could not get element with id '${elementId}'`); ? document.getElementById(elementOrId)
: elementOrId;
if (!element) throw new Error(`Could not get element with id '${elementOrId}'`);
this.plugin = createPlugin(element, spec); this.plugin = createPlugin(element, spec);
} }
async setRemoteSnapshot(id: string) { setRemoteSnapshot(id: string) {
const url = `${this.plugin.config.get(PluginConfig.State.CurrentServer)}/get/${id}`; const url = `${this.plugin.config.get(PluginConfig.State.CurrentServer)}/get/${id}`;
await PluginCommands.State.Snapshots.Fetch(this.plugin, { url }); return PluginCommands.State.Snapshots.Fetch(this.plugin, { url });
} }
async loadSnapshotFromUrl(url: string, type: PluginState.SnapshotType) { loadSnapshotFromUrl(url: string, type: PluginState.SnapshotType) {
await PluginCommands.State.Snapshots.OpenUrl(this.plugin, { url, type }); return PluginCommands.State.Snapshots.OpenUrl(this.plugin, { url, type });
} }
async loadStructureFromUrl(url: string, format = 'cif', isBinary = false) { loadStructureFromUrl(url: string, format: BuiltInTrajectoryFormat = 'mmcif', isBinary = false) {
const params = DownloadStructure.createDefaultParams(this.plugin.state.data.root.obj!, this.plugin); const params = DownloadStructure.createDefaultParams(this.plugin.state.data.root.obj!, this.plugin);
return this.plugin.runTask(this.plugin.state.data.applyAction(DownloadStructure, { return this.plugin.runTask(this.plugin.state.data.applyAction(DownloadStructure, {
source: { source: {
...@@ -128,7 +131,13 @@ export class Viewer { ...@@ -128,7 +131,13 @@ export class Viewer {
})); }));
} }
async loadPdb(pdb: string) { async loadStructureFromData(data: string | number[], format: BuiltInTrajectoryFormat, options?: { dataLabel?: string }) {
const _data = await this.plugin.builders.data.rawData({ data, label: options?.dataLabel });
const trajectory = await this.plugin.builders.structure.parseTrajectory(_data, format);
await this.plugin.builders.structure.hierarchy.applyPreset(trajectory, 'default');
}
loadPdb(pdb: string) {
const params = DownloadStructure.createDefaultParams(this.plugin.state.data.root.obj!, this.plugin); const params = DownloadStructure.createDefaultParams(this.plugin.state.data.root.obj!, this.plugin);
const provider = this.plugin.config.get(PluginConfig.Download.DefaultPdbProvider)!; const provider = this.plugin.config.get(PluginConfig.Download.DefaultPdbProvider)!;
return this.plugin.runTask(this.plugin.state.data.applyAction(DownloadStructure, { return this.plugin.runTask(this.plugin.state.data.applyAction(DownloadStructure, {
...@@ -148,7 +157,7 @@ export class Viewer { ...@@ -148,7 +157,7 @@ export class Viewer {
})); }));
} }
async loadPdbDev(pdbDev: string) { loadPdbDev(pdbDev: string) {
const params = DownloadStructure.createDefaultParams(this.plugin.state.data.root.obj!, this.plugin); const params = DownloadStructure.createDefaultParams(this.plugin.state.data.root.obj!, this.plugin);
return this.plugin.runTask(this.plugin.state.data.applyAction(DownloadStructure, { return this.plugin.runTask(this.plugin.state.data.applyAction(DownloadStructure, {
source: { source: {
...@@ -164,7 +173,7 @@ export class Viewer { ...@@ -164,7 +173,7 @@ export class Viewer {
})); }));
} }
async loadEmdb(emdb: string) { loadEmdb(emdb: string) {
const provider = this.plugin.config.get(PluginConfig.Download.DefaultEmdbProvider)!; const provider = this.plugin.config.get(PluginConfig.Download.DefaultEmdbProvider)!;
return this.plugin.runTask(this.plugin.state.data.applyAction(DownloadDensity, { return this.plugin.runTask(this.plugin.state.data.applyAction(DownloadDensity, {
source: { source: {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment