2026-01-26 14:51:28 +09:00

75 lines
2.7 KiB
C#

/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using MilCommon;
using MilPattern;
using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using VisionCommon;
namespace MilUI {
/// <summary>
/// Interaction logic for ShapeSettingWindow.xaml
/// </summary>
public partial class ShapeSettingWindow : Window, IPatternSettingWindow {
public string WINDOW_TITLE => "Shape Setting";
public ShapeSettingWindow(
ShapeModelFinderTrainParam trainParam,
CameraDisplay cameraDisplay) {
InitializeComponent();
SetTitle();
SetChildView(trainParam, cameraDisplay);
}
public void SetTitle() {
Title = WINDOW_TITLE;
}
private void SetChildView(
ShapeModelFinderTrainParam trainParam, CameraDisplay cameraDisplay) {
var childView = CreateChildView(trainParam, cameraDisplay);
gridShapeSettingWindow.Children.Add(childView);
}
private UserControl CreateChildView(
ShapeModelFinderTrainParam trainParam, CameraDisplay cameraDisplay) {
switch (trainParam.ModelType) {
default:
case eModelType.Circle:
return new CircleSettingView() {
DataContext = new CircleSettingViewModel(trainParam, cameraDisplay, this)
};
case eModelType.Square:
return new SquareSettingView() {
DataContext = new SquareSettingViewModel(trainParam, cameraDisplay, this)
};
case eModelType.Diamond:
case eModelType.Ellipse:
case eModelType.Rectangle:
case eModelType.Triangle:
return new WidthHeightSettingView() {
DataContext = new WidthHeightSettingViewModel(trainParam, cameraDisplay, this)
};
case eModelType.Cross:
return new CrossSettingView() {
DataContext = new CrossSettingViewModel(trainParam, cameraDisplay, this)
};
}
}
public void ResetPosition() {
Left = WindowUtil.GetLeftWithRatioOnMainWindow(0.55);
Top = WindowUtil.GetTopWithRatioOnMainWindow(0.15);
}
protected override void OnClosing(CancelEventArgs e) {
if (0 < gridShapeSettingWindow.Children.Count) {
((IDisposable)gridShapeSettingWindow.Children[0]).Dispose();
}
}
}
}