private static BOXMODEL.BoxLayout CreateTwoLevelLayout(List<string[]> data)
        {
            double itemsep = 0.0;
            var major_group_direction = BOXMODEL.Direction.LeftToRight;
            var minor_group_direction = BOXMODEL.Direction.TopToBottom;

            var name_to_major_group = new Dictionary<string, BOXMODEL.Container>();
            var name_to_minor_group = new Dictionary<string, BOXMODEL.Container>();

            var layout1 = new BOXMODEL.BoxLayout();
            layout1.Root = new BOXMODEL.Container(major_group_direction);

            var major_cells = new VA.DOM.ShapeCells();
            major_cells.FillForegnd = "rgb(245,245,245)";
            major_cells.CharFont = 0;
            major_cells.CharSize = "12pt";
            major_cells.ParaHorizontalAlign = "0";
            major_cells.VerticalAlign = "0";
            major_cells.LineWeight = "0";
            major_cells.LinePattern = "0";

            var minor_cells = new VA.DOM.ShapeCells();
            minor_cells.FillForegnd = "rgb(230,230,230)";
            minor_cells.CharFont = 0;
            minor_cells.CharSize = "10pt";
            minor_cells.ParaHorizontalAlign = "0";
            minor_cells.VerticalAlign = "0";
            minor_cells.LineWeight = "0";
            minor_cells.LinePattern = "0";

            var item_cells = new VA.DOM.ShapeCells();
            item_cells.CharFont = 0;
            item_cells.FillPattern = "0";
            item_cells.CharSize = "8pt";
            item_cells.ParaHorizontalAlign = "0";
            item_cells.VerticalAlign = "0";
            item_cells.LineWeight = "0";
            item_cells.LinePattern = "0";

            foreach (var row in data)
            {
                var majorname = row[0];
                var minorname = row[1];
                var itemname = row[2];

                BOXMODEL.Container majorcnt;
                if (name_to_major_group.ContainsKey(majorname))
                {
                    majorcnt = name_to_major_group[majorname];
                }
                else
                {
                    majorcnt = layout1.Root.AddContainer(minor_group_direction, 1, 1);

                    var major_info = new TwoLevelInfo();
                    major_info.Text = majorname;
                    major_info.Render = true;
                    major_info.ShapeCells = major_cells;
                    majorcnt.Data = major_info;

                    name_to_major_group[majorname] = majorcnt;

                    BOXMODEL.Box headerbox = majorcnt.AddBox(2, 0.25);
                }

                BOXMODEL.Container minorcnt;
                var minorkey = majorname + "___" + minorname;
                if (name_to_minor_group.ContainsKey(minorkey))
                {
                    minorcnt = name_to_minor_group[minorkey];
                }
                else
                {
                    minorcnt = majorcnt.AddContainer(minor_group_direction);
                    minorcnt.ChildSpacing = itemsep;
                    var minor_info = new TwoLevelInfo();
                    minor_info.Text = minorname;
                    minor_info.Render = true;
                    minor_info.ShapeCells = minor_cells;
                    minorcnt.Data = minor_info;
                    name_to_minor_group[minorkey] = minorcnt;

                    BOXMODEL.Box headerbox = minorcnt.AddBox(2, 0.25);
                }

                BOXMODEL.Box itembox = minorcnt.AddBox(2, 0.25);

                var item_info = new TwoLevelInfo();
                item_info.Text = itemname;
                item_info.Render = true;

                item_info.ShapeCells = item_cells;

                itembox.Data = item_info;
            }
            return layout1;
        }
예제 #2
0
        private static BoxLayout CreateTwoLevelLayout(List <string[]> data)
        {
            double itemsep = 0.0;
            var    major_group_direction = Direction.LeftToRight;
            var    minor_group_direction = Direction.TopToBottom;

            var name_to_major_group = new Dictionary <string, Container>();
            var name_to_minor_group = new Dictionary <string, Container>();

            var layout1 = new BoxLayout();

            layout1.Root = new Container(major_group_direction);

            var major_cells = new ShapeCells();

            major_cells.FillForeground         = "rgb(245,245,245)";
            major_cells.CharFont               = 0;
            major_cells.CharSize               = "12pt";
            major_cells.ParaHorizontalAlign    = "0";
            major_cells.TextBlockVerticalAlign = "0";
            major_cells.LineWeight             = "0";
            major_cells.LinePattern            = "0";

            var minor_cells = new ShapeCells();

            minor_cells.FillForeground         = "rgb(230,230,230)";
            minor_cells.CharFont               = 0;
            minor_cells.CharSize               = "10pt";
            minor_cells.ParaHorizontalAlign    = "0";
            minor_cells.TextBlockVerticalAlign = "0";
            minor_cells.LineWeight             = "0";
            minor_cells.LinePattern            = "0";

            var item_cells = new ShapeCells();

            item_cells.CharFont               = 0;
            item_cells.FillPattern            = "0";
            item_cells.CharSize               = "8pt";
            item_cells.ParaHorizontalAlign    = "0";
            item_cells.TextBlockVerticalAlign = "0";
            item_cells.LineWeight             = "0";
            item_cells.LinePattern            = "0";


            foreach (var row in data)
            {
                var majorname = row[0];
                var minorname = row[1];
                var itemname  = row[2];

                Container majorcnt;
                if (name_to_major_group.ContainsKey(majorname))
                {
                    majorcnt = name_to_major_group[majorname];
                }
                else
                {
                    majorcnt = layout1.Root.AddContainer(minor_group_direction, 1, 1);

                    var major_info = new TwoLevelInfo();
                    major_info.Text       = majorname;
                    major_info.Render     = true;
                    major_info.ShapeCells = major_cells;
                    majorcnt.Data         = major_info;


                    name_to_major_group[majorname] = majorcnt;

                    Box headerbox = majorcnt.AddBox(2, 0.25);
                }

                Container minorcnt;
                var       minorkey = majorname + "___" + minorname;
                if (name_to_minor_group.ContainsKey(minorkey))
                {
                    minorcnt = name_to_minor_group[minorkey];
                }
                else
                {
                    minorcnt = majorcnt.AddContainer(minor_group_direction);
                    minorcnt.ChildSpacing = itemsep;
                    var minor_info = new TwoLevelInfo();
                    minor_info.Text               = minorname;
                    minor_info.Render             = true;
                    minor_info.ShapeCells         = minor_cells;
                    minorcnt.Data                 = minor_info;
                    name_to_minor_group[minorkey] = minorcnt;

                    Box headerbox = minorcnt.AddBox(2, 0.25);
                }

                Box itembox = minorcnt.AddBox(2, 0.25);

                var item_info = new TwoLevelInfo();
                item_info.Text   = itemname;
                item_info.Render = true;


                item_info.ShapeCells = item_cells;

                itembox.Data = item_info;
            }
            return(layout1);
        }