using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Windows; using DwgExtractorManual.Models; using DwgExtractorManual.Views; using MessageBox = System.Windows.MessageBox; namespace DwgExtractorManual { /// /// MainWindow의 시각화 관련 기능을 담당하는 partial class /// public partial class MainWindow { // 시각화 데이터 저장 private static List _visualizationDataCache = new List(); /// /// 테이블 셀 시각화 데이터를 저장합니다. /// public static void SaveVisualizationData(TableCellVisualizationData data) { _visualizationDataCache.Add(data); Debug.WriteLine($"[VISUALIZATION] 시각화 데이터 저장: {data.FileName}, 셀 수: {data.Cells.Count}"); } /// /// 저장된 시각화 데이터를 가져옵니다. /// public static List GetVisualizationData() { Debug.WriteLine($"[VISUALIZATION] 시각화 데이터 조회: {_visualizationDataCache.Count}개 항목"); return new List(_visualizationDataCache); } /// /// 시각화 데이터를 초기화합니다. /// public static void ClearVisualizationData() { Debug.WriteLine($"[VISUALIZATION] 시각화 데이터 초기화 (기존 {_visualizationDataCache.Count}개 항목 삭제)"); _visualizationDataCache.Clear(); Debug.WriteLine("[VISUALIZATION] 시각화 데이터 초기화 완료"); } /// /// 테이블 셀 시각화 창을 엽니다. /// private void BtnVisualizeCells_Click(object sender, RoutedEventArgs e) { try { LogMessage("🎨 테이블 셀 시각화 창을 여는 중..."); var visualizationData = GetVisualizationData(); LogMessage($"[DEBUG] 조회된 시각화 데이터: {visualizationData.Count}개"); if (visualizationData.Count == 0) { MessageBox.Show("시각화할 데이터가 없습니다.\n먼저 'DWG추출(Height정렬)' 버튼을 눌러 데이터를 추출해주세요.", "데이터 없음", MessageBoxButton.OK, MessageBoxImage.Information); LogMessage("⚠️ 시각화할 데이터가 없습니다. 먼저 추출을 진행해주세요."); return; } var visualizationWindow = new TableCellVisualizationWindow(visualizationData); visualizationWindow.Owner = this; visualizationWindow.Show(); LogMessage($"✅ 시각화 창 열기 완료 - {visualizationData.Count}개 파일 데이터"); } catch (Exception ex) { LogMessage($"❌ 시각화 창 열기 중 오류: {ex.Message}"); MessageBox.Show($"시각화 창을 여는 중 오류가 발생했습니다:\n{ex.Message}", "오류", MessageBoxButton.OK, MessageBoxImage.Error); } } } }