LocalsVM(IDebuggerSettings debuggerSettings, ILocalsSettings localsSettings, IMethodLocalProvider methodLocalProvider, IStackFrameService stackFrameService, ITheDebugger theDebugger, IAskUser askUser, IClassificationFormatMapService classificationFormatMapService, ITextElementProvider textElementProvider) { dispatcher = Dispatcher.CurrentDispatcher; this.askUser = askUser; this.methodLocalProvider = methodLocalProvider; this.debuggerSettings = debuggerSettings; this.stackFrameService = stackFrameService; TheDebugger = theDebugger; var classificationFormatMap = classificationFormatMapService.GetClassificationFormatMap(AppearanceCategoryConstants.UIMisc); printerContext = new PrinterContext(classificationFormatMap, textElementProvider) { SyntaxHighlight = debuggerSettings.SyntaxHighlightLocals, UseHexadecimal = debuggerSettings.UseHexadecimal, TypePrinterFlags = TypePrinterFlags.ShowArrayValueSizes, }; printerContext.TypePrinterFlags = GetTypePrinterFlags(localsSettings, printerContext.TypePrinterFlags); printerContext.TypePrinterFlags = GetTypePrinterFlags(debuggerSettings, printerContext.TypePrinterFlags); methodLocalProvider.NewMethodInfoAvailable += MethodLocalProvider_NewMethodInfoAvailable; Root = new SharpTreeNode(); stackFrameService.StackFramesUpdated += StackFrameService_StackFramesUpdated; stackFrameService.PropertyChanged += StackFrameService_PropertyChanged; theDebugger.OnProcessStateChanged += TheDebugger_OnProcessStateChanged; theDebugger.ProcessRunning += TheDebugger_ProcessRunning; debuggerSettings.PropertyChanged += DebuggerSettings_PropertyChanged; localsSettings.PropertyChanged += LocalsSettings_PropertyChanged; classificationFormatMap.ClassificationFormatMappingChanged += ClassificationFormatMap_ClassificationFormatMappingChanged; }
LocalsVM(IImageManager imageManager, IDebuggerSettings debuggerSettings, ILocalsSettings localsSettings, IMethodLocalProvider methodLocalProvider, IStackFrameManager stackFrameManager, ITheDebugger theDebugger, IAskUser askUser) { this.dispatcher = Dispatcher.CurrentDispatcher; this.askUser = askUser; this.methodLocalProvider = methodLocalProvider; this.debuggerSettings = debuggerSettings; this.stackFrameManager = stackFrameManager; this.theDebugger = theDebugger; this.printerContext = new PrinterContext(imageManager) { SyntaxHighlight = debuggerSettings.SyntaxHighlightLocals, UseHexadecimal = debuggerSettings.UseHexadecimal, TypePrinterFlags = TypePrinterFlags.ShowArrayValueSizes, }; this.printerContext.TypePrinterFlags = GetTypePrinterFlags(localsSettings, this.printerContext.TypePrinterFlags); this.printerContext.TypePrinterFlags = GetTypePrinterFlags(debuggerSettings, this.printerContext.TypePrinterFlags); methodLocalProvider.NewMethodInfoAvailable += MethodLocalProvider_NewMethodInfoAvailable; this.rootNode = new SharpTreeNode(); stackFrameManager.StackFramesUpdated += StackFrameManager_StackFramesUpdated; stackFrameManager.PropertyChanged += StackFrameManager_PropertyChanged; theDebugger.OnProcessStateChanged += TheDebugger_OnProcessStateChanged; theDebugger.ProcessRunning += TheDebugger_ProcessRunning; debuggerSettings.PropertyChanged += DebuggerSettings_PropertyChanged; localsSettings.PropertyChanged += LocalsSettings_PropertyChanged; }
public TestableGenericPlcViewModel( IProvidePlcInformation informationProvider, ICommandControllers controllerCommander, IProvideStatesForScreenActivation states, IProvideStatesForScreenActivation detailStates, ISaveToFileSystem saver, ILoadFromFileSystem loader, IAskUser askUser, IModuleScreen parent, string moduleName) : base(informationProvider, controllerCommander, states, detailStates, saver, loader, askUser, parent, moduleName, new NonDispatchingDispatcher()) { }
/// <summary> /// Initializes a new <see cref="GenericPlcViewModel"/> instance. /// </summary> /// <param name="informationProvider"> /// The information provider is mainly used to get information about the platform /// modules plc controllers, but it also provides some interaction possibilities with those controllers. /// </param> /// <param name="controllerCommander"> /// The controller commander provides functions to interact with a certain controller. /// This view model is responsible for creating <see cref="MasterDetailViewModel"/> instances which make /// use of the controller commander. /// </param> /// <param name="states"> /// The states represent the three main view states of the generic page (Loading - Content - Error) and /// provide functions to switch between those. /// </param> /// <param name="detailStates"> /// The detail states represent the three detail view states of the generic page (Loading - Content - Error) and /// provide functions to switch between those. /// </param> /// <param name="saver"> /// The saver provides the possibility to save a string to the filesystem, used by the export /// functionality of the generic page. /// </param> /// <param name="loader"> /// The loader provides the possibility to load a file from the filesystem, used by the import /// functionality of the generic page. /// </param> /// <param name="askUser"> /// The ask user instance can get used to interact with the user. /// </param> /// <param name="parent"> /// The view model of the parent screen is used to navigate back to it. /// </param> /// <param name="moduleName"> /// The module name identifies the module this view model is responsible for. /// </param> /// <param name="dispatcher"> /// The dispatcher is used to delegate all const-intensive operation to background threads and vice versa. /// </param> public GenericPlcViewModel( IProvidePlcInformation informationProvider, ICommandControllers controllerCommander, IProvideStatesForScreenActivation states, IProvideStatesForScreenActivation detailStates, ISaveToFileSystem saver, ILoadFromFileSystem loader, IAskUser askUser, IModuleScreen parent, string moduleName, IDispatcher dispatcher) : this() { _informationProvider = informationProvider; _controllerCommander = controllerCommander; _states = states; _detailStates = detailStates; _saver = saver; _loader = loader; _askUser = askUser; _moduleName = moduleName; _parenModuleScreen = parent; DisplayName = "Detail View"; }