Ejemplo n.º 1
0
        private void connectorComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            connectorComboBox.Enabled = false;

            try
            {
                if (_configPage != null)
                {
                    // remove the page event handler from the current page
                    _configPage.OnPageEvent -= new EventHandler <ConfigPageEventArgs>(_configPage_OnPageEvent);
                }

                _connector = connectorComboBox.SelectedItem as IssueRepositoryConnector;

                // if the dummy connector is selected and current settings are not null
                // enable ok button to enable removing existing settings
                // otherwise, disable ok button. it will be enabled when the selected connector page raises "page complete" event
                okButton.Enabled = CurrentSolutionSettings != null &&
                                   _connector is DummyConnector;

                UpdatePageFor(_connector);
            }
            finally
            {
                connectorComboBox.Enabled = true;
            }
        }
Ejemplo n.º 2
0
        public override IssueRepository Create(IssueRepositorySettings settings)
        {
            IssueRepositoryConnector dlg = Delegate;

            if (dlg != null)
            {
                return(dlg.Create(settings));
            }
            return(null);
        }
Ejemplo n.º 3
0
        private void UpdatePageFor(IssueRepositoryConnector connector)
        {
            configPagePanel.Controls.Clear();

            bool needsCurrentSettings = false;

            _configPage = GetConfigurationPageFor(connector, ref needsCurrentSettings);

            if (_connectorPageControlMap == null)
            {
                _connectorPageControlMap = new Dictionary <string, Control>();
            }

            Control newControl = null;

            if (!_connectorPageControlMap.TryGetValue(connector.Name, out newControl))
            {
                newControl      = GetControlFor(_configPage);
                newControl.Dock = DockStyle.Fill;
                _connectorPageControlMap.Add(connector.Name, newControl);
            }

            // setup config page
            if (_configPage != null)
            {
                _configPage.OnPageEvent += new EventHandler <ConfigPageEventArgs>(_configPage_OnPageEvent);
            }

            configPagePanel.Controls.Add(newControl);

            if (_configPage != null && needsCurrentSettings)
            {
                BeginInvoke((DoSomething) delegate()
                {
                    IssueRepositorySettings currentSettings = CurrentSolutionSettings;
                    if (currentSettings != null &&
                        string.Equals(currentSettings.ConnectorName, connector.Name))
                    {
                        _configPage.Settings = currentSettings;
                    }
                });
            }
        }
Ejemplo n.º 4
0
        private IssueRepositoryConfigurationPage GetConfigurationPageFor(IssueRepositoryConnector connector, ref bool needsCurrentSettings)
        {
            if (connector == null)
            {
                return(null);
            }
            if (_connectorPageMap == null)
            {
                _connectorPageMap = new Dictionary <string, IssueRepositoryConfigurationPage>();
            }
            IssueRepositoryConfigurationPage configPage = null;

            if (_connectorPageMap.ContainsKey(connector.Name))
            {
                configPage = _connectorPageMap[connector.Name];
            }
            else
            {
                Exception exception = null;
                try
                {
                    // triggers connector package initialization
                    configPage = connector.ConfigurationPage;
                }
                catch (Exception exc)
                {
                    exception = exc;
                }
                if (configPage == null)
                {
                    // use a dummy configuration page in case where connector does not provide a configuration page or
                    // if an exception is thrown while initializing the connector.
                    configPage = exception == null ?
                                 new DummyIssueRepositoryConfigurationPage(string.Format("'{0}' does not provide a configuration page.", connector.Name))
                        : new DummyIssueRepositoryConfigurationPage(exception);
                }
                _connectorPageMap.Add(connector.Name, configPage);
                needsCurrentSettings = true;
            }
            return(configPage);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Tries to find the issue repository connector identified by yhe <paramref name="name"/>.
 /// </summary>
 /// <returns>true if the connector exists, false otherwise</returns>
 public bool TryGetConnector(string name, out IssueRepositoryConnector connector)
 {
     return(_nameConnectorMap.TryGetValue(name, out connector));
 }