UniprotPfvFactory.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import {PfvAbstractFactory, PfvFactoryConfigInterface} from "../PfvFactoryInterface";
  2. import {
  3. RcsbFvModulePublicInterface
  4. } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvModule/RcsbFvModuleInterface";
  5. import {buildMultipleAlignmentSequenceFv, FeatureType, RcsbFvUI, RcsbRequestContextManager} from "@rcsb/rcsb-saguaro-app";
  6. import {RcsbFvDOMConstants} from "../../../../RcsbFvConstants/RcsbFvConstants";
  7. import {
  8. UniprotSequenceOnchangeInterface
  9. } from "@rcsb/rcsb-saguaro-app/build/dist/RcsbFvWeb/RcsbFvBuilder/RcsbFvUniprotBuilder";
  10. interface UniprotPfvFactoryInterface extends PfvFactoryConfigInterface {
  11. upAcc:string;
  12. }
  13. export class UniprotPfvFactory extends PfvAbstractFactory<{upAcc:string}>{
  14. private readonly upAcc:string;
  15. private module: Promise<RcsbFvModulePublicInterface>;
  16. constructor(config:UniprotPfvFactoryInterface) {
  17. super(config);
  18. this.upAcc = config.upAcc;
  19. }
  20. async getPfv(): Promise<RcsbFvModulePublicInterface | undefined> {
  21. this.module = buildMultipleAlignmentSequenceFv(
  22. this.rcsbFvDivId,
  23. RcsbFvDOMConstants.SELECT_BUTTON_PFV_ID,
  24. this.upAcc,
  25. {
  26. onChangeCallback:(context,module)=>{
  27. this.pfvChangeCallback(context, module);
  28. }
  29. },
  30. this.additionalConfig
  31. );
  32. const module: RcsbFvModulePublicInterface = await this.module;
  33. this.rcsbFvContainer.set(module);
  34. return module;
  35. }
  36. }