using DevExpress.XtraLayout.Utils;
using HStation.WinFrmUI.Xhs.Core.Properties;
namespace HStation.WinFrmUI
{
public partial class CreateXhsSchemeDlg : DevExpress.XtraEditors.XtraForm
{
public CreateXhsSchemeDlg()
{
InitializeComponent();
this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
}
private readonly CreateXhsSchemeViewModel _vm = new();
private CreateXhsSchemeManager _wizard;
///
///
///
public CreateXhsSchemeViewModel ViewModel
{
get { return _vm; }
}
///
///
///
public async void SetBindingData
(
HStation.Vmo.XhsProjectVmo project,
HStation.Vmo.XhsProjectSiteVmo project_site,
Yw.Model.HydroModelInfo hydro_info
)
{
if (project == null)
{
return;
}
_vm.Project = project;
_vm.ProjectSite = project_site;
_vm.HydroInfo = hydro_info;
_vm.ProjectSite ??= await BLLFactory.Instance.GetDefaultByProjectID(_vm.Project.ID);
if (_vm.HydroInfo == null)
{
var hydroRelation = await BLLFactory.Instance
.GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _vm.ProjectSite.ID, HStation.Xhs.Purpose.Simulation);
_vm.HydroInfo = await BLLFactory.Instance.GetByID(hydroRelation.ModelID);
}
_vm.AllSchemeList = await BLLFactory < HStation.BLL.XhsScheme>.Instance.GetBySiteID(_vm.ProjectSite.ID);
_wizard = new CreateXhsSchemeManager(_vm);
_wizard.SelectedPageChangedEvent += _wizard_SelectedPageChangedEvent;
_wizard.SelectedPageStateChangedEvent += _wizard_SelectedPageStateChangedEvent; ;
_wizard.InitialManager(new IWizardPage[] {
this.createXhsSchemeInfoPage1,
this.createXhsSchemePumpChangePage1,
});
this.createXhsSchemeInfoPage1.ChangeTypeChangedEvent += CreateXhsSchemeInfoPage1_ChangeTypeChangedEvent;
}
//变更类型变换
private void CreateXhsSchemeInfoPage1_ChangeTypeChangedEvent(List change_type_list)
{
for (int i = this.stepProgressBar1.Items.Count; i > 0; i--)
{
if (this.stepProgressBar1.Items.Count < 2)
break;
this.stepProgressBar1.Items.RemoveAt(1);
}
if (change_type_list == null || !change_type_list.Any())
{
}
else
{
foreach (var change_type in change_type_list)
{
var name = HydroParterCatalogHelper.GetName(change_type);
Add(name);
}
Add("变更记录");
}
//
}
private void Add(string caption)
{
var step_pb_item = new StepProgressBarItem();
step_pb_item.ContentBlock2.Caption = caption;
//step_pb_item.Name = "stepPbBasicInfo";
step_pb_item.Options.Indicator.ActiveStateDrawMode = IndicatorDrawMode.Full;
step_pb_item.Options.Indicator.ActiveStateImageOptions.SvgImage = null;
step_pb_item.Options.Indicator.InactiveStateImageOptions.SvgImage = null;
step_pb_item.State = StepProgressBarItemState.Inactive;
this.stepProgressBar1.Items.Add(step_pb_item);
}
//选择页面改变
private void _wizard_SelectedPageChangedEvent(IWizardPage page, int index)
{
this.itemForPrev.Visibility = page.AllowPrev ? LayoutVisibility.Always : LayoutVisibility.Never;
this.itemForNext.Visibility = page.AllowNext ? LayoutVisibility.Always : LayoutVisibility.Never;
this.itemForCancel.Visibility = page.AllowCancel ? LayoutVisibility.Always : LayoutVisibility.Never;
this.itemForComplete.Visibility = page.AllowComplete ? LayoutVisibility.Always : LayoutVisibility.Never;
this.navigationFrame1.SelectedPageIndex = index;
this.stepProgressBar1.SelectedItemIndex = index;
}
//选择页面状态改变
private void _wizard_SelectedPageStateChangedEvent(IWizardPage page, int index)
{
this.itemForPrev.Visibility = page.AllowPrev ? LayoutVisibility.Always : LayoutVisibility.Never;
this.itemForNext.Visibility = page.AllowNext ? LayoutVisibility.Always : LayoutVisibility.Never;
this.itemForCancel.Visibility = page.AllowCancel ? LayoutVisibility.Always : LayoutVisibility.Never;
this.itemForComplete.Visibility = page.AllowComplete ? LayoutVisibility.Always : LayoutVisibility.Never;
}
//上一步
private void btnPrev_Click(object sender, EventArgs e)
{
if (_wizard != null)
{
_wizard.Prev();
}
}
//下一步
private void btnNext_Click(object sender, EventArgs e)
{
if (_wizard != null)
{
_wizard.Next();
}
}
//取消
private void btnCancel_Click(object sender, EventArgs e)
{
if (_wizard != null)
{
var bol = _wizard.Cancel();
if (bol)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
}
}
//完成
private void btnComplete_Click(object sender, EventArgs e)
{
if (_wizard != null)
{
var bol = _wizard.Complete();
if (bol)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}
//正在关闭
private void CreateXhsSchemeDlg_FormClosing(object sender, FormClosingEventArgs e)
{
if (_wizard != null)
{
if (this.DialogResult == DialogResult.OK)
{
/* if (!_wizard.Complete())
{
e.Cancel = true;
}*/
}
else if (this.DialogResult == DialogResult.Cancel)
{
if (!_wizard.Cancel())
{
e.Cancel = true;
}
}
else
{
e.Cancel = true;
}
}
}
}
}