using System.Windows;
using Machinations.FromFlash.machinations.model;

namespace Machinations.GUI
{
    /// <summary>
    /// interface for connectionViews
    /// </summary>
    public interface IConnectionView : IObjectView<MachinationsConnection>
    {
        //Polyline Polyline { get; }

        //new MachinationsConnection Model { get; }
        
        void MovePoint(Point p);

        void SetPoint(Point p);//, IObjectView element);

        //void AddFirstPoint(GraphNode node);
        //void AppendLastPoint(GraphElement to);

        void AddStartView(IObjectView view);
        void AddEndView(IObjectView view);
        void RecalculateAfterLoaded();

        void ClickOn(Point selectedPoint);

        void RecalculateStartPoint(bool recalculateEnd = false);
        void RecalculateEndPoint(bool recalculateStart = false);
        void RemovePoint(bool dragFinished);
        bool MovingPointIsLast();
        bool MovingPointIsFirst();
        void RemoveEnd();
        void RemoveStart();
        void Loaded();
    }
}
