made the rest of the connectioninitiator functions non-static

This commit is contained in:
David Sparer
2017-01-12 13:57:15 -07:00
parent 8970a15d4e
commit 12da35f875
6 changed files with 63 additions and 51 deletions

View File

@@ -593,7 +593,8 @@ namespace mRemoteNG.App
connectionInfo.Protocol = url.StartsWith("https:") ? ProtocolType.HTTPS : ProtocolType.HTTP;
connectionInfo.SetDefaultPort();
connectionInfo.IsQuickConnect = true;
ConnectionInitiator.OpenConnection(connectionInfo, ConnectionInfo.Force.DoNotJump);
var connectionInitiator = new ConnectionInitiator();
connectionInitiator.OpenConnection(connectionInfo, ConnectionInfo.Force.DoNotJump);
}
public static void GoToWebsite()

View File

@@ -14,25 +14,11 @@ namespace mRemoteNG.Connection
{
public class ConnectionInitiator : IConnectionInitiator
{
public static void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force = ConnectionInfo.Force.None)
public void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force = ConnectionInfo.Force.None)
{
OpenConnection(containerInfo, force, null);
}
private static void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force, Form conForm)
{
var children = containerInfo.Children;
if (children.Count == 0) return;
foreach (var child in children)
{
var childAsContainer = child as ContainerInfo;
if (childAsContainer != null)
OpenConnection(childAsContainer, force, conForm);
else
OpenConnection(child, force, conForm);
}
}
public void OpenConnection(ConnectionInfo connectionInfo)
{
try
@@ -45,7 +31,7 @@ namespace mRemoteNG.Connection
}
}
public static void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force)
public void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force)
{
try
{
@@ -57,7 +43,35 @@ namespace mRemoteNG.Connection
}
}
private static void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force, Form conForm)
public bool SwitchToOpenConnection(ConnectionInfo connectionInfo)
{
var interfaceControl = FindConnectionContainer(connectionInfo);
if (interfaceControl == null) return false;
var connectionWindow = (ConnectionWindow)interfaceControl.FindForm();
connectionWindow?.Focus();
var findForm = (ConnectionWindow)interfaceControl.FindForm();
findForm?.Show(frmMain.Default.pnlDock);
var tabPage = (TabPage)interfaceControl.Parent;
tabPage.Selected = true;
return true;
}
#region Private
private void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force, Form conForm)
{
var children = containerInfo.Children;
if (children.Count == 0) return;
foreach (var child in children)
{
var childAsContainer = child as ContainerInfo;
if (childAsContainer != null)
OpenConnection(childAsContainer, force, conForm);
else
OpenConnection(child, force, conForm);
}
}
private void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force, Form conForm)
{
try
{
@@ -115,19 +129,6 @@ namespace mRemoteNG.Connection
extA?.Start(connectionInfo);
}
public static bool SwitchToOpenConnection(ConnectionInfo nCi)
{
var IC = FindConnectionContainer(nCi);
if (IC == null) return false;
var connectionWindow = (ConnectionWindow)IC.FindForm();
connectionWindow?.Focus();
var findForm = (ConnectionWindow)IC.FindForm();
findForm?.Show(frmMain.Default.pnlDock);
var tabPage = (TabPage)IC.Parent;
tabPage.Selected = true;
return true;
}
private static InterfaceControl FindConnectionContainer(ConnectionInfo connectionInfo)
{
if (connectionInfo.OpenConnections.Count <= 0) return null;
@@ -214,10 +215,9 @@ namespace mRemoteNG.Connection
{
newProtocol.InterfaceControl = new InterfaceControl(connectionContainer, newProtocol, connectionInfo);
}
#endregion
#region Event handlers
private static void Prot_Event_Disconnected(object sender, string disconnectedMessage)
{
try
@@ -280,5 +280,6 @@ namespace mRemoteNG.Connection
Runtime.MessageCollector.AddExceptionStackTrace(Language.strConnectionEventConnectionFailed, ex);
}
}
#endregion
}
}

View File

@@ -1,7 +1,15 @@
using mRemoteNG.Container;
namespace mRemoteNG.Connection
{
public interface IConnectionInitiator
{
void OpenConnection(ConnectionInfo connectionInfo);
void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force = ConnectionInfo.Force.None);
void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force);
bool SwitchToOpenConnection(ConnectionInfo connectionInfo);
}
}

View File

@@ -47,11 +47,13 @@ namespace mRemoteNG.UI.Controls
private ToolStripMenuItem _cMenTreeImportActiveDirectory;
private ToolStripMenuItem _cMenTreeImportPortScan;
private readonly ConnectionTree _connectionTree;
private readonly IConnectionInitiator _connectionInitiator;
public ConnectionContextMenu(ConnectionTree connectionTree)
{
_connectionTree = connectionTree;
_connectionInitiator = new ConnectionInitiator();
InitializeComponent();
ApplyLanguage();
EnableShortcutKeys();
@@ -591,54 +593,54 @@ namespace mRemoteNG.UI.Controls
{
var selectedNodeAsContainer = _connectionTree.SelectedNode as ContainerInfo;
if (selectedNodeAsContainer != null)
ConnectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.DoNotJump);
else
ConnectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.DoNotJump);
}
private void OnConnectToConsoleSessionClicked(object sender, EventArgs e)
{
var selectedNodeAsContainer = _connectionTree.SelectedNode as ContainerInfo;
if (selectedNodeAsContainer != null)
ConnectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.UseConsoleSession | ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.UseConsoleSession | ConnectionInfo.Force.DoNotJump);
else
ConnectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.UseConsoleSession | ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.UseConsoleSession | ConnectionInfo.Force.DoNotJump);
}
private void OnDontConnectToConsoleSessionClicked(object sender, EventArgs e)
{
var selectedNodeAsContainer = _connectionTree.SelectedNode as ContainerInfo;
if (selectedNodeAsContainer != null)
ConnectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.DontUseConsoleSession | ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.DontUseConsoleSession | ConnectionInfo.Force.DoNotJump);
else
ConnectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.DontUseConsoleSession | ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.DontUseConsoleSession | ConnectionInfo.Force.DoNotJump);
}
private void OnConnectInFullscreenClicked(object sender, EventArgs e)
{
var selectedNodeAsContainer = _connectionTree.SelectedNode as ContainerInfo;
if (selectedNodeAsContainer != null)
ConnectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.Fullscreen | ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.Fullscreen | ConnectionInfo.Force.DoNotJump);
else
ConnectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.Fullscreen | ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.Fullscreen | ConnectionInfo.Force.DoNotJump);
}
private void OnConnectWithNoCredentialsClick(object sender, EventArgs e)
{
var selectedNodeAsContainer = _connectionTree.SelectedNode as ContainerInfo;
if (selectedNodeAsContainer != null)
ConnectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.NoCredentials);
_connectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.NoCredentials);
else
ConnectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.NoCredentials);
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.NoCredentials);
}
private void OnChoosePanelBeforeConnectingClicked(object sender, EventArgs e)
{
var selectedNodeAsContainer = _connectionTree.SelectedNode as ContainerInfo;
if (selectedNodeAsContainer != null)
ConnectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.OverridePanel | ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.OverridePanel | ConnectionInfo.Force.DoNotJump);
else
ConnectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.OverridePanel | ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.OverridePanel | ConnectionInfo.Force.DoNotJump);
}
private void OnDisconnectClicked(object sender, EventArgs e)

View File

@@ -587,7 +587,7 @@ namespace mRemoteNG.UI.Forms
foreach (var i in ICList)
{
i.Protocol.Close();
ConnectionInitiator.OpenConnection(i.Info, ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(i.Info, ConnectionInfo.Force.DoNotJump);
}
// throw it on the garbage collector
@@ -862,7 +862,7 @@ namespace mRemoteNG.UI.Forms
return;
}
cmbQuickConnect.Add(connectionInfo);
ConnectionInitiator.OpenConnection(connectionInfo, ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(connectionInfo, ConnectionInfo.Force.DoNotJump);
}
catch (Exception ex)
{

View File

@@ -334,7 +334,7 @@ namespace mRemoteNG.UI.Window
var modelAsContainer = model as ContainerInfo;
var modelAsConnection = model as ConnectionInfo;
if (modelAsContainer != null)
ConnectionInitiator.OpenConnection(modelAsContainer);
_connectionInitiator.OpenConnection(modelAsContainer);
else if (modelAsConnection != null)
_connectionInitiator.OpenConnection(modelAsConnection);
}
@@ -650,7 +650,7 @@ namespace mRemoteNG.UI.Window
{
var interfaceControl = TabController.SelectedTab?.Tag as InterfaceControl;
if (interfaceControl == null) return;
ConnectionInitiator.OpenConnection(interfaceControl.Info, ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(interfaceControl.Info, ConnectionInfo.Force.DoNotJump);
_ignoreChangeSelectedTabClick = false;
}
catch (Exception ex)
@@ -666,7 +666,7 @@ namespace mRemoteNG.UI.Window
var interfaceControl = TabController.SelectedTab?.Tag as InterfaceControl;
if (interfaceControl == null) return;
interfaceControl.Protocol.Close();
ConnectionInitiator.OpenConnection(interfaceControl.Info, ConnectionInfo.Force.DoNotJump);
_connectionInitiator.OpenConnection(interfaceControl.Info, ConnectionInfo.Force.DoNotJump);
}
catch (Exception ex)
{