trigonometryNodeFactory.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import * as SRD from "storm-react-diagrams";
  2. import * as React from "react";
  3. import { GlobalState } from '../../../globalState';
  4. import { TrigonometryNodeModel } from './trigonometryNodeModel';
  5. import { TrigonometryNodeWidget } from './trigonometryNodeWidget';
  6. /**
  7. * Node factory which creates editor nodes
  8. */
  9. export class TrigonometryNodeFactory extends SRD.AbstractNodeFactory {
  10. private _globalState: GlobalState;
  11. /**
  12. * Constructs a GenericNodeFactory
  13. */
  14. constructor(globalState: GlobalState) {
  15. super("trigonometry");
  16. this._globalState = globalState;
  17. }
  18. /**
  19. * Generates a node widget
  20. * @param diagramEngine diagram engine
  21. * @param node node to generate
  22. * @returns node widget jsx
  23. */
  24. generateReactWidget(diagramEngine: SRD.DiagramEngine, node: TrigonometryNodeModel): JSX.Element {
  25. return <TrigonometryNodeWidget node={node} globalState={this._globalState} />;
  26. }
  27. /**
  28. * Gets a new instance of a node model
  29. * @returns input node model
  30. */
  31. getNewInstance() {
  32. return new TrigonometryNodeModel();
  33. }
  34. }