using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Misc;
using System.Windows.Threading;
using FlyADBase;
namespace Flyad7_WPF
{
    public class FlyADClientUI : INotifyPropertyChanged
    {
        private DateTime now;
        public DateTime Now
        {
            get
            {
                return now;
            }
            set
            {
                if (now != value)
                {
                    now = value;
                    PropertyChanged.Notify(this, "Now");
                }
            }
        }

        private int position;
        public int Position
        {
            get { return position; }
            set
            {
                if (position != value)
                {
                    position = value;
                    PropertyChanged.Notify(this, "Position");
                }
            }
        }
        private int speed;
        public int Speed
        {
            get { return speed; }
            set
            {
                if (speed != value)
                {
                    speed = value;
                    PropertyChanged.Notify(this, "Speed");
                }
            }
        }

        private int position2;
        public int Position2
        {
            get { return position2; }
            set
            {
                if (position2 != value)
                {
                    position2 = value;
                    PropertyChanged.Notify(this, "Position2");
                }
            }
        }
        private int speed2;
        public int Speed2
        {
            get { return speed2; }
            set
            {
                if (speed2 != value)
                {
                    speed2 = value;
                    PropertyChanged.Notify(this, "Speed2");
                }
            }
        }

        private int ad;
        public int AD
        {
            get { return ad; }
            set
            {
                if (ad != value)
                {
                    ad = value;
                    PropertyChanged.Notify(this, "AD");
                }
            }
        }

        private DispatcherTimer timer = new DispatcherTimer();
        private FlyAD7 flyad;
        public FlyADClientUI(FlyAD7 flyad)
        {
            Init(flyad);
        }
        void Init(FlyAD7 flyad)
        {
            this.flyad = flyad;
            timer.Interval = TimeSpan.FromSeconds(0.1);
            timer.Tick += new EventHandler(timer_Tick);
            timer.Start();
        }

        void timer_Tick(object sender, EventArgs e)
        {
            Position = flyad.Position;
            Position2 = flyad.Position2;
            AD = flyad.AD;
            Speed = flyad.Speed;
            Speed2 = flyad.Speed2;
            Now = flyad.Now;
        }
        public event PropertyChangedEventHandler PropertyChanged;
    }
}