import {DispPolyline, DispPolylineT} from "../canvas-shapes/DispPolyline";
import {PrivateDiagramLookupService} from "@peek/peek_plugin_diagram/_private/services/PrivateDiagramLookupService";
import {BranchTuple} from "@peek/peek_plugin_diagram/_private/branch/BranchTuple";
import {PeekCanvasModel} from "./PeekCanvasModel.web";
import {DispEdgeTemplateT} from "../canvas-shapes/DispEdgeTemplate";

export class PeekCanvasEdgeTemplatePropsContext {


    constructor(private model: PeekCanvasModel,
                private polyline: DispPolylineT,
                private lookupService: PrivateDiagramLookupService,
                private branchTuple: BranchTuple) {

    }

    setEdgeTemplate(edgeTemplate: DispEdgeTemplateT, coordSetId: number): void {
        DispPolyline.setEdgeTemplate(
            this.polyline, edgeTemplate, coordSetId,
            this.lookupService, this.branchTuple
        );

        this.model.recompileModel();
        this.branchTuple.touchUndo();
    }

    get targetEdgeTemplateCoordSetId(): number | null {
        return DispPolyline.targetEdgeTemplateCoordSetId(this.polyline);
    }

    get targetEdgeTemplateName(): string | null {
        return DispPolyline.targetEdgeTemplateName(this.polyline);
    }

}
