/// <summary> /// If possible, use the template to control the colors. Otherwise, just use the default /// settings for creating "unbounded" colors. /// </summary> /// <param name="count">The integer count.</param> /// <returns>The List of colors.</returns> protected override List <Color> GetDefaultColors(int count) { IPointSymbolizer ps = EditorSettings?.TemplateSymbolizer as IPointSymbolizer; if (ps != null) { List <Color> result = new List <Color>(); Color c = ps.GetFillColor(); for (int i = 0; i < count; i++) { result.Add(c); } return(result); } return(base.GetDefaultColors(count)); }
/// <summary> /// Handles the inter-connectivity of the various controls and updates /// them all to match the latest value. /// </summary> public void UpdateControls() { if (_ignore) { return; } _ignore = true; if (_sizeRange == null) { _ignore = false; return; } chkSizeRange.Checked = _sizeRange.UseSizeRange; trkStart.Value = (int)_sizeRange.Start; trkEnd.Value = (int)_sizeRange.End; IPointSymbolizer ps = _sizeRange.Symbolizer as IPointSymbolizer; if (ps != null) { Color color = ps.GetFillColor(); if (_scheme != null && _scheme.EditorSettings.UseColorRange) { color = _scheme.EditorSettings.StartColor; } if (chkSizeRange.Checked) { psvStart.Symbolizer = _sizeRange.GetSymbolizer(_sizeRange.Start, color) as IPointSymbolizer; } else { IPointSymbolizer sm = ps.Copy(); sm.SetFillColor(color); psvStart.Symbolizer = sm; } if (_scheme != null && _scheme.EditorSettings.UseColorRange) { color = _scheme.EditorSettings.EndColor; } if (chkSizeRange.Checked) { psvEnd.Symbolizer = _sizeRange.GetSymbolizer(_sizeRange.End, color) as IPointSymbolizer; } else { IPointSymbolizer sm = ps.Copy(); sm.SetFillColor(color); psvEnd.Symbolizer = sm; } } ILineSymbolizer ls = _sizeRange.Symbolizer as ILineSymbolizer; if (ls != null) { Color color = ls.GetFillColor(); if (_scheme != null && _scheme.EditorSettings.UseColorRange) { color = _scheme.EditorSettings.StartColor; } if (chkSizeRange.Checked) { lsvStart.Symbolizer = _sizeRange.GetSymbolizer(_sizeRange.Start, color) as ILineSymbolizer; } else { ILineSymbolizer sm = ls.Copy(); sm.SetFillColor(color); lsvStart.Symbolizer = sm; } if (_scheme != null && _scheme.EditorSettings.UseColorRange) { color = _scheme.EditorSettings.EndColor; } if (chkSizeRange.Checked) { lsvEnd.Symbolizer = _sizeRange.GetSymbolizer(_sizeRange.End, color) as ILineSymbolizer; } else { ILineSymbolizer sm = ls.Copy(); sm.SetFillColor(color); lsvEnd.Symbolizer = sm; } } nudStart.Value = (decimal)_sizeRange.Start; nudEnd.Value = (decimal)_sizeRange.End; _ignore = false; OnSizeRangeChanged(); }