Ejemplo n.º 1
0
    // How to set the main Content
    public TabInstance AddTab(ITab tab)
    {
        TabInstance tabInstance = tab.Create();

        tabInstance.Model.Name = "Start";
        tabInstance.iTab       = tab;
        tabInstance.Project    = Project;
        if (LoadBookmarkUri != null)
        {
            // Wait until Bookmarks tab has been created
            Dispatcher.UIThread.Post(() => ImportBookmark(new Call(), LoadBookmarkUri, false), DispatcherPriority.SystemIdle);
        }
        else if (LoadBookmark != null)
        {
            tabInstance.TabBookmark = LoadBookmark.TabBookmark;
        }
        else if (Project.UserSettings.AutoLoad)         // did we load successfully last time?
        {
            tabInstance.LoadDefaultBookmark();
        }

        TabView = new TabView(tabInstance);
        TabView.Load();

        //scrollViewer.Content = tabView;
        ContentGrid.Children.Add(TabView);

        return(tabInstance);
    }
Ejemplo n.º 2
0
    public TabInstance Create()
    {
        if (Bookmark.Type == null)
        {
            return(null);
        }

        if (!typeof(ITab).IsAssignableFrom(Bookmark.Type))
        {
            throw new Exception("Bookmark.Type must implement ITab");
        }

        var      call         = new Call();
        Bookmark bookmarkCopy = Bookmark.DeepClone(call, true);         // This will get modified as users navigate

        ITab tab = bookmarkCopy.TabBookmark.Tab;

        if (tab == null)
        {
            tab = (ITab)Activator.CreateInstance(bookmarkCopy.Type);
        }

        if (tab is IReload reloadable)
        {
            reloadable.Reload();
        }

        TabInstance tabInstance = tab.Create();

        tabInstance.Project = Project.Open(bookmarkCopy);
        tabInstance.iTab    = this;
        tabInstance.IsRoot  = true;
        tabInstance.SelectBookmark(bookmarkCopy.TabBookmark);
        return(tabInstance);
    }