Ejemplo n.º 1
0
        private void SetMode(CalculationsMode mode)
        {
            if (mode == _calculationsMode)
            {
                return;
            }


            switch (mode)
            {
            case CalculationsMode.Complex:
                _view.ModeText = "Mode[Complex : f(z)]";
                break;

            case CalculationsMode.Fxy:
                _view.ModeText = "Mode[3D : f(x,y)]";
                break;

            case CalculationsMode.Real:
                _view.ModeText = "Mode[Real : f(x)]";
                break;
            }

            _calculationsMode = mode;
            //  _view.EditChartMenus.SetMode(_calculationsMode);
        }
Ejemplo n.º 2
0
        private void _ModeChanged(CalculationsModeChangedEvent calculationsModeChangedEvent)
        {
            if (calculationsModeChangedEvent.CalculationsMode == _calculationsMode)
            {
                return;
            }

            _view.YVisible = calculationsModeChangedEvent.CalculationsMode == CalculationsMode.Complex ||
                             calculationsModeChangedEvent.CalculationsMode == CalculationsMode.Fxy;

            switch (calculationsModeChangedEvent.CalculationsMode)
            {
            case CalculationsMode.Complex:
                _view.XLabel = "Re(z) =";
                _view.YLabel = "Im(z) =";
                break;

            case CalculationsMode.Fxy:
                _view.XLabel = "       x =";
                _view.YLabel = "       y =";
                break;

            case CalculationsMode.Real:
                _view.XLabel = "       x =";
                break;
            }

            _calculationsMode = calculationsModeChangedEvent.CalculationsMode;
        }
 private void SetMode(CalculationsMode mode)
 {
     if (mode != _calculationsMode)
     {
         _calculationsMode = mode;
         foreach (var chart in _view.Charts)
         {
             chart.Value.Visible = chart.Key == _calculationsMode;
         }
     }
 }
Ejemplo n.º 4
0
        public Function GetFunction(string equation, CalculationsMode calculationsMode, string customFunctionsCode)
        {
            var key = $"{equation}{calculationsMode}{customFunctionsCode}";

            if (!_functionsCache.ContainsKey(key))
            {
                var func = _expressionsEvaluator.Evaluate(equation, customFunctionsCode, calculationsMode);
                _functionsCache.Add(key, func);
            }

            return(_functionsCache[key]);
        }
Ejemplo n.º 5
0
        public NumericalCalculationsPresenter(INumericalCalculationsView view, IErrorHandler errorHandler)
        {
            _view         = view;
            _errorHandler = errorHandler;
            _view.SetOperations(NumericalMethodsInfo.Instance._methods.Keys.ToArray());
            _view.SelectedOperation = NumericalMethodsInfo.Instance._methods.Keys.First();
            _view.OperationChanged += _view_OperationChanged;

            _view_OperationChanged(null, null);

            EventAggregator.Instance.Subscribe <CalculationsModeChangedEvent>(c => _calculationsMode = c.CalculationsMode);

            SharedViewState.Instance.DefaultActions[ViewName.NumericalCalculations] = _view_ComputeClicked;
            _view.ComputeClicked += _view_ComputeClicked;
        }
        private FunctionType FunctionTypeFromCalculationsMode(CalculationsMode calculationsMode, bool isImplicit)
        {
            switch (calculationsMode)
            {
            case CalculationsMode.Real:
                return(isImplicit ? FunctionType.Real2DImplicit : FunctionType.Real2D);

            case CalculationsMode.Complex:
                return(isImplicit ? FunctionType.ComplexImplicit : FunctionType.Complex);

            case CalculationsMode.Fxy:
                return(isImplicit ? FunctionType.Real3DImplicit : FunctionType.Real3D);

            case CalculationsMode.Error:
            default:
                throw new ArgumentOutOfRangeException(nameof(calculationsMode), calculationsMode, null);
            }
        }
Ejemplo n.º 7
0
        public IChart Create(CalculationsMode calculationsMode)
        {
            switch (calculationsMode)
            {
            case CalculationsMode.Real:
                return(CreateChart2D());

            case CalculationsMode.Complex:
                return(CreateComplexChart());

            case CalculationsMode.Fxy:
                return(CreateChart3D());

            case CalculationsMode.Error:
            default:
                throw new ArgumentOutOfRangeException(nameof(calculationsMode), calculationsMode, null);
            }
        }
Ejemplo n.º 8
0
        public void SetMode(CalculationsMode mode)
        {
            //   if (chart2d != null)
            legendPositionsToolStripMenuItem.Visible       =
                colorsOfChartToolStripMenuItem.Visible     =
                    seriesOfChartToolStripMenuItem.Visible = typeOfChartToolStripMenuItem.Visible =
                        mode == CalculationsMode.Real;

            //     if(complexChart!=null)
            colorAssignmentToolStripMenuItem.Visible = countourLinesToolStripMenuItem.Visible =
                mode == CalculationsMode.Complex;

            // if (chart3d != null)
            rescaleToolStripMenuItem.Visible =
                mode == CalculationsMode.Fxy;


            _calculationsMode = mode;
        }
Ejemplo n.º 9
0
        public NumericalCalculationsPresenter(INumericalCalculationsView view, IErrorHandler errorHandler, ISharedViewState sharedViewState, IExceptionsHandler exceptionsHandler, ITextProvider expressionTextProvider, ICodeEditorView customFunctionsEditor, IExpressionsEvaluator expressionsEvaluator)
        {
            _view                      = view;
            _errorHandler              = errorHandler;
            _sharedViewState           = sharedViewState;
            _exceptionsHandler         = exceptionsHandler;
            _expressionTextProvider    = expressionTextProvider;
            this.customFunctionsEditor = customFunctionsEditor;
            this.expressionsEvaluator  = expressionsEvaluator;
            _view.SetOperations(NumericalMethodsInfo.Instance._methods.Keys.ToArray());
            _view.SelectedOperation = NumericalMethodsInfo.Instance._methods.Keys.First();
            _view.OperationChanged += _view_OperationChanged;

            _view_OperationChanged(null, null);

            EventAggregator.Instance.Subscribe <CalculationsModeChangedEvent>(c => _calculationsMode = c.CalculationsMode);

            _sharedViewState.DefaultActions[ViewName.NumericalCalculations] = _view_ComputeClicked;
            _view.ComputeClicked += _view_ComputeClicked;
        }
        public Function Evaluate(string input, string customFunctionsCode, CalculationsMode calculationsMode)
        {
            FunctionType = FunctionTypeFromCalculationsMode(calculationsMode, implicitFunctionRegex.IsMatch(input));


            if (string.IsNullOrEmpty(input) || string.IsNullOrWhiteSpace(input))
            {
                throw new ArgumentException(Strings.GUI_addToChartButton_Click_Expression_should_not_be_empty_);
            }

            MainTslCode            = input;
            CustomFunctionsTslCode =
                !string.IsNullOrEmpty(customFunctionsCode) && !string.IsNullOrWhiteSpace(customFunctionsCode)
                    ? customFunctionsCode
                    : "";


            var function = Compile();

            return(new Function(function, FunctionType)
            {
                TslCode = MainTslCode, CsCode = MainCSharpCode
            });
        }
 public CalculationsModeChangedEvent(CalculationsMode mode)
 {
     CalculationsMode = mode;
 }