public static void ActivateInstance(Document InDocument) { // Disable existing instance, if there's active one. ActiveInstance?.MakeActive(false); ActiveInstance = null; // Find out if we already have instance for this document and // activate it if we do. Otherwise, create new one. FDirectLink InstanceToActivate = null; foreach (FDirectLink DL in Instances) { if (DL.RootCache.SourceDocument.Equals(InDocument)) { InstanceToActivate = DL; break; } } if (InstanceToActivate == null) { InstanceToActivate = new FDirectLink(InDocument); Instances.Add(InstanceToActivate); } InstanceToActivate.MakeActive(true); ActiveInstance = InstanceToActivate; }