TszTabData.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. 
  2. /* ==============================================================================
  3. * 功能描述:每个 菜单tab页的信息
  4. * 创 建 者:SAGACLOUD
  5. * 创建日期:2017/8/30
  6. * ==============================================================================*/
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. namespace SAGA.RevitMenu.Configuration
  10. {
  11. public class TszTabData
  12. {
  13. private List<TszPanelData> _mPanels;
  14. public TszTabData(string strTabName)
  15. {
  16. this.TabName = strTabName;
  17. }
  18. /// <summary>
  19. /// 获取指定名称的Button
  20. /// </summary>
  21. /// <param name="strFindText"></param>
  22. /// <returns></returns>
  23. public TszButtonData[] FindButtonItem(string strFindText)
  24. {
  25. List<TszButtonData> list = new List<TszButtonData>();
  26. foreach (TszPanelData data in this.Panels)
  27. {
  28. foreach (TszButtonData data2 in data.Buttons)
  29. {
  30. if ((((data2.AssemblyName != null) && (data2.AssemblyName.IndexOf(strFindText) > -1)) || ((data2.ClassName != null) && (data2.ClassName.IndexOf(strFindText) > -1))) || (((data2.ButtonName != null) && (data2.ButtonName.IndexOf(strFindText) > -1)) || ((data2.ButtonText != null) && (data2.ButtonText.IndexOf(strFindText) > -1))))
  31. {
  32. list.Add(data2);
  33. }
  34. }
  35. }
  36. return list.ToArray();
  37. }
  38. /// <summary>
  39. /// 验证菜单关联的命令是否存在
  40. /// </summary>
  41. /// <returns></returns>
  42. public bool ValidateData()
  43. {
  44. foreach (TszPanelData data in this.Panels)
  45. {
  46. if (!data.ValidateData())
  47. {
  48. return false;
  49. }
  50. }
  51. return true;
  52. }
  53. /// <summary>
  54. /// 用可用项
  55. /// </summary>
  56. /// <returns></returns>
  57. public bool HasVisibleItem()
  58. {
  59. var panelData = this.Panels.FirstOrDefault(t =>t.Visible&&t.HasVisibleItem());
  60. return panelData != null;
  61. }
  62. public string[] Modules { get; set; }
  63. public List<TszPanelData> Panels
  64. {
  65. get
  66. {
  67. if (this._mPanels == null)
  68. {
  69. this._mPanels = new List<TszPanelData>();
  70. }
  71. return this._mPanels;
  72. }
  73. }
  74. public string TabName { get; set; }
  75. public string TabText { get; set; }
  76. }
  77. }