void ISelectorControl.CentraliseMostImportantParent()
{
var parentNodes = GetVisibleNodeControls().Where(q => q.ParentNodes.Count == 0);
NodeControl mostImportantParent = null;
foreach (NodeControl parent in parentNodes)
{
if (mostImportantParent == null)
{
mostImportantParent = parent;
}
else if (parent.GetAllChildNodeControls().Count() > mostImportantParent.GetAllChildNodeControls().Count())
{
mostImportantParent = parent;
}
}
if (mostImportantParent == null)
{
var ordered =
GetVisibleNodeControls()
.OrderBy(q => q.ViewModelNode.Location.Y)
.ThenBy(q => q.ViewModelNode.Location.X);
mostImportantParent = ordered.FirstOrDefault();
}
if (mostImportantParent != null)
{
CentraliseNodeVertically(mostImportantParent);
}
}