Catrobat.IDE.Core.UI.ActionsCollection.InternalCollectionChanged C# (CSharp) Method

InternalCollectionChanged() private method

private InternalCollectionChanged ( object sernder, NotifyCollectionChangedEventArgs e ) : void
sernder object
e System.Collections.Specialized.NotifyCollectionChangedEventArgs
return void
        private void InternalCollectionChanged(object sernder, NotifyCollectionChangedEventArgs e)
        {
            if (e.Action == NotifyCollectionChangedAction.Remove || e.Action == NotifyCollectionChangedAction.Add)
            {
                if (e.Action == NotifyCollectionChangedAction.Remove)
                {
                    if (e.OldItems[0] is Script)
                    {
                        var args = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset); // TODO: change this
                        OnCollectionChanged(args);
                    }
                    else
                    {
                        var args = new NotifyCollectionChangedEventArgs(e.Action, _lastDeletedBrick, LastDeletedIndex);
                        OnCollectionChanged(args);
                    }
                }
                else
                {
                    if (e.NewItems[0] is Script)
                    {
                        var args = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset); // TODO: change this
                        OnCollectionChanged(args);
                    }
                    else
                    {
                        var args = new NotifyCollectionChangedEventArgs(e.Action, _lastInsertedBrick, _lastInsertedIndex);
                        OnCollectionChanged(args);
                    }
                }
            }
            else
            {
                var args = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset);
                OnCollectionChanged(args);
            }
        }