From 00ab1b5282ada6ffdc78b3dd46f0ce08726a51e6 Mon Sep 17 00:00:00 2001 From: qin <a@163.com> Date: 星期四, 20 三月 2025 13:47:24 +0800 Subject: [PATCH] 优化IBox界面 --- WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs | 162 ++++++++++++++++++++++++++++++++++------------------- 1 files changed, 103 insertions(+), 59 deletions(-) diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs index 9214e30..cea843b 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyCtrl.cs @@ -1,11 +1,9 @@ -锘縰sing DevExpress.Utils.MVVM; -using DevExpress.XtraBars; +锘縰sing DevExpress.XtraBars; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; using DevExpress.XtraEditors.Repository; using DevExpress.XtraLayout.Utils; using DevExpress.XtraVerticalGrid.Events; -using Yw.Model; namespace Yw.WinFrmUI { @@ -43,10 +41,8 @@ /// 鍒嗙骇灞炴�у�兼敼鍙樹簨浠� /// </summary> public event Action<HydroVisualViewModel> GradingPropertyValueChangedEvent; - /// <summary> - /// 姘存祦鍔ㄧ敾灞炴�у�兼敼鍙樹簨浠� - /// </summary> - public event Action<HydroVisualViewModel> FlowEffectPropertyValueChangedEvent; + + /// <summary> /// 寮鸿皟杩炴帴鑺傜偣浜嬩欢 /// 绗竴涓弬鏁颁负鏈韩Code @@ -58,6 +54,21 @@ /// </summary> public event Action<HydroVisualViewModel> HydroViewEvent; + private HydroChangeHelper _changeHelper = null;//鏀瑰彉杈呭姪绫� + private HydroPropStatusHelper _propStatusHelper = null;//灞炴�х姸鎬佽緟鍔╃被 + + /// <summary> + /// 鍒濆鍖栨暟鎹� + /// </summary> + public void InitialData + ( + HydroChangeHelper changeHelper, + HydroPropStatusHelper propStatusHelper + ) + { + _changeHelper = changeHelper; + _propStatusHelper = propStatusHelper; + } /// <summary> /// 鍏佽淇敼 @@ -191,10 +202,10 @@ var vm = GetPropertyViewModel(e.Row); if (vm != null) { - var propStatus = vm.GetPropStatus(realFieldName); - if (propStatus != null) + var propStatusInfo = _propStatusHelper?.GetPropStatusInfo(vm.Code, realFieldName); + if (propStatusInfo != null) { - e.Appearance.ForeColor = HydroPropStatusHelper.GetColor(propStatus.PropStatus); + e.Appearance.ForeColor = HydroPropStatusColorHelper.GetColor(propStatusInfo.PropStatus); } } } @@ -214,6 +225,15 @@ if (fullTypeName == typeof(DateTime).FullName) { e.CellText = ((DateTime)e.Properties.Value).ToString("yyyy-MM-dd HH:mm:ss"); + } + else if (fullTypeName == typeof(string[]).FullName) + { + var stringValue = (string[])e.Properties.Value; + e.CellText = stringValue?.Length.ToString(); + } + else if (fullTypeName == typeof(DictionaryPropertyAdapter).FullName) + { + e.CellText = string.Empty; } else { @@ -409,6 +429,7 @@ { var buttonEdit = new RepositoryItemButtonEdit(); buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; + buttonEdit.ButtonClick += async delegate { var vm = GetPropertyViewModel(e.Row); @@ -429,6 +450,37 @@ e.RepositoryItem = buttonEdit; } } + + #endregion + + #region 鍙傛暟 + + if (descriptor != null) + { + var parasProAttri = (HydroParasProAttribute)descriptor.Attributes[typeof(HydroParasProAttribute)]; + if (parasProAttri != null) + { + var buttonEdit = new RepositoryItemButtonEdit(); + buttonEdit.TextEditStyle = TextEditStyles.HideTextEditor; + buttonEdit.ButtonClick += delegate + { + var vm = GetPropertyViewModel(e.Row); + var dlg = new SetParasDlg(); + dlg.SetBindingData(vm.Vmo.Paras); + dlg.ReloadDataEvent += (paras) => + { + vm.Vmo.Paras = paras; + vm.Paras = new DictionaryPropertyAdapter(paras); + this.propertyGridControl1.UpdateRows(); + this.propertyGridControl1.RefreshEditor(); + this.PropertyValueChangedEvent?.Invoke(vm); + }; + dlg.ShowDialog(); + }; + e.RepositoryItem = buttonEdit; + } + } + #endregion @@ -460,10 +512,6 @@ if (vm is HydroValveViewModel valve) { - if (fieldName == nameof(HydroValveViewModel.ValveSetting)) - { - e.Row.Visible = false; - } switch (valve.Vmo.ValveType) { case Yw.Hydro.ValveType.PSV: @@ -476,11 +524,7 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -496,11 +540,7 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -516,11 +556,7 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -536,11 +572,7 @@ { e.Row.Visible = true; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -556,11 +588,7 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) - { - e.Row.Visible = true; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; } @@ -576,13 +604,9 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) - { - e.Row.Visible = true; } } break; @@ -596,13 +620,9 @@ { e.Row.Visible = false; } - if (fieldName == nameof(HydroValveViewModel.ValveOL)) + if (fieldName == nameof(HydroValveViewModel.ValveLength)) { - e.Row.Visible = false; - } - if (fieldName == nameof(HydroValveViewModel.ValveQL)) - { - e.Row.Visible = false; + e.Row.Visible = true; } } break; @@ -631,9 +651,18 @@ } vm.UpdateVmoProperty(); this.PropertyValueChangedEvent?.Invoke(vm); + + var realFieldName = fieldName; var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); if (descriptor != null) { + //鐪熷疄灞炴�у悕绉� + var realPropAttri = (HydroRealProAttribute)descriptor.Attributes[typeof(HydroRealProAttribute)]; + if (realPropAttri != null) + { + realFieldName = realPropAttri.RealPropName; + } + var hydroMarkPropAttri = descriptor.Attributes[typeof(HydroMarkProAttribute)]; if (hydroMarkPropAttri != null) { @@ -646,13 +675,10 @@ this.GradingPropertyValueChangedEvent?.Invoke(vm); } - var hydroFlowDirectionPropAttri = descriptor.Attributes[typeof(HydroFlowDirectionProAttribute)]; - if (hydroFlowDirectionPropAttri != null) - { - this.FlowEffectPropertyValueChangedEvent?.Invoke(vm); - } this.propertyGridControl1.UpdateRows(); } + _changeHelper?.Append(vm.Vmo, eChangeType.Update); + _propStatusHelper?.UpdatePropStatus(vm.Code, realFieldName, Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}閫氳繃灞炴�ф帶浠朵慨鏀�"); } //Db鍖归厤 @@ -682,6 +708,9 @@ link.EndCode = tempCode; link.UpdateVmoProperty(); + _propStatusHelper?.UpdatePropStatus(link.Code, nameof(link.Vmo.StartCode), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); + _propStatusHelper?.UpdatePropStatus(link.Code, nameof(link.Vmo.EndCode), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); + var translation = this.SelectedObject as HydroTranslationViewModel; if (translation != null) { @@ -689,6 +718,8 @@ translation.StartDiameter = translation.EndDiameter; translation.EndDiameter = tempDiameter; translation.UpdateVmoProperty(); + _propStatusHelper?.UpdatePropStatus(translation.Code, nameof(translation.Vmo.StartDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); + _propStatusHelper?.UpdatePropStatus(translation.Code, nameof(translation.Vmo.EndDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); } var pump = this.SelectedObject as HydroPumpViewModel; @@ -698,7 +729,11 @@ pump.InletDiameter = pump.OutletDiameter; pump.OutletDiameter = tempDiameter; pump.UpdateVmoProperty(); + _propStatusHelper?.UpdatePropStatus(pump.Code, nameof(pump.Vmo.InletDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); + _propStatusHelper?.UpdatePropStatus(pump.Code, nameof(pump.Vmo.OutletDiameter), Yw.Hydro.ePropStatus.Normal, $"{DateTime.Now.ToStandardString()}璋冩暣涓婁笅娓�"); } + + _changeHelper?.Append(link.Vmo, eChangeType.Update); this.propertyGridControl1.UpdateRows(); } @@ -755,7 +790,7 @@ string caption = string.Empty; string descrition = string.Empty; - + string realFieldName = fieldName; //灞炴�ф弿杩板櫒 @@ -775,10 +810,17 @@ { descrition = descritionAttri.Description; } + + //鐪熷疄灞炴�у悕绉� + var realPropAttri = (HydroRealProAttribute)descriptor.Attributes[typeof(HydroRealProAttribute)]; + if (realPropAttri != null) + { + realFieldName = realPropAttri.RealPropName; + } } - var propStatus = vm.GetPropStatus(fieldName); - this.hydroVisualPropertyDescriptionCtrl1.SetBindingData(caption, descrition, propStatus); + var propStatusInfo = _propStatusHelper?.GetPropStatusInfo(vm.Code, realFieldName); + this.hydroVisualPropertyDescriptionCtrl1.SetBindingData(caption, descrition, propStatusInfo); } @@ -820,12 +862,14 @@ var dlg = new HydroCurveEditDlg(); dlg.ReloadDataEvent += (rhs) => { - + _changeHelper?.Append(rhs, eChangeType.Update); }; dlg.SetBindingData(curve); dlg.ShowDialog(); } + + } } -- Gitblit v1.9.3