コード例 #1
0
        private static void unToggleEventsThatAreTooClose(DateTime time)
        {
            for (int i = 0; i < toggledNodes.Count; i++)
            {
                ToggleButton button = toggledNodes[i];

                if (button.GetType() == typeof(Node.Node))
                {
                    Node.Node node      = (Node.Node)button;
                    DateTime  nodesTime = node.GetBlockTime();
                    if (EventIsTooClose(nodesTime, time))
                    {
                        node.ToggleBlock();
                        toggledNodes.Remove(node);
                        i--;
                    }
                }
                else if (button.GetType() == typeof(StackedNodes))
                {
                    StackedNodes node      = (StackedNodes)button;
                    DateTime     nodesTime = node.GetBlockTime();
                    if (EventIsTooClose(nodesTime, time))
                    {
                        node.ToggleBlock();
                        toggledNodes.Remove(node);
                        i--;
                    }
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Gets all nodes that have the same EventTime out of a list that gets passed into the method and returns them in a list of StackedNodes.
        /// The list that gets passed in has the nodes that would stack deleted from it.
        /// </summary>
        /// <param name="nodesCluster">a list of nodes</param>
        /// <returns>list of StackedNodes and modifies the list of nodes that gets passed in</returns>
        private List <StackedNodes> GetStackedNodes(List <Node.Node> nodesCluster)
        {
            List <StackedNodes> stackedNodesList = new List <StackedNodes>();

            Node.Node previousNode = nodesCluster[0];
            int       i            = 1;

            while (i < nodesCluster.Count)
            {
                if (previousNode.aEvent.EventTime.Equals(nodesCluster[i].aEvent.EventTime))
                {
                    StackedNodes stackedNodes = new StackedNodes();
                    stackedNodes.events.Add(previousNode.aEvent);
                    stackedNodes.blocks.Add(previousNode.block);
                    while (i < nodesCluster.Count && previousNode.aEvent.EventTime.Equals(nodesCluster[i].aEvent.EventTime))
                    {
                        stackedNodes.events.Add(nodesCluster[i].aEvent);
                        stackedNodes.blocks.Add(nodesCluster[i].block);
                        previousNode = nodesCluster[i];
                        stackedNodes.nodes.Add(nodesCluster.ElementAt(i - 1));
                        nodesCluster.RemoveAt(i - 1);
                    }
                    stackedNodesList.Add(stackedNodes);

                    if (i < nodesCluster.Count) // If haven't reached the end of the list.
                    {
                        previousNode = nodesCluster[i];
                        stackedNodes.nodes.Add(nodesCluster.ElementAt(i - 1));
                        nodesCluster.RemoveAt(i - 1);
                    }
                    else
                    {
                        stackedNodes.nodes.Add(nodesCluster.ElementAt(i - 1));
                        nodesCluster.RemoveAt(i - 1);
                    }
                }
                else
                {
                    previousNode = nodesCluster[i];
                    i++;
                }
            }
            return(stackedNodesList);
        }