📄 mediator.cs
字号:
using System;
using HRD.Core;
namespace HRD.Core
{
public class Mediator
{
private IAVLTree _avlTree;
private ICircularList _circleList;
private ITreeList _treeList;
private IResultHandler _resultHandler;
#region Properties
public IAVLTree avlTree
{
set
{
_avlTree = value;
}
}
public ICircularList circleList
{
set
{
_circleList = value;
}
}
public ITreeList treeList
{
set
{
_treeList = value;
}
}
public IResultHandler resultHandler
{
set
{
_resultHandler = value;
}
}
#endregion
public void Init(int n)
{
for(int i = 0; i<n; i++)
_circleList.insertNode();
ChessStep c = _circleList.Initialize();
_treeList.ClearAll();
_avlTree.DestroyTree();
_treeList.insertNode(c);
_avlTree.Insert(c.layout);
_circleList.mediator = this;
}
public void Release()
{
_circleList.ClearAll();
_treeList.ClearAll();
_avlTree.DestroyTree();
}
public void CheckStep(ChessStep cStep)
{
try
{
if(_avlTree.Insert(cStep.layout))
{
_circleList.ConfirmAllocation();
_treeList.insertNode(cStep);
}
}
catch
{
}
}
public Layout AllocateLayout()
{
return _circleList.AllocateLayout();
}
public void Finished(ChessStep cStep)
{
_circleList.Stop();
ChessStep[] s = _treeList.TraceResult(cStep);
_resultHandler.HandleResult(s);
return;
}
public bool BeginProcess()
{
return _circleList.BeginProcess();
}
public void Stop()
{
_circleList.Stop();
}
public void MoveCurrentToNext()
{
_treeList.MoveCurrentToNext();
}
public void HandleInfo(int currentStep)
{
_resultHandler.HandleInfo(currentStep);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -