/// <summary> /// img click 事件接受器 /// </summary> /// <param name="sender">事件发起方</param> /// <param name="e">参数</param> private void img_Click(object sender, EventArgs e) { SkinPictureBox img = sender as SkinPictureBox; RailID id = this.ConvertNameToID(img.Name); RailMode rail = this.RailDic[id]; if (this.IsAllStoped) { switch (rail.Progress) { // 如果 其他轨道 被选中,并且所有 轨道 都没有在工作, 则特定 轨道 被选中,其他都清除状态 // 如果所有的 轨道 都没有被选中,则直接选中 case RailProgress.UnSelected: case RailProgress.Stop: this.ClearOtherRail(id); rail.Progress = RailProgress.Selected; break; // 再次单击已选中轨道,取消选中 case RailProgress.Selected: rail.Progress = RailProgress.UnSelected; break; // 单击已经清理过的轨道, 弹窗提示 case RailProgress.Done: DialogResult result = MessageBox.Show("该轨道已经清理过,是否确认重新清理?", "确认对话框", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { rail.Progress = RailProgress.Selected; } break; } } }
/// <summary> /// 设置当前工作轨道的清理进度 /// </summary> /// <param name="step"></param> public bool SetRailProgress(CleanSteps step) { RailMode mode = GetWorkingRail(); if (mode == null) { return(false); } switch (step) { case CleanSteps.CleanRail: mode.Progress = RailProgress.CleanRail; break; case CleanSteps.DropAlcohol: mode.Progress = RailProgress.DropAlcohol; break; case CleanSteps.CoveredWithGrease: mode.Progress = RailProgress.DropAlcohol; break; case CleanSteps.Done: mode.Progress = RailProgress.Done; mode.Status = RailStatus.Ready; break; } return(true); }
/// <summary> /// 清除 除了给定轨道之外, 其他轨道的进度状态--选中状态。 /// </summary> /// <param name="specificRail">特定的轨道</param> private void ClearOtherRail(RailID id) { foreach (var item in this.RailDic) { RailMode rail = item.Value; if (rail.ID != id && rail.Progress == RailProgress.Selected) { rail.Progress = RailProgress.UnSelected; } } }
/// <summary> /// 对应暂停按钮, 改变轨道状态为暂停。 /// </summary> public bool Pause() { RailMode rail = this.GetRunningRail(); if (rail != null) { rail.Status = RailStatus.Pause; return(true); } return(false); }
public bool Continue() { RailMode rail = this.GetPauseRail(); if (rail != null) { rail.Status = RailStatus.Running; return(true); } return(false); }
/// <summary> /// 给手动清理设置轨道状态用的。因为手动清理轨道没有因为步骤变化图标 /// </summary> /// <param name="railStatus"></param> /// <returns></returns> public bool SetRailStatus(RailStatus railStatus) { RailMode mode = GetWorkingRail(); if (mode == null) { return(false); } mode.Status = railStatus; return(true); }
/// <summary> /// 完成轨道清理 /// </summary> /// <returns></returns> public bool FinishClean() { RailMode rail = this.GetRunningRail(); if (rail != null) { rail.Progress = RailProgress.Done; rail.Status = RailStatus.Ready; return(true); } return(false); }
/// <summary> /// 对应停止按钮, 如果返回-1:说明当前没有工作的轨道,弹窗提示用户。 /// </summary> public bool Stop() { RailMode rail = this.GetWorkingRail(); if (rail != null) { rail.Progress = RailProgress.Stop; rail.Status = RailStatus.Ready; return(true); } return(false); }
/// <summary> /// 1.对应开始按钮, 当启动开始时,改变轨道的清理状态,并且返回轨道号 /// 2.如果没有选定轨道, 返回 -1, UI 弹窗显示未选中 /// 3.对于没有 /// </summary> /// <returns>返回 当前工作的 轨道号</returns> public bool Start() { RailMode rail = this.GetSelectedRail(); if (rail != null) { rail.Progress = RailProgress.CleanRail; rail.Status = RailStatus.Running; return(true); } return(false); }
private RailMode GetWorkingRail() { RailMode mode = null; foreach (var item in this.RailDic) { if (item.Value.Status != RailStatus.Ready) { mode = item.Value; } } return(mode); }
private void InitRails(List <SkinPictureBox> rails) { if (rails != null && rails.Count > 0) { foreach (var item in rails) { item.Click += this.img_Click; RailID id = this.ConvertNameToID(item.Name); RailMode mode = new RailMode { ID = id }; mode.ImageBox = item; mode.Status = RailStatus.Ready; mode.Progress = RailProgress.UnSelected; this.RailDic.Add(id, mode); } } }