public static Tuple <LegendItemKey, ILegendItem>[] GetLegendItemsForLayer(LayerVM layer) { Dictionary <LegendItemKey, ILegendItem> resultDict = new Dictionary <LegendItemKey, ILegendItem>(); if (layer is MultiClassificationLayerIconPresentingVM) { PropertyRepresentation representation = PropertyRepresentation.SvgIcon; MultiClassificationLayerIconPresentingVM mclipVM = (MultiClassificationLayerIconPresentingVM)layer; if (mclipVM.ClassificationVM.CurrentClasses == null) { return(new Tuple <LegendItemKey, ILegendItem> [0]); } var classes = mclipVM.ClassificationVM.CurrentClasses.ToArray(); foreach (var c in classes) { LegendItemKey key = new LegendItemKey(mclipVM.ClassificationVM.PropertyName, c.ID, representation); if (!resultDict.ContainsKey(key)) { resultDict.Add(key, new SvgIconLegendItem(c)); } } } return(resultDict.Select(kvp => Tuple.Create(kvp.Key, kvp.Value)).ToArray()); }
public static Tuple <LegendItemKey, ILegendItem>[] GetLegendItemsForVisualLayer(VisualLayerPresentingVM layer) { if (layer.BackgroundBrush != null && layer.Origin.CurrentClass != null) { LegendItemKey key = new LegendItemKey(layer.Origin.PropertyName, layer.Origin.CurrentClass.ID, PropertyRepresentation.BackgroundPattern); return(new Tuple <LegendItemKey, ILegendItem>[] { Tuple.Create(key, new BacgroundFillLegendItem(layer.Origin.CurrentClass) as ILegendItem) }); } else { return(new Tuple <LegendItemKey, ILegendItem> [0]); } }