示例#1
0
		FileListLoader(IAppWindow appWindow, FileListManager fileListManager, FileTabManager fileTabManager, FileTabSerializer fileTabSerializer, [ImportMany] IEnumerable<Lazy<IFileListListener, IFileListListenerMetadata>> mefListeners) {
			this.fileListManager = fileListManager;
			this.fileTabManager = fileTabManager;
			this.fileTabSerializer = fileTabSerializer;
			this.listeners = mefListeners.OrderBy(a => a.Metadata.Order).ToArray();
			appWindow.MainWindowClosed += AppWindow_MainWindowClosed;
		}
示例#2
0
 public TabContentImpl(FileTabManager fileTabManager, IFileTabUIContextLocator fileTabUIContextLocator, Lazy<IReferenceFileTabContentCreator, IReferenceFileTabContentCreatorMetadata>[] refFactories)
 {
     this.elementScaler = new TabElementScaler();
     this.tabHistory = new TabHistory();
     this.tabHistory.SetCurrent(new NullFileTabContent(), false);
     this.fileTabManager = fileTabManager;
     this.fileTabUIContextLocator = fileTabUIContextLocator;
     this.refFactories = refFactories;
     this.uiContext = new NullFileTabUIContext();
     this.uiObject = this.uiContext.UIObject;
 }
示例#3
0
 FileTabManagerLoader(FileTabSerializer fileTabSerializer, FileTabManager fileTabManager, IFileListLoader fileListLoader)
 {
     this.fileTabSerializer = fileTabSerializer;
     this.fileTabManager = fileTabManager;
     this.fileListLoader = fileListLoader;
 }
示例#4
0
 FileTabSerializer(IFileTabContentFactoryManager fileTabContentFactoryManager, FileTabManager fileTabManager)
 {
     this.fileTabContentFactoryManager = fileTabContentFactoryManager;
     this.fileTabManager = fileTabManager;
 }
示例#5
0
        public IEnumerable<object> Restore(FileTabManager fileTabManager, IFileTabContentFactoryManager creator, ITabGroupManager mgr)
        {
            mgr.IsHorizontal = IsHorizontal;
            for (int i = 0; i < TabGroups.Count; i++) {
                var stg = TabGroups[i];
                var g = i == 0 ? mgr.ActiveTabGroup ?? mgr.Create() : mgr.Create();
                yield return null;
                foreach (var o in stg.Restore(fileTabManager, creator, g))
                    yield return o;
            }

            if (StackedContentState != null)
                ((TabGroupManager)mgr).StackedContentState = StackedContentState;

            var ary = mgr.TabGroups.ToArray();
            if ((uint)Index < (uint)ary.Length)
                mgr.ActiveTabGroup = ary[Index];
            yield return null;
        }
示例#6
0
 public IEnumerable<object> Restore(FileTabManager fileTabManager, IFileTabContentFactoryManager creator, ITabGroup g)
 {
     foreach (var st in Tabs) {
         foreach (var o in st.TryRestore(fileTabManager, creator, g))
             yield return o;
     }
     var ary = g.TabContents.ToArray();
     if ((uint)Index < (uint)ary.Length)
         g.ActiveTabContent = ary[Index];
     yield return null;
 }
示例#7
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;
 }