Combined instances of ConnectionInitiator

This commit is contained in:
david-sway
2022-01-17 17:40:02 -05:00
parent fbb9d849b4
commit f5d0e93ecd
12 changed files with 86 additions and 109 deletions

View File

@@ -49,6 +49,8 @@ namespace mRemoteNG.App
public static ICredentialRepositoryList CredentialProviderCatalog { get; } = new CredentialRepositoryList();
public static ConnectionInitiator ConnectionInitiator { get; set; } = new ConnectionInitiator();
public static ConnectionsService ConnectionsService { get; } =
new ConnectionsService(PuttySessionsManager.Instance);

View File

@@ -1,4 +1,5 @@
using mRemoteNG.Connection.Protocol;
using mRemoteNG.App;
using mRemoteNG.Connection.Protocol;
using mRemoteNG.Resources.Language;
namespace mRemoteNG.Connection
@@ -17,8 +18,7 @@ namespace mRemoteNG.Connection
if (string.IsNullOrEmpty(connectionInfo.Panel))
connectionInfo.Panel = Language.General;
connectionInfo.IsQuickConnect = true;
var connectionInitiator = new ConnectionInitiator();
connectionInitiator.OpenConnection(connectionInfo, ConnectionInfo.Force.DoNotJump);
Runtime.ConnectionInitiator.OpenConnection(connectionInfo, ConnectionInfo.Force.DoNotJump);
}
}
}

View File

@@ -17,7 +17,6 @@ namespace mRemoteNG.Tools
{
public class ExternalTool : INotifyPropertyChanged
{
private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
private string _displayName;
private string _fileName;
private bool _waitForExit;
@@ -166,7 +165,7 @@ namespace mRemoteNG.Tools
try
{
var newConnectionInfo = BuildConnectionInfoForIntegratedApp();
_connectionInitiator.OpenConnection(newConnectionInfo);
Runtime.ConnectionInitiator.OpenConnection(newConnectionInfo);
}
catch (Exception ex)
{

View File

@@ -16,7 +16,6 @@ namespace mRemoteNG.Tools
private readonly NotifyIcon _nI;
private readonly ContextMenuStrip _cMen;
private readonly ToolStripMenuItem _cMenCons;
private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
private static readonly FrmMain FrmMain = FrmMain.Default;
public bool Disposed { get; private set; }
@@ -129,7 +128,7 @@ namespace mRemoteNG.Tools
if (((ToolStripMenuItem)sender).Tag is ContainerInfo) return;
if (FrmMain.Visible == false)
ShowForm();
_connectionInitiator.OpenConnection((ConnectionInfo)((ToolStripMenuItem)sender).Tag);
Runtime.ConnectionInitiator.OpenConnection((ConnectionInfo)((ToolStripMenuItem)sender).Tag);
}
private static void cMenExit_Click(object sender, EventArgs e)

View File

@@ -55,13 +55,11 @@ namespace mRemoteNG.UI.Controls
private ToolStripMenuItem _cMenTreeApplyInheritanceToChildren;
private ToolStripMenuItem _cMenTreeApplyDefaultInheritance;
private readonly ConnectionTree.ConnectionTree _connectionTree;
private readonly IConnectionInitiator _connectionInitiator;
public ConnectionContextMenu(ConnectionTree.ConnectionTree connectionTree)
{
_connectionTree = connectionTree;
_connectionInitiator = new ConnectionInitiator();
InitializeComponent();
ApplyLanguage();
EnableShortcutKeys();
@@ -692,75 +690,76 @@ namespace mRemoteNG.UI.Controls
{
var selectedNodeAsContainer = _connectionTree.SelectedNode as ContainerInfo;
if (selectedNodeAsContainer != null)
_connectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.DoNotJump);
Runtime.ConnectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.DoNotJump);
else
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.DoNotJump);
Runtime.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);
Runtime.ConnectionInitiator.OpenConnection(selectedNodeAsContainer,
ConnectionInfo.Force.UseConsoleSession |
ConnectionInfo.Force.DoNotJump);
else
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode,
ConnectionInfo.Force.UseConsoleSession |
ConnectionInfo.Force.DoNotJump);
Runtime.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);
Runtime.ConnectionInitiator.OpenConnection(selectedNodeAsContainer,
ConnectionInfo.Force.DontUseConsoleSession |
ConnectionInfo.Force.DoNotJump);
else
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode,
ConnectionInfo.Force.DontUseConsoleSession |
ConnectionInfo.Force.DoNotJump);
Runtime.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);
Runtime.ConnectionInitiator.OpenConnection(selectedNodeAsContainer,
ConnectionInfo.Force.Fullscreen | ConnectionInfo.Force.DoNotJump);
else
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode,
ConnectionInfo.Force.Fullscreen | ConnectionInfo.Force.DoNotJump);
Runtime.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);
Runtime.ConnectionInitiator.OpenConnection(selectedNodeAsContainer, ConnectionInfo.Force.NoCredentials);
else
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode, ConnectionInfo.Force.NoCredentials);
Runtime.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);
Runtime.ConnectionInitiator.OpenConnection(selectedNodeAsContainer,
ConnectionInfo.Force.OverridePanel |
ConnectionInfo.Force.DoNotJump);
else
_connectionInitiator.OpenConnection(_connectionTree.SelectedNode,
ConnectionInfo.Force.OverridePanel |
ConnectionInfo.Force.DoNotJump);
Runtime.ConnectionInitiator.OpenConnection(_connectionTree.SelectedNode,
ConnectionInfo.Force.OverridePanel |
ConnectionInfo.Force.DoNotJump);
}
private void ConnectWithOptionsViewOnlyOnClick(object sender, EventArgs e)
{
var connectionTarget = _connectionTree.SelectedNode as ContainerInfo
?? _connectionTree.SelectedNode;
_connectionInitiator.OpenConnection(connectionTarget, ConnectionInfo.Force.ViewOnly);
Runtime.ConnectionInitiator.OpenConnection(connectionTarget, ConnectionInfo.Force.ViewOnly);
}
private void OnDisconnectClicked(object sender, EventArgs e)

View File

@@ -24,21 +24,10 @@ namespace mRemoteNG.UI.Controls
private ContextMenuStrip _mnuQuickConnectProtocol;
private QuickConnectComboBox _cmbQuickConnect;
private ContextMenuStrip _mnuConnections;
private IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
private readonly ThemeManager _themeManager;
private WeifenLuo.WinFormsUI.Docking.VisualStudioToolStripExtender vsToolStripExtender;
private readonly DisplayProperties _display;
public IConnectionInitiator ConnectionInitiator
{
get => _connectionInitiator;
set
{
if (value == null)
return;
_connectionInitiator = value;
}
}
public QuickConnectToolStrip()
{
@@ -208,7 +197,7 @@ namespace mRemoteNG.UI.Controls
}
_cmbQuickConnect.Add(connectionInfo);
ConnectionInitiator.OpenConnection(connectionInfo, ConnectionInfo.Force.DoNotJump);
Runtime.ConnectionInitiator.OpenConnection(connectionInfo, ConnectionInfo.Force.DoNotJump);
}
catch (Exception ex)
{
@@ -293,7 +282,7 @@ namespace mRemoteNG.UI.Controls
case ContainerInfo _:
return;
case ConnectionInfo connectionInfo:
ConnectionInitiator.OpenConnection(connectionInfo);
Runtime.ConnectionInitiator.OpenConnection(connectionInfo);
break;
}
}

View File

@@ -32,7 +32,6 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
mRemoteNG.Connection.ConnectionInitiator connectionInitiator1 = new mRemoteNG.Connection.ConnectionInitiator();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
this.pnlDock = new WeifenLuo.WinFormsUI.Docking.DockPanel();
this.msMain = new System.Windows.Forms.MenuStrip();
@@ -84,8 +83,7 @@
this.msMain.Text = "Main Toolbar";
//
// fileMenu
//
this.fileMenu.ConnectionInitiator = null;
//
this.fileMenu.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.fileMenu.Name = "mMenFile";
this.fileMenu.Size = new System.Drawing.Size(37, 19);
@@ -152,7 +150,6 @@
// _quickConnectToolStrip
//
this._quickConnectToolStrip.BackColor = System.Drawing.SystemColors.Control;
this._quickConnectToolStrip.ConnectionInitiator = connectionInitiator1;
this._quickConnectToolStrip.Dock = System.Windows.Forms.DockStyle.None;
this._quickConnectToolStrip.ForeColor = System.Drawing.SystemColors.ControlText;
this._quickConnectToolStrip.Location = new System.Drawing.Point(114, 25);

View File

@@ -280,9 +280,7 @@ namespace mRemoteNG.UI.Forms
private void SetMenuDependencies()
{
var connectionInitiator = new ConnectionInitiator();
fileMenu.TreeWindow = Windows.TreeForm;
fileMenu.ConnectionInitiator = connectionInitiator;
viewMenu.TsExternalTools = _externalToolsToolStrip;
viewMenu.TsQuickConnect = _quickConnectToolStrip;
@@ -292,8 +290,6 @@ namespace mRemoteNG.UI.Forms
toolsMenu.MainForm = this;
toolsMenu.CredentialProviderCatalog = Runtime.CredentialProviderCatalog;
_quickConnectToolStrip.ConnectionInitiator = connectionInitiator;
}
//Theming support

View File

@@ -22,7 +22,6 @@ namespace mRemoteNG.UI.Menu
private ToolStripSeparator _mMenFileSep1;
public ConnectionTreeWindow TreeWindow { get; set; }
public IConnectionInitiator ConnectionInitiator { get; set; }
public FileMenu()
{

View File

@@ -32,7 +32,6 @@ namespace mRemoteNG.UI.Menu
public ToolStrip TsMultiSsh { get; set; }
public FullscreenHandler FullscreenHandler { get; set; }
public FrmMain MainForm { get; set; }
public IConnectionInitiator ConnectionInitiator { get; set; }
public ViewMenu()
@@ -317,7 +316,7 @@ namespace mRemoteNG.UI.Menu
if (!(window is ConnectionWindow connectionWindow))
return;
connectionWindow.reconnectAll(ConnectionInitiator);
connectionWindow.reconnectAll(Runtime.ConnectionInitiator);
}
}

View File

@@ -24,7 +24,6 @@ namespace mRemoteNG.UI.Window
{
public partial class ConnectionTreeWindow
{
private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
private ThemeManager _themeManager;
private bool _sortedAz = true;
@@ -126,7 +125,7 @@ namespace mRemoteNG.UI.Window
{
ConnectionTree.NodeDeletionConfirmer =
new SelectedConnectionDeletionConfirmer(prompt => CTaskDialog.MessageBox(
Application.ProductName,prompt,"",ETaskDialogButtons.YesNo,ESysIcons.Question));
Application.ProductName, prompt, "", ETaskDialogButtons.YesNo, ESysIcons.Question));
ConnectionTree.KeyDown += TvConnections_KeyDown;
ConnectionTree.KeyPress += TvConnections_KeyPress;
SetTreePostSetupActions();
@@ -143,7 +142,7 @@ namespace mRemoteNG.UI.Window
};
if (Settings.Default.OpenConsFromLastSession && !Settings.Default.NoReconnect)
actions.Add(new PreviousSessionOpener(_connectionInitiator));
actions.Add(new PreviousSessionOpener(Runtime.ConnectionInitiator));
ConnectionTree.PostSetupActions = actions;
}
@@ -157,15 +156,15 @@ namespace mRemoteNG.UI.Window
};
if (Settings.Default.SingleClickOnConnectionOpensIt)
singleClickHandlers.Add(new OpenConnectionClickHandler(_connectionInitiator));
singleClickHandlers.Add(new OpenConnectionClickHandler(Runtime.ConnectionInitiator));
else
doubleClickHandlers.Add(new OpenConnectionClickHandler(_connectionInitiator));
doubleClickHandlers.Add(new OpenConnectionClickHandler(Runtime.ConnectionInitiator));
if (Settings.Default.SingleClickSwitchesToOpenConnection)
singleClickHandlers.Add(new SwitchToConnectionClickHandler(_connectionInitiator));
singleClickHandlers.Add(new SwitchToConnectionClickHandler(Runtime.ConnectionInitiator));
ConnectionTree.SingleClickHandler = new TreeNodeCompositeClickHandler {ClickHandlers = singleClickHandlers};
ConnectionTree.DoubleClickHandler = new TreeNodeCompositeClickHandler {ClickHandlers = doubleClickHandlers};
ConnectionTree.SingleClickHandler = new TreeNodeCompositeClickHandler { ClickHandlers = singleClickHandlers };
ConnectionTree.DoubleClickHandler = new TreeNodeCompositeClickHandler { ClickHandlers = doubleClickHandlers };
}
private void ConnectionsServiceOnConnectionsLoaded(object o, ConnectionsLoadedEventArgs connectionsLoadedEventArgs)
@@ -237,7 +236,7 @@ namespace mRemoteNG.UI.Window
private void FavoriteMenuItem_MouseUp(object sender, MouseEventArgs e)
{
if (((ToolStripMenuItem)sender).Tag is ContainerInfo) return;
_connectionInitiator.OpenConnection((ConnectionInfo)((ToolStripMenuItem)sender).Tag);
Runtime.ConnectionInitiator.OpenConnection((ConnectionInfo)((ToolStripMenuItem)sender).Tag);
}
#endregion
@@ -269,19 +268,19 @@ namespace mRemoteNG.UI.Window
ConnectionTree.Focus();
break;
case Keys.Up:
{
var match = ConnectionTree.NodeSearcher.PreviousMatch();
JumpToNode(match);
e.Handled = true;
break;
}
{
var match = ConnectionTree.NodeSearcher.PreviousMatch();
JumpToNode(match);
e.Handled = true;
break;
}
case Keys.Down:
{
var match = ConnectionTree.NodeSearcher.NextMatch();
JumpToNode(match);
e.Handled = true;
break;
}
{
var match = ConnectionTree.NodeSearcher.NextMatch();
JumpToNode(match);
e.Handled = true;
break;
}
default:
TvConnections_KeyDown(sender, e);
break;
@@ -365,7 +364,7 @@ namespace mRemoteNG.UI.Window
e.Handled = true;
if (SelectedNode == null)
return;
_connectionInitiator.OpenConnection(SelectedNode);
Runtime.ConnectionInitiator.OpenConnection(SelectedNode);
}
else if (e.Control && e.KeyCode == Keys.F)
{
@@ -382,4 +381,4 @@ namespace mRemoteNG.UI.Window
#endregion
}
}
}

View File

@@ -24,7 +24,6 @@ namespace mRemoteNG.UI.Window
{
public partial class ConnectionWindow : BaseWindow
{
private readonly IConnectionInitiator _connectionInitiator = new ConnectionInitiator();
private VisualStudioToolStripExtender vsToolStripExtender;
private readonly ToolStripRenderer _toolStripProfessionalRenderer = new ToolStripProfessionalRenderer();
@@ -232,33 +231,33 @@ namespace mRemoteNG.UI.Window
switch (DockState)
{
case DockState.Float:
{
if (_documentHandlersAdded)
{
FrmMain.Default.ResizeBegin -= Connection_ResizeBegin;
FrmMain.Default.ResizeEnd -= Connection_ResizeEnd;
_documentHandlersAdded = false;
}
if (_documentHandlersAdded)
{
FrmMain.Default.ResizeBegin -= Connection_ResizeBegin;
FrmMain.Default.ResizeEnd -= Connection_ResizeEnd;
_documentHandlersAdded = false;
}
DockHandler.FloatPane.FloatWindow.ResizeBegin += Connection_ResizeBegin;
DockHandler.FloatPane.FloatWindow.ResizeEnd += Connection_ResizeEnd;
_floatHandlersAdded = true;
break;
}
DockHandler.FloatPane.FloatWindow.ResizeBegin += Connection_ResizeBegin;
DockHandler.FloatPane.FloatWindow.ResizeEnd += Connection_ResizeEnd;
_floatHandlersAdded = true;
break;
}
case DockState.Document:
{
if (_floatHandlersAdded)
{
DockHandler.FloatPane.FloatWindow.ResizeBegin -= Connection_ResizeBegin;
DockHandler.FloatPane.FloatWindow.ResizeEnd -= Connection_ResizeEnd;
_floatHandlersAdded = false;
}
if (_floatHandlersAdded)
{
DockHandler.FloatPane.FloatWindow.ResizeBegin -= Connection_ResizeBegin;
DockHandler.FloatPane.FloatWindow.ResizeEnd -= Connection_ResizeEnd;
_floatHandlersAdded = false;
}
FrmMain.Default.ResizeBegin += Connection_ResizeBegin;
FrmMain.Default.ResizeEnd += Connection_ResizeEnd;
_documentHandlersAdded = true;
break;
}
FrmMain.Default.ResizeBegin += Connection_ResizeBegin;
FrmMain.Default.ResizeEnd += Connection_ResizeEnd;
_documentHandlersAdded = true;
break;
}
}
}
@@ -725,7 +724,7 @@ namespace mRemoteNG.UI.Window
{
var interfaceControl = GetInterfaceControl();
if (interfaceControl == null) return;
_connectionInitiator.OpenConnection(interfaceControl.Info, ConnectionInfo.Force.DoNotJump);
Runtime.ConnectionInitiator.OpenConnection(interfaceControl.Info, ConnectionInfo.Force.DoNotJump);
}
catch (Exception ex)
{
@@ -746,7 +745,7 @@ namespace mRemoteNG.UI.Window
}
Invoke(new Action(() => Prot_Event_Closed(interfaceControl.Protocol)));
_connectionInitiator.OpenConnection(interfaceControl.Info, ConnectionInfo.Force.DoNotJump);
Runtime.ConnectionInitiator.OpenConnection(interfaceControl.Info, ConnectionInfo.Force.DoNotJump);
}
catch (Exception ex)
{
@@ -790,4 +789,4 @@ namespace mRemoteNG.UI.Window
#endregion
}
}
}