Esempio n. 1
0
        protected virtual void OnExpressionChanged(IExpressionView obj)
        {
            Action <IExpressionView> handler = ExpressionChanged;

            if (handler != null)
            {
                handler(obj);
            }
        }
Esempio n. 2
0
        private async Task ReEvaluate()
        {
            _lastRequestTime = DateTime.Now;

            if (_isEvaluating)
            {
                return;
            }

            DateTime initialRequesetTime = _lastRequestTime;

            _isEvaluating = true;

            LineExpression[] expressions = _processingView.Expressions.TakeWhile(r => r.IsValid)
                                           .Select(r => new LineExpression(r.Name, r.Expression))
                                           .ToArray();

            string input = _processingView.ExampleText;

            Argument[] results = await Task.Factory.StartNew(delegate
            {
                var processor = new Processor(_provider, expressions);
                return(processor.Parse(input).All.ToArray());
            });

            _isEvaluating = false;

            for (int i = 1; i < results.Length; i++)
            {
                IValue          value      = results[i].ArgumentValue;
                IExpressionView expression = _processingView.Expressions.FirstOrDefault(e => e.Name == results[i].Name);

                if (expression == null)
                {
                    continue;
                }

                if (value.HasError)
                {
                    expression.Value = "#ERR";
                    expression.Error = value.ErrorMessage;
                }
                else
                {
                    expression.Value = value.UntypedValue.ToString();
                    expression.Error = null;
                }
            }

            if (initialRequesetTime != _lastRequestTime)
            {
                await ReEvaluate();
            }
        }
        public ExpressionViewPresenter(IExpressionView view)
        {
            _view = view;
            _view.ExpressionTextBox.TextChanged += ExpressionTextBox_TextChanged;
            _view.ExpressionTextBox.KeyPress    += ExpressionTextBox_KeyPress;

            SharedViewState.Instance.PropertyChanged += (o, e) =>
            {
                if (e.PropertyName == nameof(SharedViewState.Instance.CurrentView))
                {
                    _view.Visible =
                        !(SharedViewState.Instance.CurrentView == ViewName.Scripting ||
                          SharedViewState.Instance.CurrentView == ViewName.CustomFunctions);
                }
            };
        }
        public ExpressionViewPresenter(IExpressionView view, ISharedViewState sharedViewState, IModeDeterminer modeDeterminer)
        {
            _view               = view;
            _sharedViewState    = sharedViewState;
            this.modeDeterminer = modeDeterminer;
            _view.ExpressionTextBox.TextChanged += ExpressionTextBox_TextChanged;
            _view.ExpressionTextBox.KeyPress    += ExpressionTextBox_KeyPress;

            _sharedViewState.PropertyChanged += (o, e) =>
            {
                if (e.PropertyName == nameof(_sharedViewState.CurrentView))
                {
                    _view.Visible =
                        !(_sharedViewState.CurrentView == ViewName.Scripting ||
                          _sharedViewState.CurrentView == ViewName.CustomFunctions);
                }
            };
        }
Esempio n. 5
0
 private void SingleExpressionChanged(IExpressionView expressionView)
 {
     timChangeTimer.Start();
 }
Esempio n. 6
0
 private async void HandleExpressionChanged(IExpressionView expressionView)
 {
     await ReEvaluate();
 }