    import { PolyLine, PolyLinePoints, PolyLinePoint } from '../svgObjects';

    import NetworkElement from './NetworkElement';

    /** @module editorElements.HelperWire */

    /**
     * A temporary wire that is connecting a {@link Connector} with a mouse pointer when user creates a wire.
     * @extends NetworkElement
     */
    export default class HelperWire extends NetworkElement {
        constructor(appInstance, fromId, mousePosition) {
            super(appInstance);

            const connector = this.appInstance.getConnectorById(fromId);
            this.connectorPosition = this.appInstance.getConnectorPosition(connector, true);

            const from = new PolyLinePoint(this.connectorPosition.x, this.connectorPosition.y);
            const to = new PolyLinePoint(mousePosition.x, mousePosition.y);

            const points = new PolyLinePoints([from, to]);

            this.svgObj = new PolyLine(points, 2, '#8b8b8b');
        }

        updateMousePosition(mousePosition) {
            const from = new PolyLinePoint(this.connectorPosition.x, this.connectorPosition.y);
            const to = new PolyLinePoint(mousePosition.x, mousePosition.y);

            const points = new PolyLinePoints([from, to]);

            this.svgObj.updatePoints(points);
        }

        /**
         * get the jQuery element for this helper wire
         * @return {jQuery.element}
         */
        get() {
            return this.svgObj.get();
        }
    }