index.tsx 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { DebugUtil } from "../TmFv3DApp/tmdet-extension/debug-utils";
  2. import { TmViewerStandalone } from "./tmdet-viewer/TmViewerStandalone";
  3. import { ViewerProps } from "@rcsb/rcsb-molstar/build/src/viewer";
  4. import { TMDETMembraneOrientation } from "../TmFv3DApp/tmdet-extension/behavior";
  5. import { PluginSpec } from "molstar/lib/mol-plugin/spec";
  6. import { PluginLayoutControlsDisplay } from "molstar/lib/mol-plugin/layout";
  7. import { PluginConfig } from "molstar/lib/mol-plugin/config";
  8. import { PluginContext } from "molstar/lib/mol-plugin/context";
  9. const Extensions = {
  10. 'tmdet-membrane-orientation': PluginSpec.Behavior(TMDETMembraneOrientation)
  11. };
  12. const viewerParams: Partial<ViewerProps> = {
  13. layoutIsExpanded: false,
  14. layoutShowControls: true,
  15. layoutControlsDisplay: 'reactive' as PluginLayoutControlsDisplay,
  16. layoutShowSequence: true,
  17. layoutShowLog: true,
  18. showImportControls: true,
  19. showSessionControls: true,
  20. showStructureSourceControls: true,
  21. viewportShowExpand: PluginConfig.Viewport.ShowExpand.defaultValue,
  22. viewportShowSelectionMode: PluginConfig.Viewport.ShowSelectionMode.defaultValue,
  23. volumeStreamingServer: PluginConfig.VolumeStreaming.DefaultServer.defaultValue,
  24. };
  25. function createTmdetViewer(elementId: string, configParams: any,
  26. callBack: (ctx:PluginContext) => {},
  27. deferred: boolean,
  28. viewerProps: Partial<ViewerProps> = viewerParams) {
  29. if (deferred) {
  30. document.addEventListener("DOMContentLoaded", (event) => {
  31. console.log('DOMContentLoaded', deferred);
  32. (async function(event) {
  33. DebugUtil.enableLog();
  34. const viewer = new TmViewerStandalone(elementId, {
  35. ...viewerProps,
  36. layoutShowControls:false,
  37. layoutShowSequence: true,
  38. showWelcomeToast: false,
  39. canvas3d: {
  40. multiSample: {
  41. mode: 'off'
  42. }
  43. }
  44. });
  45. await viewer.loadWithUNITMPMembraneRepresentation(configParams);
  46. if (callBack) {
  47. callBack(viewer.plugin);
  48. }
  49. })();
  50. });
  51. } else {
  52. DebugUtil.enableLog();
  53. const viewer = new TmViewerStandalone(elementId, {
  54. ...viewerProps,
  55. layoutShowControls:false,
  56. layoutShowSequence: true,
  57. showWelcomeToast: false,
  58. canvas3d: {
  59. multiSample: {
  60. mode: 'off'
  61. }
  62. }
  63. });
  64. viewer.loadWithUNITMPMembraneRepresentation(configParams);
  65. if (callBack) {
  66. callBack(viewer.plugin);
  67. }
  68. return viewer;
  69. }
  70. }
  71. function createMolstarViewer(elementId: string, viewerProps: Partial<ViewerProps> = viewerParams) {
  72. return new TmViewerStandalone(elementId, {
  73. ...viewerProps,
  74. layoutShowControls:false,
  75. layoutShowSequence: true,
  76. showWelcomeToast: false,
  77. canvas3d: {
  78. multiSample: {
  79. mode: 'off'
  80. }
  81. }
  82. },
  83. false // with no TmdetViewer behaviour
  84. );
  85. }
  86. export {
  87. createMolstarViewer,
  88. createTmdetViewer,
  89. DebugUtil
  90. };