Esempio n. 1
0
            public BranchContext(LayoutStructureBranch parent, bool isSecond)
            {
                if (parent == null)
                {
                    throw new ArgumentNullException(nameof(parent));
                }

                Parent   = parent;
                IsSecond = isSecond;
            }
Esempio n. 2
0
        private static void VisitAndDocumentChildren(BranchAccessor branchAccessor, BranchContext context, ICollection <LayoutStructureBranch> branches, ICollection <LayoutStructureTabSet> layoutStructureTabSets)
        {
            //figure out the current ID: if there is no context, this is
            //root, otherwise, the parent will have assigned the id
            Guid id;

            if (context == null)
            {
                id = Guid.NewGuid();
            }
            else
            {
                id = context.IsSecond
                    ? context.Parent.ChildSecondBranchId.Value
                    : context.Parent.ChildFirstBranchId.Value;
            }

            //document the current branch
            var layoutStructureBranch = new LayoutStructureBranch(
                id,
                IdOrNull(branchAccessor.FirstItemBranchAccessor),
                IdOrNull(branchAccessor.SecondItemBranchAccessor),
                IdOrNull(branchAccessor.FirstItemTabablzControl),
                IdOrNull(branchAccessor.SecondItemTabablzControl),
                branchAccessor.Branch.Orientation,
                branchAccessor.Branch.GetFirstProportion());

            branches.Add(layoutStructureBranch);

            //run throw the child branches or tab controls
            if (branchAccessor.FirstItemBranchAccessor != null)
            {
                VisitAndDocumentChildren(branchAccessor.FirstItemBranchAccessor, new BranchContext(layoutStructureBranch, false), branches, layoutStructureTabSets);
            }
            else
            {
                DocumentTabSet(layoutStructureBranch.ChildFirstTabSetId.Value, branchAccessor.FirstItemTabablzControl, layoutStructureTabSets);
            }
            if (branchAccessor.SecondItemBranchAccessor != null)
            {
                VisitAndDocumentChildren(branchAccessor.SecondItemBranchAccessor, new BranchContext(layoutStructureBranch, true), branches, layoutStructureTabSets);
            }
            else
            {
                DocumentTabSet(layoutStructureBranch.ChildSecondTabSetId.Value, branchAccessor.SecondItemTabablzControl, layoutStructureTabSets);
            }
        }
Esempio n. 3
0
        private static JObject ToJson(LayoutStructureBranch branch)
        {
            if (branch == null)
            {
                throw new ArgumentNullException(nameof(branch));
            }

            dynamic b = new JObject();

            b.id = branch.Id;
            b.childFirstTabSetId  = branch.ChildFirstTabSetId;
            b.childSecondTabSetId = branch.ChildSecondTabSetId;
            b.childFirstBranchId  = branch.ChildFirstBranchId;
            b.childSecondBranchId = branch.ChildSecondBranchId;
            b.orientaion          = branch.Orientation;
            b.ratio = branch.Ratio;
            return(b);
        }