/* * 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 { /// /// Interaction logic for ShapeSettingWindow.xaml /// 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(); } } } }