aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Messages/ChangeVersionMessage.cs
blob: a0fdec8ed892be558c07389c7a61e9d1cf2f8cdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.MachineStudio.Common.Authentication;
using Tango.MachineStudio.Common.Web;

namespace Tango.MachineStudio.UI.Messages
{
    public class ChangeVersionMessage
    {
        public LoginResponse LoginResponse { get; set; }
    }
}
/span> using System.Collections.ObjectModel; using System.Collections.Specialized; namespace Tango.Scripting.Editors.Xml { /// <summary> /// Two collections in sequence /// </summary> public class MergedCollection<T, TCollection> : ObservableCollection<T> where TCollection : INotifyCollectionChanged, IList<T> { TCollection a; TCollection b; /// <summary> Create a wrapper containing elements of 'a' and then 'b' </summary> [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")] public MergedCollection(TCollection a, TCollection b) { this.a = a; this.b = b; this.a.CollectionChanged += SourceCollectionAChanged; this.b.CollectionChanged += SourceCollectionBChanged; Reset(); } void Reset() { this.Clear(); foreach(T item in a) this.Add(item); foreach(T item in b) this.Add(item); } void SourceCollectionAChanged(object sender, NotifyCollectionChangedEventArgs e) { SourceCollectionChanged(0, e); } void SourceCollectionBChanged(object sender, NotifyCollectionChangedEventArgs e) { SourceCollectionChanged(a.Count, e); } void SourceCollectionChanged(int collectionStart, NotifyCollectionChangedEventArgs e) { switch(e.Action) { case NotifyCollectionChangedAction.Add: for (int i = 0; i < e.NewItems.Count; i++) { this.InsertItem(collectionStart + e.NewStartingIndex + i, (T)e.NewItems[i]); } break; case NotifyCollectionChangedAction.Remove: for (int i = 0; i < e.OldItems.Count; i++) { this.RemoveAt(collectionStart + e.OldStartingIndex); } break; case NotifyCollectionChangedAction.Reset: Reset(); break; default: throw new NotSupportedException(e.Action.ToString()); } } } }