public ChartingViewPresenter(IChartingView view, IErrorHandler errorHandler, ISharedViewState sharedViewState,
                                     IExceptionsHandler exceptionsHandler, ITextProvider expressionTextProvider,
                                     ICodeEditorView customFunctionsEditor)
        {
            _view                      = view;
            _errorHandler              = errorHandler;
            _sharedViewState           = sharedViewState;
            _exceptionsHandler         = exceptionsHandler;
            _expressionTextProvider    = expressionTextProvider;
            this.customFunctionsEditor = customFunctionsEditor;

            /////////////var chartAreaValuesViewPresenter = new ChartAreaValuesPresenter(_view.ChartAreaValuesView);


            _sharedViewState.DefaultActions[ViewName.Charting] = ChartAreaValuesView1_AddClicked;


            EventAggregator.Instance.Subscribe <CalculationsModeChangedEvent>(mode => SetMode(mode.CalculationsMode));

            _view.ChartAreaValuesView.QualityChanged += ChartAreaValuesView_QualityChanged;

            _view.ChartAreaValuesView.XMinChanged += ChartAreaValuesView_XMinChanged;
            _view.ChartAreaValuesView.XMaxChanged += ChartAreaValuesView_XMaxChanged;
            _view.ChartAreaValuesView.YMinChanged += ChartAreaValuesView_YMinChanged;
            _view.ChartAreaValuesView.YMaxChanged += ChartAreaValuesView_YMaxChanged;

            foreach (var chart in _view.Charts)
            {
                chart.Value.XMinChanged += (o, e) => _view.ChartAreaValuesView.XMin = chart.Value.XMin;
                chart.Value.XMaxChanged += (o, e) => _view.ChartAreaValuesView.XMax = chart.Value.XMax;
                chart.Value.YMinChanged += (o, e) => _view.ChartAreaValuesView.YMin = chart.Value.YMin;
                chart.Value.YMaxChanged += (o, e) => _view.ChartAreaValuesView.YMax = chart.Value.YMax;
            }

            _view.ChartAreaValuesView.AddClicked   += ChartAreaValuesView1_AddClicked;
            _view.ChartAreaValuesView.ClearClicked += ChartAreaValuesView1_ClearClicked;

            foreach (var chart in _view.Charts)
            {
                chart.Value.SetChartAreaValues(_view.ChartAreaValuesView.XMin, _view.ChartAreaValuesView.XMax,
                                               _view.ChartAreaValuesView.YMin, _view.ChartAreaValuesView.YMax);
            }
        }
        public ChartingViewPresenter(IChartingView view, IErrorHandler errorHandler)
        {
            _view         = view;
            _errorHandler = errorHandler;

            var chartAreaValuesViewPresenter = new ChartAreaValuesPresenter(_view.ChartAreaValuesView);


            SharedViewState.Instance.DefaultActions[ViewName.Charting] = ChartAreaValuesView1_AddClicked;


            EventAggregator.Instance.Subscribe <CalculationsModeChangedEvent>(mode => SetMode(mode.CalculationsMode));

            _view.ChartAreaValuesView.QualityChanged += ChartAreaValuesView_QualityChanged;

            _view.ChartAreaValuesView.XMinChanged += ChartAreaValuesView_XMinChanged;
            _view.ChartAreaValuesView.XMaxChanged += ChartAreaValuesView_XMaxChanged;
            _view.ChartAreaValuesView.YMinChanged += ChartAreaValuesView_YMinChanged;
            _view.ChartAreaValuesView.YMaxChanged += ChartAreaValuesView_YMaxChanged;

            foreach (var chart in _view.Charts)
            {
                chart.Value.XMinChanged += (o, e) => _view.ChartAreaValuesView.XMin = chart.Value.XMin;
                chart.Value.XMaxChanged += (o, e) => _view.ChartAreaValuesView.XMax = chart.Value.XMax;
                chart.Value.YMinChanged += (o, e) => _view.ChartAreaValuesView.YMin = chart.Value.YMin;
                chart.Value.YMaxChanged += (o, e) => _view.ChartAreaValuesView.YMax = chart.Value.YMax;
            }

            _view.ChartAreaValuesView.AddClicked   += ChartAreaValuesView1_AddClicked;
            _view.ChartAreaValuesView.ClearClicked += ChartAreaValuesView1_ClearClicked;

            foreach (var chart in _view.Charts)
            {
                chart.Value.SetChartAreaValues(_view.ChartAreaValuesView.XMin, _view.ChartAreaValuesView.XMax,
                                               _view.ChartAreaValuesView.YMin, _view.ChartAreaValuesView.YMax);
            }
        }