diff --git a/mRemoteV1/Connection/ConnectionInitiator.cs b/mRemoteV1/Connection/ConnectionInitiator.cs
index 058f22de9..af392bea4 100644
--- a/mRemoteV1/Connection/ConnectionInitiator.cs
+++ b/mRemoteV1/Connection/ConnectionInitiator.cs
@@ -12,7 +12,7 @@ using TabPage = Crownwood.Magic.Controls.TabPage;
namespace mRemoteNG.Connection
{
- public static class ConnectionInitiator
+ public class ConnectionInitiator : IConnectionInitiator
{
public static void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force = ConnectionInfo.Force.None)
{
@@ -33,7 +33,7 @@ namespace mRemoteNG.Connection
}
}
- public static void OpenConnection(ConnectionInfo connectionInfo)
+ public void OpenConnection(ConnectionInfo connectionInfo)
{
try
{
diff --git a/mRemoteV1/Connection/IConnectionInitiator.cs b/mRemoteV1/Connection/IConnectionInitiator.cs
new file mode 100644
index 000000000..99e8732f8
--- /dev/null
+++ b/mRemoteV1/Connection/IConnectionInitiator.cs
@@ -0,0 +1,7 @@
+namespace mRemoteNG.Connection
+{
+ public interface IConnectionInitiator
+ {
+ void OpenConnection(ConnectionInfo connectionInfo);
+ }
+}
\ No newline at end of file
diff --git a/mRemoteV1/Tools/ExternalTool.cs b/mRemoteV1/Tools/ExternalTool.cs
index 5002d6cc9..8ddd0193f 100644
--- a/mRemoteV1/Tools/ExternalTool.cs
+++ b/mRemoteV1/Tools/ExternalTool.cs
@@ -11,6 +11,7 @@ namespace mRemoteNG.Tools
{
public class ExternalTool
{
+ private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
#region Public Properties
public string DisplayName { get; set; }
public string FileName { get; set; }
@@ -80,7 +81,7 @@ namespace mRemoteNG.Tools
try
{
var newConnectionInfo = BuildConnectionInfoForIntegratedApp();
- ConnectionInitiator.OpenConnection(newConnectionInfo);
+ _connectionInitiator.OpenConnection(newConnectionInfo);
}
catch (Exception ex)
{
diff --git a/mRemoteV1/Tools/Tools.Controls.cs b/mRemoteV1/Tools/Tools.Controls.cs
index 1e92b03a2..8f4516400 100644
--- a/mRemoteV1/Tools/Tools.Controls.cs
+++ b/mRemoteV1/Tools/Tools.Controls.cs
@@ -15,8 +15,10 @@ namespace mRemoteNG.Tools
private NotifyIcon _nI;
private ContextMenuStrip _cMen;
private ToolStripMenuItem _cMenCons;
+ private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
- public bool Disposed { get; set; }
+
+ public bool Disposed { get; set; }
public NotificationAreaIcon()
{
@@ -124,7 +126,7 @@ namespace mRemoteNG.Tools
{
ShowForm();
}
- ConnectionInitiator.OpenConnection((ConnectionInfo)((Control)sender).Tag);
+ _connectionInitiator.OpenConnection((ConnectionInfo)((Control)sender).Tag);
}
private void cMenExit_Click(Object sender, EventArgs e)
diff --git a/mRemoteV1/Tree/PreviousSessionOpener.cs b/mRemoteV1/Tree/PreviousSessionOpener.cs
index 6d5170c25..8d2a3a461 100644
--- a/mRemoteV1/Tree/PreviousSessionOpener.cs
+++ b/mRemoteV1/Tree/PreviousSessionOpener.cs
@@ -8,6 +8,9 @@ namespace mRemoteNG.Tree
{
public class PreviousSessionOpener : IConnectionTreeDelegate
{
+ private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
+
+
public void Execute(ConnectionTree connectionTree)
{
if (!Settings.Default.OpenConsFromLastSession || Settings.Default.NoReconnect) return;
@@ -15,7 +18,7 @@ namespace mRemoteNG.Tree
var previouslyOpenedConnections = connectionInfoList.Where(item => item.PleaseConnect);
foreach (var connectionInfo in previouslyOpenedConnections)
{
- ConnectionInitiator.OpenConnection(connectionInfo);
+ _connectionInitiator.OpenConnection(connectionInfo);
}
}
}
diff --git a/mRemoteV1/UI/Forms/frmMain.cs b/mRemoteV1/UI/Forms/frmMain.cs
index d85be23ea..7d008ca5b 100644
--- a/mRemoteV1/UI/Forms/frmMain.cs
+++ b/mRemoteV1/UI/Forms/frmMain.cs
@@ -44,6 +44,8 @@ namespace mRemoteNG.UI.Forms
private ConnectionInfo _selectedConnection;
private SystemMenu _systemMenu;
private ConnectionTreeWindow ConnectionTreeWindow { get; set; }
+ private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
+
@@ -936,14 +938,14 @@ namespace mRemoteNG.UI.Forms
btnConnections.DropDownItems.AddRange(rootMenuItems);
}
- private static void ConnectionsMenuItem_MouseUp(object sender, MouseEventArgs e)
+ private void ConnectionsMenuItem_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button != MouseButtons.Left) return;
if (((ToolStripMenuItem) sender).Tag is ContainerInfo) return;
var tag = ((ToolStripMenuItem)sender).Tag as ConnectionInfo;
if (tag != null)
{
- ConnectionInitiator.OpenConnection(tag);
+ _connectionInitiator.OpenConnection(tag);
}
}
#endregion
diff --git a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs
index 1a2ae6e44..259eed7ae 100644
--- a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs
+++ b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs
@@ -16,6 +16,8 @@ namespace mRemoteNG.UI.Window
public partial class ConnectionTreeWindow
{
private readonly ConnectionContextMenu _contextMenu;
+ private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
+
public ConnectionInfo SelectedNode => olvConnections.SelectedNode;
@@ -276,7 +278,7 @@ namespace mRemoteNG.UI.Window
if (e.KeyCode == Keys.Enter)
{
e.Handled = true;
- ConnectionInitiator.OpenConnection(SelectedNode);
+ _connectionInitiator.OpenConnection(SelectedNode);
}
else if (e.Control && e.KeyCode == Keys.F)
{
diff --git a/mRemoteV1/UI/Window/ConnectionWindow.cs b/mRemoteV1/UI/Window/ConnectionWindow.cs
index 41972d41f..ed367b818 100644
--- a/mRemoteV1/UI/Window/ConnectionWindow.cs
+++ b/mRemoteV1/UI/Window/ConnectionWindow.cs
@@ -27,7 +27,8 @@ namespace mRemoteNG.UI.Window
public partial class ConnectionWindow : BaseWindow
{
public TabControl TabController;
-
+ private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
+
#region Public Methods
public ConnectionWindow(DockContent panel, string formText = "")
@@ -335,7 +336,7 @@ namespace mRemoteNG.UI.Window
if (modelAsContainer != null)
ConnectionInitiator.OpenConnection(modelAsContainer);
else if (modelAsConnection != null)
- ConnectionInitiator.OpenConnection(modelAsConnection);
+ _connectionInitiator.OpenConnection(modelAsConnection);
}
}
diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj
index 5c1f3aed2..e93b5009a 100644
--- a/mRemoteV1/mRemoteV1.csproj
+++ b/mRemoteV1/mRemoteV1.csproj
@@ -187,6 +187,7 @@
+