Esempio n. 1
0
		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();
		}
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
		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;
		}
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
		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();
		}
Esempio n. 7
0
		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;
		}
Esempio n. 8
0
 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;
 }