/// <summary> /// Launches a form for editing the line symbolizer /// </summary> /// <param name="context"></param> /// <param name="provider"></param> /// <param name="value"></param> /// <returns></returns> public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value) { _original = value as IPointSymbolizer; if (_original == null) return value; _copy = _original.Copy(); IWindowsFormsEditorService dialogProvider = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); DetailedPointSymbolDialog dialog = new DetailedPointSymbolDialog(_copy); dialog.ChangesApplied += new EventHandler(dialog_ChangesApplied); if (dialogProvider.ShowDialog(dialog) != DialogResult.OK) return value; _original.CopyProperties(_copy); return value; }
/// <summary> /// Resets the existing control with the new symbolizer. /// </summary> /// <param name="original">The original symbolizer.</param> public void Initialize(IPointSymbolizer original) { _original = original; _symbolizer = original.Copy(); ccSymbols.Symbols = _symbolizer.Symbols; ccSymbols.RefreshList(); if (_symbolizer.Symbols.Count > 0) { ccSymbols.SelectedSymbol = _symbolizer.Symbols[0]; } UpdatePreview(); UpdateSymbolControls(); }
/// <summary> /// Launches a form for editing the line symbolizer /// </summary> /// <param name="context"></param> /// <param name="provider"></param> /// <param name="value"></param> /// <returns></returns> public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { _original = value as IPointSymbolizer; if (_original == null) { return(value); } _copy = _original.Copy(); IWindowsFormsEditorService dialogProvider = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); DetailedPointSymbolDialog dialog = new DetailedPointSymbolDialog(_copy); dialog.ChangesApplied += DialogChangesApplied; if (dialogProvider.ShowDialog(dialog) != DialogResult.OK) { return(value); } _original.CopyProperties(_copy); return(value); }
/// <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(); }
/// <summary> /// Creates a new category based on a symbolizer, and uses the same symbolizer, but with a fill and border color of light cyan /// for the selection symbolizer /// </summary> /// <param name="pointSymbolizer">The symbolizer to use in order to create a category</param> public PointCategory(IPointSymbolizer pointSymbolizer) { Symbolizer = pointSymbolizer; SelectionSymbolizer = pointSymbolizer.Copy(); SelectionSymbolizer.SetFillColor(Color.Cyan); }
/// <summary> /// Resets the existing control with the new symbolizer /// </summary> /// <param name="original"></param> public void Initialize(IPointSymbolizer original) { _original = original; _symbolizer = original.Copy(); ccSymbols.Symbols = _symbolizer.Symbols; ccSymbols.RefreshList(); if (_symbolizer.Symbols.Count > 0) { ccSymbols.SelectedSymbol = _symbolizer.Symbols[0]; } UpdatePreview(); UpdateSymbolControls(); }