Files
manual_wpf/MainWindow.xaml
2025-07-16 17:40:50 +09:00

153 lines
7.4 KiB
XML

<Window x:Class="DwgExtractorManual.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DWG 정보 추출기" Height="700" Width="900"
WindowStartupLocation="CenterScreen"
MinHeight="600" MinWidth="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 헤더 -->
<Border Grid.Row="0" Background="#2E3440" Padding="15">
<StackPanel>
<TextBlock Text="DWG 정보 추출기"
FontSize="24" FontWeight="Bold"
Foreground="White" HorizontalAlignment="Center"/>
<TextBlock Text="DWG 파일에서 표제란(Title Block) 정보를 추출하여 Excel 또는 데이터베이스에 저장"
FontSize="12" Foreground="LightGray"
HorizontalAlignment="Center" Margin="0,5,0,0"/>
</StackPanel>
</Border>
<!-- 변환할 폴더 선택 -->
<GroupBox Grid.Row="1" Header="🗂️ 변환할 폴더 선택" Margin="15,10,15,5"
FontWeight="SemiBold" FontSize="14">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox x:Name="txtSourceFolder" Grid.Column="0"
Height="35" VerticalContentAlignment="Center"
FontSize="12" IsReadOnly="True"
Background="WhiteSmoke" BorderBrush="DarkGray"/>
<Button x:Name="btnBrowseSource" Grid.Column="1"
Content="찾아보기" Width="90" Height="35"
Margin="10,0,0,0" Click="BtnBrowseSource_Click"
Background="#5E81AC" Foreground="White"
FontWeight="SemiBold" BorderThickness="0"/>
</Grid>
</GroupBox>
<!-- 결과 저장 폴더 선택 -->
<GroupBox Grid.Row="2" Header="💾 결과 저장 폴더 선택" Margin="15,5,15,5"
FontWeight="SemiBold" FontSize="14">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox x:Name="txtResultFolder" Grid.Column="0"
Height="35" VerticalContentAlignment="Center"
FontSize="12" IsReadOnly="True"
Background="WhiteSmoke" BorderBrush="DarkGray"/>
<Button x:Name="btnBrowseResult" Grid.Column="1"
Content="찾아보기" Width="90" Height="35"
Margin="10,0,0,0" Click="BtnBrowseResult_Click"
Background="#5E81AC" Foreground="White"
FontWeight="SemiBold" BorderThickness="0"/>
</Grid>
</GroupBox>
<!-- 출력 형식 선택 -->
<GroupBox Grid.Row="3" Header="⚙️ 출력 형식 선택" Margin="15,5,15,5"
FontWeight="SemiBold" FontSize="14">
<StackPanel Orientation="Horizontal" Margin="15" HorizontalAlignment="Center">
<RadioButton x:Name="rbExcel" Content="📊 Excel (.xlsx)"
FontSize="14" Margin="20,0" IsChecked="True"
GroupName="OutputType" VerticalAlignment="Center"/>
<RadioButton x:Name="rbDatabase" Content="🗄️ 데이터베이스 (PostgreSQL)"
FontSize="14" Margin="20,0"
GroupName="OutputType" VerticalAlignment="Center"/>
</StackPanel>
</GroupBox>
<!-- 진행 상황 및 컨트롤 -->
<GroupBox Grid.Row="4" Header="📊 작업 진행 상황" Margin="15,5,15,5"
FontWeight="SemiBold" FontSize="14">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 진행률 바 -->
<ProgressBar x:Name="progressBar" Grid.Row="0"
Height="25" Margin="0,5"/>
<!-- 상태 텍스트 -->
<TextBlock x:Name="txtStatus" Grid.Row="1"
Text="준비됨" FontSize="12"
HorizontalAlignment="Center" Margin="0,5"/>
<!-- 추출 버튼 -->
<Button x:Name="btnExtract" Grid.Row="2"
Content="🚀 추출 시작" Width="200" Height="45"
Margin="0,10,0,5" HorizontalAlignment="Center"
Click="BtnExtract_Click" FontSize="16" FontWeight="Bold"
Background="#A3BE8C" Foreground="White"
BorderThickness="0">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Background" Value="#A3BE8C"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#8FAE74"/>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</Grid>
</GroupBox>
<!-- 로그 출력 -->
<GroupBox Grid.Row="5" Header="📋 실시간 로그" Margin="15,5,15,10"
FontWeight="SemiBold" FontSize="14">
<ScrollViewer Margin="5" VerticalScrollBarVisibility="Auto">
<TextBox x:Name="txtLog"
TextWrapping="Wrap" AcceptsReturn="True"
IsReadOnly="True" BorderThickness="0"
Background="Black" Foreground="LimeGreen"
FontFamily="Consolas" FontSize="11"
VerticalScrollBarVisibility="Auto"/>
</ScrollViewer>
</GroupBox>
<!-- 상태바 -->
<StatusBar Grid.Row="6" Background="#3B4252" Foreground="White">
<StatusBarItem>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="txtStatusBar" Text="DWG 정보 추출기 v1.0 - 준비됨"/>
<Separator Margin="10,0"/>
<TextBlock x:Name="txtFileCount" Text="파일: 0개"/>
</StackPanel>
</StatusBarItem>
<StatusBarItem HorizontalAlignment="Right">
<TextBlock x:Name="txtTime" Text="{Binding Source={x:Static sys:DateTime.Now}, StringFormat='yyyy-MM-dd HH:mm:ss'}"
xmlns:sys="clr-namespace:System;assembly=System.Runtime"/>
</StatusBarItem>
</StatusBar>
</Grid>
</Window>