private static string SetConnectionPanel(ConnectionInfo connectionInfo, ConnectionInfo.Force force) { string connectionPanel; if (connectionInfo.Panel == "" || force.HasFlag(ConnectionInfo.Force.OverridePanel) || Settings.Default.AlwaysShowPanelSelectionDlg) { var frmPnl = new FrmChoosePanel(); if (frmPnl.ShowDialog() == DialogResult.OK) { connectionPanel = frmPnl.Panel; } else { return(null); } } else { //Return the current panel if exist, if not return default panel if (TabHelper.Instance.CurrentPanel != null) { connectionPanel = TabHelper.Instance.CurrentPanel.TabText; } else { connectionPanel = connectionInfo.Panel; } } return(connectionPanel); }
private void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force, Form conForm) { try { if (connectionInfo.Hostname == "" && connectionInfo.Protocol != ProtocolType.IntApp) { Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg, Language.strConnectionOpenFailedNoHostname); return; } StartPreConnectionExternalApp(connectionInfo); if (!force.HasFlag(ConnectionInfo.Force.DoNotJump)) { if (SwitchToOpenConnection(connectionInfo)) { return; } } var protocolFactory = new ProtocolFactory(); var newProtocol = protocolFactory.CreateProtocol(connectionInfo); var connectionPanel = SetConnectionPanel(connectionInfo, force); if (string.IsNullOrEmpty(connectionPanel)) { return; } var connectionForm = SetConnectionForm(conForm, connectionPanel); var connectionContainer = SetConnectionContainer(connectionInfo, connectionForm); SetConnectionFormEventHandlers(newProtocol, connectionForm); SetConnectionEventHandlers(newProtocol); BuildConnectionInterfaceController(connectionInfo, newProtocol, connectionContainer); newProtocol.Force = force; if (newProtocol.Initialize() == false) { newProtocol.Close(); return; } if (newProtocol.Connect() == false) { newProtocol.Close(); return; } connectionInfo.OpenConnections.Add(newProtocol); _activeConnections.Add(connectionInfo.ConstantID); FrmMain.Default.SelectedConnection = connectionInfo; } catch (Exception ex) { Runtime.MessageCollector.AddExceptionStackTrace(Language.strConnectionOpenFailed, ex); } }