PfvManagerFactoryInterface.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import {DataContainer} from "../../../Utils/DataContainer";
  2. import {
  3. RcsbFvAdditionalConfig,
  4. RcsbFvModulePublicInterface
  5. } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
  6. import {RcsbFvSelectorManager} from "../../../RcsbFvState/RcsbFvSelectorManager";
  7. import {AssemblyModelSate} from "../../../RcsbFvState/AssemblyModelSate";
  8. import {
  9. OperatorInfo,
  10. SaguaroPluginModelMapType, ViewerCallbackManagerInterface, ViewerActionManagerInterface
  11. } from "../../../RcsbFvStructure/StructureViewerInterface";
  12. import {RcsbFvBoardConfigInterface} from "@rcsb/rcsb-saguaro";
  13. import {RcsbFvStateManager} from "../../../RcsbFvState/RcsbFvStateManager";
  14. export interface PfvManagerFactoryConfigInterface<R,U> {
  15. rcsbFvDivId: string;
  16. rcsbFvContainer: DataContainer<RcsbFvModulePublicInterface>;
  17. stateManager: RcsbFvStateManager;
  18. structureViewer: ViewerCallbackManagerInterface & ViewerActionManagerInterface <R>;
  19. boardConfigContainer: DataContainer<Partial<RcsbFvBoardConfigInterface>>;
  20. pfvChangeCallback(context: U): Promise<void>;
  21. additionalConfig: RcsbFvAdditionalConfig & {operatorChangeCallback?:(operatorInfo: OperatorInfo)=>void} | undefined;
  22. }
  23. export interface PfvManagerFactoryInterface<T,R,U> {
  24. getPfvManager(config:T & PfvManagerFactoryConfigInterface<R,U>): PfvManagerInterface;
  25. }
  26. export interface BuildPfvInterface {
  27. defaultAuthId?: string;
  28. defaultOperatorName?:string;
  29. }
  30. export interface PfvManagerInterface {
  31. create(config?: BuildPfvInterface): Promise<RcsbFvModulePublicInterface | undefined>;
  32. }
  33. export abstract class AbstractPfvManager<T,R,U> implements PfvManagerInterface {
  34. protected readonly rcsbFvDivId: string;
  35. protected readonly rcsbFvContainer: DataContainer<RcsbFvModulePublicInterface>;
  36. protected readonly stateManager: RcsbFvStateManager;
  37. protected readonly structureViewer: ViewerCallbackManagerInterface & ViewerActionManagerInterface <R>;
  38. protected readonly boardConfigContainer: DataContainer<Partial<RcsbFvBoardConfigInterface>>;
  39. protected readonly pfvChangeCallback: (context: U)=>Promise<void>;
  40. protected readonly additionalConfig: RcsbFvAdditionalConfig & {operatorChangeCallback?:(operatorInfo: OperatorInfo)=>void} | undefined;
  41. protected constructor(config:T & PfvManagerFactoryConfigInterface<R,U>){
  42. this.rcsbFvDivId = config.rcsbFvDivId;
  43. this.rcsbFvContainer = config.rcsbFvContainer;
  44. this.stateManager = config.stateManager;
  45. this.structureViewer = config.structureViewer;
  46. this.additionalConfig = config.additionalConfig;
  47. this.boardConfigContainer = config.boardConfigContainer;
  48. this.pfvChangeCallback = config.pfvChangeCallback;
  49. }
  50. public abstract create(config?: BuildPfvInterface): Promise<RcsbFvModulePublicInterface | undefined>;
  51. }