/// <summary> /// Add Tabs to the Connections Tab Control based on the in-memory values (connection dictionary). /// </summary> private void AddConnectionTabPages() { IntPtr localHandle = tabControlConnections.Handle; foreach (var connection in TeamConfiguration.ConnectionDictionary) { // Adding tabs on the Tab Control var lastIndex = tabControlConnections.TabCount - 1; CustomTabPageConnection localCustomTabPage = new CustomTabPageConnection(connection.Value); localCustomTabPage.OnDeleteConnection += DeleteConnection; localCustomTabPage.OnChangeMainText += UpdateMainInformationTextBox; localCustomTabPage.OnSaveConnection += SaveConnection; tabControlConnections.TabPages.Insert(lastIndex, localCustomTabPage); tabControlConnections.SelectedIndex = 0; // Adding items in the drop down list comboBoxMetadataConnection.Items.Add(new KeyValuePair <TeamConnection, string>(connection.Value, connection.Value.ConnectionKey)); comboBoxMetadataConnection.ValueMember = "Key"; comboBoxMetadataConnection.DisplayMember = "Value"; } }
/// <summary> /// Check if the last tab rectangle contains the mouse clicked point, then insert a tab before the last tab. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tabControlConnections_MouseDown(object sender, MouseEventArgs e) { var lastIndex = tabControlConnections.TabCount - 1; if (tabControlConnections.GetTabRect(lastIndex).Contains(e.Location)) { //tabControlConnections.TabPages.Insert(lastIndex, "New Tab"); TeamConnection connectionProfile = new TeamConnection(); connectionProfile.ConnectionInternalId = Utility.CreateMd5(new[] { Utility.GetRandomString(100) }, " % $@"); connectionProfile.ConnectionName = "New connection"; connectionProfile.ConnectionKey = "New"; connectionProfile.ConnectionType = ConnectionTypes.Database; TeamDatabaseConnection connectionDatabase = new TeamDatabaseConnection(); connectionDatabase.SchemaName = "<Schema Name>"; connectionDatabase.ServerName = "<Server Name>"; connectionDatabase.DatabaseName = "<Database Name>"; connectionDatabase.NamedUserName = "******"; connectionDatabase.NamedUserPassword = "******"; connectionDatabase.authenticationType = ServerAuthenticationTypes.NamedUser; TeamFileConnection connectionFile = new TeamFileConnection(); connectionFile.FilePath = @"<File Path>"; connectionFile.FileName = @"<File Name>"; connectionProfile.DatabaseServer = connectionDatabase; connectionProfile.FileConnection = connectionFile; //localCustomTabPage.OnChangeMainText += UpdateMainInformationTextBox; //localCustomTabPage.OnClearMainText += (ClearMainInformationTextBox); bool newTabExists = false; foreach (TabPage customTabPage in tabControlConnections.TabPages) { if (customTabPage.Name == "New") { newTabExists = true; } else { // Do nothing } } if (newTabExists == false) { // Create a new tab page using the connection profile (a TeamConnection class object) as input. CustomTabPageConnection localCustomTabPage = new CustomTabPageConnection(connectionProfile); localCustomTabPage.OnDeleteConnection += DeleteConnection; localCustomTabPage.OnChangeMainText += UpdateMainInformationTextBox; localCustomTabPage.OnSaveConnection += SaveConnection; tabControlConnections.TabPages.Insert(lastIndex, localCustomTabPage); tabControlConnections.SelectedIndex = lastIndex; GlobalParameters.TeamEventLog.Add(Event.CreateNewEvent(EventTypes.Information, $"A new connection was created.")); } else { richTextBoxInformation.AppendText("There is already a 'new connection' tab open. Please close or save this first.\r\n"); } } }