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; }
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); }