Fixed issue with display of connections tree which was caused by new connection tree builder code

This commit is contained in:
David Sparer
2016-08-22 16:04:06 -06:00
parent a1a8bd9656
commit 020433d7ad
5 changed files with 33 additions and 31 deletions

View File

@@ -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));
}

View File

@@ -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;

View File

@@ -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);
}
}
}

View File

@@ -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)

View File

@@ -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;