refactor: ProgressLogForm 디자이너 파일 생성

주요 변경사항:
- ProgressLogForm.Designer.cs 생성
- VS에서 레이아웃 편집 가능하도록 개선
- 고정 컨트롤을 디자이너 파일로 이동
- ProgressLogForm.cs 간소화

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
backuppc
2025-10-30 09:44:50 +09:00
parent 34a804e538
commit 5378f702e7
3 changed files with 227 additions and 102 deletions

View File

@@ -45,7 +45,12 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Forms\ProgressLogForm.cs" /> <Compile Include="Forms\ProgressLogForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\ProgressLogForm.Designer.cs">
<DependentUpon>ProgressLogForm.cs</DependentUpon>
</Compile>
<Compile Include="Models\SimulatorConfig.cs" /> <Compile Include="Models\SimulatorConfig.cs" />
<Compile Include="Models\SimulationState.cs" /> <Compile Include="Models\SimulationState.cs" />
<Compile Include="Forms\SimulatorForm.cs"> <Compile Include="Forms\SimulatorForm.cs">

View File

@@ -0,0 +1,221 @@
namespace AGVSimulator.Forms
{
partial class ProgressLogForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this._statusLabel = new System.Windows.Forms.Label();
this._progressBar = new System.Windows.Forms.ProgressBar();
this._logListView = new System.Windows.Forms.ListView();
this.colPreviousPosition = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colMotorDirection = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colCurrentPosition = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colTargetPosition = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colDockingPosition = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colSuccess = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colMessage = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colDetailedPath = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.colTimestamp = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.buttonPanel = new System.Windows.Forms.Panel();
this._saveCSVButton = new System.Windows.Forms.Button();
this._closeButton = new System.Windows.Forms.Button();
this._cancelButton = new System.Windows.Forms.Button();
this.buttonPanel.SuspendLayout();
this.SuspendLayout();
//
// _statusLabel
//
this._statusLabel.Dock = System.Windows.Forms.DockStyle.Top;
this._statusLabel.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold);
this._statusLabel.Location = new System.Drawing.Point(0, 0);
this._statusLabel.Name = "_statusLabel";
this._statusLabel.Padding = new System.Windows.Forms.Padding(10, 5, 10, 5);
this._statusLabel.Size = new System.Drawing.Size(1200, 30);
this._statusLabel.TabIndex = 0;
this._statusLabel.Text = "준비 중...";
this._statusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// _progressBar
//
this._progressBar.Dock = System.Windows.Forms.DockStyle.Top;
this._progressBar.Location = new System.Drawing.Point(0, 30);
this._progressBar.Maximum = 100;
this._progressBar.Name = "_progressBar";
this._progressBar.Size = new System.Drawing.Size(1200, 25);
this._progressBar.TabIndex = 1;
//
// _logListView
//
this._logListView.BackColor = System.Drawing.Color.White;
this._logListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.colPreviousPosition,
this.colMotorDirection,
this.colCurrentPosition,
this.colTargetPosition,
this.colDockingPosition,
this.colSuccess,
this.colMessage,
this.colDetailedPath,
this.colTimestamp});
this._logListView.Dock = System.Windows.Forms.DockStyle.Fill;
this._logListView.Font = new System.Drawing.Font("맑은 고딕", 9F);
this._logListView.FullRowSelect = true;
this._logListView.GridLines = true;
this._logListView.HideSelection = false;
this._logListView.Location = new System.Drawing.Point(0, 55);
this._logListView.Name = "_logListView";
this._logListView.Size = new System.Drawing.Size(1200, 495);
this._logListView.TabIndex = 2;
this._logListView.UseCompatibleStateImageBehavior = false;
this._logListView.View = System.Windows.Forms.View.Details;
//
// colPreviousPosition
//
this.colPreviousPosition.Text = "이전위치";
this.colPreviousPosition.Width = 80;
//
// colMotorDirection
//
this.colMotorDirection.Text = "모터방향";
this.colMotorDirection.Width = 80;
//
// colCurrentPosition
//
this.colCurrentPosition.Text = "현재위치";
this.colCurrentPosition.Width = 80;
//
// colTargetPosition
//
this.colTargetPosition.Text = "대상위치";
this.colTargetPosition.Width = 80;
//
// colDockingPosition
//
this.colDockingPosition.Text = "도킹위치";
this.colDockingPosition.Width = 80;
//
// colSuccess
//
this.colSuccess.Text = "성공";
this.colSuccess.Width = 50;
//
// colMessage
//
this.colMessage.Text = "메세지";
this.colMessage.Width = 180;
//
// colDetailedPath
//
this.colDetailedPath.Text = "상세경로";
this.colDetailedPath.Width = 350;
//
// colTimestamp
//
this.colTimestamp.Text = "시간";
this.colTimestamp.Width = 90;
//
// buttonPanel
//
this.buttonPanel.Controls.Add(this._saveCSVButton);
this.buttonPanel.Controls.Add(this._closeButton);
this.buttonPanel.Controls.Add(this._cancelButton);
this.buttonPanel.Dock = System.Windows.Forms.DockStyle.Bottom;
this.buttonPanel.Location = new System.Drawing.Point(0, 550);
this.buttonPanel.Name = "buttonPanel";
this.buttonPanel.Size = new System.Drawing.Size(1200, 50);
this.buttonPanel.TabIndex = 3;
//
// _saveCSVButton
//
this._saveCSVButton.Location = new System.Drawing.Point(230, 10);
this._saveCSVButton.Name = "_saveCSVButton";
this._saveCSVButton.Size = new System.Drawing.Size(100, 30);
this._saveCSVButton.TabIndex = 2;
this._saveCSVButton.Text = "CSV 저장";
this._saveCSVButton.UseVisualStyleBackColor = true;
this._saveCSVButton.Click += new System.EventHandler(this.OnSaveCSV_Click);
//
// _closeButton
//
this._closeButton.Enabled = false;
this._closeButton.Location = new System.Drawing.Point(120, 10);
this._closeButton.Name = "_closeButton";
this._closeButton.Size = new System.Drawing.Size(100, 30);
this._closeButton.TabIndex = 1;
this._closeButton.Text = "닫기";
this._closeButton.UseVisualStyleBackColor = true;
this._closeButton.Click += new System.EventHandler(this.OnClose_Click);
//
// _cancelButton
//
this._cancelButton.Location = new System.Drawing.Point(10, 10);
this._cancelButton.Name = "_cancelButton";
this._cancelButton.Size = new System.Drawing.Size(100, 30);
this._cancelButton.TabIndex = 0;
this._cancelButton.Text = "취소";
this._cancelButton.UseVisualStyleBackColor = true;
this._cancelButton.Click += new System.EventHandler(this.OnCancel_Click);
//
// ProgressLogForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1200, 600);
this.Controls.Add(this._logListView);
this.Controls.Add(this.buttonPanel);
this.Controls.Add(this._progressBar);
this.Controls.Add(this._statusLabel);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
this.MinimumSize = new System.Drawing.Size(800, 400);
this.Name = "ProgressLogForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "경로 예측 테스트 진행 상황";
this.buttonPanel.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Label _statusLabel;
private System.Windows.Forms.ProgressBar _progressBar;
private System.Windows.Forms.ListView _logListView;
private System.Windows.Forms.ColumnHeader colPreviousPosition;
private System.Windows.Forms.ColumnHeader colMotorDirection;
private System.Windows.Forms.ColumnHeader colCurrentPosition;
private System.Windows.Forms.ColumnHeader colTargetPosition;
private System.Windows.Forms.ColumnHeader colDockingPosition;
private System.Windows.Forms.ColumnHeader colSuccess;
private System.Windows.Forms.ColumnHeader colMessage;
private System.Windows.Forms.ColumnHeader colDetailedPath;
private System.Windows.Forms.ColumnHeader colTimestamp;
private System.Windows.Forms.Panel buttonPanel;
private System.Windows.Forms.Button _cancelButton;
private System.Windows.Forms.Button _closeButton;
private System.Windows.Forms.Button _saveCSVButton;
}
}

View File

@@ -33,12 +33,6 @@ namespace AGVSimulator.Forms
/// </summary> /// </summary>
public partial class ProgressLogForm : Form public partial class ProgressLogForm : Form
{ {
private ListView _logListView;
private Button _closeButton;
private Button _cancelButton;
private Button _saveCSVButton;
private ProgressBar _progressBar;
private Label _statusLabel;
private List<PathTestLogItem> _logItems; private List<PathTestLogItem> _logItems;
/// <summary> /// <summary>
@@ -53,101 +47,6 @@ namespace AGVSimulator.Forms
_logItems = new List<PathTestLogItem>(); _logItems = new List<PathTestLogItem>();
} }
private void InitializeComponent()
{
this.Text = "경로 예측 테스트 진행 상황";
this.Size = new Size(1200, 600);
this.StartPosition = FormStartPosition.CenterParent;
this.FormBorderStyle = FormBorderStyle.Sizable;
this.MinimumSize = new Size(800, 400);
// 상태 레이블
_statusLabel = new Label
{
Text = "준비 중...",
Dock = DockStyle.Top,
Height = 30,
TextAlign = ContentAlignment.MiddleLeft,
Padding = new Padding(10, 5, 10, 5),
Font = new Font("맑은 고딕", 10F, FontStyle.Bold)
};
// 프로그레스바
_progressBar = new ProgressBar
{
Dock = DockStyle.Top,
Height = 25,
Style = ProgressBarStyle.Continuous,
Minimum = 0,
Maximum = 100
};
// 로그 리스트뷰
_logListView = new ListView
{
Dock = DockStyle.Fill,
View = View.Details,
FullRowSelect = true,
GridLines = true,
Font = new Font("맑은 고딕", 9F),
BackColor = Color.White
};
// 컬럼 추가
_logListView.Columns.Add("이전위치", 80);
_logListView.Columns.Add("모터방향", 80);
_logListView.Columns.Add("현재위치", 80);
_logListView.Columns.Add("대상위치", 80);
_logListView.Columns.Add("도킹위치", 80);
_logListView.Columns.Add("성공", 50);
_logListView.Columns.Add("메세지", 180);
_logListView.Columns.Add("상세경로", 350);
_logListView.Columns.Add("시간", 90);
// 버튼 패널
var buttonPanel = new Panel
{
Dock = DockStyle.Bottom,
Height = 50
};
_cancelButton = new Button
{
Text = "취소",
Size = new Size(100, 30),
Location = new Point(10, 10),
Enabled = true
};
_cancelButton.Click += OnCancel_Click;
_closeButton = new Button
{
Text = "닫기",
Size = new Size(100, 30),
Location = new Point(120, 10),
Enabled = false
};
_closeButton.Click += OnClose_Click;
_saveCSVButton = new Button
{
Text = "CSV 저장",
Size = new Size(100, 30),
Location = new Point(230, 10),
Enabled = true
};
_saveCSVButton.Click += OnSaveCSV_Click;
buttonPanel.Controls.Add(_cancelButton);
buttonPanel.Controls.Add(_closeButton);
buttonPanel.Controls.Add(_saveCSVButton);
this.Controls.Add(_logListView);
this.Controls.Add(_progressBar);
this.Controls.Add(_statusLabel);
this.Controls.Add(buttonPanel);
}
/// <summary> /// <summary>
/// 로그 추가 (PathTestLogItem) /// 로그 추가 (PathTestLogItem)
/// </summary> /// </summary>