internal CombinedValueChangedActionItem(string displayName, ObservableViewModelService serviceProvider, string observableNodePath, ObservableViewModelIdentifier identifier, IEnumerable<IActionItem> actionItems) : base(displayName, actionItems) { if (serviceProvider == null) throw new ArgumentNullException("serviceProvider"); this.serviceProvider = serviceProvider; this.observableNodePath = observableNodePath; this.identifier = identifier; }
protected override void FreezeMembers() { service = null; modelContainer = null; nodePath = null; observableNodePath = null; index = null; }
protected override void FreezeMembers() { service = null; NodePath = null; ObservableNodePath = null; Index = null; PreviousValue = null; }
public TestContext() { ObservableViewModelService = new ObservableViewModelService(); ServiceProvider = new ViewModelServiceProvider(); ServiceProvider.RegisterService(new DispatcherService(Dispatcher.CurrentDispatcher)); ServiceProvider.RegisterService(ObservableViewModelService); NodeContainer = new NodeContainer(); }
public ModelNodeCommandWrapper(IViewModelServiceProvider serviceProvider, INodeCommand nodeCommand, GraphNodePath nodePath, IEnumerable<IDirtiable> dirtiables) : base(serviceProvider, dirtiables) { if (nodeCommand == null) throw new ArgumentNullException(nameof(nodeCommand)); NodePath = nodePath; NodeCommand = nodeCommand; Service = serviceProvider.Get<ObservableViewModelService>(); }
public VirtualNodeCommandWrapper(IViewModelServiceProvider serviceProvider, INodeCommand nodeCommand, IGraphNode node, Index index) : base(serviceProvider) { if (nodeCommand == null) throw new ArgumentNullException(nameof(nodeCommand)); if (node == null) throw new ArgumentNullException(nameof(node)); this.node = node; this.index = index; NodeCommand = nodeCommand; Service = serviceProvider.Get<ObservableViewModelService>(); }
/// <summary> /// Initializes a new instance of the <see cref="ObservableViewModel"/> class. /// </summary> /// <param name="serviceProvider">A service provider that can provide a <see cref="IDispatcherService"/> and an <see cref="ObservableViewModelService"/> to use for this view model.</param> /// <param name="modelContainer">A <see cref="ModelContainer"/> to use to build view model nodes.</param> private ObservableViewModel(IViewModelServiceProvider serviceProvider, ModelContainer modelContainer) : base(serviceProvider) { if (modelContainer == null) { throw new ArgumentNullException("modelContainer"); } this.modelContainer = modelContainer; observableViewModelService = serviceProvider.Get <ObservableViewModelService>(); }
public ModelNodeCommandWrapper(IViewModelServiceProvider serviceProvider, INodeCommand nodeCommand, GraphNodePath nodePath) : base(serviceProvider) { if (nodeCommand == null) { throw new ArgumentNullException(nameof(nodeCommand)); } NodePath = nodePath; NodeCommand = nodeCommand; Service = serviceProvider.Get <ObservableViewModelService>(); }
internal CombinedValueChangedActionItem(string displayName, ObservableViewModelService serviceProvider, string observableNodePath, ObservableViewModelIdentifier identifier, IEnumerable <IActionItem> actionItems) : base(displayName, actionItems) { if (serviceProvider == null) { throw new ArgumentNullException("serviceProvider"); } this.serviceProvider = serviceProvider; this.observableNodePath = observableNodePath; this.identifier = identifier; }
/// <summary> /// Initializes a new instance of the <see cref="ObservableViewModel"/> class. /// </summary> /// <param name="serviceProvider">A service provider that can provide a <see cref="IDispatcherService"/> and an <see cref="ObservableViewModelService"/> to use for this view model.</param> /// <param name="modelContainer">A <see cref="ModelContainer"/> to use to build view model nodes.</param> /// <param name="dirtiables">The list of <see cref="IDirtiableViewModel"/> objects linked to this view model.</param> private ObservableViewModel(IViewModelServiceProvider serviceProvider, ModelContainer modelContainer, IEnumerable<IDirtiableViewModel> dirtiables) : base(serviceProvider) { if (modelContainer == null) throw new ArgumentNullException("modelContainer"); if (dirtiables == null) throw new ArgumentNullException("dirtiables"); this.modelContainer = modelContainer; this.dirtiables = dirtiables; this.dirtiables.ForEach(x => x.DirtinessUpdated += DirtinessUpdated); observableViewModelService = serviceProvider.Get<ObservableViewModelService>(); Logger = GlobalLogger.GetLogger(DefaultLoggerName); }
public ValueChangedActionItem(string name, ObservableViewModelService service, ModelNodePath nodePath, string observableNodePath, ObservableViewModelIdentifier identifier, object index, IEnumerable<IDirtiableViewModel> dirtiables, object previousValue) : base(name, dirtiables) { if (service == null) throw new ArgumentNullException("service"); if (!nodePath.IsValid) throw new InvalidOperationException("Unable to retrieve the path of the modified node."); this.service = service; this.identifier = identifier; this.PreviousValue = previousValue; NodePath = nodePath; Index = index; ObservableNodePath = observableNodePath; }
/// <summary> /// Initializes a new instance of the <see cref="ObservableViewModel"/> class. /// </summary> /// <param name="serviceProvider">A service provider that can provide a <see cref="IDispatcherService"/> and an <see cref="ObservableViewModelService"/> to use for this view model.</param> /// <param name="nodeContainer">A <see cref="NodeContainer"/> to use to build view model nodes.</param> /// <param name="modelNode">The root model node of the view model to generate.</param> /// <param name="dirtiables">The list of <see cref="IDirtiable"/> objects linked to this view model.</param> public ObservableViewModel(IViewModelServiceProvider serviceProvider, NodeContainer nodeContainer, IGraphNode modelNode, IEnumerable <IDirtiable> dirtiables) : this(serviceProvider, nodeContainer, dirtiables.SafeArgument("dirtiables").ToList()) { if (modelNode == null) { throw new ArgumentNullException(nameof(modelNode)); } var node = ObservableViewModelService.ObservableNodeFactory(this, "Root", modelNode.Content.IsPrimitive, modelNode, new GraphNodePath(modelNode), modelNode.Content.Type, null); node.Initialize(); RootNode = node; node.CheckConsistency(); }
public ModelNodeCommandWrapper(IViewModelServiceProvider serviceProvider, INodeCommand nodeCommand, string observableNodePath, ObservableViewModel owner, ModelNodePath nodePath, IEnumerable<IDirtiableViewModel> dirtiables) : base(serviceProvider, dirtiables) { if (nodeCommand == null) throw new ArgumentNullException(nameof(nodeCommand)); if (owner == null) throw new ArgumentNullException(nameof(owner)); NodePath = nodePath; // Note: the owner should not be stored in the command because we want it to be garbage collectable Identifier = owner.Identifier; ModelContainer = owner.ModelContainer; NodeCommand = nodeCommand; Service = serviceProvider.Get<ObservableViewModelService>(); ObservableNodePath = observableNodePath; }
public CombinedNodeCommandWrapper(IViewModelServiceProvider serviceProvider, string name, string observableNodePath, ObservableViewModelIdentifier identifier, IReadOnlyCollection<ModelNodeCommandWrapper> commands) : base(serviceProvider, null) { if (commands == null) throw new ArgumentNullException("commands"); if (commands.Count == 0) throw new ArgumentException(@"The collection of commands to combine is empty", "commands"); if (commands.Any(x => !ReferenceEquals(x.NodeCommand, commands.First().NodeCommand))) throw new ArgumentException(@"The collection of commands to combine cannot contain different node commands", "commands"); service = serviceProvider.Get<ObservableViewModelService>(); this.commands = commands; this.name = name; this.identifier = identifier; this.serviceProvider = serviceProvider; ObservableNodePath = observableNodePath; }
/// <summary> /// Initializes a new instance of the <see cref="ObservableViewModel"/> class. /// </summary> /// <param name="serviceProvider">A service provider that can provide a <see cref="IDispatcherService"/> and an <see cref="ObservableViewModelService"/> to use for this view model.</param> /// <param name="propertyProvider">The object providing properties to display</param> /// <param name="graphNode">The root node of the view model to generate.</param> private ObservableViewModel(IViewModelServiceProvider serviceProvider, IPropertiesProviderViewModel propertyProvider, IGraphNode graphNode) : this(serviceProvider) { if (graphNode == null) { throw new ArgumentNullException(nameof(graphNode)); } PropertiesProvider = propertyProvider; var node = ObservableViewModelService.ObservableNodeFactory(this, "Root", graphNode.Content.IsPrimitive, graphNode, new GraphNodePath(graphNode), graphNode.Content.Type, null); node.Initialize(); RootNode = node; node.CheckConsistency(); }
public CombinedNodeCommandWrapper(IViewModelServiceProvider serviceProvider, string name, string observableNodePath, ObservableViewModelIdentifier identifier, IEnumerable <ModelNodeCommandWrapper> commands) : base(serviceProvider, null) { if (commands == null) { throw new ArgumentNullException("commands"); } service = serviceProvider.Get <ObservableViewModelService>(); this.commands = commands; this.name = name; this.identifier = identifier; actionStack = serviceProvider.Get <ITransactionalActionStack>(); ObservableNodePath = observableNodePath; }
public VirtualNodeCommandWrapper(IViewModelServiceProvider serviceProvider, INodeCommand nodeCommand, IGraphNode node, Index index) : base(serviceProvider) { if (nodeCommand == null) { throw new ArgumentNullException(nameof(nodeCommand)); } if (node == null) { throw new ArgumentNullException(nameof(node)); } this.node = node; this.index = index; NodeCommand = nodeCommand; Service = serviceProvider.Get <ObservableViewModelService>(); }
/// <summary> /// Initializes a new instance of the <see cref="ObservableViewModel"/> class. /// </summary> /// <param name="serviceProvider">A service provider that can provide a <see cref="IDispatcherService"/> and an <see cref="ObservableViewModelService"/> to use for this view model.</param> /// <param name="modelContainer">A <see cref="ModelContainer"/> to use to build view model nodes.</param> /// <param name="dirtiables">The list of <see cref="IDirtiableViewModel"/> objects linked to this view model.</param> private ObservableViewModel(IViewModelServiceProvider serviceProvider, ModelContainer modelContainer, IEnumerable <IDirtiableViewModel> dirtiables) : base(serviceProvider) { if (modelContainer == null) { throw new ArgumentNullException("modelContainer"); } if (dirtiables == null) { throw new ArgumentNullException("dirtiables"); } this.modelContainer = modelContainer; this.dirtiables = dirtiables; this.dirtiables.ForEach(x => x.DirtinessUpdated += DirtinessUpdated); observableViewModelService = serviceProvider.Get <ObservableViewModelService>(); Logger = GlobalLogger.GetLogger(DefaultLoggerName); }
public ModelNodeCommandWrapper(IViewModelServiceProvider serviceProvider, INodeCommand nodeCommand, string observableNodePath, ObservableViewModelIdentifier identifier, ModelNodePath nodePath, ModelContainer modelContainer, IEnumerable <IDirtiableViewModel> dirtiables) : base(serviceProvider, dirtiables) { if (nodeCommand == null) { throw new ArgumentNullException("nodeCommand"); } if (modelContainer == null) { throw new ArgumentNullException("modelContainer"); } this.identifier = identifier; this.nodePath = nodePath; this.modelContainer = modelContainer; this.nodeCommand = nodeCommand; service = serviceProvider.Get <ObservableViewModelService>(); ObservableNodePath = observableNodePath; }
public ValueChangedActionItem(string name, ObservableViewModelService service, ModelNodePath nodePath, string observableNodePath, ObservableViewModelIdentifier identifier, object index, IEnumerable <IDirtiableViewModel> dirtiables, object previousValue) : base(name, dirtiables) { if (service == null) { throw new ArgumentNullException("service"); } if (!nodePath.IsValid) { throw new InvalidOperationException("Unable to retrieve the path of the modified node."); } this.service = service; this.identifier = identifier; this.PreviousValue = previousValue; NodePath = nodePath; Index = index; ObservableNodePath = observableNodePath; }
public ModelNodeCommandWrapper(IViewModelServiceProvider serviceProvider, INodeCommand nodeCommand, string observableNodePath, ObservableViewModel owner, ModelNodePath nodePath, IEnumerable <IDirtiableViewModel> dirtiables) : base(serviceProvider, dirtiables) { if (nodeCommand == null) { throw new ArgumentNullException(nameof(nodeCommand)); } if (owner == null) { throw new ArgumentNullException(nameof(owner)); } NodePath = nodePath; // Note: the owner should not be stored in the command because we want it to be garbage collectable Identifier = owner.Identifier; ModelContainer = owner.ModelContainer; NodeCommand = nodeCommand; Service = serviceProvider.Get <ObservableViewModelService>(); ObservableNodePath = observableNodePath; }
public CombinedNodeCommandWrapper(IViewModelServiceProvider serviceProvider, string name, string observableNodePath, ObservableViewModelIdentifier identifier, IReadOnlyCollection <ModelNodeCommandWrapper> commands) : base(serviceProvider, null) { if (commands == null) { throw new ArgumentNullException("commands"); } if (commands.Count == 0) { throw new ArgumentException(@"The collection of commands to combine is empty", "commands"); } if (commands.Any(x => !ReferenceEquals(x.NodeCommand, commands.First().NodeCommand))) { throw new ArgumentException(@"The collection of commands to combine cannot contain different node commands", "commands"); } service = serviceProvider.Get <ObservableViewModelService>(); this.commands = commands; this.name = name; this.identifier = identifier; this.serviceProvider = serviceProvider; ObservableNodePath = observableNodePath; }