123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- using Aitex.Common.Util;
- using Aitex.Core.RT.DataCenter;
- using Aitex.Core.RT.Log;
- using Aitex.Core.Util;
- using MECF.Framework.Common.ToolLayout;
- using CyberX8_Core;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Markup;
- namespace MECF.Framework.Common.Layout
- {
- public class ProcessLayoutManager : Singleton<ProcessLayoutManager>
- {
- #region 常量
- private const int MARGIN_LEFT = 10;
- #endregion
- #region 内部变量
- /// <summary>
- /// Process Layout cell名称字典(key-cell Id,value-layout item对象)
- /// </summary>
- private Dictionary<int, ProcessLayoutCellItem> _idProcessLayoutCellItemDic = new Dictionary<int, ProcessLayoutCellItem>();
- /// <summary>
- /// 名称与Cell字典(key-Cell Id,value-cell 名称)
- /// </summary>
- private Dictionary<string, ProcessLayoutCellItem> _nameProcessLayoutCellItemDic = new Dictionary<string, ProcessLayoutCellItem>();
- /// <summary>
- /// 模块名称与cell字典(key-模块名称,value-cell对象)
- /// </summary>
- private Dictionary<string, ProcessLayoutCellItem> _moduleNameProcessLayoutCellItemDic = new Dictionary<string, ProcessLayoutCellItem>();
- /// <summary>
- /// xml地址
- /// </summary>
- private string _xmlPath = "";
- /// <summary>
- /// process layout对象
- /// </summary>
- private ProcessLayout _processLayout;
- #endregion
- /// <summary>
- /// 初始化
- /// </summary>
- /// <param name="xmlPath"></param>
- public void Initialize()
- {
- try
- {
- _xmlPath = PathManager.GetCfgDir() + "Layout\\Layout.xml";
- _processLayout = CustomXmlSerializer.Deserialize<ProcessLayout>(new FileInfo(_xmlPath));
- if (_processLayout != null)
- {
- DATA.Subscribe("System.Layout", () => _processLayout, SubscriptionAttribute.FLAG.IgnoreSaveDB);
- foreach (ProcessLayoutCellItem item in _processLayout.Items)
- {
- if (item.Name != "Loader")
- {
- item.ModuleName = CellItemManager.Instance.GetModuleNameByCellId($"Cell{item.CellId}");
- }
- else
- {
- item.ModuleName = item.Name;
- }
- if (!string.IsNullOrEmpty(item.ModuleName))
- {
- _moduleNameProcessLayoutCellItemDic[item.ModuleName] = item;
- }
- _idProcessLayoutCellItemDic[item.CellId] = item;
- _nameProcessLayoutCellItemDic[item.Name] = item;
- }
- }
- }
- catch(Exception ex)
- {
- LOG.WriteLog(eEvent.ERR_EXCEPTION, "System", ex.Message);
- }
- }
- /// <summary>
- /// 获取ProcessLayout cell项
- /// </summary>
- /// <param name="name"></param>
- /// <returns></returns>
- public ProcessLayoutCellItem GetProcessLayoutCellItemByName(string cellName)
- {
- return _nameProcessLayoutCellItemDic.ContainsKey(cellName) ? _nameProcessLayoutCellItemDic[cellName] : null;
- }
- /// <summary>
- /// 获取ProcessLayout cell项
- /// </summary>
- /// <param name="name"></param>
- /// <returns></returns>
- public ProcessLayoutCellItem GetProcessLayoutCellItemByModuleName(string moduleName)
- {
- return _moduleNameProcessLayoutCellItemDic.ContainsKey(moduleName) ? _moduleNameProcessLayoutCellItemDic[moduleName] : null;
- }
- /// <summary>
- /// 保存Process Layout
- /// </summary>
- /// <returns></returns>
- public void SaveProcessLayout()
- {
- CustomXmlSerializer.Serialize(_processLayout, _xmlPath);
- }
- }
- }
|