private void AddToTree(TreeNodeCollection nodes, LayerItem layer, Figure first) { foreach (var fig in _layer.Figures.ToList().AsEnumerable().Reverse()) { if (layer == null && !_layer.AssignedToLayer(fig) || layer != null && layer.Figures.Contains(fig)) { var state = !_layer.IsVisible(fig) ? " (hidden)" : _layer.IsLocked(fig) ? " (locked)" : ""; var fignode = new FigureTreeNode( string.Format("{0}{1}", fig.Geometry, state)) { Figure = fig }; nodes.Add(fignode); AddDecorators(fig, fignode); if (fig == first) { tvFigures.SelectedNode = fignode; fignode.ExpandAll(); } } } }
private static void AddDecorators(Figure fig, FigureTreeNode fignode) { if (Helper.ContainsAnyDecorator(fig)) { if (FillDecorator.ContainsAnyDecorator(fig.Style.FillStyle)) { var list = FillDecorator.GetDecorators(fig.Style.FillStyle); foreach (var item in list) { fignode.Nodes.Add(string.Format("{0}FillStyleDecorator", item)); } } if (RendererDecorator.ContainsAnyDecorator(fig.Renderer)) { var list = RendererDecorator.GetDecorators(fig.Renderer); foreach (var item in list) { fignode.Nodes.Add(string.Format("{0}RendererDecorator", item)); } } } }