MatrixObjectMenu.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System;
  2. using FastReport.Table;
  3. using FastReport.Design;
  4. using FastReport.Utils;
  5. namespace FastReport.AdvMatrix
  6. {
  7. internal class MatrixObjectMenu : TableObjectMenu
  8. {
  9. private AdvMatrixObject matrix;
  10. private ContextMenuItem miMatrixStyle;
  11. private ContextMenuItem miSwapColumnsRows;
  12. private new void Change()
  13. {
  14. if (!Designer.IsPreviewPageDesigner)
  15. matrix.BuildTemplate();
  16. base.Change();
  17. }
  18. private void BuildStyleMenu()
  19. {
  20. ContextMenuItem styleItem = CreateMenuItem(76, Res.Get("Designer,Toolbar,Style,NoStyle"), styleItem_Click);
  21. styleItem.Tag = "";
  22. styleItem.Checked = matrix.Style == "";
  23. styleItem.CheckOnClick = true;
  24. miMatrixStyle.DropDownItems.Add(styleItem);
  25. for (int i = 0; i < matrix.StyleSheet.Count; i++)
  26. {
  27. string text = matrix.StyleSheet[i].Name;
  28. styleItem = CreateMenuItem(Res.Get("ComponentsMisc,Matrix," + text), styleItem_Click);
  29. styleItem.Image = matrix.StyleSheet.GetStyleBitmap(i);
  30. styleItem.Tag = text;
  31. styleItem.Checked = matrix.Style == text;
  32. styleItem.CheckOnClick = true;
  33. miMatrixStyle.DropDownItems.Add(styleItem);
  34. }
  35. }
  36. private void styleItem_Click(object sender, EventArgs e)
  37. {
  38. matrix.Style = (string)(sender as ContextMenuItem).Tag;
  39. Change();
  40. }
  41. private void SwapColumnsRows_Click(object sender, EventArgs e)
  42. {
  43. matrix.SwapColumnsRows();
  44. Change();
  45. }
  46. public MatrixObjectMenu(Designer designer) : base(designer)
  47. {
  48. matrix = Designer.SelectedObjects[0] as AdvMatrixObject;
  49. MyRes res = new MyRes("ComponentMenu,AdvMatrixObject");
  50. miMatrixStyle = CreateMenuItem(87, res.Get("Style"), null);
  51. miMatrixStyle.BeginGroup = true;
  52. BuildStyleMenu();
  53. miSwapColumnsRows = CreateMenuItem(res.Get("Swap"), SwapColumnsRows_Click);
  54. int insertIndex = Items.IndexOf(miRepeatHeaders);
  55. Items.Insert(insertIndex, miMatrixStyle);
  56. Items.Insert(insertIndex + 1, miSwapColumnsRows);
  57. miRepeatHeaders.BeginGroup = false;
  58. miCanBreak.Visible = false;
  59. miGrowToBottom.Visible = false;
  60. miStyle.Visible = false;
  61. }
  62. }
  63. }