public void DeleteInnerScheme(InnerContainer container) { var removedLinks = new List <LinkContainer>(); container.SourceThisLinks.ForEach((x) => { if (removedLinks.Contains(x)) { return; } removedLinks.Add(x); x.Link.RemoveLink(); x.Design.DestroyThis(); x.TargetScheme.TargetThisLinks.Remove(x); Links.Remove(x); }); container.TargetThisLinks.ForEach((x) => { if (removedLinks.Contains(x)) { return; } x.Link.RemoveLink(); x.Design.DestroyThis(); x.SourceScheme.SourceThisLinks.Remove(x); Links.Remove(x); }); removedLinks.Clear(); (container.Design as BaseInnerSchemeDesign).DestroyThis(); container.Scheme.UnlinkAll(); InnerSchemes.Remove(container); InnerSchemesList.Remove(container.Scheme); Schemes.Remove(container.SchemeName); }
public void AddScheme(UIInnerSchemeBuildInfo innerSchemeInfo) { var innerContainer = new InnerContainer(innerSchemeInfo); InnerSchemes.Add(innerContainer); InnerSchemesList.Add(innerContainer.Scheme); Schemes.Add(innerSchemeInfo.BuildString.Name, innerContainer); innerContainer.Design = SchemeDesigner.Instance.CreateInnerScheme(innerContainer); }