namespace HStation.WinFrmUI
{
///
/// 导入项目管理
///
public class ImportXhsProjectManager : IWizardManager
{
///
/// 初始化管理器
///
/// 步骤页面数组
public void InitialManager(IWizardPage[] pages)
{
_pages = pages;
if (_pages != null && _pages.Length > 0)
{
_selectedIndex = 0;
this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex);
this.SelectedPage.InitialPage(_vm);
}
}
private IWizardPage[] _pages;//步骤页面数组
private readonly ImportXhsProjectViewModel _vm = new ImportXhsProjectViewModel();
///
/// 选择页面改变事件
///
public event Action, int> SelectedPageChangedEvent;
public event Action, int> SelectedPageStateChangedEvent;
///
/// 选择页面
///
public IWizardPage SelectedPage
{
get
{
if (_pages == null || _pages.Length < 1)
{
return default;
}
return _pages[SelectedIndex];
}
}
///
/// 选择索引
///
public int SelectedIndex
{
get { return _selectedIndex; }
}
private int _selectedIndex;
///
/// 上一步
///
public bool Prev()
{
if (_pages == null || _pages.Length < 1)
{
return false;
}
if (this.SelectedPage.CanPrev())
{
--_selectedIndex;
this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex);
this.SelectedPage.InitialPage(_vm);
return true;
}
return false;
}
///
/// 下一步
///
public bool Next()
{
if (_pages == null || _pages.Length < 1)
{
return false;
}
if (this.SelectedPage.CanNext())
{
++_selectedIndex;
this.SelectedPageChangedEvent?.Invoke(this.SelectedPage, this.SelectedIndex);
this.SelectedPage.InitialPage(_vm);
return true;
}
return false;
}
///
/// 取消
///
public bool Cancel()
{
if (_pages == null || _pages.Length < 1)
{
return false;
}
if (this.SelectedPage.CanCancel())
{
return true;
}
return false;
}
///
/// 完成
///
public bool Complete()
{
if (_pages == null || _pages.Length < 1)
{
return false;
}
if (this.SelectedPage.CanComplete())
{
return true;
}
return false;
}
}
}