Files
friction/PanelCompatibility.cs
mjjo53 879b3abda4 - 글자 크기와 툴바 아이콘 크기 조정
- Material compatibility table 리포트에 추가
- Material compatibility table 정렬되지 않도록
- 탭 패널 아이콘 적용

Radar Graph
- 항목의 폰트 크기 조정
- 영역에 색 지정 데이터는 라인으로
- 이 창을 띄울 땐 무조건 All이 선택되도록
- 데이터가 3개보다 적을 때 팝업

Trend Graph
- 재질 쌍 표시
- 영역 색을 조정

Analysis Table
- 재질 더블클릭 시 Material Table이 선택
2017-06-28 01:26:07 +09:00

127 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace friction
{
public partial class PanelCompatibility : DockContent
{
MainForm m_Owner = null;
public PanelCompatibility(MainForm owner)
{
InitializeComponent();
m_Owner = owner;
Theme.Apply(this);
Theme.Apply(dgvMap);
dgvMap.CellPainting += DgvMap_CellPainting;
dgvMap.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
dgvMap.ColumnHeadersHeight = 100;
dgvMap.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
dgvMap.DefaultCellStyle.Format = "N2";
}
public void UpdateData(DataHandler data)
{
var Springs = data.GetSpringList();
var Tables = data.GetTableList();
dgvMap.Rows.Clear();
dgvMap.Columns.Clear();
foreach (var table in Tables)
{
int iCol = dgvMap.Columns.Add(table, table);
dgvMap.Columns[iCol].Width = 29;
dgvMap.Columns[iCol].SortMode = DataGridViewColumnSortMode.NotSortable;
}
foreach (var spring in Springs)
{
int iRow = dgvMap.Rows.Add();
dgvMap.Rows[iRow].HeaderCell.Value = spring;
var Averages = data.GetAvgAll(spring);
foreach(var avg in Averages)
{
if(avg.m_fAvg > 0)
{
var cell = dgvMap.Rows[iRow].Cells[avg.m_strTable];
cell.Value = avg.m_fAvg;
Config.ANALYSIS.RISK Risk = Config.ANALYSIS.GetRisk(avg.m_fAvg);
switch(Risk)
{
case Config.ANALYSIS.RISK.NO:
cell.Style.BackColor = Theme.Green;
break;
case Config.ANALYSIS.RISK.POTENTIAL:
cell.Style.BackColor = Theme.Yellow;
break;
case Config.ANALYSIS.RISK.HIGH:
cell.Style.BackColor = Theme.Red;
break;
}
}
}
}
}
public DataTable GetData()
{
var dt = new DataTable();
dt.Columns.Add(" ");
foreach (DataGridViewColumn column in dgvMap.Columns)
{
if (column.Visible)
dt.Columns.Add(column.HeaderText);
}
object[] cellValues = new object[dgvMap.Columns.Count+1];
foreach (DataGridViewRow row in dgvMap.Rows)
{
cellValues[0] = row.HeaderCell.Value;
for (int i = 0; i < row.Cells.Count; i++)
cellValues[i+1] = row.Cells[i].Value;
dt.Rows.Add(cellValues);
}
return dt;
}
private void DgvMap_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
DataGridView view = sender as DataGridView;
if (e.RowIndex == -1 && e.ColumnIndex >= 0)
{
Brush brush = new SolidBrush(this.dgvMap.ForeColor);
e.PaintBackground(e.ClipBounds, true);
Rectangle rect = view.GetColumnDisplayRectangle(e.ColumnIndex, true);
Size titleSize = TextRenderer.MeasureText(e.Value.ToString(), e.CellStyle.Font);
if (view.ColumnHeadersHeight < titleSize.Width)
view.ColumnHeadersHeight = titleSize.Width;
e.Graphics.TranslateTransform(0, titleSize.Width);
e.Graphics.RotateTransform(-90.0F);
e.Graphics.DrawString(e.Value.ToString(), this.Font, brush,
new PointF(rect.Y - (view.ColumnHeadersHeight - titleSize.Width), rect.X+(e.CellBounds.Width-titleSize.Height)/2));
e.Graphics.RotateTransform(90.0F);
e.Graphics.TranslateTransform(0, -titleSize.Width);
e.Handled = true;
}
}
}
}