using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media;

namespace FingersDance.Data
{
    public class AnnotationAddedEventArg : EventArgs
    {
        private float _tcBegin;
        private float _dur;
        private String _gestureType;

        public float TcBegin
        {
            get { return this._tcBegin; }
        }
        public float Dur
        {
            get { return this._dur; }
        }
        public String GestureType
        {
            get { return this._gestureType; }
        }

        public AnnotationAddedEventArg(float tcBegin, float dur, String gestureType)
        {

            this._tcBegin = tcBegin;
            this._dur = dur;
            this._gestureType = gestureType;

        }

    }

    public class Annotation
    {
        private float _tcBegin;
        private float _dur;
        private string _gestureType;
        private Color _color;

        //public event EventHandler<AnnotationAddedEventArg> AnnotationAdded;

        public Annotation(float tcBeginPar, float durPar, string gesturePar, Color colorPar)
        {
            this._tcBegin = tcBeginPar;
            this._dur = durPar;
            this._gestureType = gesturePar;
            this._color = colorPar;

            //AnnotationAdded(this, new AnnotationAddedEventArg(_tcBegin, _dur, _gestureType));

        }

        public float TcBegin
        {
            get { return _tcBegin; }
            set
            {
                if (value == _tcBegin || float.IsNaN(value))
                    return;
                _tcBegin = value;
            }
        }
        public float Dur
        {
            get { return _dur; }
            set
            {
                if (value == _dur || float.IsNaN(value))
                    return;
                _dur = value;
            }
        }
        public String GestureType
        {
            get { return _gestureType; }
            set
            {
                if (value == _gestureType || String.IsNullOrEmpty(value))
                    return;
                _gestureType = value;
            }
        }
        public Color Color
        {
            get { return _color; }
            set
            {
                if (value == _color)
                    return;
                _color = value;
            }
        }

    }

}
