public void ShowValue(NuGenBaseValueRefresher valueRefresher, FrameWrapper frame, string initialExpression) { if (frame == null) { MessageBox.Show("There is no active frame and thus expressions cannot be evaluated.\n\nFrames can be changed by using the Call Stack Panel", "No active frame", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { if (!IsHandleCreated) { CreateHandle(); } objectTree.Sorted = false; UpdateDisplayedValue = false; objectTree.SelectedNode = RootNode; UpdateDisplayedValue = true; NuGenIValueFormatter rootValueFormatter = new NuGenRootValueFormatter("Viewed object"); rootValueFormatter.ValueRefresher = valueRefresher; rootValueFormatter.FieldNode = RootNode; RootNode.Tag = rootValueFormatter; RootNode.Text = rootValueFormatter.Name; FrameRefresher = new NuGenFrameRefresher(NuGenDebugEventHandler.Instance.EventObjects.Thread, frame.ChainIndex, frame.FrameIndex, frame.IsActiveFrame); ProcessWrapper processWrapper = NuGenDebugEventHandler.Instance.EventObjects.Thread.GetProcess(); NuGenEvaluationHandler evaluationHandler = new NuGenEvaluationHandler(FrameRefresher); EvalWrapper evalWrapper = NuGenDebugEventHandler.Instance.EventObjects.Thread.CreateEval(); EvaluationContext = new NuGenEvaluationContext(processWrapper, evaluationHandler, evalWrapper, NuGenDebugEventHandler.Instance.EventObjects.Thread); ValueDisplayer = new NuGenValueDisplayer(evaluationContext); ValueDisplayer.ArrayElementEvaluated += new ArrayElementEvaluatedDelegate(ValueDisplayer_ArrayElementEvaluated); ValueDisplayer.ErrorOccurred += new ErrorOccurredDelegate(ValueDisplayer_ErrorOccurred); ValueDisplayer.EvaluatedNull += new EvaluatedNullDelegate(ValueDisplayer_EvaluatedNull); ValueDisplayer.FieldEvaluated += new FieldEvaluatedDelegate(ValueDisplayer_FieldEvaluated); ValueDisplayer.PropertyEvaluated += new PropertyEvaluatedDelegate(ValueDisplayer_PropertyEvaluated); ValueDisplayer.StateChanging += new StateChangingDelegate(ValueDisplayer_StateChanging); ValueDisplayer.StringValueEvaluated += new StringValueEvaluatedDelegate(ValueDisplayer_StringValueEvaluated); ValueDisplayer.ToStringEvaluated += new ToStringEvaluatedDelegate(ValueDisplayer_ToStringEvaluated); ValueDisplayer.TypeInspected += new TypeInspectedDelegate(ValueDisplayer_TypeInspected); if (valueRefresher != null) { DisplayValue(valueRefresher, RootNode); } fieldList.Sort(); objectTree.Sorted = true; DisplayExpressionText(initialExpression); expressionComboBox.Update(); ActiveControl = expressionComboBox; ShowDialog(); } }
private void evaluateButton_Click(object sender, EventArgs e) { DisplayExpressionText(expressionComboBox.Text); ClearEvaluationResults(); try { NuGenParser parser = new NuGenParser(); List <NuGenBaseExpression> expressions = parser.Parse(expressionComboBox.Text); if (expressions.Count > 0 && expressions[0] is NuGenMemberExpression) { throw new NuGenParserException("The expression cannot start with a member expression (most likely an assembly is not in the project and therefore type information is not available)."); } NuGenExpressionValueRefresher expressionRefresher = new NuGenExpressionValueRefresher(expressions, FrameRefresher, EvaluationContext.EvaluationHandler, expressionComboBox.Text); objectTree.Sorted = false; UpdateDisplayedValue = false; objectTree.SelectedNode = RootNode; UpdateDisplayedValue = true; NuGenIValueFormatter rootValueFormatter = new NuGenRootValueFormatter("Evaluated expression: " + expressionComboBox.Text); rootValueFormatter.ValueRefresher = expressionRefresher; rootValueFormatter.FieldNode = RootNode; RootNode.Tag = rootValueFormatter; RootNode.Text = rootValueFormatter.Name; DisplayValue(expressionRefresher, RootNode); fieldList.Sort(); objectTree.Sorted = true; } catch (NuGenParserException parserException) { DisplayValueFormatter(new NuGenErrorValueFormatter("Parser exception", parserException.Message)); } catch (NuGenEvaluationException evaluationException) { DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation exception", evaluationException.Message)); } catch (NuGenEvaluationHandlerException evaluationHandlerException) { DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation running exception", evaluationHandlerException.Message)); } catch (NugenMissingModuleException missingModuleException) { DisplayValueFormatter(new NuGenMissingModuleFormatter(missingModuleException.MissingModule)); } catch (InvalidOperationException invalidOperationException) { DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation exception", invalidOperationException.Message)); } catch (Exception exception) { DisplayValueFormatter(new NuGenErrorValueFormatter("Unexpected exception", exception.Message)); } expressionComboBox.Focus(); }
private void evaluateButton_Click(object sender, EventArgs e) { DisplayExpressionText(expressionComboBox.Text); ClearEvaluationResults(); try { NuGenParser parser = new NuGenParser(); List<NuGenBaseExpression> expressions = parser.Parse(expressionComboBox.Text); if (expressions.Count > 0 && expressions[0] is NuGenMemberExpression) { throw new NuGenParserException("The expression cannot start with a member expression (most likely an assembly is not in the project and therefore type information is not available)."); } NuGenExpressionValueRefresher expressionRefresher = new NuGenExpressionValueRefresher(expressions, FrameRefresher, EvaluationContext.EvaluationHandler, expressionComboBox.Text); objectTree.Sorted = false; UpdateDisplayedValue = false; objectTree.SelectedNode = RootNode; UpdateDisplayedValue = true; NuGenIValueFormatter rootValueFormatter = new NuGenRootValueFormatter("Evaluated expression: " + expressionComboBox.Text); rootValueFormatter.ValueRefresher = expressionRefresher; rootValueFormatter.FieldNode = RootNode; RootNode.Tag = rootValueFormatter; RootNode.Text = rootValueFormatter.Name; DisplayValue(expressionRefresher, RootNode); fieldList.Sort(); objectTree.Sorted = true; } catch (NuGenParserException parserException) { DisplayValueFormatter(new NuGenErrorValueFormatter("Parser exception", parserException.Message)); } catch (NuGenEvaluationException evaluationException) { DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation exception", evaluationException.Message)); } catch (NuGenEvaluationHandlerException evaluationHandlerException) { DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation running exception", evaluationHandlerException.Message)); } catch (NugenMissingModuleException missingModuleException) { DisplayValueFormatter(new NuGenMissingModuleFormatter(missingModuleException.MissingModule)); } catch (InvalidOperationException invalidOperationException) { DisplayValueFormatter(new NuGenErrorValueFormatter("Evaluation exception", invalidOperationException.Message)); } catch (Exception exception) { DisplayValueFormatter(new NuGenErrorValueFormatter("Unexpected exception", exception.Message)); } expressionComboBox.Focus(); }