Пример #1
0
        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;
        }
Пример #2
0
        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";
 }