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
@@ -95,7 +95,7 @@ namespace StandardScene.ExtendDevice.ButtonBox
LoadBoxFields(b);
ClearButtonFields();
}
}, height: CycleUiHelper.TableHeightPx(8), enableSearch: true);
}, height: FairyUiHelper.TableHeightPx(8), enableSearch: true);
pb.SeparatorText("按钮盒编辑");
var (ip, _) = pb.TextInput("1. IP", _boxIp, alwaysReturnString: true);
@@ -130,7 +130,7 @@ namespace StandardScene.ExtendDevice.ButtonBox
_selectedBtnIdx = i;
LoadButtonFields(btn);
}
}, height: CycleUiHelper.TableHeightPx(6), enableSearch: true);
}, height: FairyUiHelper.TableHeightPx(6), enableSearch: true);
pb.SeparatorText("按钮编辑");
var (bIdx, _) = pb.TextInput("5. 按钮编码", _btnIndex, alwaysReturnString: true);
@@ -264,9 +264,9 @@ namespace StandardScene.ExtendDevice.ButtonBox
private void AddBox()
{
if (!TryParseBoxInput(out var index, out var ip, out var port, out var type, false, out var err))
{ CycleUiHelper.Alert("错误", err); return; }
if (_boxes.Any(b => b.Index == index)) { CycleUiHelper.Alert("错误", $"编码 {index} 已存在"); return; }
if (_boxes.Any(b => b.Ip == ip)) { CycleUiHelper.Alert("错误", $"IP {ip} 已存在"); return; }
{ FairyUiHelper.Alert("错误", err); return; }
if (_boxes.Any(b => b.Index == index)) { FairyUiHelper.Alert("错误", $"编码 {index} 已存在"); return; }
if (_boxes.Any(b => b.Ip == ip)) { FairyUiHelper.Alert("错误", $"IP {ip} 已存在"); return; }
var box = new ButtonBoxModel { Index = index, Ip = ip, Port = port, Type = type };
_boxes.Add(box);
@@ -279,23 +279,23 @@ namespace StandardScene.ExtendDevice.ButtonBox
private void SaveBox()
{
var cur = GetSelectedBox();
if (cur == null) { CycleUiHelper.Alert("提示", "请先选择按钮盒"); return; }
if (cur == null) { FairyUiHelper.Alert("提示", "请先选择按钮盒"); return; }
if (!TryParseBoxInput(out var index, out var ip, out var port, out var type, true, out var err))
{ CycleUiHelper.Alert("错误", err); return; }
if (_boxes.Any(b => b.Index == index && b != cur)) { CycleUiHelper.Alert("错误", $"编码 {index} 已存在"); return; }
if (_boxes.Any(b => b.Ip == ip && b != cur)) { CycleUiHelper.Alert("错误", $"IP {ip} 已存在"); return; }
{ FairyUiHelper.Alert("错误", err); return; }
if (_boxes.Any(b => b.Index == index && b != cur)) { FairyUiHelper.Alert("错误", $"编码 {index} 已存在"); return; }
if (_boxes.Any(b => b.Ip == ip && b != cur)) { FairyUiHelper.Alert("错误", $"IP {ip} 已存在"); return; }
cur.Index = index; cur.Ip = ip; cur.Port = port; cur.Type = type;
SaveData();
CycleUiHelper.Alert("提示", "保存成功");
FairyUiHelper.Alert("提示", "保存成功");
_panel?.Repaint();
}
private void ConfirmDeleteBox()
{
var cur = GetSelectedBox();
if (cur == null) { CycleUiHelper.Alert("提示", "请选择要删除的按钮盒"); return; }
CycleUiHelper.ConfirmThen($"删除编码为 {cur.Index} 的按钮盒?", () =>
if (cur == null) { FairyUiHelper.Alert("提示", "请选择要删除的按钮盒"); return; }
FairyUiHelper.ConfirmThen($"删除编码为 {cur.Index} 的按钮盒?", () =>
{
_boxes.Remove(cur);
_selectedBoxIdx = -1;
@@ -311,10 +311,10 @@ namespace StandardScene.ExtendDevice.ButtonBox
private void AddButton()
{
var box = GetSelectedBox();
if (box == null) { CycleUiHelper.Alert("提示", "请先选择按钮盒"); return; }
if (box == null) { FairyUiHelper.Alert("提示", "请先选择按钮盒"); return; }
if (!TryParseButtonInput(out var index, out var delay, out var err))
{ CycleUiHelper.Alert("错误", err); return; }
if (box.Buttons.Any(b => b.Index == index)) { CycleUiHelper.Alert("错误", $"按钮编码 {index} 已存在"); return; }
{ FairyUiHelper.Alert("错误", err); return; }
if (box.Buttons.Any(b => b.Index == index)) { FairyUiHelper.Alert("错误", $"按钮编码 {index} 已存在"); return; }
box.Buttons.Add(new ButtonModel
{
@@ -335,10 +335,10 @@ namespace StandardScene.ExtendDevice.ButtonBox
{
var box = GetSelectedBox();
var btn = GetSelectedButton();
if (box == null || btn == null) { CycleUiHelper.Alert("提示", "请先选择按钮"); return; }
if (box == null || btn == null) { FairyUiHelper.Alert("提示", "请先选择按钮"); return; }
if (!TryParseButtonInput(out var index, out var delay, out var err))
{ CycleUiHelper.Alert("错误", err); return; }
if (box.Buttons.Any(b => b.Index == index && b != btn)) { CycleUiHelper.Alert("错误", $"按钮编码 {index} 已存在"); return; }
{ FairyUiHelper.Alert("错误", err); return; }
if (box.Buttons.Any(b => b.Index == index && b != btn)) { FairyUiHelper.Alert("错误", $"按钮编码 {index} 已存在"); return; }
btn.Index = index;
btn.TriggerMission = _triggerMission.Trim();
@@ -347,7 +347,7 @@ namespace StandardScene.ExtendDevice.ButtonBox
btn.TriggerState = _triggerStateNames[_triggerStateIdx];
btn.TriggerDelay = delay;
SaveData();
CycleUiHelper.Alert("提示", "保存成功");
FairyUiHelper.Alert("提示", "保存成功");
_panel?.Repaint();
}
@@ -355,8 +355,8 @@ namespace StandardScene.ExtendDevice.ButtonBox
{
var box = GetSelectedBox();
var btn = GetSelectedButton();
if (box == null || btn == null) { CycleUiHelper.Alert("提示", "请选择要删除的按钮"); return; }
CycleUiHelper.ConfirmThen($"删除编码为 {btn.Index} 的按钮?", () =>
if (box == null || btn == null) { FairyUiHelper.Alert("提示", "请选择要删除的按钮"); return; }
FairyUiHelper.ConfirmThen($"删除编码为 {btn.Index} 的按钮?", () =>
{
box.Buttons.Remove(btn);
_selectedBtnIdx = -1;