public IEnumerable <object> TryRestore(DocumentTabService documentTabService, IDocumentTabContentFactoryService documentTabContentFactoryService, ITabGroup g) { var guid = Content.Attribute <Guid?>(CONTENT_GUID_ATTR); if (guid == null) { yield break; } var ctx = new GetNodesContext(); foreach (var o in GetNodes(ctx, documentTabService.DocumentTreeView)) { yield return(o); } if (ctx.Nodes == null) { yield break; } var tabContent = documentTabContentFactoryService.Deserialize(guid.Value, Content, ctx.Nodes); yield return(null); if (tabContent == null) { yield break; } documentTabService.Add(g, tabContent, null, (Action <ShowTabContentEventArgs>)(a => { if (a.Success) { var uiContext = tabContent.DocumentTab.UIContext; tabContent.DocumentTab.DeserializeUI((ISettingsSection)TabUI); var obj = uiContext.DeserializeUIState(UI); uiContext.RestoreUIState(obj); } })); yield return(null); }
public IEnumerable<object> TryRestore(DocumentTabService documentTabService, IDocumentTabContentFactoryService documentTabContentFactoryService, ITabGroup g) { var guid = Content.Attribute<Guid?>(CONTENT_GUID_ATTR); if (guid == null) yield break; var ctx = new GetNodesContext(); foreach (var o in GetNodes(ctx, documentTabService.DocumentTreeView)) yield return o; if (ctx.Nodes == null) yield break; var tabContent = documentTabContentFactoryService.Deserialize(guid.Value, Content, ctx.Nodes); yield return null; if (tabContent == null) yield break; documentTabService.Add(g, tabContent, null, (Action<ShowTabContentEventArgs>)(a => { if (a.Success) { var uiContext = tabContent.DocumentTab.UIContext; tabContent.DocumentTab.DeserializeUI((ISettingsSection)TabUI); var obj = uiContext.DeserializeUIState(UI); uiContext.RestoreUIState(obj); } })); yield return null; }