123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using SAGA.RevitUtils;
- namespace SAGA.RevitMenu.Configuration
- {
- public class TszPanelData
- {
- private List<TszButtonData> _mButtons;
- public TszPanelData(string strPanelName, bool boolGroupFlag, string strGroupImage, ButtonStyles buttonLayers)
- {
- this.PanelName = strPanelName;
- this.GroupFlag = boolGroupFlag;
- this.GroupImage = strGroupImage;
- this.Styles = buttonLayers;
- this.Visible = true;
- }
- public TszButtonData[] ClearSameNameAndAppTypeButtons()
- {
- List<TszButtonData> list = new List<TszButtonData>();
- foreach (TszButtonData data in this.Buttons)
- {
- bool flag = false;
- foreach (TszButtonData data2 in list)
- {
- if (data == data2)
- {
- flag = true;
- break;
- }
- if (data.ButtonName == data2.ButtonName)
- {
- if ((data.AssemblyName == data2.AssemblyName) && (data.ClassName == data2.ClassName))
- {
- flag = true;
- break;
- }
- data.ButtonName = data.ButtonName + Guid.NewGuid();
- }
- }
- if (!flag)
- {
- list.Add(data);
- }
- }
- if (list.Count <= 0)
- {
- return null;
- }
- return list.ToArray();
- }
- public bool ExistsSameName()
- {
- foreach (TszButtonData data in this.Buttons)
- {
- foreach (TszButtonData data2 in this.Buttons)
- {
- if ((data != data2) && (data.ButtonName == data2.ButtonName))
- {
- return true;
- }
- }
- }
- return false;
- }
- public TszButtonData[] FilterButtons(string menuTab)
- {
- List<TszButtonData> list = new List<TszButtonData>();
- foreach (TszButtonData data in this.Buttons)
- {
- if (data.MenuTab.IndexOf(menuTab, StringComparison.Ordinal) > -1)
- {
- list.Add(data);
- }
- }
- if (list.Count <= 0)
- {
- return null;
- }
- return list.ToArray();
- }
- /// <summary>
- /// 验证Panel是否包含不可执行的命令
- /// </summary>
- /// <returns></returns>
- public bool ValidateData()
- {
- foreach (TszButtonData data in this.Buttons)
- {
- if (data.Styles == ButtonStyles.Separator ||
- (!string.IsNullOrEmpty(data.AssemblyName) && File.Exists(data.AssemblyName))) continue;
- MessageShow.Infomation(data.AssemblyName + " 不存在!");
- return false;
- }
- return true;
- }
- /// <summary>
- /// 有可见的Button
- /// </summary>
- /// <returns></returns>
- public bool HasVisibleItem()
- {
- var item = this.Buttons.FirstOrDefault(t => t.Visible);
- return item != null;
- }
- public List<TszButtonData> Buttons
- {
- get
- {
- if (this._mButtons == null)
- {
- this._mButtons = new List<TszButtonData>();
- }
- return this._mButtons;
- }
- }
- public bool Enabled { get; set; }
- public bool GroupFlag { get; set; }
- public string GroupImage { get; set; }
- public string PanelName { get; set; }
- public ButtonStyles Styles { get; set; }
- public string Title { get; set; }
- public RevitVer UseVersion { get; set; }
- public bool Visible { get; set; }
- }
- }
|