123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 |
- using Aitex.Core.Common.DeviceData;
- using Caliburn.Micro;
- using Caliburn.Micro.Core;
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.Common.OperationCenter;
- using MECF.Framework.Common.RecipeCenter;
- using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
- using MECF.Framework.UI.Client.CenterViews.Dialogs;
- using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
- using MECF.Framework.UI.Core.Control;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Windows;
- using System.Windows.Controls;
- using FurnaceUI.Models;
- using RecipeEditorLib.RecipeModel.Params;
- using MECF.Framework.Common.Utilities;
- namespace FurnaceUI.Views.Editors
- {
- public class RecipeMFCSettingViewModel : FurnaceUIViewModelBase
- {
- public Dictionary<string, bool> ExternalOutSets { get; set; } = new Dictionary<string, bool>();
- public ObservableCollection<MFCData> MFCSets { get; set; }
- //public MFMValue MFMSets { get; set; } = new MFMValue();
- public bool IsSave { get; set; } = false;
- private Visibility _gridMFCVisibility = Visibility.Hidden;
- public Visibility GridMFCVisibility
- {
- get => _gridMFCVisibility;
- set
- {
- _gridMFCVisibility = value;
- NotifyOfPropertyChange("GridMFCVisibility");
- }
- }
- private string _Value;
- public string Value
- {
- get => _Value;
- set
- {
- _Value = value;
- NotifyOfPropertyChange("Value");
- }
- }
- public Dictionary<string, ObservableCollection<RecipeTemplateColumnBase>> _recipeTemplate;
- public Dictionary<string, ObservableCollection<RecipeTemplateColumnBase>> RecipeTemplate
- {
- get => _recipeTemplate;
- set
- {
- _recipeTemplate = value;
- MFCTemplateColumn = RecipeTemplate["MFC"];
- int index = 1;
- //foreach (var item in MFCTemplateColumn)
- //{
- // var isInstalled = QueryDataClient.Instance.Service.GetConfig($"PM1.MFC.{item.ModuleName}.IsMFCInstalled");
- // if (!(bool)isInstalled) continue;
- // MFCDataList.Add(new MFCData()
- // {
- // ScaleValue= SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.N2Scale"),
- // No = index,
- // ControlName = item.ModuleName,
- // SetValueParam =new DoubleParam() { Name = "SetValue", Value = item.Value.ToString() },
- // SetUnit = MFCSets[item.ControlName].SetUnit,
- // Rampng = MFCSets[item.ControlName].Rampng,
- // RampngUnit = MFCSets[item.ControlName].RampngUnit,
- // AlarmValue = MFCSets[item.ControlName].AlarmValue == null ? "None" : MFCSets[item.ControlName].AlarmValue,
- // DisplayName = SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.GasName"),
- // Unit = SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.FlowUnit"),
- // MaxValue = MFCSets[item.ControlName].MaxValue, //SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.N2Scale"),
- // MinValue = MFCSets[item.ControlName].MinValue, //SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item.ModuleName}.PhyScale"),
- // IsCheck = MFCSets[item.ControlName].IsCheck,
- // IsEnable = IsEnable
- // }); ;
- // index++;
- //}
- NotifyOfPropertyChange("RecipeTemplate");
- }
- }
- private ObservableCollection<RecipeTemplateColumnBase> _mFCTemplateColumn;
- public ObservableCollection<RecipeTemplateColumnBase> MFCTemplateColumn
- {
- get => _mFCTemplateColumn;
- set
- {
- _mFCTemplateColumn = value;
- NotifyOfPropertyChange("MFCTemplateColumn");
- }
- }
- public bool IsEnable => CGlobal.RecipeProcessEditViewEnable;//是否是View模式
- public string RecipeType { get; set; }
- public RecipeMFCSettingViewModel()
- {
- }
- private ObservableCollection<MFCData> oldMFCData = new ObservableCollection<MFCData>();
- protected override void OnViewLoaded(object view)
- {
- base.OnViewLoaded(view);
- RefreshUpdate();
- oldMFCData.Clear();
- MFCSets.ToList().ForEach(x => oldMFCData.Add((MFCData)CloneUtil.CloneObject(x)));
- }
- private string ShowNumberKeyboard(Control control, string defaultValue)
- {
- NumberKeyboard numberKeyboard = new NumberKeyboard("", defaultValue);
- var point = control.PointFromScreen(new Point(0, 0));
- double wx = SystemParameters.WorkArea.Width;
- double hy = SystemParameters.WorkArea.Height;
- if (-point.Y + control.ActualHeight + 5 + numberKeyboard.Height < hy)
- {
- numberKeyboard.Top = -point.Y + control.ActualHeight + 5;
- }
- else
- {
- numberKeyboard.Top = -point.Y - numberKeyboard.Height - 5;
- }
- if (-point.X + numberKeyboard.Width < wx)
- {
- numberKeyboard.Left = -point.X;
- }
- else
- {
- numberKeyboard.Left = -point.X - (numberKeyboard.Width - control.ActualWidth);
- }
- if ((bool)numberKeyboard.ShowDialog())
- return numberKeyboard.ValueString;
- else
- return "Cancel";
- }
- public void TextValueChanged(object senderName, object sender, object typeName)
- {
- var controlName = (string)senderName;
- var tempMFCTemplateColumn = MFCTemplateColumn.Where(x => x.ModuleName == controlName).FirstOrDefault();
- if (tempMFCTemplateColumn != null)
- {
- switch (typeName.ToString())
- {
- case "Value":
- string strRetValue = (sender as TextBox).Text;
- if (strRetValue != "Cancel")
- {
- if (MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().SetValue.Value != strRetValue)
- {
- //MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().SetValue.SetValue(strRetValue);
- }
- }
- break;
- case "Rampng":
- strRetValue = (sender as TextBox).Text;
- if (strRetValue != "Cancel")
- {
- if (MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().Rampng.Value != strRetValue)
- {
- // MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().Rampng.SetValue(strRetValue);
- }
- }
- break;
- //case "AlarmValue":
- // RecipeGASSettingMFCAlarmViewModel view = new RecipeGASSettingMFCAlarmViewModel(MFCDataList.Where(x => x.ControlName == controlName).FirstOrDefault().AlarmValue.ToString());
- // WindowManager wm = IoC.Get<IWindowManager>() as WindowManager;
- // if (!(bool)wm.ShowDialogWithTitle(view, null, "Select Flow Alarm Table")) break;
- // MFCDataList.Where(x => x.ControlName == controlName).FirstOrDefault().AlarmValue = view.CurrentValue;
- // break;
- case "MaxValue":
- strRetValue = (sender as TextBox).Text;
- if (strRetValue != "Cancel")
- {
- int max = 0;
- int.TryParse(strRetValue, out max);
- //MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().MaxValue.SetValue(max.ToString("F3"));
- }
- return;
- case "MinValue":
- strRetValue = (sender as TextBox).Text;
- if (strRetValue != "Cancel")
- {
- double min = 0;
- double.TryParse(strRetValue, out min);
- // MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().MinValue.SetValue(min.ToString("F3"));
- }
- return;
- default:
- break;
- }
- var mfcData = MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault();
- if (mfcData != null)
- {
- InvokeClient.Instance.Service.DoOperation($"PM1.{controlName}.SetMfcVirtualValue", $"{mfcData.SetValue.Value};{mfcData.Rampng.Value};{mfcData.AlarmValue}");
- }
- NotifyOfPropertyChange("MFCTemplateColumn");
- }
- }
- public void MFCButtonClickCmd(object senderName, object sender, object typeName)
- {
- var controlName = (string)senderName;
- var tempMFCTemplateColumn = MFCTemplateColumn.Where(x => x.ModuleName == controlName).FirstOrDefault();
- if (tempMFCTemplateColumn != null)
- {
- MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().IsCheck.SetValue((!(MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().IsCheck.Value)));
- }
- }
- public void MFCShowVauleCmd(object senderName, object sender, object maxValue)
- {
- var windowManager = IoC.Get<IWindowManager>();
- var controlName = (string)senderName;
- var control = (Button)sender;
- RecipeFlowSettingViewModel recipeFlowSettingViewModel = new RecipeFlowSettingViewModel();
- recipeFlowSettingViewModel.RecipeType = RecipeType;
- recipeFlowSettingViewModel.SelectMfcFlow = controlName;
- recipeFlowSettingViewModel.SelectFlowValue = control.Content.ToString().Contains("Force") ? "0.0" : control.Content.ToString();
- recipeFlowSettingViewModel.MaxValue = Convert.ToDouble(maxValue);
- if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeFlowSettingViewModel, null, "Recipe Flow Setting"))
- {
- Value = recipeFlowSettingViewModel.SelectFlow;
- MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault().SetValue.Value = recipeFlowSettingViewModel.SelectFlow;
- var mfcData = MFCSets.Where(x => x.ControlName == controlName).FirstOrDefault();
- if (mfcData != null)
- {
- InvokeClient.Instance.Service.DoOperation($"PM1.{controlName}.SetMfcVirtualValue", $"{mfcData.SetValue};{mfcData.Rampng};{mfcData.AlarmValue}");
- }
- NotifyOfPropertyChange("MFCTemplateColumn");
- }
- }
- public void GASSettingSave()
- {
- IsSave = true;
- if (_mFCTemplateColumn != null)
- {
- }
- ((Window)GetView()).DialogResult = true;
- }
- public void GASSettingCancel()
- {
- foreach (var item in MFCSets)
- {
- var findMFC = oldMFCData.FirstOrDefault(x => x.ControlName == item.ControlName);
- if (findMFC != null)
- {
- if (item.SetValue.IsSaved != findMFC.SetValue.IsSaved || item.Rampng.IsSaved != findMFC.Rampng.IsSaved)
- {
- item.UndoChanges();
- InvokeClient.Instance.Service.DoOperation($"PM1.{item.ControlName}.SetMfcVirtualValue", $"{item.SetValue.Value};{item.Rampng.Value};{item.AlarmValue}");
- }
- }
- else
- {
- item.UndoChanges();
- InvokeClient.Instance.Service.DoOperation($"PM1.{item.ControlName}.SetMfcVirtualValue", $"{item.SetValue.Value};{item.Rampng.Value};{item.AlarmValue}");
- }
- }
- ((Window)GetView()).DialogResult = false;
- }
- public void RefreshUpdate()
- {
- //if (MFCSets != null)
- //{
- // foreach (var item in MFCSets)
- // {
- // string getMFCName = item.Replace(".Flow", "").Trim();
- // if (MFCDataList.Where(x => x.ControlName == getMFCName).FirstOrDefault() != null)
- // {
- // var mfcData = MFCDataList.Where(x => x.ControlName == getMFCName).FirstOrDefault();
- // mfcData.SetValueParam = MFCSets[item].SetValueParam;
- // mfcData.Rampng=MFCSets[item].Rampng;
- // mfcData.MaxValue =MFCSets[item].MaxValue;
- // mfcData.MinValue = MFCSets[item].MinValue;
- // mfcData.IsCheck = MFCSets[item].IsCheck;
- // mfcData.Unit = MFCSets[item].Unit;
- // // MFCDataList.Where(x => x.ControlName == item).FirstOrDefault().Name = SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item}.GasName");
- // //MFCDataList.Where(x => x.ControlName == item).FirstOrDefault().MaxValue = SystemConfigProvider.Instance.GetValueByName($"PM1.MFC.{item}.N2Scale");
- // }
- // }
- //}
- }
- public void UnitClick(string unit, MFCData mcfData)
- {
- var windowManager = IoC.Get<IWindowManager>();
- RecipeMFCUnitButton2SelectViewModel recipeMFCUnitButton2SelectViewModel = new RecipeMFCUnitButton2SelectViewModel();
- recipeMFCUnitButton2SelectViewModel.UnitStr = unit;
- if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeMFCUnitButton2SelectViewModel, null, "Button Select"))
- {
- mcfData.SetUnit.SetValue(recipeMFCUnitButton2SelectViewModel.SelectButtonCommand);
- }
- }
- public void RampngUnitClick(string RampngUnit, MFCData mcfData)
- {
- var windowManager = IoC.Get<IWindowManager>();
- RecipeMFCUnitButtonSelectViewModel recipeMFCUnitButtonSelectViewModel = new RecipeMFCUnitButtonSelectViewModel();
- recipeMFCUnitButtonSelectViewModel.UnitStr = RampngUnit;
- if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeMFCUnitButtonSelectViewModel, null, "The Button Select"))
- {
- mcfData.RampngUnit.SetValue(recipeMFCUnitButtonSelectViewModel.SelectButtonCommand);
- }
- }
- }
- }
|