aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Scripting/Tango.Scripting.IDE/IDESettings.cs
blob: 347b064680024e0624e7aac1ff6a0a721f339599 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.Settings;

namespace Tango.Scripting.IDE
{
    public class IDESettings : SettingsBase
    {
        public List<String> LastSolutionLocations { get; set; }

        public IDESettings()
        {
            LastSolutionLocations = new List<string>();
        }
    }
}
: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
using OxyPlot;
using OxyPlot.Wpf;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.Core;
using Tango.MachineStudio.ThreadExtensions.ViewModels;

namespace Tango.MachineStudio.ThreadExtensions.Models
{
    public class PlotProperties : ExtendedObject
    {
        public Plot PlotControl { get; set; }
        private IList<DataPoint> _points;

        private FactorColors _color;

        public FactorColors Color
        {
            get { return _color; }
            set { _color = value; }
        }

        /// <summary>
        /// Binding to ItemsSource  of line chart.
        /// </summary>
        public IList<DataPoint> Points
        {
            get { return _points; }
            set
            {
                _points = value;
                RaisePropertyChangedAuto();
            }
        }
        private IList<DataPoint> _target100Points;
        /// <summary>
        /// Binding to ItemsSource  of line chart.
        /// </summary>
        public IList<DataPoint> Target100Points
        {
            get { return _target100Points; }
            set
            {
                _target100Points = value;
                RaisePropertyChangedAuto();
            }
        }
        private IList<DataPoint> _target200Points;
        /// <summary>
        /// Binding to ItemsSource  of line chart.
        /// </summary>
        public IList<DataPoint> Target200Points
        {
            get { return _target200Points; }
            set
            {
                _target200Points = value;
                RaisePropertyChangedAuto();
            }
        }
        private int _step;
        public int XStep
        {
            get { return _step; }
            set { _step = value; RaisePropertyChangedAuto(); }
        }

        private double _from;
        /// <summary>
        /// From use to binding to bottom axis min value
        /// </summary>
        public double From
        {
            get { return _from; }
            set
            {
                _from = value; RaisePropertyChangedAuto();
            }
        }

        private double _to;
        /// <summary>
        /// To use to binding to bottom axis max value
        /// </summary>
        public double To
        {
            get { return _to; }
            set
            {
                _to = value; RaisePropertyChangedAuto();
            }
        }

        public PlotProperties(FactorColors color)
        {
            this.Points = new List<DataPoint>();
            Target100Points = new List<DataPoint>();
            Target200Points = new List<DataPoint>();
            Color = color;

        }

        public void ClearResults()
        {
            Points.Clear();
            Target100Points.Clear();
            Target200Points.Clear();
        }

        public void CreateGraph(List<ColorProcessData> points, bool isLtype)
        {
            if (PlotControl == null)
            {
                Debug.WriteLine("ERROR!!!   CreateGraph. Plot Control is NULL.");
                return;
            }   

            ClearResults();
            PlotControl.InvalidatePlot(true);

            double target100Y = FactorTarget.GetFactor100(Color);
            double target200Y = FactorTarget.GetFactor200(Color);

            _to = target100Y > target200Y? target100Y + 10: target200Y + 10;
            _from = target100Y < target200Y ? target100Y - 10 : target200Y - 10;

            foreach ( var x in points)
            {
                var point = new DataPoint(x.InkNlCm, isLtype ? x.L : x.B);
                Points.Add(point);

                _to = _to > point.Y ? _to : point.Y;
                _from = ( _from == 0 || _from > point.Y )  ?  point.Y : _from;
               
            }
            if (points.Count > 1)
            {
                var minInkNlCm = points.Min(n => n.InkNlCm);
                var maxInkNlCm = points.Max(n => n.InkNlCm);
                if(! Target100Points.Any(x => x.X == minInkNlCm))
                {
                    Target100Points.Add(new DataPoint(minInkNlCm, target100Y));
                    Target200Points.Add(new DataPoint(minInkNlCm, target200Y));
                }
                if (!Target100Points.Any(x => x.X == maxInkNlCm))
                {
                    Target100Points.Add(new DataPoint(maxInkNlCm, target100Y));
                    Target200Points.Add(new DataPoint(maxInkNlCm, target200Y));
                }
            }
            Debug.WriteLine($"CreateGraph. Count Points {points.Count}");

            if (_to == 0)
                _to = isLtype ? 100 : 128;
            if (_from == 0)
                _from = isLtype ? 0 : -127;

            RaisePropertyChanged("To");
            RaisePropertyChanged("From");
            XStep = (int)(Points.Count / 6);
            
            PlotControl.InvalidatePlot(true);

        }
    }
}