using MainShell.Models;
using MwFramework.ManagerService;
using Stylet;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MainShell.Recipe.Models.SubstrateParameter
{
    public class MarkData : PropertyChangedBase, IParameterItem
    {
        private string _templateName;
        private bool _isEnabled = true;

        public string TemplateName
        {
            get { return _templateName; }
            set { SetAndNotify(ref _templateName, value); }  
        }

        public bool IsEnabled
        {
            get { return _isEnabled; }
            set { SetAndNotify(ref _isEnabled, value); }
        }

        private MPoint _basePos;
        public MPoint BasePos
        {
            get { return _basePos; }
            set { SetAndNotify(ref _basePos, value); }
        }

        private MPoint _cameraPos;
            
        public MPoint CameraPos
        {
            get { return _cameraPos; }
            set { SetAndNotify(ref _cameraPos, value); }
        }


        public IParameterItem Clone()
        {
            return new MarkData
            {
                IsEnabled = this.IsEnabled,
                TemplateName = this.TemplateName,
                BasePos = this.BasePos?.Clone(),
                CameraPos = this.CameraPos?.Clone()
            } as IParameterItem;
        }
    }
}
