示例#1
0
        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);
            };
        }
示例#2
0
        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);
            };
        }