- Radar Graph 추가
- Graph 클릭 이벤트 추가
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
@@ -7,6 +8,7 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Windows.Forms.DataVisualization.Charting;
|
||||
using WeifenLuo.WinFormsUI.Docking;
|
||||
|
||||
namespace friction
|
||||
@@ -14,12 +16,85 @@ namespace friction
|
||||
public partial class PanelRadarGraph : DockContent
|
||||
{
|
||||
MainForm m_Owner = null;
|
||||
DataHandler m_DataHandler = null;
|
||||
|
||||
public PanelRadarGraph(MainForm owner)
|
||||
string m_CurSpring = "";
|
||||
|
||||
public PanelRadarGraph(MainForm owner, DataHandler data)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
m_Owner = owner;
|
||||
m_DataHandler = data;
|
||||
|
||||
chart.ChartAreas[0].AxisY.Maximum = 10;
|
||||
|
||||
chart.Series["SeriesHigh"].Color = Color.FromArgb(255, 200, 200, 200);
|
||||
chart.Series["SeriesPotential"].Color = Color.FromArgb(255, 180, 180, 180);
|
||||
chart.Series["SeriesNo"].Color = Color.FromArgb(255, 140, 140, 140);
|
||||
|
||||
chart.Series["SeriesMax"].Color = Theme.Red;
|
||||
chart.Series["SeriesAvg"].Color = Theme.Yellow;
|
||||
chart.Series["SeriesMin"].Color = Theme.Green;
|
||||
|
||||
chart.ChartAreas[0].AxisX.MajorGrid.LineWidth = 0;
|
||||
chart.ChartAreas[0].AxisY.MajorGrid.LineWidth = 0;
|
||||
chart.ChartAreas[0].AxisX.MajorTickMark.Enabled = false;
|
||||
chart.ChartAreas[0].AxisX.MinorTickMark.Enabled = false;
|
||||
chart.ChartAreas[0].AxisY.MajorTickMark.Enabled = true;
|
||||
chart.ChartAreas[0].AxisY.MajorTickMark.LineWidth = 1;
|
||||
chart.ChartAreas[0].AxisY.MajorTickMark.LineColor = Color.FromArgb(100, 0, 0, 0);
|
||||
chart.ChartAreas[0].AxisY.MinorTickMark.Enabled = false;
|
||||
|
||||
foreach (var series in chart.Series)
|
||||
series["AreaDrawingStyle"] = "Polygon";
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
m_CurSpring = "";
|
||||
}
|
||||
|
||||
public void UpdateGraph()
|
||||
{
|
||||
string strSpring = m_DataHandler.GetCurSpring();
|
||||
if (m_CurSpring == strSpring)
|
||||
return;
|
||||
|
||||
foreach (var series in chart.Series)
|
||||
series.Points.Clear();
|
||||
|
||||
List<DataHandler.RADAR_CHART> graphData = m_DataHandler.GetAvgAll(strSpring);
|
||||
|
||||
List<string> xValues = new List<string>();
|
||||
List<float> yValues = new List<float>();
|
||||
|
||||
foreach(var data in graphData)
|
||||
{
|
||||
chart.Series["SeriesMax"].Points.AddXY(data.m_strTable, data.m_fMax);
|
||||
chart.Series["SeriesAvg"].Points.AddXY(data.m_strTable, data.m_fAvg);
|
||||
chart.Series["SeriesMin"].Points.AddXY(data.m_strTable, data.m_fMin);
|
||||
|
||||
chart.Series["SeriesHigh"].Points.AddXY(data.m_strTable, (int)Config.ANALYSIS.RISK.HIGH);
|
||||
chart.Series["SeriesPotential"].Points.AddXY(data.m_strTable, (int)Config.ANALYSIS.RISK.POTENTIAL);
|
||||
chart.Series["SeriesNo"].Points.AddXY(data.m_strTable, (int)Config.ANALYSIS.RISK.NO);
|
||||
|
||||
//break;
|
||||
}
|
||||
|
||||
|
||||
m_CurSpring = strSpring;
|
||||
}
|
||||
|
||||
private void chart_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
HitTestResult result = chart.HitTest(e.X, e.Y);
|
||||
if(result.ChartElementType == ChartElementType.AxisLabels &&
|
||||
result.Object != null)
|
||||
{
|
||||
string strTable = (string)result.Object;
|
||||
m_Owner.OnRadarSelectTable(strTable);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user