Esempio n. 1
0
        public void OrderedChildListTest()
        {
            var root = new FlexNodeReport(null, null);

            root.ProcessAsTable = true;
            root.Add("1");
            root.Add("2");
            root.Add("3");
            Assert.AreEqual(3, root.ChildListCount);

            root[2].DataItem.Top  = 1;
            root[2].DataItem.Left = 100;
            root[1].DataItem.Top  = 10;
            root[1].DataItem.Left = 10;
            root[0].DataItem.Top  = 20;
            root[0].DataItem.Left = 1;

            var ordered = new List <FlexNodeReport>();

            foreach (var nd in root.OrderedChildList)
            {
                ordered.Add((FlexNodeReport)nd);
            }

            Assert.AreSame(root[0], ordered[2]);
            Assert.AreSame(root[1], ordered[1]);
            Assert.AreSame(root[2], ordered[0]);
        }
Esempio n. 2
0
        public void ShouldProcessAstableVisitorTest()
        {
            var root = new FlexNodeReport(null, null)
            {
                ProcessAsTable = true
            };
            var n = root.Add("1");

            Assert.IsFalse(n.ProcessAsTable);
            root.AcceptForward(new ShouldProcessAsTableVisitor());
            Assert.IsTrue(n.ProcessAsTable);
        }
Esempio n. 3
0
        public static FlexNodeReport ConvertNode(FlexNode nodeFF, EditableList <ActivityParameter> aps)
        {
            var rootNode = new FlexNodeReport(null, null);

            if (nodeFF != null)
            {
                foreach (var ndc in nodeFF.ChildList)
                {
                    CopyNode(rootNode, (FlexNode)ndc, aps);
                }
            }
            return(rootNode);
        }
Esempio n. 4
0
        public static FlexNodeReport CopyNode(FlexNodeReport parentNode, FlexNode nodeFF, EditableList <ActivityParameter> aps)
        {
            //We have to create two nodes for PrameterTemplate and ParameterDeletedFromTemplate
            FlexItem di1 = null;
            FlexItem di2 = null;

            if (nodeFF.DataItem != null)
            {
                var lo = nodeFF.DataItem.LinkedObject;

                if (lo is SectionTemplate)
                {
                    var st = (SectionTemplate)lo;
                    if (st.blnGrid)
                    {
                        di1 = new FlexTableItem(st);
                    }
                    else
                    {
                        di1 = new FlexLabelItem(st);
                    }
                }
                else if (lo is SectionDeletedFromTemplate)
                {
                    di1 = new FlexLabelItem((SectionDeletedFromTemplate)lo);
                }
                else if (lo is ParameterTemplate && aps != null)
                {
                    var pt = (ParameterTemplate)lo;
                    di1 = new FlexLabelItem(pt, false);
                    var needAp = true;
                    var st     = pt.ParentSection;
                    if (st != null && st.blnGrid)
                    {
                        needAp = false;
                    }
                    if (needAp)
                    {
                        var ap = aps.FirstOrDefault(c => c.idfsParameter == pt.idfsParameter);
                        if (ap != null)
                        {
                            di2 = new FlexLabelItem(pt, ap)
                            {
                                IsParameterValue = true
                            };
                            //di2.Left = di1.Width - pt.intLabelSize;
                        }
                    }
                }
                else if (lo is ParametersDeletedFromTemplate && aps != null)//String
                {
                    var pt = (ParametersDeletedFromTemplate)lo;
                    di1 = new FlexLabelItem(pt, false);
                    var ap = aps.FirstOrDefault(c => c.idfsParameter == pt.idfsParameter);
                    if (ap != null)
                    {
                        di2 = new FlexLabelItem(pt, ap)
                        {
                            IsParameterValue = true
                        }
                    }
                    ;
                }
                else if (lo is Label)
                {
                    di1 = new FlexLabelItem((Label)lo);
                }
                else if (lo is PredefinedStub)
                {
                    di1 = new FlexLabelItem(nodeFF.Text, new Size(nodeFF.Width, 0), lo);
                }
                else if (lo is String)
                {
                    di1 = new FlexLabelItem(nodeFF.DataItem.LinkedObject.ToString(), new Size(nodeFF.Width, 0), lo);
                }
            }

            var nodeReport = new FlexNodeReport(parentNode, di1);

            parentNode.Add(nodeReport);
            if (di2 != null)
            {
                var nodeReport2 = new FlexNodeReport(parentNode, di2);
                parentNode.Add(nodeReport2);
            }

            foreach (var nd in nodeFF.ChildList)
            {
                CopyNode(nodeReport, (FlexNode)nd, aps);
            }

            return(nodeReport);
        }