MapEditorControl.cs 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. using System;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4. using System.ComponentModel;
  5. using FastReport.Utils;
  6. using FastReport.Forms;
  7. namespace FastReport.Map.Forms
  8. {
  9. internal partial class MapEditorControl : UserControl
  10. {
  11. #region Fields
  12. private MapObject map;
  13. private bool updating;
  14. #endregion // Fields
  15. #region Properties
  16. public event EventHandler Changed;
  17. public MapObject Map
  18. {
  19. get { return map; }
  20. set
  21. {
  22. map = value;
  23. UpdateControls();
  24. }
  25. }
  26. #endregion // Properties
  27. #region Private Methods
  28. private void OnChange()
  29. {
  30. if (Changed != null)
  31. Changed(this, EventArgs.Empty);
  32. }
  33. private void UpdateControls()
  34. {
  35. updating = true;
  36. #region General tab
  37. cbMercator.Checked = Map.MercatorProjection;
  38. #endregion
  39. #region Color scale tab
  40. ColorScale cs = Map.ColorScale;
  41. cbVisible.Checked = cs.Visible;
  42. cbHideIfNoData.Checked = cs.HideIfNoData;
  43. UpdateDockButtons();
  44. tbTitleText.Text = cs.TitleText;
  45. tbTitleFont.Text = Converter.ToString(cs.TitleFont);
  46. cbxTitleColor.Color = cs.TitleColor;
  47. tbFont.Text = Converter.ToString(cs.Font);
  48. cbxTextColor.Color = cs.TextColor;
  49. cbxBorderColor.Color = cs.BorderColor;
  50. tbFormat.Text = cs.Format;
  51. tbNoDataText.Text = cs.NoDataText;
  52. #endregion
  53. updating = false;
  54. }
  55. private void UpdateDockButtons()
  56. {
  57. Button[] dockButtons = new Button[] { btnD1, btnD2, btnD3, btnD4, btnD5, btnD6, btnD7, btnD8 };
  58. int dock = (int)Map.ColorScale.Dock;
  59. for (int i = 0; i < dockButtons.Length; i++)
  60. {
  61. dockButtons[i].BackColor = dock == (int)dockButtons[i].Tag ? Color.Orange : SystemColors.ButtonFace;
  62. }
  63. }
  64. private void Init()
  65. {
  66. MyRes res = null;
  67. MyRes commonRes = new MyRes("Forms,MapEditor,Common");
  68. #region General tab
  69. res = new MyRes("Forms,MapEditor,MapEditorControl,General");
  70. pgGeneral.Text = res.Get("");
  71. cbMercator.Text = res.Get("Mercator");
  72. #endregion
  73. #region Color scale tab
  74. res = new MyRes("Forms,MapEditor,MapEditorControl,ColorScale");
  75. pgColorScale.Text = res.Get("");
  76. cbVisible.Text = commonRes.Get("Visible");
  77. cbHideIfNoData.Text = res.Get("HideIfNoData");
  78. tabGeneral.Text = res.Get("General");
  79. btnBorder.Text = res.Get("Border");
  80. btnFill.Text = res.Get("Fill");
  81. lblDock.Text = commonRes.Get("Dock");
  82. Button[] dockButtons = new Button[] { btnD1, btnD2, btnD3, btnD4, btnD5, btnD6, btnD7, btnD8 };
  83. for (int i = 0; i < dockButtons.Length; i++)
  84. {
  85. dockButtons[i].Tag = i;
  86. }
  87. tabTitle.Text = res.Get("Title");
  88. lblTitleText.Text = commonRes.Get("Text");
  89. lblTitleFont.Text = commonRes.Get("Font");
  90. lblTitleColor.Text = commonRes.Get("TextColor");
  91. tabValues.Text = res.Get("Values");
  92. lblFont.Text = commonRes.Get("Font");
  93. lblTextColor.Text = commonRes.Get("TextColor");
  94. lblBorderColor.Text = commonRes.Get("BorderColor");
  95. lblFormat.Text = commonRes.Get("Format");
  96. lblNoDataText.Text = res.Get("NoDataText");
  97. #endregion
  98. }
  99. public void UpdateDpiDependencies()
  100. {
  101. btnBorder.Image = this.GetImage(36);
  102. btnFill.Image = this.GetImage(38);
  103. tbTitleFont.Image = this.GetImage(59);
  104. tbFont.Image = this.GetImage(59);
  105. }
  106. #endregion // Private Methods
  107. #region Internal Methods
  108. internal void EnableMercatorProtection(bool enable)
  109. {
  110. cbMercator.Checked = false;
  111. cbMercator.Enabled = enable;
  112. }
  113. #endregion // Internal Methods
  114. #region General tab
  115. private void cbMercator_CheckedChanged(object sender, EventArgs e)
  116. {
  117. if (updating)
  118. return;
  119. Map.MercatorProjection = cbMercator.Checked;
  120. OnChange();
  121. }
  122. #endregion
  123. #region Color scale tab
  124. private void cbVisible_CheckedChanged(object sender, EventArgs e)
  125. {
  126. if (updating)
  127. return;
  128. Map.ColorScale.Visible = cbVisible.Checked;
  129. OnChange();
  130. }
  131. private void cbHideIfNoData_CheckedChanged(object sender, EventArgs e)
  132. {
  133. if (updating)
  134. return;
  135. Map.ColorScale.HideIfNoData = cbHideIfNoData.Checked;
  136. OnChange();
  137. }
  138. private void btnBorder_Click(object sender, EventArgs e)
  139. {
  140. using (BorderEditorForm form = new BorderEditorForm())
  141. {
  142. form.Border = Map.ColorScale.Border;
  143. if (form.ShowDialog() == DialogResult.OK)
  144. Map.ColorScale.Border = form.Border;
  145. }
  146. OnChange();
  147. }
  148. private void btnFill_Click(object sender, EventArgs e)
  149. {
  150. using (FillEditorForm form = new FillEditorForm())
  151. {
  152. form.Fill = Map.ColorScale.Fill;
  153. if (form.ShowDialog() == DialogResult.OK)
  154. Map.ColorScale.Fill = form.Fill;
  155. }
  156. OnChange();
  157. }
  158. private void btnD1_Click(object sender, EventArgs e)
  159. {
  160. int tag = (int)((sender as Button).Tag);
  161. Map.ColorScale.Dock = (ScaleDock)tag;
  162. UpdateDockButtons();
  163. OnChange();
  164. }
  165. private void tbTitleText_Leave(object sender, EventArgs e)
  166. {
  167. Map.ColorScale.TitleText = tbTitleText.Text;
  168. OnChange();
  169. }
  170. private void tbTitleFont_ButtonClick(object sender, EventArgs e)
  171. {
  172. using (FontDialog form = new FontDialog())
  173. {
  174. form.Font = Map.ColorScale.TitleFont;
  175. if (form.ShowDialog() == DialogResult.OK)
  176. {
  177. Map.ColorScale.TitleFont = form.Font;
  178. tbTitleFont.Text = Converter.ToString(form.Font);
  179. }
  180. }
  181. OnChange();
  182. }
  183. private void cbxTitleColor_ColorSelected(object sender, EventArgs e)
  184. {
  185. if (updating)
  186. return;
  187. Map.ColorScale.TitleColor = cbxTitleColor.Color;
  188. OnChange();
  189. }
  190. private void tbFont_ButtonClick(object sender, EventArgs e)
  191. {
  192. using (FontDialog form = new FontDialog())
  193. {
  194. form.Font = Map.ColorScale.Font;
  195. if (form.ShowDialog() == DialogResult.OK)
  196. {
  197. Map.ColorScale.Font = form.Font;
  198. tbFont.Text = Converter.ToString(form.Font);
  199. }
  200. }
  201. OnChange();
  202. }
  203. private void cbxTextColor_ColorSelected(object sender, EventArgs e)
  204. {
  205. if (updating)
  206. return;
  207. Map.ColorScale.TextColor = cbxTextColor.Color;
  208. OnChange();
  209. }
  210. private void cbxBorderColor_ColorSelected(object sender, EventArgs e)
  211. {
  212. if (updating)
  213. return;
  214. Map.ColorScale.BorderColor = cbxBorderColor.Color;
  215. OnChange();
  216. }
  217. private void tbFormat_Leave(object sender, EventArgs e)
  218. {
  219. Map.ColorScale.Format = tbFormat.Text;
  220. OnChange();
  221. }
  222. private void tbNoDataText_Leave(object sender, EventArgs e)
  223. {
  224. Map.ColorScale.NoDataText = tbNoDataText.Text;
  225. OnChange();
  226. }
  227. #endregion
  228. public MapEditorControl()
  229. {
  230. InitializeComponent();
  231. Init();
  232. }
  233. }
  234. }