Ejemplo n.º 1
0
        public TabablzControl GetNew(TabablzControl source)
        {
            var tabablzControl = new TabablzControl {
                DataContext = source.DataContext
            };

            Clone(source, tabablzControl);

            var newInterTabController = new InterTabController
            {
                Partition = source.InterTabController.Partition
            };

            Clone(source.InterTabController, newInterTabController);
            tabablzControl.SetCurrentValue(TabablzControl.InterTabControllerProperty, newInterTabController);
            return(tabablzControl);
        }
        private static IEnumerable <Tuple <Guid, TabablzControl> > BuildLayout(
            TabablzControl intoTabablzControl,
            LayoutStructureBranch layoutStructureBranch,
            IDictionary <Guid, LayoutStructureBranch> layoutStructureBranchIndex)
        {
            var newSiblingTabablzControl = new TabablzControl();
            var branchResult             = Layout.Branch(intoTabablzControl, newSiblingTabablzControl, layoutStructureBranch.Orientation, false, layoutStructureBranch.Ratio);

            var newInterTabController = new InterTabController
            {
                Partition      = intoTabablzControl.InterTabController.Partition,
                InterTabClient = intoTabablzControl.InterTabController.InterTabClient
            };

            CaliburnInterLayoutClient.Clone(intoTabablzControl.InterTabController, newInterTabController);
            newSiblingTabablzControl.SetCurrentValue(TabablzControl.InterTabControllerProperty, newInterTabController);

            if (layoutStructureBranch.ChildFirstBranchId.HasValue)
            {
                var firstChildBranch = layoutStructureBranchIndex[layoutStructureBranch.ChildFirstBranchId.Value];
                foreach (var tuple in BuildLayout(intoTabablzControl, firstChildBranch, layoutStructureBranchIndex))
                {
                    yield return(tuple);
                }
            }
            else if (layoutStructureBranch.ChildFirstTabSetId.HasValue)
            {
                SetTabSetId(intoTabablzControl, layoutStructureBranch.ChildFirstTabSetId.Value);
                yield return(new Tuple <Guid, TabablzControl>(layoutStructureBranch.ChildFirstTabSetId.Value, intoTabablzControl));
            }

            if (layoutStructureBranch.ChildSecondBranchId.HasValue)
            {
                var secondChildBranch = layoutStructureBranchIndex[layoutStructureBranch.ChildSecondBranchId.Value];
                foreach (var tuple in BuildLayout(branchResult.TabablzControl, secondChildBranch, layoutStructureBranchIndex))
                {
                    yield return(tuple);
                }
            }
            else if (layoutStructureBranch.ChildSecondTabSetId.HasValue)
            {
                SetTabSetId(newSiblingTabablzControl, layoutStructureBranch.ChildSecondTabSetId.Value);
                yield return(new Tuple <Guid, TabablzControl>(layoutStructureBranch.ChildSecondTabSetId.Value, newSiblingTabablzControl));
            }
        }
        public INewTabHost <UIElement> GetNewHost(object partition, TabablzControl source)
        {
            TabablzControl tabablzControl1 = new TabablzControl();
            object         dataContext     = source.DataContext;

            tabablzControl1.DataContext = dataContext;
            TabablzControl tabablzControl2 = tabablzControl1;

            DefaultInterLayoutClientEx.Clone((DependencyObject)source, (DependencyObject)tabablzControl2);
            InterTabController interTabController = new InterTabController()
            {
                Partition = source.InterTabController.Partition
            };

            DefaultInterLayoutClientEx.Clone((DependencyObject)source.InterTabController, (DependencyObject)interTabController);
            tabablzControl2.SetCurrentValue(TabablzControl.InterTabControllerProperty, (object)interTabController);
            return((INewTabHost <UIElement>) new NewTabHost <UIElement>((UIElement)tabablzControl2, tabablzControl2));
        }
Ejemplo n.º 4
0
        public INewTabHost <UIElement> GetNewHost(object partition, TabablzControl source)
        {
            var tabablzControl = new TabablzControl {
                DataContext = source.DataContext
            };

            Clone(source, tabablzControl);

            if (source.InterTabController == null)
            {
                throw new InvalidOperationException("Source tab does not have an InterTabCOntroller set.  Ensure this is set on initial, and subsequently generated tab controls.");
            }

            var newInterTabController = new InterTabController
            {
                Partition = source.InterTabController.Partition
            };

            Clone(source.InterTabController, newInterTabController);
            tabablzControl.SetCurrentValue(TabablzControl.InterTabControllerProperty, newInterTabController);

            return(new NewTabHost <UIElement>(tabablzControl, tabablzControl));
        }
Ejemplo n.º 5
0
        public INewTabHost <UIElement> GetNewHost(object partition, TabablzControl source)
        {
            TabControlVM   vm = new TabControlVM();
            InterTabWindow mw = (InterTabWindow)Window.GetWindow(source);

            mw.TabWindowVM.TabControlVMs.Add(vm);
            var tabablzControl = new TabablzControl {
                DataContext = vm
            };

            tabablzControl.ItemsSource = vm.TabPanelVMs;

            Clone(source, tabablzControl);

            var newInterTabController = new InterTabController
            {
                Partition = source.InterTabController.Partition
            };

            Clone(source.InterTabController, newInterTabController);
            tabablzControl.SetCurrentValue(TabablzControl.InterTabControllerProperty, newInterTabController);

            return(new NewTabHost <UIElement>(tabablzControl, tabablzControl));
        }