refactor: CycleUiHelper 重命名为 FairyUiHelper

对齐 FairyView 宿主命名。环线/充电/按钮/门进程的 Stop 改为 override,避免隐藏基类;Kiva.ForceStop 改为 override。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
黄兆尉
2026-08-26 22:49:07 +08:00
co-authored by Cursor
parent 7c925985eb
commit e075bc0d7d
23 changed files with 143 additions and 116 deletions
@@ -124,7 +124,7 @@ namespace StandardScene.Charge
if (row.ButtonGroup(new[] { "编辑" }, new[] { "编辑该报警配置" }) == 0)
OpenEditDialog(alarm);
}, height: CycleUiHelper.TableHeightPx(16), enableSearch: true);
}, height: FairyUiHelper.TableHeightPx(16), enableSearch: true);
if (!string.IsNullOrEmpty(_status))
{
@@ -231,7 +231,7 @@ namespace StandardScene.Charge
if (success)
{
CycleUiHelper.Alert("成功", "保存成功!");
FairyUiHelper.Alert("成功", "保存成功!");
LoadAlarms();
_status = isAdd ? "已新增报警配置" : $"已保存报警配置 [{draft.AlarmCode}]";
dlg.Exit();
@@ -250,13 +250,13 @@ namespace StandardScene.Charge
if (pb.Button("删除", distinct: "alarm-edit-delete"))
{
var toDelete = draft;
CycleUiHelper.ConfirmThen(
FairyUiHelper.ConfirmThen(
$"确定要删除报警配置 [{toDelete.AlarmCode}] {toDelete.AlarmContent} 吗?",
() =>
{
if (DataService.DeleteAlarmConfig(toDelete.AlarmId, out string errorMessage))
{
CycleUiHelper.Alert("成功", "删除成功!");
FairyUiHelper.Alert("成功", "删除成功!");
LoadAlarms();
_status = $"已删除报警配置 [{toDelete.AlarmCode}]";
dlg.Exit();
@@ -265,7 +265,7 @@ namespace StandardScene.Charge
}
else
{
CycleUiHelper.Alert("错误", $"删除失败: {errorMessage}");
FairyUiHelper.Alert("错误", $"删除失败: {errorMessage}");
}
});
}
@@ -289,7 +289,7 @@ namespace StandardScene.Charge
catch (Exception ex)
{
_allAlarms = new List<AlarmConfig>();
CycleUiHelper.Alert("错误", $"加载数据失败: {ex.Message}");
FairyUiHelper.Alert("错误", $"加载数据失败: {ex.Message}");
}
}
@@ -282,7 +282,7 @@ namespace StandardScene.Charge
if (stations.Count == 0)
{
CycleUiHelper.Alert("提示", "没有符合条件的充电桩");
FairyUiHelper.Alert("提示", "没有符合条件的充电桩");
onSelected?.Invoke(null);
return;
}
@@ -129,7 +129,7 @@ namespace StandardScene.Charge
var op = row.ButtonGroup(new[] { "编辑", "删除" }, new[] { "编辑充电桩", "删除充电桩" });
if (op == 0) OpenEditDialog(s);
else if (op == 1) ConfirmDelete(s);
}, height: CycleUiHelper.TableHeightPx(16), enableSearch: true);
}, height: FairyUiHelper.TableHeightPx(16), enableSearch: true);
if (!string.IsNullOrEmpty(_status))
{
@@ -290,7 +290,7 @@ namespace StandardScene.Charge
_lastFlush = DateTime.MinValue;
_status = "保存成功";
CycleUiHelper.Alert("提示", "保存成功");
FairyUiHelper.Alert("提示", "保存成功");
dlg.Exit();
_editDialog = null;
_panel?.Repaint();
@@ -341,11 +341,11 @@ namespace StandardScene.Charge
private void ConfirmDelete(ChargeStation station)
{
CycleUiHelper.ConfirmThen($"确定删除充电桩 [{station.StationId}] {station.Name}", () =>
FairyUiHelper.ConfirmThen($"确定删除充电桩 [{station.StationId}] {station.Name}", () =>
{
if (!DataService.DeleteStation(station.StationId, out var err))
{
CycleUiHelper.Alert("错误", $"删除失败: {err}");
FairyUiHelper.Alert("错误", $"删除失败: {err}");
return;
}
var site = SimpleLib.GetSite(station.SiteId ?? 0);
@@ -384,9 +384,9 @@ namespace StandardScene.Charge
{
File.WriteAllText(path, Newtonsoft.Json.JsonConvert.SerializeObject(stations, Newtonsoft.Json.Formatting.Indented));
}
CycleUiHelper.Alert("提示", "导出成功");
FairyUiHelper.Alert("提示", "导出成功");
}
catch (Exception ex) { CycleUiHelper.Alert("错误", $"导出失败: {ex.Message}"); }
catch (Exception ex) { FairyUiHelper.Alert("错误", $"导出失败: {ex.Message}"); }
}
private void ApplyRowColor(PanelBuilder.Row row, ChargeStation s)
@@ -135,7 +135,7 @@ namespace StandardScene.Charge
}
catch (Exception ex)
{
CycleUiHelper.Alert("错误", $"加载配置失败: {ex.Message}");
FairyUiHelper.Alert("错误", $"加载配置失败: {ex.Message}");
_status = "配置加载失败";
return false;
}
@@ -220,7 +220,7 @@ namespace StandardScene.Charge
if (!ValidateSocRanges(out var socError))
{
CycleUiHelper.Alert("验证失败", socError);
FairyUiHelper.Alert("验证失败", socError);
_status = "配置保存失败";
_panel?.Repaint();
return;
@@ -230,7 +230,7 @@ namespace StandardScene.Charge
{
ConfigService.SaveConfig(_config);
_status = "配置保存成功";
CycleUiHelper.Alert("成功", "充电策略配置保存成功!");
FairyUiHelper.Alert("成功", "充电策略配置保存成功!");
if (closeAfterSave)
{
_panel?.Exit();
@@ -243,7 +243,7 @@ namespace StandardScene.Charge
}
catch (Exception ex)
{
CycleUiHelper.Alert("错误", $"保存配置失败: {ex.Message}");
FairyUiHelper.Alert("错误", $"保存配置失败: {ex.Message}");
_status = "配置保存失败";
_panel?.Repaint();
}
@@ -251,7 +251,7 @@ namespace StandardScene.Charge
private void RestoreDefaults()
{
CycleUiHelper.ConfirmThen("确定要恢复默认配置吗?当前配置将被覆盖。", () =>
FairyUiHelper.ConfirmThen("确定要恢复默认配置吗?当前配置将被覆盖。", () =>
{
_config = ChargeStrategyConfig.CreateDefault();
ApplyConfigToUi(_config);
@@ -117,7 +117,7 @@ namespace StandardScene.Charge
pb.SameLine(8);
if (pb.Button("清空", distinct: "comm-clear"))
{
CycleUiHelper.ConfirmThen("确定要清空所有报文记录吗?", () =>
FairyUiHelper.ConfirmThen("确定要清空所有报文记录吗?", () =>
{
MessageService.Clear();
lock (PendingLock)
@@ -164,7 +164,7 @@ namespace StandardScene.Charge
_selectedRowIndex = i;
_parsedText = BuildParsedText(msg);
}
}, height: CycleUiHelper.TableHeightPx(20), enableSearch: true);
}, height: FairyUiHelper.TableHeightPx(20), enableSearch: true);
pb.SeparatorText("报文解析");
pb.SelectableText(null, _parsedText ?? "", copyButton: true);
@@ -278,7 +278,7 @@ namespace StandardScene.Charge
// 防止重复启动
if (myStarted)
{
CycleUiHelper.Alert("提示", "充电进程已启动,不可重复启动");
FairyUiHelper.Alert("提示", "充电进程已启动,不可重复启动");
return;
}
status.status = "已启动";
@@ -671,7 +671,7 @@ namespace StandardScene.Charge
/// 停止所有相关线程
/// </summary>
[MethodMember(Name = "关闭进程", Description = "关闭充电进程")]
public void Stop()
public override void Stop()
{
try
{