using System; using mRemoteNG.Connection; namespace mRemoteNG.Tree { public class OpenConnectionClickHandler : ITreeNodeClickHandler { private readonly IConnectionInitiator _connectionInitiator; public OpenConnectionClickHandler(IConnectionInitiator connectionInitiator) { if (connectionInitiator == null) throw new ArgumentNullException(nameof(connectionInitiator)); _connectionInitiator = connectionInitiator; } public void Execute(ConnectionInfo clickedNode) { if (clickedNode == null) throw new ArgumentNullException(nameof(clickedNode)); if (clickedNode.GetTreeNodeType() != TreeNodeType.Connection && clickedNode.GetTreeNodeType() != TreeNodeType.PuttySession) return; _connectionInitiator.OpenConnection(clickedNode); } } }