Files
manual_wpf/MainWindow.Visualization.cs
2025-08-12 14:33:18 +09:00

82 lines
3.4 KiB
C#

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
{
/// <summary>
/// MainWindow의 시각화 관련 기능을 담당하는 partial class
/// </summary>
public partial class MainWindow
{
// 시각화 데이터 저장
private static List<TableCellVisualizationData> _visualizationDataCache = new List<TableCellVisualizationData>();
/// <summary>
/// 테이블 셀 시각화 데이터를 저장합니다.
/// </summary>
public static void SaveVisualizationData(TableCellVisualizationData data)
{
_visualizationDataCache.Add(data);
Debug.WriteLine($"[VISUALIZATION] 시각화 데이터 저장: {data.FileName}, 셀 수: {data.Cells.Count}");
}
/// <summary>
/// 저장된 시각화 데이터를 가져옵니다.
/// </summary>
public static List<TableCellVisualizationData> GetVisualizationData()
{
Debug.WriteLine($"[VISUALIZATION] 시각화 데이터 조회: {_visualizationDataCache.Count}개 항목");
return new List<TableCellVisualizationData>(_visualizationDataCache);
}
/// <summary>
/// 시각화 데이터를 초기화합니다.
/// </summary>
public static void ClearVisualizationData()
{
Debug.WriteLine($"[VISUALIZATION] 시각화 데이터 초기화 (기존 {_visualizationDataCache.Count}개 항목 삭제)");
_visualizationDataCache.Clear();
Debug.WriteLine("[VISUALIZATION] 시각화 데이터 초기화 완료");
}
/// <summary>
/// 테이블 셀 시각화 창을 엽니다.
/// </summary>
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);
}
}
}
}