using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using ArcGIS.Core.CIM;
using ArcGIS.Core.Data;
using ArcGIS.Core.Geometry;
using ArcGIS.Desktop.Catalog;
using ArcGIS.Desktop.Core;
using ArcGIS.Desktop.Editing;
using ArcGIS.Desktop.Extensions;
using ArcGIS.Desktop.Framework;
using ArcGIS.Desktop.Framework.Contracts;
using ArcGIS.Desktop.Framework.Dialogs;
using ArcGIS.Desktop.Framework.Threading.Tasks;
using ArcGIS.Desktop.Mapping;
using OliviaAddInPro.Model;

namespace OliviaAddInPro
{
    public class PaneLimpiezaSub3ViewModel : PanelViewModelBase
    {
        public PaneLimpiezaSub3ViewModel()
        {
            numPtosCtrl = numSect = 3;
            checkAjustSect = checkSectAuto = false;
            checkIgnoAis = LimpiezaDef.Parametros.igno_ais;
            enableNSect = true;
        }


        #region Properties     

        public override string DisplayName
        {
            get { return Resource1.String_ctrol; }
        }

        private int numPtosCtrl;
        public int NumPtosCtrl
        {
            get { return numPtosCtrl; }
            set { base.SetProperty(ref numPtosCtrl, value, () => NumPtosCtrl); }
        }

        private int numSect;
        public int NumSect
        {
            get { return numSect; }
            set { base.SetProperty(ref numSect, value, () => NumSect); }
        }

        private bool checkSectAuto;
        public bool CheckSectAuto
        {
            get { return checkSectAuto; }
            set {
                checkSectAuto = value;
                if (checkSectAuto)
                    EnableNSect = false;
                else
                    EnableNSect = true;
                //base.SetProperty(ref checkSectAuto, value, () => CheckSectAuto); 
                base.NotifyPropertyChanged("CheckSectAuto");
                base.NotifyPropertyChanged("EnableNSect");
            }
        }
        private bool enableNSect;
        public bool EnableNSect
        {
            get { return enableNSect; }
            set { base.SetProperty(ref enableNSect, value, () => EnableNSect); }
        }

        private bool checkAjustSect;
        public bool CheckAjustSect
        {
            get { return checkAjustSect; }
            set { base.SetProperty(ref checkAjustSect, value, () => CheckAjustSect); }
        }
        private bool checkIgnoAis;
        public bool CheckIgnoAis
        {
            get { return checkIgnoAis; }
            set { base.SetProperty(ref checkIgnoAis, value, () => CheckIgnoAis); }
        }

        #endregion Properties
    }
}
