Example #1
0
 public override void OnNodesRemoved(ITabularObject parent, params ITabularObject[] children)
 {
     if (UpdateLocks > 0)
     {
         structureChangedItems.AddIfNotExists(parent);
         return;
     }
     else
     {
         NodesRemoved?.Invoke(this, new TreeModelEventArgs(GetPath(parent), children));
     }
 }
Example #2
0
 /// <summary>
 /// Fires 'nodes removed' event on the main thread context
 /// </summary>
 /// <param name="nodes">Collection of removed nodes</param>
 internal void FireOnNodesRemoved(IReadOnlyCollection <IAstNode> nodes)
 {
     Check.InvalidOperation(() => Thread.CurrentThread.ManagedThreadId == _ownerThread, _threadCheckMessage);
     try {
         // Don't bother if list is empty
         if (nodes.Count > 0)
         {
             NodesRemoved?.Invoke(this, new TreeNodesRemovedEventArgs(nodes));
         }
     } catch (Exception ex) {
         Debug.Assert(false, Invariant($"Exception thrown in a tree.NodesRemoved event handler: {ex.Message}"));
     }
 }
Example #3
0
        /// <summary>
        /// Fires 'nodes removed' event on the main thread context
        /// </summary>
        /// <param name="nodes">Collection of removed nodes</param>
        internal void FireOnNodesRemoved(IReadOnlyCollection <IAstNode> nodes)
        {
            if (_ownerThread != Thread.CurrentThread.ManagedThreadId)
            {
                Debug.Fail(_threadContextInvalidMessage);
                return;
            }

            try {
                // Don't bother if list is empty
                if (nodes.Count > 0)
                {
                    NodesRemoved?.Invoke(this, new TreeNodesRemovedEventArgs(nodes));
                }
            } catch (Exception ex) {
                Debug.Assert(false, Invariant($"Exception thrown in a tree.NodesRemoved event handler: {ex.Message}"));
            }
        }
Example #4
0
 public override void OnNodesRemoved(ITabularObject parent, params ITabularObject[] children)
 {
     if (UpdateLocks > 0)
     {
         structureChangedItems.AddIfNotExists(parent);
         return;
     }
     else
     {
         if (!string.IsNullOrEmpty(Filter) && FilterMode == FilterMode.Flat)
         {
             StructureChanged?.Invoke(this, new TreePathEventArgs());
         }
         else
         {
             NodesRemoved?.Invoke(this, new TreeModelEventArgs(GetPath(parent), children));
         }
     }
 }
Example #5
0
 public void RemoveNodes(int numNodes)
 {
     RailSegmentPositions.RemoveAt(0);
     nodes.RemoveRange(0, numNodes);
     NodesRemoved?.Invoke(this, numNodes);
 }
Example #6
0
        public void OnNodeRemoved(Node parent, int index, Node node)
        {
            TreeModelEventArgs args = new TreeModelEventArgs(GetPath(parent), new[] { index }, new object[] { node });

            NodesRemoved?.Invoke(this, args);
        }
Example #7
0
 public void NotifyNodesRemoved(TreePath path, INode[] nodes, int[] indices)
 {
     NodesRemoved?.Invoke(this, new TreeModelEventArgs(path, indices, nodes));
     Changed?.Invoke(this, EventArgs.Empty);
 }