Example #1
0
        public float StackPoint(IChartPoint point, int seriesStackPosition)
        {
            var index = unchecked ((int)point.SecondaryValue);
            var start = seriesStackPosition == 0 ? 0 : stack[seriesStackPosition - 1][index].End;
            var value = point.PrimaryValue;

            var si = stack[seriesStackPosition];

            if (si.Count < point.SecondaryValue + 1)
            {
                si.Add(new StackedValue {
                    Start = start, End = start + value
                });
                totals.Add(value);
                knownMaxLenght++;
            }
            else
            {
                si[index] = new StackedValue {
                    Start = start, End = start + value
                };
            }

            var total = totals[index] + value;

            totals[index] = total;

            return(total);
        }
Example #2
0
        protected override void SetDefaultPointTransitions(IChartPoint <TVisual, TLabel, TDrawingContext> chartPoint)
        {
            var visual = chartPoint.Context.Visual;
            var chart  = chartPoint.Context.Chart;

            if (visual == null)
            {
                throw new Exception("Unable to initialize the point instance.");
            }

            visual
            .TransitionateProperties(
                nameof(visual.CenterX),
                nameof(visual.CenterY),
                nameof(visual.X),
                nameof(visual.Y),
                nameof(visual.Width),
                nameof(visual.Height),
                nameof(visual.StartAngle),
                nameof(visual.SweepAngle),
                nameof(visual.PushOut),
                nameof(visual.InnerRadius))
            .WithAnimation(animation =>
                           animation
                           .WithDuration(chart.AnimationsSpeed)
                           .WithEasingFunction(chart.EasingFunction));
        }
Example #3
0
        private void OnRemCpEvent(CPLineEvArgs args)
        {
            int rowIndex = -1;
            Tuple <ILineChartPoints, IChartPoint> tagData = new Tuple <ILineChartPoints, IChartPoint>(args.lineCPs, args.cp);

            foreach (DataGridViewRow row in list.Rows)
            {
                if (row.Tag.Equals(tagData))
                {
                    if (tagData.Item2 == cpIgnore)
                    {
                        cpIgnore = null;
                    }
                    else
                    {
                        rowIndex = row.Index;
                    }
                    break;
                }
            }
            if (rowIndex >= 0)
            {
                //tagData.Item1.remCPEvent.On -= OnRemCpEvent;
                list.Rows.RemoveAt(rowIndex);
            }
        }
Example #4
0
        protected override void SetDefaultPointTransitions(IChartPoint <TVisual, TLabel, TDrawingContext> chartPoint)
        {
            var visual = chartPoint.Context.Visual;
            var chart  = chartPoint.Context.Chart;

            if (visual == null)
            {
                throw new Exception("Unable to initialize the point instance.");
            }

            visual
            .TransitionateProperties(
                nameof(visual.X),
                nameof(visual.Width))
            .WithAnimation(animation =>
                           animation
                           .WithDuration((long)(chart.AnimationsSpeed.TotalMilliseconds * 1.5))
                           .WithEasingFunction(elasticFunction));

            visual
            .TransitionateProperties(
                nameof(visual.Y),
                nameof(visual.Height))
            .WithAnimation(animation =>
                           animation
                           .WithDuration(chart.AnimationsSpeed)
                           .WithEasingFunction(chart.EasingFunction));
        }
Example #5
0
        public StackedValue GetStack(IChartPoint point, int seriesStackPosition)
        {
            var index = unchecked ((int)point.SecondaryValue);
            var p     = stack[seriesStackPosition][index];

            return(new StackedValue
            {
                Start = p.Start,
                End = p.End
            });
        }
        private ELineCPsStatus UpdateStatus(IChartPoint cp)
        {
            ELineCPsStatus curStatus = theStatus;

            theStatus = (ELineCPsStatus)((int)theStatus | (int)cp.data.status);
            if (curStatus != theStatus)
            {
                lineCPStatusChangedEvent.Fire(new LineCPStatusEvArgs(this));
            }

            return(theStatus);
        }
        public bool RemoveChartPoint(IChartPoint chartPnt)
        {
            bool ret = chartPoints.Remove(chartPnt);

            if (ret)
            {
                chartPnt.cpStatusChangedEvent -= OnCPStatusChanged;
                CalcStatus();
                remCPEvent.Fire(new CPLineEvArgs(this, chartPnt));
            }

            return(ret);
        }
        public bool AddChartPoint(IChartPoint chartPnt)
        {
            if (GetChartPoint(chartPnt.data.uniqueName) == null)
            {
                chartPoints.Add(chartPnt);
                chartPnt.cpStatusChangedEvent += OnCPStatusChanged;
                UpdateStatus(chartPnt);
                addCPEvent.Fire(new CPLineEvArgs(this, chartPnt));
                return(true);
            }

            return(false);
        }
        public bool AddChartPoint(string varName, out IChartPoint chartPnt)
        {
            chartPnt = null;
            IClassElement codeClass = codeClassMethod.GetClass();

            CP.Code.IClassVarElement codeElem = codeClass.GetVar(varName);
            if (codeElem != null)
            {
                return(AddChartPoint(codeElem, out chartPnt, false));
            }

            return(false);
        }
Example #10
0
        private void OnPointMeasured(IChartPoint <RectangleGeometry, LabelGeometry, SkiaSharpDrawingContext> point)
        {
            var visual          = point.Context.Visual;
            var delayedFunction = new DelayedFunction(EasingFunctions.BuildCustomElasticOut(1.5f, 0.60f), point);

            visual
            .TransitionateProperties(
                nameof(visual.Y),
                nameof(visual.Height))
            .WithAnimation(animation =>
                           animation
                           .WithDuration(delayedFunction.Speed)
                           .WithEasingFunction(delayedFunction.Function));
        }
        public bool SyncChartPoint(ICheckElem checkElem)
        {
            if (checkElem.exists)
            {
                IChartPoint chartPnt = null;
                AddChartPoint(checkElem.uniqueName, codeClassMethod.GetClass(), out chartPnt, false);
            }
            else
            {
                IChartPoint cp = chartPoints.FirstOrDefault((lp) => (lp.data.uniqueName == checkElem.uniqueName));
                if (cp != null)
                {
                    RemoveChartPoint(cp);
                }
            }

            return(false);
        }
        public bool AddChartPoint(CP.Code.IClassVarElement codeElem, out IChartPoint chartPnt, bool checkExistance = true)
        {
            if (checkExistance)
            {
                chartPnt = GetChartPoint(codeElem.uniqueName);
                if (chartPnt != null)
                {
                    return(false);
                }
            }
            chartPnt = CP.Utils.IClassFactory.GetInstance().CreateCP(codeElem, data);
            chartPoints.Add(chartPnt);
            chartPnt.cpStatusChangedEvent += OnCPStatusChanged;
            UpdateStatus(chartPnt);
            addCPEvent.Fire(new CPLineEvArgs(this, chartPnt));

            return(true);
        }
        public DelayedFunction(Func <float, float> baseFunction, IChartPoint point)
        {
            var visual = point.Context.Visual;
            var chart  = point.Context.Chart;

            var delay = point.Context.Index * 10;
            var speed = (float)chart.AnimationsSpeed.TotalMilliseconds + delay;

            var d = delay / speed;

            Function = p =>
            {
                if (p <= d)
                {
                    return(0);
                }
                var p2 = (p - d) / (1 - d);
                return(baseFunction(p2));
            };
            Speed = TimeSpan.FromMilliseconds(speed);
        }
Example #14
0
        private Point GetDisplayPoint(IChartPoint chartPoint)
        {
            if (VerticalAxis == null || TimeLineSource == null)
            {
                return(new Point());
            }

            var ration = (Math.Abs(chartPoint.Value) * VerticalAxis.PointToPixelRatio) / VerticalAxis.MiniTick;
            var pointY = chartPoint.Value < 0 ?
                         VerticalAxis.ZeroPosition + ration :
                         VerticalAxis.ZeroPosition - ration;
            var pointX = TimeLineSource.GetPositionOfMinute(chartPoint.TimeStamp);

            // if the point is out of tollerance give it a new Y coordinate
            if (Math.Abs(chartPoint.Value) > VerticalAxis.ErrorTolerance)
            {
                pointY = chartPoint.Value > 0 ?
                         VerticalAxis.LinesSource.FirstOrDefault().Top - 30 : // bellow the button red line
                         VerticalAxis.LinesSource.FirstOrDefault().Top + 30;  // above the top red line
            }
            return(new Point(pointX, pointY));
        }
Example #15
0
        private void OnListOnKeyDown(object sender, KeyEventArgs keyEventArgs)
        {
            switch (keyEventArgs.KeyCode)
            {
            case Keys.Enter:
                break;

            case Keys.Delete:
                if (list.SelectedRows.Count > 0)
                {
                    DataGridViewRow row = list.SelectedRows[0];
                    Tuple <ILineChartPoints, IChartPoint> tagData = (Tuple <ILineChartPoints, IChartPoint>)row.Tag;
                    //tagData.Item1.remCPEvent.On -= OnRemCpEvent;
                    cpIgnore = tagData.Item2;
                    if (tagData.Item1.RemoveChartPoint(tagData.Item2))
                    {
                    }
                    //list.Rows.RemoveAt( row.Index );
                }
                break;
            }
        }
        public bool RemoveChartPoints(string projName)
        {
            IProjectChartPoints pcp = GetProjectChartPoints(projName);

            if (pcp != null)
            {
                IFileChartPoints fCPs = null;
                while ((fCPs = pcp.filePoints.FirstOrDefault()) != null)
                {
                    if (fCPs.linePoints.Count == 0)
                    {
                        pcp.filePoints.Remove(fCPs);
                    }
                    else
                    {
                        ILineChartPoints lCPs = null;
                        while ((lCPs = fCPs.linePoints.FirstOrDefault()) != null)
                        {
                            if (lCPs.chartPoints.Count == 0)
                            {
                                fCPs.RemoveLineChartPoints(lCPs);
                            }
                            else
                            {
                                IChartPoint cp = null;
                                while ((cp = lCPs.chartPoints.FirstOrDefault()) != null)
                                {
                                    lCPs.RemoveChartPoint(cp);
                                }
                            }
                        }
                    }
                }
                data.projPoints.Remove(pcp);
            }

            return(true);
        }
Example #17
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            var host = GetTemplateChild("PART_LineHost") as Canvas;

            var path = GetTemplateChild("PART_PointsPath") as Path;

            if (path == null)
            {
                return;
            }
            // switch on the tip for the point!
            Observable.FromEventPattern <MouseEventArgs>(path, "PreviewMouseMove")
            .Where(_ => SelectedPoint == null)
            .Select(eve => eve.EventArgs.GetPosition(host))
            .DistinctUntilChanged()
            .Subscribe(position =>
                       SelectedPoint = Points.FirstOrDefault(point => point.DisplayPosition.X + 5 > position.X));

            Observable.FromEventPattern <MouseEventArgs>(path, "MouseLeave")
            .Where(_ => SelectedPoint != null)
            .Subscribe(_ => SelectedPoint = null);
        }
Example #18
0
 public CPStatusEvArgs(IChartPoint _cp)
 {
     cp = _cp;
 }
Example #19
0
 public static void AddToState(this IChartPoint chartPoint, string state)
 {
     chartPoint.Context.Series.AddPointToState(chartPoint, state);
 }
Example #20
0
 public static void RemoveFromState(this IChartPoint chartPoint, string state)
 {
     chartPoint.Context.Series.RemovePointFromState(chartPoint, state);
 }
Example #21
0
 public static void AddToHoverState(this IChartPoint chartPoint)
 {
     chartPoint.Context.Series.AddPointToState(chartPoint, chartPoint.Context.Series.HoverState);
 }
Example #22
0
 public static void RemoveFromHoverState(this IChartPoint chartPoint)
 {
     chartPoint.Context.Series.RemovePointFromState(chartPoint, chartPoint.Context.Series.HoverState);
 }
Example #23
0
 protected CPPropsDeSerializator(SerializationInfo info, StreamingContext context)
 {
     try
     {
         UInt32 projsCount = info.GetUInt32("projPoints.Count");
         for (uint p = 0; p < projsCount; ++p)
         {
             string projName = info.GetString("projName_" + p.ToString());
             Globals.processor.RemoveChartPoints(projName);
             UInt32 filesCount = info.GetUInt32("filePoints.Count_" + p.ToString());
             if (filesCount > 0)
             {
                 IProjectChartPoints projCPs = Globals.processor.GetProjectChartPoints(projName);
                 if (projCPs == null)
                 {
                     Globals.processor.AddProjectChartPoints(projName, out projCPs);
                 }
                 if (projCPs != null)
                 {
                     for (uint f = 0; f < filesCount; ++f)
                     {
                         string           fileName = info.GetString("fileName_" + p.ToString() + f.ToString());
                         IFileChartPoints fPnts    = projCPs.AddFileChartPoints(fileName);
                         if (fPnts != null)
                         {
                             UInt32 linesCount = info.GetUInt32("linePoints.Count_" + p.ToString() + f.ToString());
                             for (uint l = 0; l < linesCount; ++l)
                             {
                                 UInt32           lineNum = info.GetUInt32("lineNum_" + p.ToString() + f.ToString() + l.ToString());
                                 UInt32           linePos = info.GetUInt32("linePos_" + p.ToString() + f.ToString() + l.ToString());
                                 ILineChartPoints lPnts   = fPnts.AddLineChartPoints((int)lineNum, (int)linePos);
                                 if (lPnts != null)
                                 {
                                     UInt32 cpsCount = info.GetUInt32("cpsPoints.Count_" + p.ToString() + f.ToString() + l.ToString());
                                     for (uint cp = 0; cp < cpsCount; ++cp)
                                     {
                                         IChartPoint chartPnt   = null;
                                         string      uniqueName = info.GetString("uniqueName_" + p.ToString() + f.ToString() + l.ToString() + cp.ToString());
                                         bool        enabled    = info.GetBoolean("enabled_" + p.ToString() + f.ToString() + l.ToString() + cp.ToString());
                                         if (lPnts.AddChartPoint(uniqueName, out chartPnt))
                                         {
                                             chartPnt.SetStatus(enabled ? EChartPointStatus.SwitchedOn : EChartPointStatus.SwitchedOff);
                                         }
                                     }
                                 }
                                 if (lPnts.Count == 0)
                                 {
                                     fPnts.RemoveLineChartPoints(lPnts);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex);
     }
 }
Example #24
0
 public BezierData(IChartPoint <TVisual, TLabel, TDrawingContext> chartPoint)
 {
     targetPoint = chartPoint;
 }
 public CPTracker(IChartPoint _cp)
 {
     cp = _cp;
 }
 private static double GetAngleInRadian(IChartPoint value)
 {
     return(Math.PI * (value.Value + 90.0) / 180.0);
 }
Example #27
0
 public TooltipPoint(ISeries series, IChartPoint point)
 {
     this.series = series;
     this.point  = point;
 }
Example #28
0
 public CPLineEvArgs(ILineChartPoints _lineCPs, IChartPoint _cp)
 {
     lineCPs = _lineCPs;
     cp      = _cp;
 }
 private static double GetAngleInRadian(IChartPoint value)
 {
     return Math.PI * (value.Value + 90.0) / 180.0;
 }