コード例 #1
0
ファイル: SupportClasses.cs プロジェクト: dmannock/C5
        public bool Equals(CollectionEvent <T> otherEvent, SCG.IEqualityComparer <T> itemequalityComparer)
        {
            if (otherEvent == null || Act != otherEvent.Act || !object.ReferenceEquals(Sender, otherEvent.Sender))
            {
                return(false);
            }
            switch (Act)
            {
            case EventTypeEnum.None:
                break;

            case EventTypeEnum.Changed:
                return(true);

            case EventTypeEnum.Cleared:
                if (Args is ClearedRangeEventArgs)
                {
                    ClearedRangeEventArgs a = Args as ClearedRangeEventArgs, o = otherEvent.Args as ClearedRangeEventArgs;
                    if (o == null)
                    {
                        return(false);
                    }
                    return(a.Full == o.Full && a.Start == o.Start && a.Count == o.Count);
                }
                else
                {
                    if (otherEvent.Args is ClearedRangeEventArgs)
                    {
                        return(false);
                    }
                    ClearedEventArgs a = Args as ClearedEventArgs, o = otherEvent.Args as ClearedEventArgs;
                    return(a.Full == o.Full && a.Count == o.Count);
                }

            case EventTypeEnum.Added:
            {
                ItemCountEventArgs <T> a = Args as ItemCountEventArgs <T>, o = otherEvent.Args as ItemCountEventArgs <T>;
                return(itemequalityComparer.Equals(a.Item, o.Item) && a.Count == o.Count);
            }

            case EventTypeEnum.Removed:
            {
                ItemCountEventArgs <T> a = Args as ItemCountEventArgs <T>, o = otherEvent.Args as ItemCountEventArgs <T>;
                return(itemequalityComparer.Equals(a.Item, o.Item) && a.Count == o.Count);
            }

            case EventTypeEnum.Inserted:
            {
                ItemAtEventArgs <T> a = Args as ItemAtEventArgs <T>, o = otherEvent.Args as ItemAtEventArgs <T>;
                return(a.Index == o.Index && itemequalityComparer.Equals(a.Item, o.Item));
            }

            case EventTypeEnum.RemovedAt:
            {
                ItemAtEventArgs <T> a = Args as ItemAtEventArgs <T>, o = otherEvent.Args as ItemAtEventArgs <T>;
                return(a.Index == o.Index && itemequalityComparer.Equals(a.Item, o.Item));
            }
            }
            throw new ApplicationException("Illegal Action: " + Act);
        }
コード例 #2
0
 void queue_ItemRemoved(object sender, ItemCountEventArgs <int> e)
 {
     events.Add(new KeyValuePair <Acts, int>(Acts.Remove, e.Item));
 }
コード例 #3
0
ファイル: WrappersTest.cs プロジェクト: hallco978/C5
 void w_ItemRemoved(object sender, ItemCountEventArgs<int> eventArgs)
 {
     throw new NotImplementedException();
 }
コード例 #4
0
ファイル: SupportClasses.cs プロジェクト: dmannock/C5
 void removed(object sender, ItemCountEventArgs <T> eventArgs)
 {
     happened.Add(new CollectionEvent <T>(EventTypeEnum.Removed, eventArgs, sender));
 }
コード例 #5
0
ファイル: HeapTests.cs プロジェクト: bloober/c5
 void queue_ItemRemoved(object sender, ItemCountEventArgs<int> e)
 {
     events.Add(new KeyValuePair<Acts, int>(Acts.Remove, e.Item));
 }
コード例 #6
0
ファイル: MultiDictionary.cs プロジェクト: suzuke/C5
 private void DecrementCount(Object sender, ItemCountEventArgs <V> args)
 {
     count -= args.Count;
 }
コード例 #7
0
ファイル: HeapTests.cs プロジェクト: shekky/C5
 private void queue_ItemAdded(object sender, ItemCountEventArgs <int> e)
 {
     events.Add(new KeyValuePair <Acts, int>(Acts.Add, e.Item));
 }
コード例 #8
0
ファイル: WrappersTest.cs プロジェクト: sestoft/C5
 private void w_ItemRemoved(object sender, ItemCountEventArgs <int> eventArgs)
 {
     throw new NotImplementedException();
 }
コード例 #9
0
ファイル: HeapTests.cs プロジェクト: sestoft/C5
 private void queue_ItemRemoved(object sender, ItemCountEventArgs <int> e)
 {
     events.Add(new System.Collections.Generic.KeyValuePair <Acts, int>(Acts.Remove, e.Item));
 }
コード例 #10
0
ファイル: MultiDictionary2.cs プロジェクト: simonbosman/C5
        private int count = 0;      // Cached value count, updated by events only

        private void IncrementCount(object sender, ItemCountEventArgs <V> args)
        {
            count += args.Count;
        }
コード例 #11
0
ファイル: HeapTests.cs プロジェクト: koltsov-ps/C5
 void queue_ItemAdded(object sender, ItemCountEventArgs<int> e)
 {
     events.Add(new C5.KeyValuePair<Acts, int>(Acts.Add, e.Item));
 }
コード例 #12
0
ファイル: SupportClasses.cs プロジェクト: simonbosman/C5
 private void added(object sender, ItemCountEventArgs <T> eventArgs)
 {
     happened.Add(new CollectionEvent <T>(EventType.Added, eventArgs, sender));
 }
コード例 #13
0
ファイル: SpriteList.cs プロジェクト: ARLM-Attic/wordplay
 /// <summary>
 /// This event is added when a sprite is added to this sprite
 /// list.
 /// </summary>
 private void OnSpriteAdded(
     object sender,
     ItemCountEventArgs <ISprite> args)
 {
     args.Item.Invalidate += OnSpriteInvalidated;
 }