123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547 |
- using System;
- using System.Drawing;
- using System.Drawing.Drawing2D;
- using System.Windows.Forms;
- using FastReport.Utils;
- using FastReport.Data;
- namespace FastReport.Map.Forms
- {
- internal partial class LayerEditorControl : UserControl
- {
- #region Fields
- private MapLayer layer;
- private bool updating;
- private ColorRangeEditorControl crColorRanges;
- private SizeRangeEditorControl srSizeRanges;
- #endregion // Fields
- #region Properties
- public event EventHandler Changed;
- public MapLayer Layer
- {
- get { return layer; }
- set
- {
- layer = value;
- UpdateControls();
- }
- }
- #endregion // Properties
- #region Private Methods
- private void OnChange()
- {
- if (Changed != null)
- Changed(this, EventArgs.Empty);
- }
- private void OnChange(object sender, EventArgs e)
- {
- OnChange();
- }
- private void UpdateControls()
- {
- updating = true;
- #region Data tab
- cbxDataSource.Items.Clear();
- cbxDataSource.Items.Add(Res.Get("Misc,None"));
- cbxDataSource.SelectedIndex = 0;
- foreach (Base c in Layer.Report.Dictionary.AllObjects)
- {
- DataSourceBase ds = c as DataSourceBase;
- if (ds != null && ds.Enabled)
- {
- cbxDataSource.Items.Add(ds.Alias);
- if (Layer.DataSource == ds)
- cbxDataSource.SelectedIndex = cbxDataSource.Items.Count - 1;
- }
- }
- tbFilter.Text = Layer.Filter;
- cbxSpatialColumn.Items.Clear();
- cbxSpatialColumn.Items.AddRange(Layer.SpatialColumns.ToArray());
- if (String.IsNullOrEmpty(Layer.SpatialColumn))
- {
- if (Layer.SpatialColumns.Count > 0)
- {
- if (Layer.SpatialColumns.Contains("NAME"))
- Layer.SpatialColumn = "NAME";
- else
- Layer.SpatialColumn = Layer.SpatialColumns[0];
- }
- }
- cbxSpatialColumn.SelectedItem = Layer.SpatialColumn;
- tbSpatialValue.Text = Layer.SpatialValue;
- tbLatitudeValue.Text = Layer.LatitudeValue;
- tbLongitudeValue.Text = Layer.LongitudeValue;
- tbLabelValue.Text = Layer.LabelValue;
- tbAnalyticalValue.Text = Layer.AnalyticalValue;
- cbxFunction.SelectedIndex = (int)Layer.Function;
- tbZoomPolygon.Text = Layer.ZoomPolygon;
- panShpLayer.Visible = Layer.SpatialSource == SpatialSource.ShpFile;
- panAppDataLayer.Visible = Layer.SpatialSource == SpatialSource.ApplicationData;
- lblZoomPolygon.Visible = lblZoomPolygonValue.Visible = tbZoomPolygon.Visible = Layer.Type == LayerType.Polygon;
- #endregion
- #region Appearance tab
- cbVisible.Checked = Layer.Visible;
- cbxBorderColor.Color = Layer.DefaultShapeStyle.BorderColor;
- cbxBorderStyle.SelectedIndex = (int)Layer.DefaultShapeStyle.BorderStyle;
- udBorderWidth.Value = (decimal)Layer.DefaultShapeStyle.BorderWidth;
- cbxFillColor.Color = Layer.DefaultShapeStyle.FillColor;
- cbxPalette.SelectedIndex = (int)Layer.Palette;
- #endregion
- #region Color ranges tab
- cbShowInColorScale.Checked = Layer.ColorRanges.ShowInColorScale;
- cbxStartColor.Color = Layer.ColorRanges.StartColor;
- cbxMiddleColor.Color = Layer.ColorRanges.MiddleColor;
- cbxEndColor.Color = Layer.ColorRanges.EndColor;
- udNumberOfRanges.Value = Layer.ColorRanges.RangeCount;
- UpdateColorRanges();
- #endregion
- #region Size ranges tab
- udStartSize.Value = (decimal)Layer.SizeRanges.StartSize;
- udEndSize.Value = (decimal)Layer.SizeRanges.EndSize;
- udSizeRanges.Value = Layer.SizeRanges.RangeCount;
- UpdateSizeRanges();
- #endregion
- #region Labels tab
- rbNone.Checked = Layer.LabelKind == MapLabelKind.None;
- rbName.Checked = Layer.LabelKind == MapLabelKind.Name;
- rbValue.Checked = Layer.LabelKind == MapLabelKind.Value;
- rbNameAndValue.Checked = Layer.LabelKind == MapLabelKind.NameAndValue;
- cbxLabelColumn.Items.Clear();
- cbxLabelColumn.Items.AddRange(Layer.SpatialColumns.ToArray());
- if (String.IsNullOrEmpty(Layer.LabelColumn))
- Layer.LabelColumn = Layer.SpatialColumn;
- cbxLabelColumn.SelectedItem = Layer.LabelColumn;
- cbxLabelColumn.Visible = lblLabelColumn.Visible = Layer.SpatialSource == SpatialSource.ShpFile;
- lblVisibleAtZoom.Visible = udVisibleAtZoom.Visible = Layer.SpatialSource == SpatialSource.ApplicationData;
- udVisibleAtZoom.Value = (decimal)Layer.LabelsVisibleAtZoom;
- tbLabelFormat.Text = Layer.LabelFormat;
- tbFont.Text = Converter.ToString(Layer.DefaultShapeStyle.Font);
- cbxTextColor.Color = Layer.DefaultShapeStyle.TextColor;
- #endregion
- updating = false;
- }
- private void UpdateColorRanges()
- {
- crColorRanges.ColorRanges = Layer.ColorRanges;
- lblStart.Visible = lblEnd.Visible = lblColor.Visible = Layer.ColorRanges.RangeCount > 0;
- }
- private void UpdateSizeRanges()
- {
- srSizeRanges.SizeRanges = Layer.SizeRanges;
- lblStart1.Visible = lblEnd1.Visible = lblSize.Visible = Layer.SizeRanges.RangeCount > 0;
- }
- private void Init()
- {
- MyRes res = null;
- MyRes commonRes = new MyRes("Forms,MapEditor,Common");
- #region Data tab
- res = new MyRes("Forms,MapEditor,LayerEditorControl,Data");
- pgData.Text = res.Get("");
- lblDataSource.Text = res.Get("DataSource");
- lblFilter.Text = res.Get("Filter");
- lblSpatialData.Text = res.Get("SpatialData");
- lblSpatialColumn.Text = res.Get("Column");
- lblSpatialValue.Text = res.Get("Value");
- lblLatitudeValue.Text = res.Get("Latitude");
- lblLongitudeValue.Text = res.Get("Longitude");
- lblLabelValue.Text = res.Get("Label");
- lblAnalyticalData.Text = res.Get("AnalyticalData");
- lblAnalyticalValue.Text = res.Get("Value");
- lblFunction.Text = res.Get("Function");
- lblZoomPolygon.Text = res.Get("ZoomPolygon");
- lblZoomPolygonValue.Text = res.Get("Value");
- res = new MyRes("Forms,TotalEditor");
- cbxFunction.Items.Clear();
- cbxFunction.Items.AddRange(new object[] {
- res.Get("Sum"), res.Get("Min"), res.Get("Max"), res.Get("Avg"), res.Get("Count") });
- #endregion
- #region Appearance tab
- res = new MyRes("Forms,MapEditor,LayerEditorControl,Appearance");
- pgAppearance.Text = res.Get("");
- cbVisible.Text = commonRes.Get("Visible");
- lblBorderColor.Text = commonRes.Get("BorderColor");
- lblBorderStyle.Text = commonRes.Get("BorderStyle");
- lblBorderWidth.Text = commonRes.Get("BorderWidth");
- lblFillColor.Text = commonRes.Get("FillColor");
- lblPalette.Text = res.Get("Palette");
- cbxBorderStyle.Items.Clear();
- cbxBorderStyle.Items.AddRange(Enum.GetNames(typeof(DashStyle)));
- cbxPalette.Items.Clear();
- cbxPalette.Items.AddRange(Enum.GetNames(typeof(MapPalette)));
- #endregion
- #region Color ranges tab
- res = new MyRes("Forms,MapEditor,LayerEditorControl,ColorScale");
- pgColorRanges.Text = res.Get("");
- cbShowInColorScale.Text = commonRes.Get("Visible");
- lblStartColor.Text = res.Get("StartColor");
- lblMiddleColor.Text = res.Get("MiddleColor");
- lblEndColor.Text = res.Get("EndColor");
- lblNumberOfRanges.Text = commonRes.Get("NumberOfRanges");
- lblStart.Text = commonRes.Get("Start");
- lblEnd.Text = commonRes.Get("End");
- lblColor.Text = res.Get("Color");
- crColorRanges = new ColorRangeEditorControl();
- crColorRanges.Location = new Point(lblStart.Left, lblStart.Top + 20);
- crColorRanges.Size = new Size(pgColorRanges.Width - crColorRanges.Left * 2, pgColorRanges.Height - crColorRanges.Top - crColorRanges.Left);
- crColorRanges.Parent = pgColorRanges;
- crColorRanges.Changed += new EventHandler(OnChange);
- #endregion
- #region Size ranges tab
- res = new MyRes("Forms,MapEditor,LayerEditorControl,SizeRanges");
- pgSizeRanges.Text = res.Get("");
- lblStartSize.Text = res.Get("StartSize");
- lblEndSize.Text = res.Get("EndSize");
- lblSizeRanges.Text = commonRes.Get("NumberOfRanges");
- lblStart1.Text = commonRes.Get("Start");
- lblEnd1.Text = commonRes.Get("End");
- lblSize.Text = res.Get("Size");
- srSizeRanges = new SizeRangeEditorControl();
- srSizeRanges.Location = new Point(lblStart1.Left, lblStart1.Top + 20);
- srSizeRanges.Size = new Size(pgSizeRanges.Width - srSizeRanges.Left * 2, pgSizeRanges.Height - srSizeRanges.Top - srSizeRanges.Left);
- srSizeRanges.Parent = pgSizeRanges;
- srSizeRanges.Changed += new EventHandler(OnChange);
- #endregion
- #region Labels tab
- res = new MyRes("Forms,MapEditor,LayerEditorControl,Labels");
- pgLabels.Text = res.Get("");
- lblLabelKind.Text = res.Get("LabelKind");
- rbNone.Text = res.Get("None");
- rbName.Text = res.Get("Name");
- rbValue.Text = res.Get("Value");
- rbNameAndValue.Text = res.Get("NameAndValue");
- lblLabelColumn.Text = res.Get("LabelColumn");
- lblVisibleAtZoom.Text = res.Get("VisibleAtZoom");
- lblLabelFormat.Text = commonRes.Get("Format");
- lblFont.Text = commonRes.Get("Font");
- lblTextColor.Text = commonRes.Get("TextColor");
- #endregion
- }
- public void UpdateDpiDependencies()
- {
- tbSpatialValue.Image = this.GetImage(52);
- tbAnalyticalValue.Image = this.GetImage(52);
- tbFilter.Image = this.GetImage(52);
- tbLatitudeValue.Image = this.GetImage(52);
- tbLongitudeValue.Image = this.GetImage(52);
- tbLabelValue.Image = this.GetImage(52);
- tbZoomPolygon.Image = this.GetImage(52);
- tbFont.Image = this.GetImage(59);
- }
- #endregion // Private Methods
- #region Data tab
- private void cbxDataSource_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- DataSourceBase ds = Layer.Report.GetDataSource((string)cbxDataSource.Items[cbxDataSource.SelectedIndex]);
- Layer.DataSource = ds;
- OnChange();
- }
- private void tbFilter_Leave(object sender, EventArgs e)
- {
- Layer.Filter = tbFilter.Text;
- OnChange();
- }
- private void tbFilter_ButtonClick(object sender, EventArgs e)
- {
- tbFilter.Text = Editors.EditExpression(Layer.Report, tbFilter.Text);
- }
- private void cbxSpatialColumn_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.SpatialColumn = cbxSpatialColumn.SelectedItem == null ? "" : (string)cbxSpatialColumn.SelectedItem;
- OnChange();
- }
- private void tbSpatialValue_Leave(object sender, EventArgs e)
- {
- Layer.SpatialValue = tbSpatialValue.Text;
- OnChange();
- }
- private void tbSpatialValue_ButtonClick(object sender, EventArgs e)
- {
- tbSpatialValue.Text = Editors.EditExpression(Layer.Report, tbSpatialValue.Text);
- }
- private void tbAnalyticalValue_Leave(object sender, EventArgs e)
- {
- Layer.AnalyticalValue = tbAnalyticalValue.Text;
- OnChange();
- }
- private void tbAnalyticalValue_ButtonClick(object sender, EventArgs e)
- {
- tbAnalyticalValue.Text = Editors.EditExpression(Layer.Report, tbAnalyticalValue.Text);
- }
- private void cbxFunction_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.Function = (TotalType)cbxFunction.SelectedIndex;
- OnChange();
- }
- private void tbLatitude_ButtonClick(object sender, EventArgs e)
- {
- tbLatitudeValue.Text = Editors.EditExpression(Layer.Report, tbLatitudeValue.Text);
- }
- private void tbLatitude_Leave(object sender, EventArgs e)
- {
- Layer.LatitudeValue = tbLatitudeValue.Text;
- OnChange();
- }
- private void tbLongitude_ButtonClick(object sender, EventArgs e)
- {
- tbLongitudeValue.Text = Editors.EditExpression(Layer.Report, tbLongitudeValue.Text);
- }
- private void tbLongitude_Leave(object sender, EventArgs e)
- {
- Layer.LongitudeValue = tbLongitudeValue.Text;
- OnChange();
- }
- private void tbLabel_ButtonClick(object sender, EventArgs e)
- {
- tbLabelValue.Text = Editors.EditExpression(Layer.Report, tbLabelValue.Text);
- }
- private void tbLabel_Leave(object sender, EventArgs e)
- {
- Layer.LabelValue = tbLabelValue.Text;
- OnChange();
- }
- private void tbZoomPolygon_ButtonClick(object sender, EventArgs e)
- {
- tbZoomPolygon.Text = Editors.EditExpression(Layer.Report, tbZoomPolygon.Text);
- }
- private void tbZoomPolygon_Leave(object sender, EventArgs e)
- {
- Layer.ZoomPolygon = tbZoomPolygon.Text;
- OnChange();
- }
- #endregion
- #region Appearance tab
- private void cbVisible_CheckedChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.Visible = cbVisible.Checked;
- OnChange();
- }
- private void cbxBorderColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.DefaultShapeStyle.BorderColor = cbxBorderColor.Color;
- OnChange();
- }
- private void cbxBorderStyle_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.DefaultShapeStyle.BorderStyle = (DashStyle)cbxBorderStyle.SelectedIndex;
- OnChange();
- }
- private void udBorderWidth_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.DefaultShapeStyle.BorderWidth = (float)udBorderWidth.Value;
- OnChange();
- }
- private void cbxFillColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.DefaultShapeStyle.FillColor = cbxFillColor.Color;
- OnChange();
- }
- private void cbxPalette_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.Palette = (MapPalette)cbxPalette.SelectedIndex;
- OnChange();
- }
- #endregion
- #region Color ranges tab
- private void cbShowInColorScale_CheckedChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.ColorRanges.ShowInColorScale = cbShowInColorScale.Checked;
- OnChange();
- }
- private void cbxStartColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.ColorRanges.StartColor = cbxStartColor.Color;
- OnChange();
- }
- private void cbxMiddleColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.ColorRanges.MiddleColor = cbxMiddleColor.Color;
- OnChange();
- }
- private void cbxEndColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.ColorRanges.EndColor = cbxEndColor.Color;
- OnChange();
- }
- private void udNumberOfRanges_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.ColorRanges.RangeCount = (int)udNumberOfRanges.Value;
- UpdateColorRanges();
- OnChange();
- }
- #endregion
- #region Size ranges tab
- private void udStartSize_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.SizeRanges.StartSize = (float)udStartSize.Value;
- OnChange();
- }
- private void udEndSize_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.SizeRanges.EndSize = (float)udEndSize.Value;
- OnChange();
- }
- private void udSizeRanges_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.SizeRanges.RangeCount = (int)udSizeRanges.Value;
- UpdateSizeRanges();
- OnChange();
- }
- #endregion
- #region Labels tab
- private void rbNone_CheckedChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- if (rbNone.Checked)
- Layer.LabelKind = MapLabelKind.None;
- else if (rbName.Checked)
- Layer.LabelKind = MapLabelKind.Name;
- else if (rbValue.Checked)
- Layer.LabelKind = MapLabelKind.Value;
- else if (rbNameAndValue.Checked)
- Layer.LabelKind = MapLabelKind.NameAndValue;
- OnChange();
- }
- private void cbxLabelColumn_SelectedIndexChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.LabelColumn = cbxLabelColumn.SelectedItem == null ? "" : (string)cbxLabelColumn.SelectedItem;
- OnChange();
- }
- private void udVisibleAtZoom_ValueChanged(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.LabelsVisibleAtZoom = (float)udVisibleAtZoom.Value;
- OnChange();
- }
- private void tbLabelFormat_Leave(object sender, EventArgs e)
- {
- Layer.LabelFormat = tbLabelFormat.Text;
- OnChange();
- }
- private void tbFont_ButtonClick(object sender, EventArgs e)
- {
- using (FontDialog dialog = new FontDialog())
- {
- dialog.Font = Layer.DefaultShapeStyle.Font;
- if (dialog.ShowDialog() == DialogResult.OK)
- {
- Layer.DefaultShapeStyle.Font = dialog.Font;
- tbFont.Text = Converter.ToString(dialog.Font);
- OnChange();
- }
- }
- }
- private void cbxTextColor_ColorSelected(object sender, EventArgs e)
- {
- if (updating)
- return;
- Layer.DefaultShapeStyle.TextColor = cbxTextColor.Color;
- OnChange();
- }
- #endregion
- public LayerEditorControl()
- {
- InitializeComponent();
- Init();
- }
- }
- }
|