112 lines
4.2 KiB
C#
112 lines
4.2 KiB
C#
/*
|
|
* Copyright (c) 2025 LG Electronics Inc.
|
|
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
*/
|
|
using VisionCommon;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
|
|
namespace CogUI {
|
|
/// <summary>
|
|
/// Interaction logic for ImageModelSettingWindow.xaml
|
|
/// </summary>
|
|
public partial class ImageModelSettingWindow : Window, IPatternSettingWindow {
|
|
public string WINDOW_TITLE => "Image Model Finder";
|
|
|
|
private PatternAgentBase _patternAgent;
|
|
private PatternInfo _patternInfo;
|
|
private CameraDisplay _cogCameraDisplay;
|
|
private FovInfo _fovInfo;
|
|
|
|
public ImageModelSettingWindow(
|
|
PatternAgentBase patternAgent, PatternInfo patternInfo,
|
|
ICameraDisplay cameraDisplay,
|
|
FovInfo fovInfo) {
|
|
InitializeComponent();
|
|
|
|
_patternAgent = patternAgent;
|
|
_patternInfo = patternInfo;
|
|
_cogCameraDisplay = (CameraDisplay)cameraDisplay;
|
|
_fovInfo = fovInfo;
|
|
|
|
SetTitle();
|
|
CreateView();
|
|
}
|
|
|
|
private void CreateView() {
|
|
if (PatternConstants.IsSubPatternSupport(ePatternType.ImageModelFinder)) {
|
|
CreateSubPatternView();
|
|
}
|
|
else {
|
|
CreateSinglePatternView();
|
|
}
|
|
}
|
|
|
|
private void CreateSinglePatternView() {
|
|
var grid = new Grid();
|
|
var imageModelSettingView = new ImageModelSettingView() {
|
|
DataContext = new ImageModelSettingViewModel(_patternAgent, _patternInfo, _cogCameraDisplay, _fovInfo)
|
|
};
|
|
grid.Children.Add(imageModelSettingView);
|
|
imageModelSettingScrollViewer.Content = grid;
|
|
}
|
|
|
|
private void CreateSubPatternView() {
|
|
var subPatternTabControl = new TabControl();
|
|
subPatternTabControl.Style = FindResource("styleSubPatternTabControl") as Style;
|
|
|
|
AddMainPatternTabControl(subPatternTabControl);
|
|
AddSubPatternTabControl(subPatternTabControl);
|
|
|
|
imageModelSettingScrollViewer.Content = subPatternTabControl;
|
|
}
|
|
|
|
private void AddMainPatternTabControl(TabControl subPatternTabControl) {
|
|
AddPatternTabControl(subPatternTabControl, _patternAgent, _patternInfo, _cogCameraDisplay, _fovInfo);
|
|
}
|
|
|
|
private void AddSubPatternTabControl(TabControl subPatternTabControl) {
|
|
for (int i = PatternConstants.MAIN_PATTERN_INDEX + 1; i < PatternConstants.SUB_PATTERN_COUNT; i++) {
|
|
PatternInfo subPatternInfo;
|
|
var subPatternIndex = PatternAgentBase.GetSubPatternIndex(_patternInfo, i);
|
|
if (_patternAgent.IsPatternExist(subPatternIndex)) {
|
|
subPatternInfo = _patternAgent.GetPatternInfo(subPatternIndex);
|
|
}
|
|
else {
|
|
subPatternInfo = _patternInfo.Clone() as PatternInfo;
|
|
subPatternInfo.SetPatternSubId(i);
|
|
subPatternInfo.Description += string.Format($"_{i}");
|
|
}
|
|
|
|
AddPatternTabControl(subPatternTabControl, _patternAgent, subPatternInfo, _cogCameraDisplay, _fovInfo);
|
|
}
|
|
}
|
|
|
|
private void AddPatternTabControl(
|
|
TabControl subPatternTabControl,
|
|
PatternAgentBase patternAgent, PatternInfo patternInfo,
|
|
CameraDisplay milCameraDisplay,
|
|
FovInfo fovInfo) {
|
|
var imageModelSettingView = new ImageModelSettingView() {
|
|
DataContext = new ImageModelSettingViewModel(patternAgent, patternInfo, milCameraDisplay, fovInfo)
|
|
};
|
|
|
|
var subPatternTabItem = new TabItem() {
|
|
Header = patternInfo.GetPatternSubId().ToString(),
|
|
Content = imageModelSettingView
|
|
};
|
|
subPatternTabItem.Style = FindResource("styleSubMenuRootTabItem") as Style;
|
|
subPatternTabControl.Items.Add(subPatternTabItem);
|
|
}
|
|
|
|
public void SetTitle() {
|
|
Title = WINDOW_TITLE;
|
|
}
|
|
|
|
public void ResetPosition() {
|
|
Left = WindowUtil.GetLeftWithRatioOnMainWindow(0.6);
|
|
Top = WindowUtil.GetTopWithRatioOnMainWindow(0.15);
|
|
}
|
|
}
|
|
}
|