mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
Fixed issue with display of connections tree which was caused by new connection tree builder code
This commit is contained in:
@@ -35,8 +35,8 @@ namespace mRemoteNGTests.UI
|
||||
{
|
||||
CreateRootNode();
|
||||
_connectionTreeViewBuilder.Build();
|
||||
var tree = _connectionTreeViewBuilder.TreeView;
|
||||
Assert.That(tree.Nodes.Count, Is.EqualTo(1));
|
||||
var rootTreeNode = _connectionTreeViewBuilder.RootNode;
|
||||
Assert.That(rootTreeNode, Is.Not.Null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -50,7 +50,7 @@ namespace mRemoteNGTests.UI
|
||||
var con1 = new ConnectionInfo();
|
||||
root.Add(con1);
|
||||
_connectionTreeViewBuilder.Build();
|
||||
var rootTreeNode = _connectionTreeViewBuilder.TreeView.Nodes[0];
|
||||
var rootTreeNode = _connectionTreeViewBuilder.RootNode;
|
||||
Assert.That(rootTreeNode.Nodes[0].Tag, Is.EqualTo(con1));
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace mRemoteNGTests.UI
|
||||
var folder1 = new ContainerInfo();
|
||||
root.Add(folder1);
|
||||
_connectionTreeViewBuilder.Build();
|
||||
var rootTreeNode = _connectionTreeViewBuilder.TreeView.Nodes[0];
|
||||
var rootTreeNode = _connectionTreeViewBuilder.RootNode;
|
||||
Assert.That(rootTreeNode.Nodes[0].Tag, Is.EqualTo(folder1));
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace mRemoteNGTests.UI
|
||||
var con2 = new ConnectionInfo();
|
||||
root.AddRange(new []{con1, con2});
|
||||
_connectionTreeViewBuilder.Build();
|
||||
var rootTreeNode = _connectionTreeViewBuilder.TreeView.Nodes[0];
|
||||
var rootTreeNode = _connectionTreeViewBuilder.RootNode;
|
||||
Assert.That(GetTreeNodeTags(rootTreeNode.Nodes), Is.EquivalentTo(new[] { con1, con2 }));
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ namespace mRemoteNGTests.UI
|
||||
root.Add(folder1);
|
||||
folder1.Add(con1);
|
||||
_connectionTreeViewBuilder.Build();
|
||||
var rootTreeNode = _connectionTreeViewBuilder.TreeView.Nodes[0];
|
||||
var rootTreeNode = _connectionTreeViewBuilder.RootNode;
|
||||
Assert.That(rootTreeNode.Nodes[0].Tag, Is.EqualTo(folder1));
|
||||
Assert.That(rootTreeNode.Nodes[0].Nodes[0].Tag, Is.EqualTo(con1));
|
||||
}
|
||||
@@ -122,7 +122,7 @@ namespace mRemoteNGTests.UI
|
||||
folder1.Add(con1);
|
||||
root.Add(folder2);
|
||||
_connectionTreeViewBuilder.Build();
|
||||
var rootTreeNode = _connectionTreeViewBuilder.TreeView.Nodes[0];
|
||||
var rootTreeNode = _connectionTreeViewBuilder.RootNode;
|
||||
Assert.That(rootTreeNode.Nodes[0].Tag, Is.EqualTo(folder1));
|
||||
Assert.That(rootTreeNode.Nodes[0].Nodes[0].Tag, Is.EqualTo(con1));
|
||||
Assert.That(rootTreeNode.Nodes[1].Tag, Is.EqualTo(folder2));
|
||||
@@ -145,7 +145,7 @@ namespace mRemoteNGTests.UI
|
||||
folder1.Add(folder2);
|
||||
folder2.Add(con1);
|
||||
_connectionTreeViewBuilder.Build();
|
||||
var rootTreeNode = _connectionTreeViewBuilder.TreeView.Nodes[0];
|
||||
var rootTreeNode = _connectionTreeViewBuilder.RootNode;
|
||||
Assert.That(rootTreeNode.Nodes[0].Nodes[0].Nodes[0].Tag, Is.EqualTo(con1));
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ namespace mRemoteNGTests.UI
|
||||
folder3.Add(folder4);
|
||||
folder4.Add(con2);
|
||||
_connectionTreeViewBuilder.Build();
|
||||
var rootTreeNode = _connectionTreeViewBuilder.TreeView.Nodes[0];
|
||||
var rootTreeNode = _connectionTreeViewBuilder.RootNode;
|
||||
Assert.That(rootTreeNode.Nodes[0].Nodes[0].Nodes[0].Tag, Is.EqualTo(con1));
|
||||
Assert.That(rootTreeNode.Nodes[1].Nodes[0].Nodes[0].Tag, Is.EqualTo(con2));
|
||||
}
|
||||
|
||||
@@ -341,9 +341,9 @@ namespace mRemoteNG.App
|
||||
connectionsLoader.PreviousSelected = LastSelected;
|
||||
}
|
||||
|
||||
ConnectionTree.ResetTree();
|
||||
//ConnectionTree.ResetTree();
|
||||
|
||||
connectionsLoader.RootTreeNode = Windows.treeForm.tvConnections.Nodes[0];
|
||||
//connectionsLoader.RootTreeNode = Windows.treeForm.tvConnections.Nodes[0];
|
||||
connectionsLoader.UseDatabase = Settings.Default.UseSQLServer;
|
||||
connectionsLoader.DatabaseHost = Settings.Default.SQLHost;
|
||||
connectionsLoader.DatabaseName = Settings.Default.SQLDatabaseName;
|
||||
|
||||
@@ -58,17 +58,14 @@ namespace mRemoteNG.Config.Connections
|
||||
var connectionTreeModel = xmlConnectionsDeserializer.Deserialize(import);
|
||||
var connectionTreeViewBuilder = new ConnectionTreeViewBuilder(connectionTreeModel);
|
||||
connectionTreeViewBuilder.Build();
|
||||
var treeNodes = new TreeNode[connectionTreeViewBuilder.TreeView.Nodes.Count];
|
||||
connectionTreeViewBuilder.TreeView.Nodes.CopyTo(treeNodes, 0);
|
||||
Windows.treeForm.tvConnections.Nodes.AddRange(treeNodes);
|
||||
//Windows.treeForm.InitialRefresh();
|
||||
connectionTreeViewBuilder.AppendTo(Windows.treeForm.tvConnections);
|
||||
}
|
||||
|
||||
frmMain.Default.AreWeUsingSqlServerForSavingConnections = UseDatabase;
|
||||
frmMain.Default.ConnectionsFileName = ConnectionFileName;
|
||||
|
||||
|
||||
if (!import)
|
||||
Putty.Sessions.AddSessionsToTree();
|
||||
Putty.Sessions.AddSessionsToTree(Windows.treeForm.tvConnections);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,32 +10,41 @@ namespace mRemoteNG.UI
|
||||
{
|
||||
public class ConnectionTreeViewBuilder
|
||||
{
|
||||
private ConnectionTreeModel _connectionTreeModel;
|
||||
private readonly ConnectionTreeModel _connectionTreeModel;
|
||||
|
||||
public TreeView TreeView { get; private set; }
|
||||
public TreeNode RootNode { get; private set; }
|
||||
public ConnectionList ConnectionList { get; set; }
|
||||
public ContainerList ContainerList { get; set; }
|
||||
|
||||
public ConnectionTreeViewBuilder(ConnectionTreeModel connectionTreeModel)
|
||||
{
|
||||
_connectionTreeModel = connectionTreeModel;
|
||||
TreeView = new TreeView();
|
||||
ConnectionList = new ConnectionList();
|
||||
ContainerList = new ContainerList();
|
||||
}
|
||||
|
||||
public void AppendTo(TreeView foreignTreeView)
|
||||
{
|
||||
foreignTreeView.BeginUpdate();
|
||||
foreignTreeView.Nodes.Add(RootNode);
|
||||
foreignTreeView.EndUpdate();
|
||||
}
|
||||
|
||||
public void Build()
|
||||
{
|
||||
var rootNodeInfo = _connectionTreeModel.RootNodes.First(a => a is RootNodeInfo);
|
||||
BuildTreeViewFromConnectionTree(rootNodeInfo, InitRootNode((RootNodeInfo)rootNodeInfo));
|
||||
InitRootNode((RootNodeInfo)rootNodeInfo);
|
||||
BuildTreeViewFromConnectionTree(rootNodeInfo, RootNode);
|
||||
}
|
||||
|
||||
private TreeNode InitRootNode(RootNodeInfo rootNodeInfo)
|
||||
private void InitRootNode(RootNodeInfo rootNodeInfo)
|
||||
{
|
||||
var rootNode = new TreeNode(rootNodeInfo.Name);
|
||||
rootNode.Expand();
|
||||
TreeView.Nodes.Add(rootNode);
|
||||
return rootNode;
|
||||
RootNode = new TreeNode(rootNodeInfo.Name)
|
||||
{
|
||||
Name = rootNodeInfo.Name,
|
||||
Tag = rootNodeInfo
|
||||
};
|
||||
RootNode.Expand();
|
||||
}
|
||||
|
||||
private void BuildTreeViewFromConnectionTree(ContainerInfo parentContainer, TreeNode parentTreeNode)
|
||||
@@ -43,7 +52,7 @@ namespace mRemoteNG.UI
|
||||
if (!parentContainer.Children.Any()) return;
|
||||
foreach (var child in parentContainer.Children)
|
||||
{
|
||||
var treeNode = new TreeNode(child.Name);
|
||||
var treeNode = new TreeNode(child.Name) {Name = child.Name};
|
||||
parentTreeNode.Nodes.Add(treeNode);
|
||||
|
||||
if (child is ContainerInfo)
|
||||
|
||||
@@ -49,7 +49,6 @@ namespace mRemoteNG.UI.Window
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.Load += new System.EventHandler(Tree_Load);
|
||||
System.Windows.Forms.TreeNode TreeNode1 = new System.Windows.Forms.TreeNode("Connections");
|
||||
this.tvConnections = new System.Windows.Forms.TreeView();
|
||||
this.tvConnections.BeforeLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.tvConnections_BeforeLabelEdit);
|
||||
this.tvConnections.AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.tvConnections_AfterLabelEdit);
|
||||
@@ -156,9 +155,6 @@ namespace mRemoteNG.UI.Window
|
||||
this.tvConnections.LabelEdit = true;
|
||||
this.tvConnections.Location = new System.Drawing.Point(0, 0);
|
||||
this.tvConnections.Name = "tvConnections";
|
||||
TreeNode1.Name = "nodeRoot";
|
||||
TreeNode1.Text = "Connections";
|
||||
this.tvConnections.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {TreeNode1});
|
||||
this.tvConnections.SelectedImageIndex = 0;
|
||||
this.tvConnections.Size = new System.Drawing.Size(192, 410);
|
||||
this.tvConnections.TabIndex = 20;
|
||||
|
||||
Reference in New Issue
Block a user