public PreferenceWindow(TwitterAccountManager mgr, MainWindow mwin) { _mwin = mwin; _mgr = mgr; InitializeComponent(); _accounts = mgr.Accounts; _oldAccounts = (TwitterAccount[])_accounts.Clone(); _targets = new IStreamingHandler[_accounts.Length]; for (int i = 0; i < _targets.Length; i++) { _targets[i] = _accounts[i].StreamingClient == null ? null : _accounts[i].StreamingClient.Target; } StreamingTargetSelector selector = new StreamingTargetSelector(); selector.NullTemplate = (DataTemplate)Resources["nullTemplate"]; selector.HomeTemplate = (DataTemplate)Resources["homeTemplate"]; selector.SearchTemplate = (DataTemplate)Resources["searchTemplate"]; selector.ListTemplate = (DataTemplate)Resources["listTemplate"]; Resources.Add("targetTemplateSelector", selector); _observableAccountList = new ObservableCollection <TwitterAccount> (mgr.Accounts); List <object> list = new List <object> (); list.Add("null"); for (int i = 0; i < mgr.Accounts.Length; i++) { list.Add(mgr.Accounts[i]); } for (int i = 0; i < mgr.Searches.Length; i++) { list.Add(mgr.Searches[i]); } for (int i = 0; i < mgr.Lists.Length; i++) { list.Add(mgr.Lists[i]); } _targetList = list.ToArray(); this.DataContext = _observableAccountList; this.Closed += delegate(object sender, EventArgs e) { _accounts = _observableAccountList.ToArray <TwitterAccount> (); IsAccountArrayChanged = false; do { if (_accounts.Length != _oldAccounts.Length) { IsAccountArrayChanged = true; break; } for (int i = 0; i < _accounts.Length; i++) { if (_accounts[i] != _oldAccounts[i]) { IsAccountArrayChanged = true; break; } } } while (false); IsStreamingTargetsChanged = IsAccountArrayChanged; do { for (int i = 0; i < _accounts.Length; i++) { if (_accounts[i].StreamingClient == null && _targets[i] == null) { continue; } if (_accounts[i].StreamingClient != null && _accounts[i].StreamingClient.Target == _targets[i]) { continue; } IsStreamingTargetsChanged = true; break; } } while (false); }; }
public PreferenceWindow(TwitterAccountManager mgr, MainWindow mwin) { _mwin = mwin; _mgr = mgr; InitializeComponent (); _accounts = mgr.Accounts; _oldAccounts = (TwitterAccount[])_accounts.Clone (); _targets = new IStreamingHandler[_accounts.Length]; for (int i = 0; i < _targets.Length; i ++) _targets[i] = _accounts[i].StreamingClient == null ? null : _accounts[i].StreamingClient.Target; StreamingTargetSelector selector = new StreamingTargetSelector (); selector.NullTemplate = (DataTemplate)Resources["nullTemplate"]; selector.HomeTemplate = (DataTemplate)Resources["homeTemplate"]; selector.SearchTemplate = (DataTemplate)Resources["searchTemplate"]; selector.ListTemplate = (DataTemplate)Resources["listTemplate"]; Resources.Add ("targetTemplateSelector", selector); _observableAccountList = new ObservableCollection<TwitterAccount> (mgr.Accounts); List<object> list = new List<object> (); list.Add ("null"); for (int i = 0; i < mgr.Accounts.Length; i ++) list.Add (mgr.Accounts[i]); for (int i = 0; i < mgr.Searches.Length; i ++) list.Add (mgr.Searches[i]); for (int i = 0; i < mgr.Lists.Length; i ++) list.Add (mgr.Lists[i]); _targetList = list.ToArray (); this.DataContext = _observableAccountList; this.Closed += delegate (object sender, EventArgs e) { _accounts = _observableAccountList.ToArray<TwitterAccount> (); IsAccountArrayChanged = false; do { if (_accounts.Length != _oldAccounts.Length) { IsAccountArrayChanged = true; break; } for (int i = 0; i < _accounts.Length; i++) { if (_accounts[i] != _oldAccounts[i]) { IsAccountArrayChanged = true; break; } } } while (false); IsStreamingTargetsChanged = IsAccountArrayChanged; do { for (int i = 0; i < _accounts.Length; i ++) { if (_accounts[i].StreamingClient == null && _targets[i] == null) continue; if (_accounts[i].StreamingClient != null && _accounts[i].StreamingClient.Target == _targets[i]) continue; IsStreamingTargetsChanged = true; break; } } while (false); }; }