public override KryptonDockingEdgeDocked FindDockingEdgeDocked(string uniqueName)
{
// Try and find as an existing page inside the hierarchy
DockingElement element = FindPageElement(uniqueName) as DockingElement;
// If exists as a dockspace page...
if (element is KryptonDockingDockspace)
{
// Find the edge the dockspace is against and return the matching docked edge
KryptonDockingEdgeDocked edge = element.GetParentType(typeof(KryptonDockingEdgeDocked)) as KryptonDockingEdgeDocked;
if (edge != null)
return edge;
}
// If exists as a auto hidden group page...
if (element is KryptonDockingAutoHiddenGroup)
{
KryptonDockingEdgeAutoHidden edge = element.GetParentType(typeof(KryptonDockingEdgeAutoHidden)) as KryptonDockingEdgeAutoHidden;
if (edge != null)
{
// Finally we grab the auto hidden edge that is expected to be a sibling of the docked edge
KryptonDockingEdgeDocked edgeDocked = edge["Docked"] as KryptonDockingEdgeDocked;
if (edgeDocked != null)
return edgeDocked;
}
}
// First preference is to find an existing store page inside a dockspace element
KryptonDockingDockspace dockspace = FindStorePageElement(DockingLocation.Docked, uniqueName) as KryptonDockingDockspace;
if (dockspace != null)
{
// Find the docked edge that the dockspace is inside
KryptonDockingEdgeDocked edgeDocked = dockspace.GetParentType(typeof(KryptonDockingEdgeDocked)) as KryptonDockingEdgeDocked;
if (edgeDocked != null)
return edgeDocked;
}
// Second preference is to find an existing store page inside a auto hidden group element
KryptonDockingAutoHiddenGroup group = FindStorePageElement(DockingLocation.AutoHidden, uniqueName) as KryptonDockingAutoHiddenGroup;
if (group != null)
{
// Navigate upwards to find the edge that this group is inside
KryptonDockingEdge edge = group.GetParentType(typeof(KryptonDockingEdge)) as KryptonDockingEdge;
if (edge != null)
{
// Finally we grab the docked edge that is expected to be a sibling of the auto hidden edge
KryptonDockingEdgeDocked edgeDocked = edge["Docked"] as KryptonDockingEdgeDocked;
if (edgeDocked != null)
return edgeDocked;
}
}
// Failed, so use default processing
return base.FindDockingEdgeDocked(uniqueName);
}