| | |
| | | using DevExpress.XtraEditors; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Drawing; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Windows.Forms; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | namespace HStation.WinFrmUI |
| | | { |
| | | public partial class GenerateXhsProjectWizardPage : DevExpress.XtraEditors.XtraUserControl, IWizardPage<ImportXhsProjectViewModel> |
| | | { |
| | | public GenerateXhsProjectWizardPage() |
| | | { |
| | | InitializeComponent(); |
| | | this.layoutControl1.SetupLayoutControl(); |
| | | } |
| | | |
| | | public bool AllowPrev => throw new NotImplementedException(); |
| | | /// <summary> |
| | | /// 状态改变事件 |
| | | /// </summary> |
| | | public event Action PageStateChangedEvent; |
| | | |
| | | public bool AllowNext => throw new NotImplementedException(); |
| | | private bool _isInitialize = false;//是否初始化 |
| | | private bool _importResult = false;//导入结果 |
| | | private ImportXhsProjectViewModel _vm = null;//操作对象 |
| | | |
| | | public bool AllowCancel => throw new NotImplementedException(); |
| | | |
| | | public bool AllowComplete => throw new NotImplementedException(); |
| | | |
| | | public bool IsInitialize => throw new NotImplementedException(); |
| | | |
| | | public bool CanCancel() |
| | | private class ListItemWithColor |
| | | { |
| | | throw new NotImplementedException(); |
| | | public string Text { get; set; } |
| | | public Color Color { get; set; } |
| | | |
| | | public override string ToString() |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public bool CanComplete() |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public async void InitialPage(ImportXhsProjectViewModel vm) |
| | | { |
| | | throw new NotImplementedException(); |
| | | _vm = vm; |
| | | _isInitialize = false; |
| | | _importResult = false; |
| | | _importResult = await ImportXhsProjectHelper.Import(vm, (msg, color) => |
| | | { |
| | | ListItemWithColor itemWithColor = new ListItemWithColor |
| | | { |
| | | Text = msg, |
| | | Color = color |
| | | }; |
| | | this.listBoxControl1.Items.Add(itemWithColor); |
| | | }, (max, current) => |
| | | { |
| | | this.progressBarControl1.Properties.Maximum = max; |
| | | this.progressBarControl1.Position = current; |
| | | //替代方案 |
| | | // this.progressBarControl1.Properties.Step = current; |
| | | // this.progressBarControl1.PerformStep(); |
| | | }); |
| | | if (!_importResult) |
| | | { |
| | | this.progressBarControl1.Position = 0; |
| | | this.itemForProgress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | } |
| | | _isInitialize = true; |
| | | this.PageStateChangedEvent?.Invoke(); |
| | | } |
| | | |
| | | public bool CanNext() |
| | | /// <summary> |
| | | /// 允许上一步 |
| | | /// </summary> |
| | | public bool AllowPrev |
| | | { |
| | | throw new NotImplementedException(); |
| | | get |
| | | { |
| | | if (_isInitialize) |
| | | { |
| | | if (!_importResult) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 允许下一步 |
| | | /// </summary> |
| | | public bool AllowNext |
| | | { |
| | | get |
| | | { |
| | | if (_isInitialize) |
| | | { |
| | | if (_importResult) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 允许取消 |
| | | /// </summary> |
| | | public bool AllowCancel |
| | | { |
| | | get |
| | | { |
| | | if (_isInitialize) |
| | | { |
| | | if (!_importResult) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 允许完成 |
| | | /// </summary> |
| | | public bool AllowComplete |
| | | { |
| | | get { return false; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 能否上一步 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public bool CanPrev() |
| | | { |
| | | throw new NotImplementedException(); |
| | | return this.AllowPrev; |
| | | } |
| | | |
| | | public void InitialPage(ImportXhsProjectViewModel t) |
| | | /// <summary> |
| | | /// 能否下一步 |
| | | /// </summary> |
| | | public bool CanNext() |
| | | { |
| | | throw new NotImplementedException(); |
| | | return this.AllowNext; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 能否取消 |
| | | /// </summary> |
| | | public bool CanCancel() |
| | | { |
| | | return this.AllowCancel; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 能否完成 |
| | | /// </summary> |
| | | public bool CanComplete() |
| | | { |
| | | return false; |
| | | } |
| | | |
| | | private void listBoxControl1_DrawItem(object sender, DevExpress.XtraEditors.ListBoxDrawItemEventArgs e) |
| | | { |
| | | // 获取当前项目的索引 |
| | | int index = e.Index; |
| | | |
| | | // 检查是否是有效的项目索引 |
| | | if (index >= 0) |
| | | { |
| | | // 获取当前项目 |
| | | ListItemWithColor item = (ListItemWithColor)listBoxControl1.Items[index]; |
| | | |
| | | // 设置字体和颜色 |
| | | Font font = new Font("Arial", 15); |
| | | Brush brush = new SolidBrush(item.Color); |
| | | // 绘制文本 |
| | | e.Graphics.DrawString(item.Text, font, brush, e.Bounds); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |