/* * Copyright (c) 2025 LG Electronics Inc. * SPDX-License-Identifier: LicenseRef-LGE-Proprietary */ using System; using System.Windows; using VisionCommon; namespace VisionUI { /// /// Interaction logic for MultiLineSettingWindow.xaml /// public partial class MultiLineSettingWindow : Window, IPatternSettingWindow, IDisposable { public string WINDOW_TITLE => "Multi Line Finder"; private PatternAgentBase _patternAgent; private PatternInfo _patternInfo; private ICameraDisplay _cameraDisplay; private FovInfo _fovInfo; public MultiLineSettingWindow( PatternAgentBase patternAgent, PatternInfo patternInfo, ICameraDisplay cameraDisplay, FovInfo fovInfo) { InitializeComponent(); _patternAgent = patternAgent; _patternInfo = patternInfo; _cameraDisplay = cameraDisplay; _fovInfo = fovInfo; SetTitle(); CreateView(); } private void CreateView() { #if !USE_COGNEX var multiLineSettingView = new MultiLineSettingView(_patternAgent, _patternInfo, _cameraDisplay, _fovInfo); multiLineSettingView.DataContext = new MultiLineSettingViewModel(_patternAgent, _patternInfo, _cameraDisplay, _fovInfo); lineSettingScrollViewer.Content = multiLineSettingView; #endif } public void SetTitle() { Title = WINDOW_TITLE; } public void ResetPosition() { Left = WindowUtil.GetLeftWithRatioOnMainWindow(0.6); Top = WindowUtil.GetTopWithRatioOnMainWindow(0.2); } private void Window_Closed(object sender, EventArgs e) { Dispose(); } public void Dispose() { _cameraDisplay.ClearFindGraphics(); _cameraDisplay.ClearMeasureGraphics(); _cameraDisplay.ClearFindLabelNumGraphicsAll(); #if !USE_COGNEX var view = lineSettingScrollViewer.Content as MultiLineSettingView; view?.Dispose(); #endif } } }