62 lines
1.7 KiB
C#
62 lines
1.7 KiB
C#
using UnityEngine;
|
|
|
|
public class ProgramPresenter
|
|
{
|
|
private ProgramModel model;
|
|
private ProgramView view;
|
|
|
|
public ProgramPresenter(ProgramModel model, ProgramView view)
|
|
{
|
|
this.model = model;
|
|
this.view = view;
|
|
|
|
this.view.OnCreateProgramClicked += HandleCreateProgram;
|
|
this.view.OnLoadProgramListRequested += HandleLoadProgramList;
|
|
this.view.OnProgramSelectedToLoad += HandleProgramSelected;
|
|
this.view.OnSaveClicked += HandleSaveProgram;
|
|
this.view.OnAddPointClicked += HandleAddPoint;
|
|
}
|
|
|
|
private void HandleCreateProgram(string programId)
|
|
{
|
|
if (model.CreateNewProgram(programId))
|
|
{
|
|
view.DisplayProgram(model.CurrentProgram);
|
|
}
|
|
else
|
|
{
|
|
view.ShowMessage($"Error: Program ID '{programId}.job' already exists or is invalid.");
|
|
}
|
|
}
|
|
|
|
private void HandleLoadProgramList()
|
|
{
|
|
var programIds = model.GetAllProgramIds();
|
|
view.ShowProgramList(programIds);
|
|
}
|
|
|
|
private void HandleProgramSelected(string programId)
|
|
{
|
|
if (model.LoadProgram(programId))
|
|
{
|
|
view.DisplayProgram(model.CurrentProgram);
|
|
}
|
|
view.HideProgramList();
|
|
}
|
|
|
|
private void HandleSaveProgram()
|
|
{
|
|
model.SaveCurrentProgram();
|
|
// UI 갱신이 필요하다면 여기에 추가 (예: 저장 완료 메시지)
|
|
}
|
|
|
|
private void HandleAddPoint()
|
|
{
|
|
// 실제로는 UI상의 좌표나 로봇 엔드포인트 좌표를 받아와야 함
|
|
// 여기서는 예시로 랜덤 좌표를 사용
|
|
Vector3 newPoint = new Vector3(Random.Range(-1f, 1f), Random.Range(0f, 1f), Random.Range(-1f, 1f));
|
|
|
|
model.AddPointToCurrentProgram(newPoint);
|
|
view.DisplayProgram(model.CurrentProgram);
|
|
}
|
|
} |