コード例 #1
0
 public void MoveDiagramData(int horizontalPoints, int verticalPoints)
 {
     if (!_diagramDataPanAndZoomer.MoveLimits(AllSeriesUnited, Calculator, horizontalPoints, verticalPoints, ref DiagramDataExtremums))
     {
         return;
     }
     ExtractDataBetweenLimits();
     DiagramDataExtremums = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
     Draw();
 }
コード例 #2
0
        private void ShowThisMonth(object sender, RoutedEventArgs e)
        {
            var date = AllSeriesUnited.DiagramData.Last().Key;

            DiagramDataExtremums.MinDate = new DateTime(date.Year, date.Month, 1);
            DiagramDataExtremums.MaxDate = date;
            ExtractDataBetweenLimits();
            DiagramDataExtremums = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
            Draw();
        }
コード例 #3
0
        private void ChangeDiagramForNewStyle(DiagramMode newDiagramMode)
        {
            DiagramMode     = newDiagramMode;
            AllSeriesUnited = new DiagramDataSeriesUnited(AllDiagramData);
            AllSeriesUnited.StackAllData(newDiagramMode, GroupInterval);

            ExtractDataBetweenLimits();
            DiagramDataExtremums = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
            Draw();
        }
コード例 #4
0
 public void ZoomDiagram(int delta)
 {
     if (!_diagramDataPanAndZoomer.ZoomLimits(CurrentSeriesUnited, GroupInterval, delta, ref DiagramDataExtremums))
     {
         return;
     }
     ExtractDataBetweenLimits();
     DiagramDataExtremums = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
     Draw();
 }
コード例 #5
0
 public void ChangeLine()
 {
     if (DiagramMode != DiagramMode.SeparateLines)
     {
         return;
     }
     if (CurrentSeriesUnited.ActiveLine == CurrentSeriesUnited.SeriesCount - 1)
     {
         CurrentSeriesUnited.ActiveLine = 0;
     }
     else
     {
         CurrentSeriesUnited.ActiveLine++;
     }
     DiagramDataExtremums = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
     Draw();
 }
コード例 #6
0
        private void ChangeDiagramForNewGrouping(Every groupPeriod)
        {
            GroupInterval   = groupPeriod;
            AllSeriesUnited = new DiagramDataSeriesUnited(AllDiagramData);
            AllSeriesUnited.GroupAllData(groupPeriod, DiagramMode);

            if (groupPeriod == Every.Year)
            {
                DefineYearsLimits();
            }
            else
            {
                DiagramDataExtremums.MaxDate = new DateTime(DiagramDataExtremums.MaxDate.Year, 12, 31);
            }

            ExtractDataBetweenLimits();
            DiagramDataExtremums = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
            Draw();
        }
コード例 #7
0
        void BarDiagramControlOnLoaded(object sender, RoutedEventArgs e)
        {
            // набор серий надо преобразовать в структуру,
            // где одной дате соответствуют значения для разных серий
            AllSeriesUnited = new DiagramDataSeriesUnited(AllDiagramData);
            if (AllSeriesUnited.SeriesCount == 0)
            {
                return;
            }
            GroupInterval = AllDiagramData.TimeInterval;
            DiagramMode   = AllDiagramData.Mode;

            CurrentSeriesUnited      = new DiagramDataSeriesUnited(AllSeriesUnited);
            DiagramDataExtremums     = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
            _diagramDrawer           = new DiagramDrawer();
            _diagramDataPanAndZoomer = new DiagramDataPanAndZoomer();
            Draw();
            var window = Window.GetWindow(this);

            if (window != null)
            {
                window.KeyDown += OnKeyDown;
            }

//      var diagramLegendCreator = new DiagramLegendCreator(AllDiagramData);
//      LegendImage.Source = diagramLegendCreator.Create();



            DiagramLegend = new ObservableCollection <DiagramLegendItem>();
            foreach (var series in AllDiagramData.Series)
            {
                DiagramLegend.Add(new DiagramLegendItem()
                {
                    SeriesName = series.Name, FontColor = series.PositiveBrushColor
                });
            }
            Legend.ItemsSource = DiagramLegend;

            StatusBar.Text = "Ctrl+LeftButton - сдвиг изображения; LeftButton - зум прямоугольника";
        }
コード例 #8
0
 public void ShowAll()
 {
     CurrentSeriesUnited.DiagramData = new SortedList <DateTime, List <double> >(AllSeriesUnited.DiagramData);
     DiagramDataExtremums            = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
     Draw();
 }
コード例 #9
0
 public void ZoomRectFromDiagramData(Point leftTop, Point rightBottom)
 {
     CurrentSeriesUnited.DiagramData = _diagramDataPanAndZoomer.FindLimitsForRect(CurrentSeriesUnited.DiagramData, Calculator, leftTop, rightBottom);
     DiagramDataExtremums            = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
     Draw();
 }