IEnumerable<object> GetNodes(GetNodesContext ctx, IFileTreeView fileTreeView) { var list = new List<IFileTreeNodeData>(); var root = fileTreeView.TreeView.Root; var findCtx = new FindNodeContext(); foreach (var path in paths) { foreach (var o in path.FindNode(findCtx, root)) yield return o; if (findCtx.Node == null) yield break; list.Add(findCtx.Node); } ctx.Nodes = list.ToArray(); }
IEnumerable <object> GetNodes(GetNodesContext ctx, IDocumentTreeView documentTreeView) { var list = new List <DocumentTreeNodeData>(); var root = documentTreeView.TreeView.Root; var findCtx = new FindNodeContext(); foreach (var path in Paths) { foreach (var o in path.FindNode(findCtx, root)) { yield return(o); } if (findCtx.Node == null) { yield break; } list.Add(findCtx.Node); } ctx.Nodes = list.ToArray(); }
public IEnumerable<object> TryRestore(FileTabManager fileTabManager, IFileTabContentFactoryManager creator, 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, fileTabManager.FileTreeView)) yield return o; if (ctx.Nodes == null) yield break; var tabContent = creator.Deserialize(guid.Value, Content, ctx.Nodes); yield return null; if (tabContent == null) yield break; fileTabManager.Add(g, tabContent, null, a => { if (a.Success) { var uiContext = tabContent.FileTab.UIContext; tabContent.FileTab.DeserializeUI(TabUI); var obj = uiContext.CreateSerialized(UI); uiContext.Deserialize(obj); } }); yield return null; }
public IEnumerable <object> TryRestore(FileTabManager fileTabManager, IFileTabContentFactoryManager fileTabContentFactoryManager, 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, fileTabManager.FileTreeView)) { yield return(o); } if (ctx.Nodes == null) { yield break; } var tabContent = fileTabContentFactoryManager.Deserialize(guid.Value, Content, ctx.Nodes); yield return(null); if (tabContent == null) { yield break; } fileTabManager.Add(g, tabContent, null, (Action <ShowTabContentEventArgs>)(a => { if (a.Success) { var uiContext = tabContent.FileTab.UIContext; tabContent.FileTab.DeserializeUI((ISettingsSection)this.TabUI); var obj = uiContext.CreateSerialized(UI); uiContext.Deserialize(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); }
IEnumerable<object> GetNodes(GetNodesContext ctx, IDocumentTreeView documentTreeView) { var list = new List<DocumentTreeNodeData>(); var root = documentTreeView.TreeView.Root; var findCtx = new FindNodeContext(); foreach (var path in Paths) { foreach (var o in path.FindNode(findCtx, root)) yield return o; if (findCtx.Node == null) yield break; list.Add(findCtx.Node); } ctx.Nodes = list.ToArray(); }
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; }