/// <summary>
        /// Adds a new root view model for the given node.
        /// </summary>
        /// <param name="node">Node.</param>
        public void AddRootDiagramNode(RootDiagramNode node)
        {
            // verify that node hasnt been added yet
            foreach (RootDiagramNodeViewModel viewModel in this.rootNodeVMs)
            {
                if (viewModel.RootDiagramNode.Id == node.Id)
                {
                    return;
                }
            }

            RootDiagramNodeViewModel vm = new RootDiagramNodeViewModel(this.ViewModelStore, node, this);

            this.rootNodeVMs.Add(vm);

            foreach (RootDiagramNodeViewModel viewModel in this.rootNodeVMs)
            {
                viewModel.UpdateNodePosition();
            }
        }
        /// <summary>
        /// Adds a new root view model for the given node.
        /// </summary>
        /// <param name="node">Node.</param>
        public void AddRootDiagramNode(RootDiagramNode node)
        {
            // verify that node hasnt been added yet
            foreach (RootDiagramNodeViewModel viewModel in this.rootNodeVMs)
                if (viewModel.RootDiagramNode.Id == node.Id)
                    return;

            RootDiagramNodeViewModel vm = new RootDiagramNodeViewModel(this.ViewModelStore, node, this);
            this.rootNodeVMs.Add(vm);

            foreach (RootDiagramNodeViewModel viewModel in this.rootNodeVMs)
                viewModel.UpdateNodePosition();
        }