import { TrackableMarker } from "../../TrackableMarker"; import { LeafletArgs, PlayBackEvent } from "../EventInterface"; export namespace CreateMarker { export const NAME = 'CREATE_MARKER'; export interface EventArgs { id:string; position:[number,number]; scale?:number; simple?:boolean; trackColor?:string; } export class Event implements PlayBackEvent{ name: string = NAME; do(leafletArgs: LeafletArgs, args: EventArgs): void { const marker = new TrackableMarker([args.position[0],args.position[1]],null,args.trackColor).bindTooltip(args.id); leafletArgs.playback?.createMarker(marker,args.id); marker.enableFloIcon(args.simple); if (args.scale != null || args.scale != undefined) { marker.floIcon.Scale = args.scale; marker.updateFloIcon(); } } undo(leafletArgs: LeafletArgs, args: EventArgs): void { leafletArgs.playback?.removeMarker(args.id); } } } export namespace DeleteMarker { export const NAME = 'DELETE_MARKER'; export interface EventArgs { id:string; position:[number,number]; scale?:number; simple?:boolean; trackColor?:string; } export class Event implements PlayBackEvent{ name: string = NAME; do(leafletArgs: LeafletArgs, args: EventArgs): void { leafletArgs.playback.removeMarker(args.id); } undo(leafletArgs: LeafletArgs, args: EventArgs): void { const marker = new TrackableMarker([args.position[0],args.position[1]],null,args.trackColor).bindTooltip(args.id); leafletArgs.playback.createMarker(marker,args.id); marker.enableFloIcon(args.simple); if (args.scale != null || args.scale != undefined) { marker.floIcon.Scale = args.scale; marker.updateFloIcon(); } } } }