Beispiel #1
0
        public NewsgroupsConfiguration(IdentityNewsServerManager app, NewsgroupSettingsView initialSettingsDisplay)
        {
            if (null == app)
            {
                throw new ArgumentNullException("app");
            }

            this.application    = app;
            this.userIdentities = new ListDictionary();
            this.nntpServers    = new ListDictionary();

            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.wheelSupport = new WheelSupport(this);

            this.treeServers.AfterSelect           += this.OnTreeServersAfterSelect;
            this.listAccounts.SelectedIndexChanged += this.OnListAccountsSelectedIndexChanged;

            this.BackColor                    = SystemColors.Window;
            this.splitter1.BackColor          = FontColorHelper.UiColorScheme.ToolbarGradientLight;
            this.accountSettingsPane.Location = this.subscriptionsViewPane.Location = new Point(0, 0);
            this.generalViewPane.Location     = this.serverViewPane.Location = this.advancedViewPane.Location = new Point(0, 0);
            this.accountSettingsPane.Dock     = this.subscriptionsViewPane.Dock = DockStyle.Fill;
            this.generalViewPane.Dock         = this.serverViewPane.Dock = this.advancedViewPane.Dock = DockStyle.Fill;

            EnableView(subscriptionsViewPane, false);
            EnableView(generalViewPane, false);
            EnableView(advancedViewPane, false);
            EnableView(serverViewPane, false);
            EnableView(accountSettingsPane, false);

            if (!RssBanditApplication.AutomaticColorSchemes)
            {
                Office2003Renderer sdRenderer = new Office2003Renderer();
                sdRenderer.ColorScheme = Office2003Renderer.Office2003ColorScheme.Automatic;
                if (!RssBanditApplication.AutomaticColorSchemes)
                {
                    sdRenderer.ColorScheme = Office2003Renderer.Office2003ColorScheme.Standard;
                }
                navigationBar.SetActiveRenderer(sdRenderer);
            }

            this.currentView = initialSettingsDisplay;
        }
Beispiel #2
0
        public void ShowDialog(IWin32Window owner, NewsgroupSettingsView view)
        {
            NewsgroupsConfiguration cfg = new NewsgroupsConfiguration(this, view);

            cfg.DefinitionsModified += OnCfgDefinitionsModified;
            try {
                if (DialogResult.OK == cfg.ShowDialog(owner))
                {
                    //TODO: we should differ between the two kinds of general modifications
                    RaiseNewsServerDefinitionsModified();
                    RaiseIdentityDefinitionsModified();
                    // notify backend about NNTP server defs changes:
                    app.SubscriptionModified(app.BanditFeedSourceEntry, NewsFeedProperty.General);
                }
            } catch (Exception ex) {
                Trace.WriteLine("Exception in NewsGroupsConfiguration dialog: " + ex.Message);
            }
        }
Beispiel #3
0
        private void OnTreeServersAfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
        {
            bool enable = e.Node != null;

            EnableView(subscriptionsViewPane, enable);
            EnableView(generalViewPane, enable);
            EnableView(advancedViewPane, enable);
            EnableView(serverViewPane, enable);

            if (enable)
            {
                string key = null;
                NewsgroupSettingsView what = NewsgroupSettingsView.NewsServerSubscriptions;
                if (e.Node.Parent != null)
                {
                    what = (NewsgroupSettingsView)e.Node.Tag;
                    key  = (string)e.Node.Parent.Tag;
                }
                else
                {
                    key = (string)e.Node.Tag;
                }
                if (what == NewsgroupSettingsView.NewsServerGeneral)
                {
                    this.ActivateView(NewsgroupSettingsView.NewsServerGeneral);
                }
                else if (what == NewsgroupSettingsView.NewsServerSettings)
                {
                    this.ActivateView(NewsgroupSettingsView.NewsServerSettings);
                }
                else if (what == NewsgroupSettingsView.NewsServerAdvanced)
                {
                    this.ActivateView(NewsgroupSettingsView.NewsServerAdvanced);
                }
                else
                {
                    // !! the node.Tag here contains the string ID of the nntp server def. !!
                    this.ActivateView(NewsgroupSettingsView.NewsServerSubscriptions);
                }

                this.PopulateNntpServerDefinition(key);
            }
        }
Beispiel #4
0
        private void ActivateView(NewsgroupSettingsView detail)
        {
            try {
                foreach (Control c in this.panelDetailsTop.Controls)
                {
                    if (c is HeaderControl)
                    {
                        c.Visible = false;
                    }
                    else
                    {
                        System.Diagnostics.Debug.Assert(false, "Unexpected child control type found: " + c.Name);
                    }
                }

                this.navigationBar.SelectedPaneChanged -= this.OnNavigationBarSelectedPaneChanged;
                if (detail == NewsgroupSettingsView.Identity)
                {
                    this.Text = SR.ConfigIdentitiesDialogCaption;
                    if (navigationBar.SelectedPane != accountsPane)
                    {
                        navigationBar.SelectedPane = accountsPane;
                    }
                }
                else
                {
                    this.Text = SR.ConfigNewsServerDialogCaption;
                    if (navigationBar.SelectedPane != newsServersPane)
                    {
                        navigationBar.SelectedPane = newsServersPane;
                    }
                }
                this.navigationBar.SelectedPaneChanged += this.OnNavigationBarSelectedPaneChanged;

                switch (detail)
                {
                case NewsgroupSettingsView.Identity:
                    this.OnAccountSettingsPaneResize(this, EventArgs.Empty);
                    accountSettingsPane.Visible = true;
                    break;

                case NewsgroupSettingsView.NewsServerSubscriptions:
                    this.OnSubscriptionsPaneResize(this, EventArgs.Empty);
                    subscriptionsViewPane.Visible = true;
                    break;

                case NewsgroupSettingsView.NewsServerGeneral:
                    generalViewPane.Visible = true;
                    break;

                case NewsgroupSettingsView.NewsServerSettings:
                    serverViewPane.Visible = true;
                    break;

                case NewsgroupSettingsView.NewsServerAdvanced:
                    advancedViewPane.Visible = true;
                    break;
                }
                this.currentView = detail;
            } catch (Exception ex) {
                _log.Error("ActivateView() failed", ex);
            }
        }