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;
 }
Ejemplo n.º 2
0
 protected override void FreezeMembers()
 {
     service            = null;
     modelContainer     = null;
     nodePath           = null;
     observableNodePath = null;
     index = null;
 }
Ejemplo n.º 3
0
 protected override void FreezeMembers()
 {
     service            = null;
     NodePath           = null;
     ObservableNodePath = null;
     Index         = null;
     PreviousValue = null;
 }
Ejemplo n.º 4
0
 protected override void FreezeMembers()
 {
     service = null;
     NodePath = null;
     ObservableNodePath = null;
     Index = null;
     PreviousValue = null;
 }
Ejemplo n.º 5
0
 public TestContext()
 {
     ObservableViewModelService = new ObservableViewModelService();
     ServiceProvider = new ViewModelServiceProvider();
     ServiceProvider.RegisterService(new DispatcherService(Dispatcher.CurrentDispatcher));
     ServiceProvider.RegisterService(ObservableViewModelService);
     NodeContainer = new NodeContainer();
 }
Ejemplo n.º 6
0
 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>();
 }
Ejemplo n.º 8
0
 /// <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>();
 }
Ejemplo n.º 9
0
 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;
 }
Ejemplo n.º 11
0
 /// <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);
 }
Ejemplo n.º 12
0
 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;
 }
Ejemplo n.º 13
0
        /// <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();
        }
Ejemplo n.º 14
0
 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;
 }
Ejemplo n.º 16
0
 /// <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();
 }
Ejemplo n.º 17
0
 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;
 }
Ejemplo n.º 18
0
 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>();
 }
Ejemplo n.º 19
0
 /// <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);
 }
Ejemplo n.º 20
0
 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;
 }
Ejemplo n.º 21
0
 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;
 }
Ejemplo n.º 22
0
 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;
 }
Ejemplo n.º 23
0
 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;
 }