public void FindFileOnClick(object sender, EventArgs e)
{
var searchWindow = new SearchWindow<string>(FindFileMatches)
{
Owner = this
};
searchWindow.ShowDialog();
string selectedItem = searchWindow.SelectedItem;
if (string.IsNullOrEmpty(selectedItem))
{
return;
}
string[] items = selectedItem.Split(new char[]{'/'});
TreeNodeCollection nodes = GitTree.Nodes;
TreeNode selectedNode = null;
for (int i = 0; i < items.Length - 1; i++)
{
selectedNode = Find(nodes, items[i]);
if (selectedNode == null)
{
return; //Item does not exist in the tree
}
selectedNode.Expand();
nodes = selectedNode.Nodes;
}
var lastItem = Find(nodes, items[items.Length - 1]);
if (lastItem != null)
{
GitTree.SelectedNode = lastItem;
}
}