Exemplo n.º 1
0
            internal void Add(DomMutation mut, DomNode node, DomNode prev, DomNode next)
            {
                if (_stack.Count > 0)
                {
                    _stack.Peek().Add(mut, node, prev, next);
                    return;
                }

                _owner.OwnerDocumentOrSelf.ChildNodesChanged(mut, _owner, new [] { node }, prev, next);
            }
Exemplo n.º 2
0
 internal static DomMutationEvent Create(DomMutation mutation, DomNode target, IEnumerable <DomNode> nodes, DomNode previous, DomNode next)
 {
     if (mutation == DomMutation.Add)
     {
         return(Added(target, nodes, previous, next));
     }
     else
     {
         return(Removed(target, nodes, previous, next));
     }
 }
Exemplo n.º 3
0
        internal void ChildNodesChanged(DomMutation mutation, DomNode target, DomNode[] nodes, DomNode prev, DomNode next)
        {
            DomEvent evt = null;

            foreach (var o in GetObservers(DomObserverEventScope.ChildNodes, target))
            {
                if (evt == null)
                {
                    evt = DomMutationEvent.Create(mutation, target, nodes, prev, next);
                }
                o.OnNext(evt);
            }
        }
Exemplo n.º 4
0
 internal void Add(DomMutation mut, DomNode node, DomNode prev, DomNode next)
 {
     if (_current == null)
     {
         // This is the first insertion, so track the initial state
         _current  = node;
         _previous = prev;
         _next     = next;
         _mutation = mut;
     }
     else if (mut == _mutation && prev == _current)
     {
         // An adjacent insertion in the forward direction
         _current = node;
     }
     else
     {
         _owner.PopRecord();
     }
 }
Exemplo n.º 5
0
 internal void ChildNodeChanged(DomMutation mut, DomNode node, DomNode prev, DomNode next)
 {
     _batch.Add(mut, node, prev, next);
 }