Ingen beskrivning

RectBaseMarker.ts 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { PositionType } from '../../utils/layout';
  2. import { SvgHelper } from '../../renderer/SvgHelper';
  3. import { RectangularMarker } from '../RectangularMarker';
  4. import { WhitePage } from '../../whiteboard/WhitePage';
  5. import { MarkerSnap } from '../../whiteboard/AbstractWhiteboard/snap';
  6. export class RectBaseMarker extends RectangularMarker {
  7. public static createMarker = (page?: WhitePage): RectBaseMarker => {
  8. const marker = new RectBaseMarker();
  9. marker.page = page;
  10. marker.setup();
  11. return marker;
  12. };
  13. private markerRect: SVGRectElement;
  14. /** Getter & Setter */
  15. public applySnap(snap: MarkerSnap) {
  16. super.applySnap(snap);
  17. if (snap.rectSnap) {
  18. this.markerRect.setAttribute('width', this.width.toString());
  19. this.markerRect.setAttribute('height', this.height.toString());
  20. }
  21. }
  22. protected setup() {
  23. super.setup();
  24. this.markerRect = SvgHelper.createRect(this.width, this.height);
  25. this.addToRenderVisual(this.markerRect);
  26. }
  27. protected resize(x: number, y: number, onPosition?: (pos: PositionType) => void) {
  28. super.resize(x, y, onPosition);
  29. this.markerRect.setAttribute('width', this.width.toString());
  30. this.markerRect.setAttribute('height', this.height.toString());
  31. }
  32. }