duheng
2024-08-26 c17dd77e798b3b94da8ee93ba3577d0bd540a125
WinFrmUI/HStation.WinFrmUI.Xhs.Core/02-project/01-import/04-GeneralProject/GenerateXhsProjectWizardPage.cs
@@ -1,56 +1,178 @@
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);
            }
        }
    }
}
}