Compare commits

...

8 Commits

Author SHA1 Message Date
44841453e9 - Congig 추가
- friction.exe -> squeak.exe
- 색상 변경
- analysis 기준 변경
2017-06-21 02:41:29 +09:00
9bf6a38f6d - TrendGraph에 trendline 추가 2017-06-20 05:44:31 +09:00
760ce6abc2 - 툴바 아이콘 지정
- 메뉴바 테마 적용
- 메뉴바 기능 연결
- 파일 로딩 후 기능들 연결
2017-06-20 03:52:08 +09:00
7be92b315a Analysis 구현 2017-06-19 19:23:01 +09:00
7603deef0d Trend Chart 구현 2017-06-19 19:22:33 +09:00
907d61ec1e - livechart 추가 2017-06-19 14:19:08 +09:00
cc42695fd8 - 각 창들 추가
- Analysis Panel 계산 준비
2017-06-19 14:07:56 +09:00
5e26c490b8 - form 이름 변경
- UI 수정
- Result Panel Column 연동
2017-06-15 23:47:36 +09:00
64 changed files with 34874 additions and 376 deletions

120
Config.cs Normal file
View File

@@ -0,0 +1,120 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace friction
{
public static class Config
{
static string m_strPath = "";
static Config()
{
string strPrjName = System.Reflection.Assembly.GetEntryAssembly().GetName().Name;
string strFolder = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), strPrjName);
m_strPath = strFolder + "\\config.ini";
if (!Directory.Exists(strFolder))
Directory.CreateDirectory(strFolder);
Load();
}
public static void Init()
{
}
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
private static void Load()
{
StringBuilder temp = new StringBuilder(10240);
int iRes = GetPrivateProfileString("Option", "recent", "", temp, 10240, m_strPath);
if(temp.Length > 0)
{
string[] astrList = temp.ToString().Split(new string[] { "//" }, StringSplitOptions.None);
foreach (string strFile in astrList)
OPTION.AddRecentFile(strFile);
}
}
private static void Save()
{
WritePrivateProfileString("Option", "recent", OPTION.GetRecentAll(), m_strPath);
}
public static class OPTION
{
public static List<string> m_RecentList = new List<string>();
public static void AddRecentFile(string strPath)
{
if(m_RecentList.Find(s => s==strPath) != null)
m_RecentList.Remove(strPath);
m_RecentList.Add(strPath);
Save();
}
public static string GetRecentAll()
{
return string.Join("//", m_RecentList);
}
}
public static class ANALYSIS
{
public enum RISK
{
NO,
POTENTIAL,
HIGH
}
public enum DEPENDANCY
{
NO,
POTENTIAL,
HIGH,
NOT_ENNOUGH_DATA
}
public static RISK GetRisk(float fAvg)
{
if (fAvg <= 3)
return RISK.NO;
else if (fAvg <= 5)
return RISK.POTENTIAL;
else
return RISK.HIGH;
}
public static DEPENDANCY GetDependancy(float fStdev, int iTestCnt)
{
if (iTestCnt <= 3)
return DEPENDANCY.NOT_ENNOUGH_DATA;
else if (fStdev < 3.5f)
return DEPENDANCY.NO;
else if (fStdev < 5.5f)
return DEPENDANCY.POTENTIAL;
else
return DEPENDANCY.HIGH;
}
}
}
}

View File

@@ -1,86 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OfficeOpenXml;
using System.IO;
using System.Data;
namespace friction
{
public class DataHandler
{
DataTable m_Data = new DataTable();
List<string> m_Material1 = new List<string>();
List<string> m_Material2 = new List<string>();
public void LoadData2(string strFileName)
{
FileInfo newFile = new FileInfo(strFileName);
ExcelPackage package = new ExcelPackage(newFile);
ExcelWorksheet Sheet = package.Workbook.Worksheets[1];
m_Data.Clear();
// read column
for (int iCol = Sheet.Dimension.Start.Column; iCol <= Sheet.Dimension.End.Column; iCol++)
{
string strCol = (string)Sheet.Cells[Sheet.Dimension.Start.Row, iCol].Value;
m_Data.Columns.Add(new DataColumn(strCol));
}
// read data
for (int iRow = Sheet.Dimension.Start.Row + 1; iRow <= Sheet.Dimension.End.Row; iRow++)
{
DataRow newRow = m_Data.NewRow();
for (int iCol = Sheet.Dimension.Start.Column; iCol <= Sheet.Dimension.End.Column; iCol++)
{
var value = Sheet.Cells[iRow, iCol].Value;
if (value is double)
{
float fData = (float)(double)value;
newRow[iCol-1] = fData;
}
else
{
string strData = "";
if (value != null)
strData = (string)value;
newRow[iCol-1] = strData;
}
}
m_Data.Rows.Add(newRow);
}
m_Material1 = (from r in m_Data.AsEnumerable()
select r["Material spring"]).Distinct().Cast<string>().ToList();
m_Material2 = (from r in m_Data.AsEnumerable()
select r["material 2 table"]).Distinct().Cast<string>().ToList();
Console.WriteLine("end");
}
public List<string> GetMaterial1()
{
return m_Material1;
}
public List<string> GetMaterial2()
{
return m_Material2;
}
public DataTable GetData()
{
return m_Data;
}
}
}

287
DataHandler.cs Normal file
View File

@@ -0,0 +1,287 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OfficeOpenXml;
using System.IO;
using System.Data;
namespace friction
{
public class DataHandler
{
public struct CalcResult
{
public int m_iCnt;
public float m_fAvgRPN;
public float m_fStdRPN;
public float m_fDiffByForce;
public float m_fDiffByTemp;
public float m_fDiffByHumid;
public float m_fDiffByVel;
}
public struct CHART
{
public float HUMIDITY;
public float TEMPERATURE;
public float RPN;
override public string ToString()
{
return string.Format("Humi({0}) Temp({1}) RPN({2})", HUMIDITY, TEMPERATURE, RPN);
}
}
DataTable m_Data = new DataTable();
string m_strFileName = "";
string m_strFilePath = "";
string m_strCurSpring = "";
string m_strCurTable = "";
List<string> m_ColumnsNames = new List<string>();
List<string> m_ActiveColumns = new List<string>();
List<string> m_NonactiveColumns = new List<string>();
List<string> m_SpringList = new List<string>();
List<string> m_TableList = new List<string>();
Dictionary<string, string> m_ColumnMap = new Dictionary<string, string>();
public DataHandler()
{
m_ColumnMap["spring"] = "Material spring";
m_ColumnMap["table"] = "material 2 table";
m_ColumnMap["rpn"] = "Risk priority number";
m_ColumnMap["force"] = "normal force";
m_ColumnMap["temp"] = "Temperature";
m_ColumnMap["humidity"] = "Relative humidity";
m_ColumnMap["velocity"] = "Relative velocity";
}
bool IsNumberColumn(string strColumn)
{
return (strColumn == m_ColumnMap["rpn"] ||
strColumn == m_ColumnMap["force"] ||
strColumn == m_ColumnMap["temp"] ||
strColumn == m_ColumnMap["humidity"] ||
strColumn == m_ColumnMap["velocity"]);
}
public void LoadData(string strFilePath)
{
using (ExcelPackage package = new ExcelPackage())
{
using (var stream = new FileStream(strFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
package.Load(stream);
ExcelWorksheet Sheet = package.Workbook.Worksheets[1];
m_Data.Columns.Clear();
m_Data.Rows.Clear();
// read column
for (int iCol = Sheet.Dimension.Start.Column; iCol <= Sheet.Dimension.End.Column; iCol++)
{
string strCol = (string)Sheet.Cells[Sheet.Dimension.Start.Row, iCol].Value;
m_Data.Columns.Add(new DataColumn(strCol, IsNumberColumn(strCol) ? typeof(float) : typeof(string)));
}
// read data
for (int iRow = Sheet.Dimension.Start.Row + 1; iRow <= Sheet.Dimension.End.Row; iRow++)
{
DataRow newRow = m_Data.NewRow();
for (int iCol = Sheet.Dimension.Start.Column; iCol <= Sheet.Dimension.End.Column; iCol++)
{
var value = Sheet.Cells[iRow, iCol].Value;
if (m_Data.Columns[iCol-1].DataType == typeof(float))
{
float fData = 0;
if (value != null)
{
if (value is string)
float.TryParse((string)value, out fData);
else
fData = (float)(double)value;
}
newRow[iCol - 1] = fData;
}
else
{
string strData = "";
if (value != null)
{
strData = value.ToString();
strData = strData.Trim();
}
newRow[iCol - 1] = strData;
}
}
m_Data.Rows.Add(newRow);
}
m_strFilePath = strFilePath;
int iSeperate = strFilePath.LastIndexOf('\\');
m_strFileName = strFilePath.Substring(iSeperate+1);
}
m_SpringList = (from r in m_Data.AsEnumerable()
select r[m_ColumnMap["spring"]]).Distinct().Cast<string>().ToList();
m_TableList = (from r in m_Data.AsEnumerable()
select r[m_ColumnMap["table"]]).Distinct().Cast<string>().ToList();
m_ColumnsNames = (from c in m_Data.Columns.Cast<DataColumn>()
select c.ColumnName).ToList<string>();
m_ActiveColumns.Clear();
m_NonactiveColumns.Clear();
for (int i=0; i< m_ColumnsNames.Count; i++)
{
if(m_Data.Columns[i].DataType == typeof(string))
{
if(m_Data.AsEnumerable().Any(r => (string)r[i] != ""))
m_ActiveColumns.Add(m_ColumnsNames[i]);
else
m_NonactiveColumns.Add(m_ColumnsNames[i]);
}
else
{
m_ActiveColumns.Add(m_ColumnsNames[i]);
}
}
SetSelectedMaterial("", "");
}
public void SetSelectedMaterial(string strSpring, string strTable)
{
m_strCurSpring = strSpring;
m_strCurTable = strTable;
}
public string GetCurSpring()
{
return m_strCurSpring;
}
public string GetCurTable()
{
return m_strCurTable;
}
public List<CHART> GetHumidityChart(string strSpring, string strTable)
{
string strQuery = string.Format("[{0}]='{1}' and [{2}]='{3}'", m_ColumnMap["spring"], strSpring, m_ColumnMap["table"], strTable);
DataRow[] rows = m_Data.Select(strQuery);
List<CHART> result = new List<CHART>();
foreach(DataRow r in rows)
{
result.Add(new CHART
{
HUMIDITY = (float)r[m_ColumnMap["humidity"]],
TEMPERATURE = (float)r[m_ColumnMap["temp"]],
RPN = (float)r[m_ColumnMap["rpn"]],
});
}
return result;
}
#region calculation
float CalcDependency(DataRow[] rows, string strColumn)
{
// 각 그룹의 평균들의 표준편차
var AvgOfGroup = rows
.GroupBy(r => r[m_ColumnMap["force"]])
.Select(t => t.Average(k => (float)k[m_ColumnMap["rpn"]]));
var Avg = AvgOfGroup.Average();
var Squares = AvgOfGroup.Select(r => (r - Avg) * (r - Avg));
var result = (float)Math.Sqrt(Squares.Average());
return result;
}
public CalcResult GetCalc(string strSpring, string strTable)
{
CalcResult result = new CalcResult();
string strQuery = string.Format("[{0}]='{1}' and [{2}]='{3}'", m_ColumnMap["spring"], strSpring, m_ColumnMap["table"], strTable);
DataRow[] rows = m_Data.Select(strQuery);
if(rows.Length > 0)
{
result.m_iCnt = rows.Length;
result.m_fAvgRPN = rows.Average(r => (float)r[m_ColumnMap["rpn"]]);
result.m_fStdRPN = rows.Average(r => (float)Math.Pow((float)r[m_ColumnMap["rpn"]] - result.m_fAvgRPN, 2));
result.m_fStdRPN = (float)Math.Sqrt(result.m_fStdRPN);
result.m_fDiffByForce = CalcDependency(rows, "force");
result.m_fDiffByTemp = CalcDependency(rows, "temp");
result.m_fDiffByHumid = CalcDependency(rows, "humidity");
result.m_fDiffByVel = CalcDependency(rows, "velocity");
}
else
{
}
return result;
}
#endregion
#region get
public DataTable GetData()
{
return m_Data;
}
public string GetFilePath()
{
return m_strFilePath;
}
public string GetFileName()
{
return m_strFileName;
}
public List<string> GetSpringList()
{
return m_SpringList;
}
public List<string> GetTableList()
{
return m_TableList;
}
public List<string> GetColumns()
{
return m_ColumnsNames;
}
public List<string> GetActiveColumns()
{
return m_ActiveColumns;
}
public List<string> GetNonactiveColumns()
{
return m_NonactiveColumns;
}
#endregion
}
}

253
MainForm.Designer.cs generated
View File

@@ -31,22 +31,52 @@
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.toolStripMain = new System.Windows.Forms.ToolStrip();
this.toolStripButtonOpen = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripButtonMaterial = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripButtonResult = new System.Windows.Forms.ToolStripButton();
this.toolStripButtonAnalysis = new System.Windows.Forms.ToolStripButton();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripButtonRadarGraph = new System.Windows.Forms.ToolStripButton();
this.toolStripButtonTrendGraph = new System.Windows.Forms.ToolStripButton();
this.statusStrip = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.menuStrip = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.recentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.tableToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.resultTableToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.analysisTableToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.graphToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.radarGraphToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.trendGraphToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.reportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.dockPanel = new WeifenLuo.WinFormsUI.Docking.DockPanel();
this.toolStripMain.SuspendLayout();
this.statusStrip.SuspendLayout();
this.menuStrip.SuspendLayout();
this.SuspendLayout();
//
// toolStripMain
//
this.toolStripMain.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.toolStripMain.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButtonOpen});
this.toolStripMain.Location = new System.Drawing.Point(0, 0);
this.toolStripButtonOpen,
this.toolStripSeparator1,
this.toolStripButtonMaterial,
this.toolStripSeparator3,
this.toolStripButtonResult,
this.toolStripButtonAnalysis,
this.toolStripSeparator2,
this.toolStripButtonRadarGraph,
this.toolStripButtonTrendGraph});
this.toolStripMain.Location = new System.Drawing.Point(0, 24);
this.toolStripMain.Name = "toolStripMain";
this.toolStripMain.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
this.toolStripMain.Size = new System.Drawing.Size(947, 25);
this.toolStripMain.Size = new System.Drawing.Size(1184, 25);
this.toolStripMain.TabIndex = 0;
this.toolStripMain.Text = "toolStrip1";
//
@@ -57,16 +87,87 @@
this.toolStripButtonOpen.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonOpen.Name = "toolStripButtonOpen";
this.toolStripButtonOpen.Size = new System.Drawing.Size(23, 22);
this.toolStripButtonOpen.Text = "toolStripButton1";
this.toolStripButtonOpen.Text = "Open DB";
this.toolStripButtonOpen.ToolTipText = "Open DB (Ctrl+O)";
this.toolStripButtonOpen.Click += new System.EventHandler(this.toolStripButtonOpen_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);
//
// toolStripButtonMaterial
//
this.toolStripButtonMaterial.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButtonMaterial.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonMaterial.Image")));
this.toolStripButtonMaterial.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonMaterial.Name = "toolStripButtonMaterial";
this.toolStripButtonMaterial.Size = new System.Drawing.Size(23, 22);
this.toolStripButtonMaterial.Text = "toolStripButton1";
this.toolStripButtonMaterial.ToolTipText = "Material Pair (Ctrl+M)";
this.toolStripButtonMaterial.Click += new System.EventHandler(this.toolStripButtonMaterial_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25);
//
// toolStripButtonResult
//
this.toolStripButtonResult.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButtonResult.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonResult.Image")));
this.toolStripButtonResult.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonResult.Name = "toolStripButtonResult";
this.toolStripButtonResult.Size = new System.Drawing.Size(23, 22);
this.toolStripButtonResult.Text = "toolStripButton1";
this.toolStripButtonResult.ToolTipText = "Result Table (Ctrl+R)";
this.toolStripButtonResult.Click += new System.EventHandler(this.toolStripButtonResult_Click);
//
// toolStripButtonAnalysis
//
this.toolStripButtonAnalysis.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButtonAnalysis.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonAnalysis.Image")));
this.toolStripButtonAnalysis.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonAnalysis.Name = "toolStripButtonAnalysis";
this.toolStripButtonAnalysis.Size = new System.Drawing.Size(23, 22);
this.toolStripButtonAnalysis.Text = "toolStripButton2";
this.toolStripButtonAnalysis.ToolTipText = "Analysis Table (Ctrl+A)";
this.toolStripButtonAnalysis.Click += new System.EventHandler(this.toolStripButtonAnalysis_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);
//
// toolStripButtonRadarGraph
//
this.toolStripButtonRadarGraph.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButtonRadarGraph.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonRadarGraph.Image")));
this.toolStripButtonRadarGraph.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonRadarGraph.Name = "toolStripButtonRadarGraph";
this.toolStripButtonRadarGraph.Size = new System.Drawing.Size(23, 22);
this.toolStripButtonRadarGraph.Text = "toolStripButton3";
this.toolStripButtonRadarGraph.ToolTipText = "Radar Graph (Ctrl+D)";
this.toolStripButtonRadarGraph.Click += new System.EventHandler(this.toolStripButtonRadarGraph_Click);
//
// toolStripButtonTrendGraph
//
this.toolStripButtonTrendGraph.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
this.toolStripButtonTrendGraph.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonTrendGraph.Image")));
this.toolStripButtonTrendGraph.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButtonTrendGraph.Name = "toolStripButtonTrendGraph";
this.toolStripButtonTrendGraph.Size = new System.Drawing.Size(23, 22);
this.toolStripButtonTrendGraph.Text = "toolStripButton4";
this.toolStripButtonTrendGraph.ToolTipText = "Trend Graph (Ctrl+T)";
this.toolStripButtonTrendGraph.Click += new System.EventHandler(this.toolStripButtonTrendGraph_Click);
//
// statusStrip
//
this.statusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabel});
this.statusStrip.Location = new System.Drawing.Point(0, 623);
this.statusStrip.Location = new System.Drawing.Point(0, 739);
this.statusStrip.Name = "statusStrip";
this.statusStrip.Size = new System.Drawing.Size(947, 22);
this.statusStrip.Size = new System.Drawing.Size(1184, 22);
this.statusStrip.TabIndex = 1;
this.statusStrip.Text = "statusStrip1";
//
@@ -76,30 +177,139 @@
this.toolStripStatusLabel.Size = new System.Drawing.Size(122, 17);
this.toolStripStatusLabel.Text = "Please open database";
//
// menuStrip
//
this.menuStrip.BackColor = System.Drawing.SystemColors.Control;
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.fileToolStripMenuItem,
this.tableToolStripMenuItem,
this.graphToolStripMenuItem,
this.reportToolStripMenuItem});
this.menuStrip.Location = new System.Drawing.Point(0, 0);
this.menuStrip.Name = "menuStrip";
this.menuStrip.Size = new System.Drawing.Size(1184, 24);
this.menuStrip.TabIndex = 3;
this.menuStrip.Text = "menuStrip1";
//
// fileToolStripMenuItem
//
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.openDBToolStripMenuItem,
this.recentToolStripMenuItem,
this.exitToolStripMenuItem});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "File";
//
// openDBToolStripMenuItem
//
this.openDBToolStripMenuItem.Name = "openDBToolStripMenuItem";
this.openDBToolStripMenuItem.Size = new System.Drawing.Size(123, 22);
this.openDBToolStripMenuItem.Text = "Open DB";
this.openDBToolStripMenuItem.Click += new System.EventHandler(this.openDBToolStripMenuItem_Click);
//
// recentToolStripMenuItem
//
this.recentToolStripMenuItem.Name = "recentToolStripMenuItem";
this.recentToolStripMenuItem.Size = new System.Drawing.Size(123, 22);
this.recentToolStripMenuItem.Text = "Recent";
//
// exitToolStripMenuItem
//
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
this.exitToolStripMenuItem.Size = new System.Drawing.Size(123, 22);
this.exitToolStripMenuItem.Text = "Exit";
this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// tableToolStripMenuItem
//
this.tableToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.resultTableToolStripMenuItem,
this.analysisTableToolStripMenuItem});
this.tableToolStripMenuItem.Name = "tableToolStripMenuItem";
this.tableToolStripMenuItem.Size = new System.Drawing.Size(47, 20);
this.tableToolStripMenuItem.Text = "Table";
//
// resultTableToolStripMenuItem
//
this.resultTableToolStripMenuItem.Name = "resultTableToolStripMenuItem";
this.resultTableToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
this.resultTableToolStripMenuItem.Text = "Result Table";
this.resultTableToolStripMenuItem.Click += new System.EventHandler(this.resultTableToolStripMenuItem_Click);
//
// analysisTableToolStripMenuItem
//
this.analysisTableToolStripMenuItem.Name = "analysisTableToolStripMenuItem";
this.analysisTableToolStripMenuItem.Size = new System.Drawing.Size(149, 22);
this.analysisTableToolStripMenuItem.Text = "Analysis Table";
this.analysisTableToolStripMenuItem.Click += new System.EventHandler(this.analysisTableToolStripMenuItem_Click);
//
// graphToolStripMenuItem
//
this.graphToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.radarGraphToolStripMenuItem,
this.trendGraphToolStripMenuItem});
this.graphToolStripMenuItem.Name = "graphToolStripMenuItem";
this.graphToolStripMenuItem.Size = new System.Drawing.Size(51, 20);
this.graphToolStripMenuItem.Text = "Graph";
//
// radarGraphToolStripMenuItem
//
this.radarGraphToolStripMenuItem.Name = "radarGraphToolStripMenuItem";
this.radarGraphToolStripMenuItem.Size = new System.Drawing.Size(140, 22);
this.radarGraphToolStripMenuItem.Text = "Radar Graph";
this.radarGraphToolStripMenuItem.Click += new System.EventHandler(this.radarGraphToolStripMenuItem_Click);
//
// trendGraphToolStripMenuItem
//
this.trendGraphToolStripMenuItem.Enabled = false;
this.trendGraphToolStripMenuItem.Name = "trendGraphToolStripMenuItem";
this.trendGraphToolStripMenuItem.Size = new System.Drawing.Size(140, 22);
this.trendGraphToolStripMenuItem.Text = "Trend Graph";
this.trendGraphToolStripMenuItem.Click += new System.EventHandler(this.trendGraphToolStripMenuItem_Click);
//
// reportToolStripMenuItem
//
this.reportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.allToolStripMenuItem});
this.reportToolStripMenuItem.Name = "reportToolStripMenuItem";
this.reportToolStripMenuItem.Size = new System.Drawing.Size(54, 20);
this.reportToolStripMenuItem.Text = "Report";
//
// allToolStripMenuItem
//
this.allToolStripMenuItem.Name = "allToolStripMenuItem";
this.allToolStripMenuItem.Size = new System.Drawing.Size(88, 22);
this.allToolStripMenuItem.Text = "All";
//
// dockPanel
//
this.dockPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.dockPanel.DocumentStyle = WeifenLuo.WinFormsUI.Docking.DocumentStyle.DockingWindow;
this.dockPanel.Location = new System.Drawing.Point(0, 25);
this.dockPanel.Location = new System.Drawing.Point(0, 49);
this.dockPanel.Name = "dockPanel";
this.dockPanel.ShowDocumentIcon = true;
this.dockPanel.Size = new System.Drawing.Size(947, 598);
this.dockPanel.Size = new System.Drawing.Size(1184, 690);
this.dockPanel.TabIndex = 2;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(947, 645);
this.ClientSize = new System.Drawing.Size(1184, 761);
this.Controls.Add(this.dockPanel);
this.Controls.Add(this.statusStrip);
this.Controls.Add(this.toolStripMain);
this.Controls.Add(this.menuStrip);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MainMenuStrip = this.menuStrip;
this.Name = "MainForm";
this.Text = "Form1";
this.Text = "Material Stick-Slip Analysis";
this.toolStripMain.ResumeLayout(false);
this.toolStripMain.PerformLayout();
this.statusStrip.ResumeLayout(false);
this.statusStrip.PerformLayout();
this.menuStrip.ResumeLayout(false);
this.menuStrip.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@@ -112,6 +322,27 @@
private System.Windows.Forms.StatusStrip statusStrip;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel;
private WeifenLuo.WinFormsUI.Docking.DockPanel dockPanel;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripButton toolStripButtonResult;
private System.Windows.Forms.ToolStripButton toolStripButtonAnalysis;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripButton toolStripButtonRadarGraph;
private System.Windows.Forms.ToolStripButton toolStripButtonTrendGraph;
private System.Windows.Forms.MenuStrip menuStrip;
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem openDBToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem recentToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem tableToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem resultTableToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem analysisTableToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem graphToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem radarGraphToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem trendGraphToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem reportToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem allToolStripMenuItem;
private System.Windows.Forms.ToolStripButton toolStripButtonMaterial;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
}
}

View File

@@ -4,6 +4,7 @@ using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
@@ -14,46 +15,192 @@ namespace friction
public partial class MainForm : Form
{
string m_DBFileName = "";
DataHandler m_DataLoader = new DataHandler();
TablePanel m_TablePanel = null;
RowPanel m_RowPanel = null;
DataHandler m_DataHandler = new DataHandler();
PanelMaterial m_MaterialPanel = null;
PanelResult m_ResultPanel = null;
PanelAnalysis m_AnalysisPanel = null;
PanelRadarGraph m_RadarGraphPanel = null;
PanelTrendGraph m_TrendGraphPanel = null;
public MainForm()
{
InitializeComponent();
dockPanel.Theme = new VS2015DarkTheme();
m_TablePanel = new TablePanel(this);
m_RowPanel = new RowPanel(this);
m_MaterialPanel = new PanelMaterial(this);
m_ResultPanel = new PanelResult(this);
m_AnalysisPanel = new PanelAnalysis(this);
m_RadarGraphPanel = new PanelRadarGraph(this);
m_TrendGraphPanel = new PanelTrendGraph(this, m_DataHandler);
Theme.Apply(this);
Theme.Apply(menuStrip);
Theme.Apply(toolStripMain);
Theme.Apply(statusStrip);
Config.Init();
UpdateRecentFile();
}
private void toolStripButtonOpen_Click(object sender, EventArgs e)
void UpdateRecentFile()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "엑셀 파일 (*.xlsx)|*.xlsx|엑셀 파일 (*.xls)|*.xls|전체|*";
DialogResult result = ofd.ShowDialog();
if(result == DialogResult.OK)
{
m_DBFileName = ofd.FileName;
m_DataLoader.LoadData2(m_DBFileName);
UpdateTablePanel();
recentToolStripMenuItem.DropDownItems.Clear();
toolStripStatusLabel.Text = m_DBFileName;
foreach (string file in Enumerable.Reverse(Config.OPTION.m_RecentList))
{
ToolStripItem item = recentToolStripMenuItem.DropDownItems.Add(file);
item.BackColor = Theme.Backcolor;
item.ForeColor = Theme.Forecolor;
item.Click += RecentToolStripMenuItem_Click;
}
}
private void UpdateTablePanel()
private void RecentToolStripMenuItem_Click(object sender, EventArgs e)
{
m_TablePanel.UpdateData(m_DataLoader);
if(m_TablePanel.Visible == false)
m_TablePanel.Show(dockPanel);
string strFile = ((ToolStripItem)sender).Text;
OpenDB(strFile);
}
public void OnApplyData()
private void OpenDB(string strFile=null)
{
m_RowPanel.UpdateData(m_DataLoader);
if (m_RowPanel.Visible == false)
m_RowPanel.Show(dockPanel);
if (strFile == null)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "엑셀 파일 (*.xlsx)|*.xlsx|엑셀 파일 (*.xls)|*.xls|전체|*";
DialogResult result = ofd.ShowDialog();
if (result == DialogResult.OK)
m_DBFileName = ofd.FileName;
}
else
{
m_DBFileName = strFile;
}
m_DataHandler.LoadData(m_DBFileName);
toolStripButtonTrendGraph.Enabled = false;
toolStripButtonRadarGraph.Enabled = true;
m_MaterialPanel.UpdateData(m_DataHandler);
OpenPanel(m_MaterialPanel);
m_ResultPanel.UpdateData(m_DataHandler);
OpenPanel(m_ResultPanel);
m_AnalysisPanel.Reset();
m_AnalysisPanel.UpdateData(m_DataHandler);
OpenPanel(m_AnalysisPanel);
toolStripStatusLabel.Text = m_DBFileName;
Config.OPTION.AddRecentFile(m_DBFileName);
UpdateRecentFile();
}
private void OpenPanel(DockContent panel)
{
if (panel.Visible == false)
panel.Show(dockPanel);
if (panel.IsHidden == true)
panel.IsHidden = false;
if(panel.DockState == DockState.DockTopAutoHide ||
panel.DockState == DockState.DockBottomAutoHide ||
panel.DockState == DockState.DockLeftAutoHide ||
panel.DockState == DockState.DockRightAutoHide)
{
dockPanel.ActiveAutoHideContent = panel;
}
}
#region Events from menu
private void openDBToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenDB();
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
}
private void resultTableToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenPanel(m_ResultPanel);
}
private void analysisTableToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenPanel(m_AnalysisPanel);
}
private void radarGraphToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenPanel(m_RadarGraphPanel);
}
private void trendGraphToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenPanel(m_TrendGraphPanel);
m_TrendGraphPanel.UpdateGraph();
}
#endregion
#region Events from toolbox
private void toolStripButtonOpen_Click(object sender, EventArgs e)
{
OpenDB();
}
private void toolStripButtonMaterial_Click(object sender, EventArgs e)
{
OpenPanel(m_MaterialPanel);
}
private void toolStripButtonResult_Click(object sender, EventArgs e)
{
OpenPanel(m_ResultPanel);
}
private void toolStripButtonAnalysis_Click(object sender, EventArgs e)
{
OpenPanel(m_AnalysisPanel);
}
private void toolStripButtonRadarGraph_Click(object sender, EventArgs e)
{
OpenPanel(m_RadarGraphPanel);
}
private void toolStripButtonTrendGraph_Click(object sender, EventArgs e)
{
OpenPanel(m_TrendGraphPanel);
m_TrendGraphPanel.UpdateGraph();
}
#endregion
#region Events from panels
public void OnApplyData(string strSpring, string strTable)
{
if (strTable == "All")
{
trendGraphToolStripMenuItem.Enabled = toolStripButtonTrendGraph.Enabled = false;
radarGraphToolStripMenuItem.Enabled = toolStripButtonRadarGraph.Enabled = true;
}
else
{
trendGraphToolStripMenuItem.Enabled = toolStripButtonTrendGraph.Enabled = true;
radarGraphToolStripMenuItem.Enabled = toolStripButtonRadarGraph.Enabled = false;
if (m_TrendGraphPanel.Visible == true)
m_TrendGraphPanel.UpdateGraph();
}
m_DataHandler.SetSelectedMaterial(strSpring, strTable);
m_AnalysisPanel.UpdateData(m_DataHandler);
}
#endregion
}
}

File diff suppressed because it is too large Load Diff

232
PanelAnalysis.Designer.cs generated Normal file
View File

@@ -0,0 +1,232 @@
namespace friction
{
partial class PanelAnalysis
{
/// <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.dgvAnalysis = new System.Windows.Forms.DataGridView();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.lbInfo11 = new System.Windows.Forms.Label();
this.lbInfo12 = new System.Windows.Forms.Label();
this.lbInfo13 = new System.Windows.Forms.Label();
this.lbInfo21 = new System.Windows.Forms.Label();
this.lbInfo22 = new System.Windows.Forms.Label();
this.lbInfo23 = new System.Windows.Forms.Label();
this.lbInfo24 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.dgvAnalysis)).BeginInit();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// dgvAnalysis
//
this.dgvAnalysis.AllowUserToAddRows = false;
this.dgvAnalysis.AllowUserToDeleteRows = false;
this.dgvAnalysis.AllowUserToOrderColumns = true;
this.dgvAnalysis.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.dgvAnalysis.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvAnalysis.Location = new System.Drawing.Point(12, 12);
this.dgvAnalysis.Name = "dgvAnalysis";
this.dgvAnalysis.ReadOnly = true;
this.dgvAnalysis.RowTemplate.Height = 23;
this.dgvAnalysis.Size = new System.Drawing.Size(856, 567);
this.dgvAnalysis.TabIndex = 0;
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.tableLayoutPanel1.ColumnCount = 4;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F));
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.label2, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.lbInfo11, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.lbInfo12, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.lbInfo13, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.lbInfo21, 3, 0);
this.tableLayoutPanel1.Controls.Add(this.lbInfo22, 3, 1);
this.tableLayoutPanel1.Controls.Add(this.lbInfo23, 3, 2);
this.tableLayoutPanel1.Controls.Add(this.lbInfo24, 3, 3);
this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 585);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 5;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel1.Size = new System.Drawing.Size(856, 62);
this.tableLayoutPanel1.TabIndex = 1;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
this.label1.Location = new System.Drawing.Point(3, 0);
this.label1.Name = "label1";
this.tableLayoutPanel1.SetRowSpan(this.label1, 5);
this.label1.Size = new System.Drawing.Size(165, 62);
this.label1.TabIndex = 0;
this.label1.Text = "For smaller than 10 number of tests (marked red) results should be considered car" +
"efully";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(430, 0);
this.label2.Name = "label2";
this.tableLayoutPanel1.SetRowSpan(this.label2, 5);
this.label2.Size = new System.Drawing.Size(135, 60);
this.label2.TabIndex = 1;
this.label2.Text = "For large standard deviations indicating a possible change of Stick-Slip Risk Cla" +
"ss (marked red)";
//
// lbInfo11
//
this.lbInfo11.AutoSize = true;
this.lbInfo11.BackColor = System.Drawing.Color.LimeGreen;
this.lbInfo11.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbInfo11.ForeColor = System.Drawing.Color.Silver;
this.lbInfo11.Location = new System.Drawing.Point(174, 0);
this.lbInfo11.Name = "lbInfo11";
this.lbInfo11.Size = new System.Drawing.Size(250, 12);
this.lbInfo11.TabIndex = 2;
this.lbInfo11.Text = "No Stick-Slip Risk";
//
// lbInfo12
//
this.lbInfo12.AutoSize = true;
this.lbInfo12.BackColor = System.Drawing.Color.Gold;
this.lbInfo12.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbInfo12.ForeColor = System.Drawing.Color.Silver;
this.lbInfo12.Location = new System.Drawing.Point(174, 12);
this.lbInfo12.Name = "lbInfo12";
this.lbInfo12.Size = new System.Drawing.Size(250, 12);
this.lbInfo12.TabIndex = 2;
this.lbInfo12.Text = "Potential S-Slip Risk";
//
// lbInfo13
//
this.lbInfo13.AutoSize = true;
this.lbInfo13.BackColor = System.Drawing.Color.OrangeRed;
this.lbInfo13.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbInfo13.ForeColor = System.Drawing.Color.Silver;
this.lbInfo13.Location = new System.Drawing.Point(174, 24);
this.lbInfo13.Name = "lbInfo13";
this.lbInfo13.Size = new System.Drawing.Size(250, 12);
this.lbInfo13.TabIndex = 2;
this.lbInfo13.Text = "High Stick-Slip Risk";
//
// lbInfo21
//
this.lbInfo21.AutoSize = true;
this.lbInfo21.BackColor = System.Drawing.Color.LimeGreen;
this.lbInfo21.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbInfo21.ForeColor = System.Drawing.Color.Silver;
this.lbInfo21.Location = new System.Drawing.Point(601, 0);
this.lbInfo21.Name = "lbInfo21";
this.lbInfo21.Size = new System.Drawing.Size(252, 12);
this.lbInfo21.TabIndex = 2;
this.lbInfo21.Text = "No Dependancy";
//
// lbInfo22
//
this.lbInfo22.AutoSize = true;
this.lbInfo22.BackColor = System.Drawing.Color.Gold;
this.lbInfo22.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbInfo22.ForeColor = System.Drawing.Color.Silver;
this.lbInfo22.Location = new System.Drawing.Point(601, 12);
this.lbInfo22.Name = "lbInfo22";
this.lbInfo22.Size = new System.Drawing.Size(252, 12);
this.lbInfo22.TabIndex = 2;
this.lbInfo22.Text = "Potential Dependancy";
//
// lbInfo23
//
this.lbInfo23.AutoSize = true;
this.lbInfo23.BackColor = System.Drawing.Color.OrangeRed;
this.lbInfo23.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbInfo23.ForeColor = System.Drawing.Color.Silver;
this.lbInfo23.Location = new System.Drawing.Point(601, 24);
this.lbInfo23.Name = "lbInfo23";
this.lbInfo23.Size = new System.Drawing.Size(252, 12);
this.lbInfo23.TabIndex = 2;
this.lbInfo23.Text = "Obvious Dependancy";
//
// lbInfo24
//
this.lbInfo24.AutoSize = true;
this.lbInfo24.BackColor = System.Drawing.Color.DarkGray;
this.lbInfo24.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbInfo24.ForeColor = System.Drawing.Color.Silver;
this.lbInfo24.Location = new System.Drawing.Point(601, 36);
this.lbInfo24.Name = "lbInfo24";
this.lbInfo24.Size = new System.Drawing.Size(252, 12);
this.lbInfo24.TabIndex = 2;
this.lbInfo24.Text = "Not Enough Data";
//
// PanelAnalysis
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(880, 649);
this.ControlBox = false;
this.Controls.Add(this.tableLayoutPanel1);
this.Controls.Add(this.dgvAnalysis);
this.HideOnClose = true;
this.Name = "PanelAnalysis";
this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.Document;
this.TabText = "Analysis Table";
this.Text = "Analysis Table";
((System.ComponentModel.ISupportInitialize)(this.dgvAnalysis)).EndInit();
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.DataGridView dgvAnalysis;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label lbInfo11;
private System.Windows.Forms.Label lbInfo12;
private System.Windows.Forms.Label lbInfo13;
private System.Windows.Forms.Label lbInfo21;
private System.Windows.Forms.Label lbInfo22;
private System.Windows.Forms.Label lbInfo23;
private System.Windows.Forms.Label lbInfo24;
}
}

136
PanelAnalysis.cs Normal file
View File

@@ -0,0 +1,136 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace friction
{
public partial class PanelAnalysis : DockContent
{
MainForm m_Owner = null;
string m_CurSpring = "";
public PanelAnalysis(MainForm owner)
{
InitializeComponent();
m_Owner = owner;
Theme.Apply(this);
Theme.Apply(dgvAnalysis);
typeof(DataGridView).InvokeMember("DoubleBuffered",
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty,
null, dgvAnalysis, new object[] { true });
lbInfo11.BackColor = Theme.Green;
lbInfo12.BackColor = Theme.Yellow;
lbInfo13.BackColor = Theme.Red;
lbInfo21.BackColor = Theme.Green;
lbInfo22.BackColor = Theme.Yellow;
lbInfo23.BackColor = Theme.Red;
lbInfo24.BackColor = Theme.Gray;
}
public void Reset()
{
m_CurSpring = "";
}
private Color GetDependancyColor(float fValue, int iCnt)
{
Config.ANALYSIS.DEPENDANCY Type = Config.ANALYSIS.GetDependancy(fValue, iCnt);
switch(Type)
{
case Config.ANALYSIS.DEPENDANCY.NO:
return Theme.Green;
case Config.ANALYSIS.DEPENDANCY.POTENTIAL:
return Theme.Yellow;
case Config.ANALYSIS.DEPENDANCY.HIGH:
return Theme.Red;
case Config.ANALYSIS.DEPENDANCY.NOT_ENNOUGH_DATA:
return Theme.Gray;
}
return Theme.White;
}
public void UpdateData(DataHandler data)
{
string strSpring = data.GetCurSpring();
if (strSpring == m_CurSpring)
return;
dgvAnalysis.Columns.Clear();
dgvAnalysis.Rows.Clear();
dgvAnalysis.DefaultCellStyle.Format = "N2";
dgvAnalysis.Columns.Add("chTable", "Table");
dgvAnalysis.Columns.Add("chNoTest", "No. of Tests");
dgvAnalysis.Columns.Add("chAvg", "Average RPN");
dgvAnalysis.Columns.Add("chSTD", "Standard Deviation");
dgvAnalysis.Columns.Add("chForce", "Normal Force");
dgvAnalysis.Columns.Add("chTemp", "Temperature");
dgvAnalysis.Columns.Add("chHumi", "Rel. Humidity");
dgvAnalysis.Columns.Add("chVel", "Velocity");
foreach (string strTable in data.GetTableList())
{
DataHandler.CalcResult result = data.GetCalc(strSpring, strTable);
int iIdx = dgvAnalysis.Rows.Add(strTable, result.m_iCnt, result.m_fAvgRPN, result.m_fStdRPN, result.m_fDiffByForce, result.m_fDiffByTemp, result.m_fDiffByHumid, result.m_fDiffByVel);
Config.ANALYSIS.RISK RiskType = Config.ANALYSIS.GetRisk(result.m_fAvgRPN);
Config.ANALYSIS.DEPENDANCY DependancyType = Config.ANALYSIS.GetDependancy(result.m_fStdRPN, result.m_iCnt);
if(DependancyType == Config.ANALYSIS.DEPENDANCY.NOT_ENNOUGH_DATA)
{
for (int i = 2; i <= 7; i++)
{
dgvAnalysis.Rows[iIdx].Cells[i].Style.BackColor = Theme.Gray;
dgvAnalysis.Rows[iIdx].Cells[i].Style.ForeColor = Theme.Backcolor;
}
}
else
{
switch (RiskType)
{
case Config.ANALYSIS.RISK.NO:
dgvAnalysis.Rows[iIdx].Cells[2].Style.BackColor = Theme.Green;
break;
case Config.ANALYSIS.RISK.POTENTIAL:
dgvAnalysis.Rows[iIdx].Cells[2].Style.BackColor = Theme.Yellow;
break;
case Config.ANALYSIS.RISK.HIGH:
dgvAnalysis.Rows[iIdx].Cells[2].Style.BackColor = Theme.Red;
break;
}
dgvAnalysis.Rows[iIdx].Cells[3].Style.BackColor = GetDependancyColor(result.m_fStdRPN, result.m_iCnt);
dgvAnalysis.Rows[iIdx].Cells[4].Style.BackColor = GetDependancyColor(result.m_fDiffByForce, result.m_iCnt);
dgvAnalysis.Rows[iIdx].Cells[5].Style.BackColor = GetDependancyColor(result.m_fDiffByTemp, result.m_iCnt);
dgvAnalysis.Rows[iIdx].Cells[6].Style.BackColor = GetDependancyColor(result.m_fDiffByHumid, result.m_iCnt);
dgvAnalysis.Rows[iIdx].Cells[7].Style.BackColor = GetDependancyColor(result.m_fDiffByVel, result.m_iCnt);
}
}
m_CurSpring = strSpring;
}
}
}

126
PanelMaterial.Designer.cs generated Normal file
View File

@@ -0,0 +1,126 @@
namespace friction
{
partial class PanelMaterial
{
/// <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.cbMaterialTable = new System.Windows.Forms.ComboBox();
this.cbMaterialSpring = new System.Windows.Forms.ComboBox();
this.btApply = new System.Windows.Forms.Button();
this.lbFileName = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// cbMaterialTable
//
this.cbMaterialTable.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbMaterialTable.FormattingEnabled = true;
this.cbMaterialTable.Location = new System.Drawing.Point(32, 122);
this.cbMaterialTable.Name = "cbMaterialTable";
this.cbMaterialTable.Size = new System.Drawing.Size(121, 20);
this.cbMaterialTable.TabIndex = 1;
//
// cbMaterialSpring
//
this.cbMaterialSpring.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbMaterialSpring.FormattingEnabled = true;
this.cbMaterialSpring.Location = new System.Drawing.Point(32, 61);
this.cbMaterialSpring.Name = "cbMaterialSpring";
this.cbMaterialSpring.Size = new System.Drawing.Size(121, 20);
this.cbMaterialSpring.TabIndex = 2;
//
// btApply
//
this.btApply.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btApply.Location = new System.Drawing.Point(32, 179);
this.btApply.Name = "btApply";
this.btApply.Size = new System.Drawing.Size(75, 23);
this.btApply.TabIndex = 3;
this.btApply.Text = "Apply";
this.btApply.UseVisualStyleBackColor = true;
this.btApply.Click += new System.EventHandler(this.btApply_Click);
//
// lbFileName
//
this.lbFileName.AutoSize = true;
this.lbFileName.Font = new System.Drawing.Font("Malgun Gothic", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.lbFileName.Location = new System.Drawing.Point(7, 9);
this.lbFileName.Name = "lbFileName";
this.lbFileName.Size = new System.Drawing.Size(0, 25);
this.lbFileName.TabIndex = 4;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(30, 46);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(90, 12);
this.label2.TabIndex = 5;
this.label2.Text = "Material Spring";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(30, 107);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(86, 12);
this.label3.TabIndex = 6;
this.label3.Text = "Material Table";
//
// PanelMaterial
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 261);
this.ControlBox = false;
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.lbFileName);
this.Controls.Add(this.btApply);
this.Controls.Add(this.cbMaterialSpring);
this.Controls.Add(this.cbMaterialTable);
this.HideOnClose = true;
this.Name = "PanelMaterial";
this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.DockLeft;
this.TabText = "Material Pair";
this.Text = "Material Pair";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ComboBox cbMaterialTable;
private System.Windows.Forms.ComboBox cbMaterialSpring;
private System.Windows.Forms.Button btApply;
private System.Windows.Forms.Label lbFileName;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
}
}

57
PanelMaterial.cs Normal file
View File

@@ -0,0 +1,57 @@
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 PanelMaterial : DockContent
{
MainForm m_Owner = null;
public PanelMaterial(MainForm owner)
{
InitializeComponent();
m_Owner = owner;
this.ApplyTheme();
Theme.Apply(this);
Theme.Apply(cbMaterialSpring);
Theme.Apply(cbMaterialTable);
Theme.Apply(btApply);
}
public void UpdateData(DataHandler data)
{
var SpringList = data.GetSpringList();
var TableList = data.GetTableList();
cbMaterialSpring.Items.Clear();
foreach (var x in SpringList)
cbMaterialSpring.Items.Add(x);
cbMaterialSpring.SelectedIndex = 0;
cbMaterialTable.Items.Clear();
cbMaterialTable.Items.Add("All");
foreach (var x in TableList)
cbMaterialTable.Items.Add(x);
cbMaterialTable.SelectedIndex = 0;
lbFileName.Text = data.GetFileName();
m_Owner.OnApplyData((string)cbMaterialSpring.SelectedItem, (string)cbMaterialTable.SelectedItem);
}
private void btApply_Click(object sender, EventArgs e)
{
m_Owner.OnApplyData((string)cbMaterialSpring.SelectedItem, (string)cbMaterialTable.SelectedItem);
}
}
}

50
PanelRadarGraph.Designer.cs generated Normal file
View File

@@ -0,0 +1,50 @@
namespace friction
{
partial class PanelRadarGraph
{
/// <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.SuspendLayout();
//
// PanelRadarGraph
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 261);
this.ControlBox = false;
this.HideOnClose = true;
this.Name = "PanelRadarGraph";
this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.Document;
this.TabText = "Radar Graph";
this.Text = "Radar Graph";
this.ResumeLayout(false);
}
#endregion
}
}

View File

@@ -11,21 +11,15 @@ using WeifenLuo.WinFormsUI.Docking;
namespace friction
{
public partial class RowPanel : DockContent
public partial class PanelRadarGraph : DockContent
{
MainForm m_Owner = null;
public RowPanel(MainForm owner)
public PanelRadarGraph(MainForm owner)
{
InitializeComponent();
m_Owner = owner;
}
public void UpdateData(DataHandler dataHandler)
{
dgvData.DataSource = dataHandler.GetData();
dgvData.Update();
}
}
}

120
PanelRadarGraph.resx Normal file
View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -1,6 +1,6 @@
namespace friction
{
partial class RowPanel
partial class PanelResult
{
/// <summary>
/// Required designer variable.
@@ -28,13 +28,18 @@
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup("Active Columns", System.Windows.Forms.HorizontalAlignment.Left);
System.Windows.Forms.ListViewGroup listViewGroup2 = new System.Windows.Forms.ListViewGroup("Nonactive Columns", System.Windows.Forms.HorizontalAlignment.Left);
this.dgvData = new System.Windows.Forms.DataGridView();
this.lbColumn = new System.Windows.Forms.CheckedListBox();
this.lvColumn = new System.Windows.Forms.ListView();
this.lvchColumns = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
((System.ComponentModel.ISupportInitialize)(this.dgvData)).BeginInit();
this.SuspendLayout();
//
// dgvData
//
this.dgvData.AllowUserToAddRows = false;
this.dgvData.AllowUserToDeleteRows = false;
this.dgvData.AllowUserToOrderColumns = true;
this.dgvData.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
@@ -42,31 +47,54 @@
this.dgvData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvData.Location = new System.Drawing.Point(3, 3);
this.dgvData.Name = "dgvData";
this.dgvData.ReadOnly = true;
this.dgvData.RowTemplate.Height = 23;
this.dgvData.Size = new System.Drawing.Size(713, 724);
this.dgvData.TabIndex = 0;
//
// lbColumn
// lvColumn
//
this.lbColumn.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.lvColumn.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.lbColumn.FormattingEnabled = true;
this.lbColumn.Location = new System.Drawing.Point(719, 3);
this.lbColumn.Name = "lbColumn";
this.lbColumn.Size = new System.Drawing.Size(200, 724);
this.lbColumn.TabIndex = 1;
this.lvColumn.CheckBoxes = true;
this.lvColumn.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.lvchColumns});
this.lvColumn.FullRowSelect = true;
listViewGroup1.Header = "Active Columns";
listViewGroup1.Name = "lvgActiveColumn";
listViewGroup2.Header = "Nonactive Columns";
listViewGroup2.Name = "lbgNonactiveColumn";
this.lvColumn.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
listViewGroup1,
listViewGroup2});
this.lvColumn.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.lvColumn.Location = new System.Drawing.Point(722, 3);
this.lvColumn.MultiSelect = false;
this.lvColumn.Name = "lvColumn";
this.lvColumn.Size = new System.Drawing.Size(199, 724);
this.lvColumn.TabIndex = 1;
this.lvColumn.UseCompatibleStateImageBehavior = false;
this.lvColumn.View = System.Windows.Forms.View.Details;
this.lvColumn.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.lvColumn_ItemChecked);
//
// RowPanel
// lvchColumns
//
this.lvchColumns.Text = "Columns";
this.lvchColumns.Width = 175;
//
// PanelResult
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(922, 723);
this.Controls.Add(this.lbColumn);
this.ControlBox = false;
this.Controls.Add(this.lvColumn);
this.Controls.Add(this.dgvData);
this.HideOnClose = true;
this.Name = "RowPanel";
this.Name = "PanelResult";
this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.Document;
this.Text = "Row Data";
this.TabText = "Result Table";
this.Text = "Result Table";
((System.ComponentModel.ISupportInitialize)(this.dgvData)).EndInit();
this.ResumeLayout(false);
@@ -75,6 +103,7 @@
#endregion
private System.Windows.Forms.DataGridView dgvData;
private System.Windows.Forms.CheckedListBox lbColumn;
private System.Windows.Forms.ListView lvColumn;
private System.Windows.Forms.ColumnHeader lvchColumns;
}
}

93
PanelResult.cs Normal file
View File

@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace friction
{
public partial class PanelResult : DockContent
{
MainForm m_Owner = null;
public PanelResult(MainForm owner)
{
InitializeComponent();
m_Owner = owner;
Theme.Apply(this);
Theme.Apply(dgvData);
Theme.Apply(lvColumn);
typeof(DataGridView).InvokeMember("DoubleBuffered",
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty,
null, dgvData, new object[] { true });
dgvData.CellFormatting += DgvData_CellFormatting;
}
private void DgvData_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridViewRow row = dgvData.Rows[e.RowIndex];
if(e.ColumnIndex == row.Cells["Risk priority number"].ColumnIndex)
{
if ((float)e.Value <= 3)
e.CellStyle.BackColor = Theme.Green;
else if ((float)e.Value <= 5)
e.CellStyle.BackColor = Theme.Yellow;
else
e.CellStyle.BackColor = Theme.Red;
}
}
public void UpdateData(DataHandler data)
{
dgvData.DataSource = data.GetData();
dgvData.DefaultCellStyle.Format = "N2";
Dictionary<string, bool> CacheChecked = new Dictionary<string, bool>();
foreach (ListViewItem item in lvColumn.Items)
{
string key = item.SubItems[0].Text;
bool bChecked = item.Checked;
CacheChecked.Add(key, bChecked);
}
lvColumn.Groups[0].Items.Clear();
lvColumn.Groups[1].Items.Clear();
lvColumn.Items.Clear();
List<List<string>> Columns = new List<List<string>>() { data.GetActiveColumns(), data.GetNonactiveColumns() };
for(int iGroup=0; iGroup<Columns.Count; iGroup++)
{
foreach(string col in Columns[iGroup])
{
ListViewItem item = new ListViewItem(new string[] { col });
item.Text = col;
if (CacheChecked.ContainsKey(col) == true)
item.Checked = CacheChecked[col];
else if (iGroup == 0)
item.Checked = true;
else
item.Checked = false;
lvColumn.Items.Add(item);
lvColumn.Groups[iGroup].Items.Add(item);
}
}
}
private void lvColumn_ItemChecked(object sender, ItemCheckedEventArgs e)
{
string strColName = e.Item.SubItems[0].Text;
bool bShow = e.Item.Checked;
dgvData.Columns[strColName].Visible = bShow;
}
}
}

120
PanelResult.resx Normal file
View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

115
PanelTrendGraph.Designer.cs generated Normal file
View File

@@ -0,0 +1,115 @@
namespace friction
{
partial class PanelTrendGraph
{
/// <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.trendChart = new LiveCharts.WinForms.CartesianChart();
this.rbHumidity = new System.Windows.Forms.RadioButton();
this.rbTemp = new System.Windows.Forms.RadioButton();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// trendChart
//
this.trendChart.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.trendChart.Location = new System.Drawing.Point(8, 59);
this.trendChart.Name = "trendChart";
this.trendChart.Size = new System.Drawing.Size(742, 603);
this.trendChart.TabIndex = 0;
this.trendChart.Text = "trendChart";
//
// rbHumidity
//
this.rbHumidity.Appearance = System.Windows.Forms.Appearance.Button;
this.rbHumidity.AutoSize = true;
this.rbHumidity.Checked = true;
this.rbHumidity.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.rbHumidity.Location = new System.Drawing.Point(6, 19);
this.rbHumidity.Name = "rbHumidity";
this.rbHumidity.Size = new System.Drawing.Size(66, 24);
this.rbHumidity.TabIndex = 1;
this.rbHumidity.TabStop = true;
this.rbHumidity.Text = "Humidity";
this.rbHumidity.UseVisualStyleBackColor = true;
this.rbHumidity.CheckedChanged += new System.EventHandler(this.rbHumidity_CheckedChanged);
//
// rbTemp
//
this.rbTemp.Appearance = System.Windows.Forms.Appearance.Button;
this.rbTemp.AutoSize = true;
this.rbTemp.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.rbTemp.Location = new System.Drawing.Point(76, 20);
this.rbTemp.Name = "rbTemp";
this.rbTemp.Size = new System.Drawing.Size(89, 24);
this.rbTemp.TabIndex = 1;
this.rbTemp.Text = "Temperature";
this.rbTemp.UseVisualStyleBackColor = true;
this.rbTemp.CheckedChanged += new System.EventHandler(this.rbTemp_CheckedChanged);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.rbHumidity);
this.groupBox1.Controls.Add(this.rbTemp);
this.groupBox1.ForeColor = System.Drawing.SystemColors.ControlText;
this.groupBox1.Location = new System.Drawing.Point(8, 3);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(171, 50);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Data";
//
// PanelTrendGraph
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(762, 674);
this.ControlBox = false;
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.trendChart);
this.HideOnClose = true;
this.Name = "PanelTrendGraph";
this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.Document;
this.TabText = "Trend Graph";
this.Text = "Trend Graph";
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private LiveCharts.WinForms.CartesianChart trendChart;
private System.Windows.Forms.RadioButton rbHumidity;
private System.Windows.Forms.RadioButton rbTemp;
private System.Windows.Forms.GroupBox groupBox1;
}
}

271
PanelTrendGraph.cs Normal file
View File

@@ -0,0 +1,271 @@
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;
using LiveCharts;
using LiveCharts.Wpf;
using LiveCharts.WinForms;
using LiveCharts.Defaults;
using System.Windows.Media;
namespace friction
{
public partial class PanelTrendGraph : DockContent
{
MainForm m_Owner = null;
DataHandler m_DataHandler = null;
string m_CurSpring = "";
string m_CurTable = "";
bool m_bHumidity = false;
public PanelTrendGraph(MainForm owner, DataHandler data)
{
InitializeComponent();
m_Owner = owner;
m_DataHandler = data;
Theme.Apply(this);
Theme.Apply(trendChart);
Theme.Apply(groupBox1);
Theme.Apply(rbHumidity);
Theme.Apply(rbTemp);
trendChart.AxisX.Add(new Axis
{
Title = "Humidity",
});
trendChart.AxisY.Add(new Axis
{
Title = "RPN",
MinValue = 0,
MaxValue = 10,
Sections = new SectionsCollection
{
new AxisSection
{
Value = 5,
SectionWidth = 5,
Fill = new SolidColorBrush
{
Color = System.Windows.Media.Color.FromArgb(Theme.Red.A, Theme.Red.R, Theme.Red.G, Theme.Red.B),
Opacity = .75
}
},
new AxisSection
{
//Label = "Good",
Value = 3,
SectionWidth = 2,
Fill = new SolidColorBrush
{
Color = System.Windows.Media.Color.FromArgb(Theme.Yellow.A, Theme.Yellow.R, Theme.Yellow.G, Theme.Yellow.B),
Opacity = .75
}
},
new AxisSection
{
//Label = "Bad",
Value = 0,
SectionWidth = 3,
Fill = new SolidColorBrush
{
Color = System.Windows.Media.Color.FromArgb(Theme.Green.A, Theme.Green.R, Theme.Green.G, Theme.Green.B),
Opacity = .75
}
}
}
});
trendChart.LegendLocation = LegendLocation.Right;
trendChart.DataClick += TrendChart_DataClick;
}
public void Reset()
{
m_CurSpring = "";
m_CurTable = "";
m_bHumidity = false;
}
private void TrendChart_DataClick(object sender, ChartPoint chartPoint)
{
}
public void UpdateGraph()
{
string strSpring = m_DataHandler.GetCurSpring();
string strTable = m_DataHandler.GetCurTable();
if (m_CurSpring == strSpring && m_CurTable == strTable && rbHumidity.Checked == m_bHumidity)
return;
var Chart = m_DataHandler.GetHumidityChart(strSpring, strTable);
if (Chart.Count <= 0)
return;
string strTitle = "";
double dMin = 0;
double dMax = 0;
if (rbHumidity.Checked == true)
{
strTitle = "Humidity";
trendChart.AxisX[0].Title = strTitle;
ChartValues<ScatterPoint>[] Points = {
new ChartValues<ScatterPoint>(),
new ChartValues<ScatterPoint>(),
new ChartValues<ScatterPoint>() };
var Values = new List<TrendLine.POINT>();
foreach (var pnt in Chart)
{
if(pnt.TEMPERATURE < 0)
Points[0].Add(new ScatterPoint(pnt.HUMIDITY, pnt.RPN, 2));
else if(pnt.TEMPERATURE > 30)
Points[2].Add(new ScatterPoint(pnt.HUMIDITY, pnt.RPN, 2));
else
Points[1].Add(new ScatterPoint(pnt.HUMIDITY, pnt.RPN, 2));
Values.Add(new TrendLine.POINT { X = pnt.HUMIDITY, Y = pnt.RPN });
}
Values.Sort((a, b) => (a.X == b.X) ? 0 : (a.X < b.X) ? -1 : 1);
TrendLine trendline = new TrendLine(Values);
ChartValues<ScatterPoint> TrendPoints = new ChartValues<ScatterPoint>();
TrendPoints.Add(new ScatterPoint(Values[0].X, trendline.GetY(Values[0].X)));
TrendPoints.Add(new ScatterPoint(Values[Values.Count / 2].X, trendline.GetY(Values[Values.Count / 2].X)));
TrendPoints.Add(new ScatterPoint(Values[Values.Count - 1].X, trendline.GetY(Values[Values.Count - 1].X)));
System.Windows.Media.SolidColorBrush[] brushes = {
System.Windows.Media.Brushes.DodgerBlue.Clone(),
System.Windows.Media.Brushes.Green.Clone(),
System.Windows.Media.Brushes.IndianRed.Clone() };
foreach (var brush in brushes)
brush.Opacity = 0.75;
trendChart.Series = new SeriesCollection
{
new ScatterSeries
{
Title = "~ 0℃",
Values = Points[0],
Fill = brushes[0],
Foreground = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 255, 255, 255)),
},
new ScatterSeries
{
Title = "0℃ ~ 30℃",
Values = Points[1],
Fill = brushes[1],
},
new ScatterSeries
{
Title = "30℃ ~",
Values = Points[2],
Fill = brushes[2],
},
new LineSeries
{
Title = "Trend",
Values = TrendPoints,
PointGeometry = DefaultGeometries.None,
StrokeThickness = 4,
},
};
dMin = Chart.Min(r => r.HUMIDITY - 1);
dMax = Chart.Max(r => r.HUMIDITY - 1);
}
else if(rbTemp.Checked == true)
{
strTitle = "Temperature";
trendChart.AxisX[0].Title = strTitle;
ChartValues<ScatterPoint>[] Points = {
new ChartValues<ScatterPoint>(),
new ChartValues<ScatterPoint>() };
var Values = new List<TrendLine.POINT>();
foreach (var pnt in Chart)
{
if(pnt.HUMIDITY <= 60)
Points[0].Add(new ScatterPoint(pnt.TEMPERATURE, pnt.RPN, 2));
else
Points[1].Add(new ScatterPoint(pnt.TEMPERATURE, pnt.RPN, 2));
Values.Add(new TrendLine.POINT { X = pnt.TEMPERATURE, Y = pnt.RPN });
}
Values.Sort((a, b) => (a.X == b.X) ? 0 : (a.X<b.X) ? -1 : 1);
TrendLine trendline = new TrendLine(Values);
ChartValues<ScatterPoint> TrendPoints = new ChartValues<ScatterPoint>();
TrendPoints.Add(new ScatterPoint(Values[0].X, trendline.GetY(Values[0].X)));
TrendPoints.Add(new ScatterPoint(Values[Values.Count / 2].X, trendline.GetY(Values[Values.Count / 2].X)));
TrendPoints.Add(new ScatterPoint(Values[Values.Count - 1].X, trendline.GetY(Values[Values.Count - 1].X)));
trendChart.Series = new SeriesCollection
{
new ScatterSeries
{
Title = "~ 60%",
Values = Points[0],
Foreground = System.Windows.Media.Brushes.SkyBlue,
},
new ScatterSeries
{
Title = "60% ~",
Values = Points[1],
Foreground = System.Windows.Media.Brushes.DarkBlue,
},
new LineSeries
{
Title = "Trend",
Values = TrendPoints,
PointGeometry = DefaultGeometries.None,
StrokeThickness = 4,
},
};
dMin = Chart.Min(r => r.TEMPERATURE - 1);
dMax = Chart.Max(r => r.TEMPERATURE - 1);
}
trendChart.AxisX[0].MinValue = dMin;
trendChart.AxisX[0].MaxValue = dMax;
m_CurSpring = strSpring;
m_CurTable = strTable;
m_bHumidity = rbHumidity.Checked;
}
private void rbHumidity_CheckedChanged(object sender, EventArgs e)
{
UpdateGraph();
}
private void rbTemp_CheckedChanged(object sender, EventArgs e)
{
UpdateGraph();
}
}
}

120
PanelTrendGraph.resx Normal file
View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

84
TablePanel.Designer.cs generated
View File

@@ -1,84 +0,0 @@
namespace friction
{
partial class TablePanel
{
/// <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.cbMaterial2 = new System.Windows.Forms.ComboBox();
this.cbMaterial1 = new System.Windows.Forms.ComboBox();
this.btApply = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// cbMaterial2
//
this.cbMaterial2.FormattingEnabled = true;
this.cbMaterial2.Location = new System.Drawing.Point(32, 122);
this.cbMaterial2.Name = "cbMaterial2";
this.cbMaterial2.Size = new System.Drawing.Size(121, 20);
this.cbMaterial2.TabIndex = 1;
//
// cbMaterial1
//
this.cbMaterial1.FormattingEnabled = true;
this.cbMaterial1.Location = new System.Drawing.Point(32, 61);
this.cbMaterial1.Name = "cbMaterial1";
this.cbMaterial1.Size = new System.Drawing.Size(121, 20);
this.cbMaterial1.TabIndex = 2;
//
// btApply
//
this.btApply.Location = new System.Drawing.Point(32, 179);
this.btApply.Name = "btApply";
this.btApply.Size = new System.Drawing.Size(75, 23);
this.btApply.TabIndex = 3;
this.btApply.Text = "Apply";
this.btApply.UseVisualStyleBackColor = true;
this.btApply.Click += new System.EventHandler(this.btApply_Click);
//
// TablePanel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 261);
this.Controls.Add(this.btApply);
this.Controls.Add(this.cbMaterial1);
this.Controls.Add(this.cbMaterial2);
this.HideOnClose = true;
this.Name = "TablePanel";
this.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.DockLeft;
this.Text = "TablePanel";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.ComboBox cbMaterial2;
private System.Windows.Forms.ComboBox cbMaterial1;
private System.Windows.Forms.Button btApply;
}
}

View File

@@ -1,45 +0,0 @@
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 TablePanel : DockContent
{
MainForm m_Owner = null;
public TablePanel(MainForm owner)
{
InitializeComponent();
m_Owner = owner;
this.ApplyTheme();
}
public void UpdateData(DataHandler data)
{
var Material1 = data.GetMaterial1();
var Material2 = data.GetMaterial2();
cbMaterial1.Items.Clear();
foreach(var x in Material1)
cbMaterial1.Items.Add(x);
cbMaterial2.Items.Clear();
foreach (var x in Material2)
cbMaterial2.Items.Add(x);
}
private void btApply_Click(object sender, EventArgs e)
{
m_Owner.OnApplyData();
}
}
}

151
Theme.cs Normal file
View File

@@ -0,0 +1,151 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace friction
{
public static class Theme
{
public static Color Backcolor = Color.FromArgb(255, 45, 45, 48);
public static Color BackColorTrans = Color.FromArgb(230, 45, 45, 48);
public static Color Forecolor = Color.FromArgb(255, 235, 235, 235);
public static Color Green = Color.LimeGreen;
//public static Color Yellow = Color.Gold;
public static Color Yellow = Color.FromArgb(255, 255, 165, 0);
public static Color Red = Color.OrangeRed;
public static Color Gray = Color.DarkGray;
public static Color White = Color.Snow;
public static void Apply(Control ctrl)
{
ctrl.BackColor = Backcolor;
ctrl.ForeColor = Forecolor;
}
public static void Apply(DataGridView ctrl)
{
ctrl.BackgroundColor = Backcolor;
ctrl.DefaultCellStyle.BackColor = Backcolor;
ctrl.DefaultCellStyle.ForeColor = Forecolor;
ctrl.EnableHeadersVisualStyles = false;
ctrl.ColumnHeadersDefaultCellStyle.BackColor = Backcolor;
ctrl.ColumnHeadersDefaultCellStyle.ForeColor = Forecolor;
ctrl.RowHeadersDefaultCellStyle.BackColor = Backcolor;
ctrl.RowHeadersDefaultCellStyle.ForeColor = Forecolor;
}
public static void Apply(ListView ctrl)
{
ctrl.BackColor = Backcolor;
ctrl.ForeColor = Forecolor;
ctrl.OwnerDraw = true;
ctrl.DrawColumnHeader +=
new DrawListViewColumnHeaderEventHandler
(
(sender, e) => ListViewHeaderDraw(sender, e, Backcolor, Forecolor)
);
ctrl.DrawItem += new DrawListViewItemEventHandler(ListViewBodyDraw);
}
private static void ListViewHeaderDraw(object sender, DrawListViewColumnHeaderEventArgs e, Color backColor, Color foreColor)
{
e.Graphics.FillRectangle(new SolidBrush(backColor), e.Bounds);
e.Graphics.DrawString(e.Header.Text, e.Font, new SolidBrush(foreColor), e.Bounds);
}
private static void ListViewBodyDraw(object sender, DrawListViewItemEventArgs e)
{
e.DrawDefault = true;
}
public class MenustripColor : ProfessionalColorTable
{
public override Color MenuItemSelected { get { return BackColorTrans; } }
public override Color MenuItemSelectedGradientBegin { get { return BackColorTrans; } }
public override Color MenuItemSelectedGradientEnd { get { return BackColorTrans; } }
public override Color MenuItemPressedGradientBegin { get { return Backcolor; } }
public override Color MenuItemPressedGradientEnd { get { return Backcolor; } }
public override Color MenuItemBorder { get { return BackColorTrans; } }
public override Color MenuBorder { get { return Backcolor; } }
}
class MenustripRenderer : ToolStripProfessionalRenderer
{
public MenustripRenderer() : base(new MenustripColor())
{
}
protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
{
if (e.Item.Enabled)
base.OnRenderMenuItemBackground(e);
else
{
e.Item.BackColor = Backcolor;
base.OnRenderMenuItemBackground(e);
if (e.Item.Selected == true)
{
e.Item.ImageTransparentColor = Backcolor;
base.OnRenderMenuItemBackground(e);
}
}
}
protected override void OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
{
if (e.Item.Enabled)
base.OnRenderMenuItemBackground(e);
}
}
public static void Apply(MenuStrip ctrl)
{
ctrl.BackColor = Backcolor;
ctrl.ForeColor = Forecolor;
foreach (ToolStripMenuItem item in ctrl.Items)
{
foreach (ToolStripMenuItem subitem in item.DropDownItems)
{
subitem.BackColor = Backcolor;
subitem.ForeColor = Forecolor;
subitem.MouseEnter += Ctrl_MouseEnter;
subitem.MouseLeave += Ctrl_MouseLeave;
}
item.BackColor = Backcolor;
item.ForeColor = Forecolor;
item.MouseEnter += Ctrl_MouseEnter;
item.MouseLeave += Ctrl_MouseLeave;
}
ctrl.Renderer = new MenustripRenderer();
}
private static void Ctrl_MouseEnter(object sender, EventArgs e)
{
if(sender is ToolStripMenuItem)
{
((ToolStripMenuItem)sender).ForeColor = Color.Orange;
}
}
private static void Ctrl_MouseLeave(object sender, EventArgs e)
{
if (sender is ToolStripMenuItem)
{
((ToolStripMenuItem)sender).ForeColor = Forecolor;
}
}
}
}

99
TrendLine.cs Normal file
View File

@@ -0,0 +1,99 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace friction
{
public class TrendLine
{
public struct POINT
{
public float X;
public float Y;
}
private readonly List<POINT> AxisValues;
private int count;
private float xAxisValuesSum;
private float xxSum;
private float xySum;
private float yAxisValuesSum;
//public TrendLine(IList<float> xAxisValues, IList<float> yAxisValues)
//{
// this.xAxisValues = xAxisValues;
// this.yAxisValues = yAxisValues;
// this.Initialize();
//}
public TrendLine(List<POINT> points)
{
AxisValues = points;
AxisValues.Sort((POINT a, POINT b) => (a.X == b.X) ? 0 : (a.X < b.X) ? -1 : 1);
this.Initialize();
}
public float Slope { get; private set; }
public float Intercept { get; private set; }
public float Start { get; private set; }
public float End { get; private set; }
private void Initialize()
{
this.count = this.AxisValues.Count;
this.yAxisValuesSum = this.AxisValues.Sum(e => e.Y);
this.xAxisValuesSum = this.AxisValues.Sum(e => e.X);
this.xxSum = 0;
this.xySum = 0;
for (int i = 0; i < this.count; i++)
{
this.xySum += (this.AxisValues[i].X * this.AxisValues[i].Y);
this.xxSum += (this.AxisValues[i].X * this.AxisValues[i].X);
}
this.Slope = this.CalculateSlope();
this.Intercept = this.CalculateIntercept();
this.Start = this.CalculateStart();
this.End = this.CalculateEnd();
}
private float CalculateSlope()
{
try
{
return ((this.count * this.xySum) - (this.xAxisValuesSum * this.yAxisValuesSum)) / ((this.count * this.xxSum) - (this.xAxisValuesSum * this.xAxisValuesSum));
}
catch (DivideByZeroException)
{
return 0;
}
}
private float CalculateIntercept()
{
return (this.yAxisValuesSum - (this.Slope * this.xAxisValuesSum)) / this.count;
}
private float CalculateStart()
{
return (this.Slope * this.AxisValues.First().X) + this.Intercept;
}
private float CalculateEnd()
{
return (this.Slope * this.AxisValues.Last().X) + this.Intercept;
}
public float GetY(float fX)
{
return (this.Slope * fX) + this.Intercept;
}
}
}

View File

@@ -8,7 +8,7 @@
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>friction</RootNamespace>
<AssemblyName>friction</AssemblyName>
<AssemblyName>squeak</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
@@ -32,13 +32,31 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>main_icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="EPPlus, Version=4.1.0.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1, processorArchitecture=MSIL">
<HintPath>packages\EPPlus.4.1.0\lib\net40\EPPlus.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="LiveCharts, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL">
<HintPath>packages\LiveCharts.0.9.6\lib\net45\LiveCharts.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="LiveCharts.WinForms, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL">
<HintPath>packages\LiveCharts.WinForms.0.9.6\lib\net45\LiveCharts.WinForms.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="LiveCharts.Wpf, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0bc1f845d1ebb8df, processorArchitecture=MSIL">
<HintPath>packages\LiveCharts.Wpf.0.9.6\lib\net45\LiveCharts.Wpf.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
@@ -48,32 +66,64 @@
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
<Reference Include="WindowsFormsIntegration" />
</ItemGroup>
<ItemGroup>
<Compile Include="DataExcel.cs" />
<Compile Include="Config.cs" />
<Compile Include="DataHandler.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="PanelAnalysis.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PanelAnalysis.Designer.cs">
<DependentUpon>PanelAnalysis.cs</DependentUpon>
</Compile>
<Compile Include="PanelRadarGraph.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PanelRadarGraph.Designer.cs">
<DependentUpon>PanelRadarGraph.cs</DependentUpon>
</Compile>
<Compile Include="PanelTrendGraph.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PanelTrendGraph.Designer.cs">
<DependentUpon>PanelTrendGraph.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RowPanel.cs">
<Compile Include="PanelResult.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="RowPanel.Designer.cs">
<DependentUpon>RowPanel.cs</DependentUpon>
<Compile Include="PanelResult.Designer.cs">
<DependentUpon>PanelResult.cs</DependentUpon>
</Compile>
<Compile Include="TablePanel.cs">
<Compile Include="PanelMaterial.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="TablePanel.Designer.cs">
<DependentUpon>TablePanel.cs</DependentUpon>
<Compile Include="PanelMaterial.Designer.cs">
<DependentUpon>PanelMaterial.cs</DependentUpon>
</Compile>
<Compile Include="Theme.cs" />
<Compile Include="TrendLine.cs" />
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PanelAnalysis.resx">
<DependentUpon>PanelAnalysis.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PanelRadarGraph.resx">
<DependentUpon>PanelRadarGraph.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PanelTrendGraph.resx">
<DependentUpon>PanelTrendGraph.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
@@ -83,11 +133,11 @@
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<EmbeddedResource Include="RowPanel.resx">
<DependentUpon>RowPanel.cs</DependentUpon>
<EmbeddedResource Include="PanelResult.resx">
<DependentUpon>PanelResult.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="TablePanel.resx">
<DependentUpon>TablePanel.cs</DependentUpon>
<EmbeddedResource Include="PanelMaterial.resx">
<DependentUpon>PanelMaterial.cs</DependentUpon>
</EmbeddedResource>
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
@@ -113,6 +163,9 @@
<Name>WinFormsUI</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="main_icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

BIN
main_icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

View File

@@ -3,4 +3,7 @@
<package id="DockPanelSuite" version="2.15.0" targetFramework="net452" />
<package id="DockPanelSuite.ThemeVS2015" version="2.15.0" targetFramework="net452" />
<package id="EPPlus" version="4.1.0" targetFramework="net452" />
<package id="LiveCharts" version="0.9.6" targetFramework="net452" />
<package id="LiveCharts.WinForms" version="0.9.6" targetFramework="net452" />
<package id="LiveCharts.Wpf" version="0.9.6" targetFramework="net452" />
</packages>

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

23
packages/LiveCharts.0.9.6/readme.txt vendored Normal file
View File

@@ -0,0 +1,23 @@
==================================
<<<<<<<<<<< IMPORTANT >>>>>>>>>>>>
==================================
LiveCharts is now multipatform (at least the design).
So this package contains nothing but the core of the library,
you might also need to install the desired platform.
For example if using wpf you must also install the wpf package.
------------------------------------
> Install-Package LiveCharts.Wpf
------------------------------------
For future updates, you will only need to update LiveCharts.Wpf (or any other platform)
forget about the core, all the platforms packages will have a dependency to core.
------------------------------------
> Update-Package LiveCharts.Wpf
------------------------------------
Happy coding!

Binary file not shown.

View File

@@ -0,0 +1,793 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>LiveCharts.WinForms</name>
</assembly>
<members>
<member name="T:LiveCharts.WinForms.AngularGauge">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.AngularGauge.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.AngularGauge.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.AngularGauge"/> class.
</summary>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.Base">
<summary>
Gets the base.
</summary>
<value>
The base.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.Wedge">
<summary>
Gets or sets the wedge.
</summary>
<value>
The wedge.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.TickStep">
<summary>
Gets or sets the tick step.
</summary>
<value>
The tick step.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.LabelsStep">
<summary>
Gets or sets the labels step.
</summary>
<value>
The labels step.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.FromValue">
<summary>
Gets or sets from value.
</summary>
<value>
From value.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.ToValue">
<summary>
Gets or sets to value.
</summary>
<value>
To value.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.Sections">
<summary>
Gets or sets the sections.
</summary>
<value>
The sections.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.Value">
<summary>
Gets or sets the value.
</summary>
<value>
The value.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.LabelFormatter">
<summary>
Gets or sets the label formatter.
</summary>
<value>
The label formatter.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.DisableAnimations">
<summary>
Gets or sets a value indicating whether [disable animations].
</summary>
<value>
<c>true</c> if [disable animations]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.TicksForeground">
<summary>
Gets or sets the ticks foreground.
</summary>
<value>
The ticks foreground.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.SectionsInnerRadius">
<summary>
Gets or sets the sections inner radius.
</summary>
<value>
The sections inner radius.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.NeedleFill">
<summary>
Gets or sets the needle fill.
</summary>
<value>
The needle fill.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.LabelsEffect">
<summary>
Gets or sets the labels effect.
</summary>
<value>
The labels effect.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.TicksStrokeThickness">
<summary>
Gets or sets the ticks stroke thickness.
</summary>
<value>
The ticks stroke thickness.
</value>
</member>
<member name="T:LiveCharts.WinForms.CartesianChart">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.CartesianChart.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.CartesianChart.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.CartesianChart"/> class.
</summary>
</member>
<member name="M:LiveCharts.WinForms.CartesianChart.Update(System.Boolean,System.Boolean)">
<summary>
Updates the specified restart view.
</summary>
<param name="restartView">if set to <c>true</c> [restart view].</param>
<param name="force">if set to <c>true</c> [force].</param>
</member>
<member name="E:LiveCharts.WinForms.CartesianChart.DataClick">
<summary>
Occurs when the users clicks any point in the chart
</summary>
</member>
<member name="E:LiveCharts.WinForms.CartesianChart.DataHover">
<summary>
Occurs when the users hovers over any point in the chart
</summary>
</member>
<member name="E:LiveCharts.WinForms.CartesianChart.UpdaterTick">
<summary>
Occurs every time the chart updates
</summary>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Base">
<summary>
Gets the base.
</summary>
<value>
The base.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.AxisY">
<summary>
Gets or sets the axis y.
</summary>
<value>
The axis y.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.AxisX">
<summary>
Gets or sets the axis x.
</summary>
<value>
The axis x.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.DefaultLegend">
<summary>
Gets or sets the default legend.
</summary>
<value>
The default legend.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Zoom">
<summary>
Gets or sets the zoom.
</summary>
<value>
The zoom.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Pan">
<summary>
Gets or sets the pan.
</summary>
<value>
The pan.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.LegendLocation">
<summary>
Gets or sets the legend location.
</summary>
<value>
The legend location.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Series">
<summary>
Gets or sets the series.
</summary>
<value>
The series.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.DisableAnimations">
<summary>
Gets or sets a value indicating whether [disable animations].
</summary>
<value>
<c>true</c> if [disable animations]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.DataTooltip">
<summary>
Gets or sets the data tooltip.
</summary>
<value>
The data tooltip.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Hoverable">
<summary>
Gets or sets a value indicating whether this <see cref="T:LiveCharts.WinForms.CartesianChart"/> is hoverable.
</summary>
<value>
<c>true</c> if hoverable; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollMode">
<summary>
Gets or sets the scroll mode.
</summary>
<value>
The scroll mode.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollHorizontalFrom">
<summary>
Gets or sets the scroll horizontal from.
</summary>
<value>
The scroll horizontal from.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollHorizontalTo">
<summary>
Gets or sets the scroll horizontal to.
</summary>
<value>
The scroll horizontal to.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollVerticalFrom">
<summary>
Gets or sets the scroll vertical from.
</summary>
<value>
The scroll vertical from.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollVerticalTo">
<summary>
Gets or sets the scroll vertical to.
</summary>
<value>
The scroll vertical to.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollBarFill">
<summary>
Gets or sets the scroll bar fill.
</summary>
<value>
The scroll bar fill.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Background">
<summary>
Gets or sets the background.
</summary>
<value>
The background.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.VisualElements">
<summary>
Gets or sets the visual elements.
</summary>
<value>
The visual elements.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.UpdaterState">
<summary>
Gets or sets the state of the updater.
</summary>
<value>
The state of the updater.
</value>
</member>
<member name="T:LiveCharts.WinForms.SolidGauge">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.SolidGauge.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.SolidGauge.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.SolidGauge"/> class.
</summary>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.Base">
<summary>
Gets the base.
</summary>
<value>
The base.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.Uses360Mode">
<summary>
Gets or sets a value indicating whether [uses360 mode].
</summary>
<value>
<c>true</c> if [uses360 mode]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.From">
<summary>
Gets or sets from.
</summary>
<value>
From.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.To">
<summary>
Gets or sets to.
</summary>
<value>
To.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.Value">
<summary>
Gets or sets the value.
</summary>
<value>
The value.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.InnerRadius">
<summary>
Gets or sets the inner radius.
</summary>
<value>
The inner radius.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.Stroke">
<summary>
Gets or sets the stroke.
</summary>
<value>
The stroke.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.StrokeThickness">
<summary>
Gets or sets the stroke thickness.
</summary>
<value>
The stroke thickness.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.ToColor">
<summary>
Gets or sets to color.
</summary>
<value>
To color.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FromColor">
<summary>
Gets or sets from color.
</summary>
<value>
From color.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.GaugeBackground">
<summary>
Gets or sets the gauge background.
</summary>
<value>
The gauge background.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.LabelFormatter">
<summary>
Gets or sets the label formatter.
</summary>
<value>
The label formatter.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.HighFontSize">
<summary>
Gets or sets the size of the high font.
</summary>
<value>
The size of the high font.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontSize">
<summary>
Gets or sets the size of the font.
</summary>
<value>
The size of the font.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontFamily">
<summary>
Gets or sets the font family.
</summary>
<value>
The font family.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontWeight">
<summary>
Gets or sets the font weight.
</summary>
<value>
The font weight.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontStyle">
<summary>
Gets or sets the font style.
</summary>
<value>
The font style.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontStretch">
<summary>
Gets or sets the font stretch.
</summary>
<value>
The font stretch.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.ForeGround">
<summary>
Gets or sets the fore ground.
</summary>
<value>
The fore ground.
</value>
</member>
<member name="T:LiveCharts.WinForms.GeoMap">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.GeoMap.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.GeoMap.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.GeoMap"/> class.
</summary>
</member>
<member name="E:LiveCharts.WinForms.GeoMap.LandClick">
<summary>
Occurs when [land click].
</summary>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.Base">
<summary>
Gets the base.
</summary>
<value>
The base.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.LanguagePack">
<summary>
Gets or sets the language pack.
</summary>
<value>
The language pack.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.DefaultLandFill">
<summary>
Gets or sets the default land fill.
</summary>
<value>
The default land fill.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.LandStrokeThickness">
<summary>
Gets or sets the land stroke thickness.
</summary>
<value>
The land stroke thickness.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.LandStroke">
<summary>
Gets or sets the land stroke.
</summary>
<value>
The land stroke.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.DisableAnimations">
<summary>
Gets or sets a value indicating whether [disable animations].
</summary>
<value>
<c>true</c> if [disable animations]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.Hoverable">
<summary>
Gets or sets a value indicating whether this <see cref="T:LiveCharts.WinForms.GeoMap"/> is hoverable.
</summary>
<value>
<c>true</c> if hoverable; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.HeatMap">
<summary>
Gets or sets the heat map.
</summary>
<value>
The heat map.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.GradientStopCollection">
<summary>
Gets or sets the gradient stop collection.
</summary>
<value>
The gradient stop collection.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.Source">
<summary>
Gets or sets the source.
</summary>
<value>
The source.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.EnableZoomingAndPanning">
<summary>
Gets or sets a value indicating whether [enable zooming and panning].
</summary>
<value>
<c>true</c> if [enable zooming and panning]; otherwise, <c>false</c>.
</value>
</member>
<member name="T:LiveCharts.WinForms.PieChart">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.PieChart.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.PieChart.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.PieChart"/> class.
</summary>
</member>
<member name="M:LiveCharts.WinForms.PieChart.Update(System.Boolean,System.Boolean)">
<summary>
Updates the specified restart view.
</summary>
<param name="restartView">if set to <c>true</c> [restart view].</param>
<param name="force">if set to <c>true</c> [force].</param>
</member>
<member name="E:LiveCharts.WinForms.PieChart.DataClick">
<summary>
Occurs when the users clicks any point in the chart
</summary>
</member>
<member name="E:LiveCharts.WinForms.PieChart.DataHover">
<summary>
Occurs when the users hovers over any point in the chart
</summary>
</member>
<member name="E:LiveCharts.WinForms.PieChart.UpdaterTick">
<summary>
Occurs every time the chart updates
</summary>
</member>
<member name="P:LiveCharts.WinForms.PieChart.AxisY">
<summary>
Gets or sets the axis y.
</summary>
<value>
The axis y.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.AxisX">
<summary>
Gets or sets the axis x.
</summary>
<value>
The axis x.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.DefaultLegend">
<summary>
Gets or sets the default legend.
</summary>
<value>
The default legend.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.Zoom">
<summary>
Gets or sets the zoom.
</summary>
<value>
The zoom.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.LegendLocation">
<summary>
Gets or sets the legend location.
</summary>
<value>
The legend location.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.Series">
<summary>
Gets or sets the series.
</summary>
<value>
The series.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.DisableAnimations">
<summary>
Gets or sets a value indicating whether [disable animations].
</summary>
<value>
<c>true</c> if [disable animations]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.DataTooltip">
<summary>
Gets or sets the data tooltip.
</summary>
<value>
The data tooltip.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.InnerRadius">
<summary>
Gets or sets the inner radius.
</summary>
<value>
The inner radius.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.StartingRotationAngle">
<summary>
Gets or sets the starting rotation angle.
</summary>
<value>
The starting rotation angle.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.UpdaterState">
<summary>
Gets or sets the state of the updater.
</summary>
<value>
The state of the updater.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.HoverPushOut">
<summary>
Gets or sets the units that a slice is pushed out when a user moves the mouse over data point.
</summary>
<value>
The hover push out.
</value>
</member>
</members>
</doc>

View File

@@ -0,0 +1,793 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>LiveCharts.WinForms</name>
</assembly>
<members>
<member name="T:LiveCharts.WinForms.AngularGauge">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.AngularGauge.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.AngularGauge.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.AngularGauge"/> class.
</summary>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.Base">
<summary>
Gets the base.
</summary>
<value>
The base.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.Wedge">
<summary>
Gets or sets the wedge.
</summary>
<value>
The wedge.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.TickStep">
<summary>
Gets or sets the tick step.
</summary>
<value>
The tick step.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.LabelsStep">
<summary>
Gets or sets the labels step.
</summary>
<value>
The labels step.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.FromValue">
<summary>
Gets or sets from value.
</summary>
<value>
From value.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.ToValue">
<summary>
Gets or sets to value.
</summary>
<value>
To value.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.Sections">
<summary>
Gets or sets the sections.
</summary>
<value>
The sections.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.Value">
<summary>
Gets or sets the value.
</summary>
<value>
The value.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.LabelFormatter">
<summary>
Gets or sets the label formatter.
</summary>
<value>
The label formatter.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.DisableAnimations">
<summary>
Gets or sets a value indicating whether [disable animations].
</summary>
<value>
<c>true</c> if [disable animations]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.TicksForeground">
<summary>
Gets or sets the ticks foreground.
</summary>
<value>
The ticks foreground.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.SectionsInnerRadius">
<summary>
Gets or sets the sections inner radius.
</summary>
<value>
The sections inner radius.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.NeedleFill">
<summary>
Gets or sets the needle fill.
</summary>
<value>
The needle fill.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.LabelsEffect">
<summary>
Gets or sets the labels effect.
</summary>
<value>
The labels effect.
</value>
</member>
<member name="P:LiveCharts.WinForms.AngularGauge.TicksStrokeThickness">
<summary>
Gets or sets the ticks stroke thickness.
</summary>
<value>
The ticks stroke thickness.
</value>
</member>
<member name="T:LiveCharts.WinForms.CartesianChart">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.CartesianChart.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.CartesianChart.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.CartesianChart"/> class.
</summary>
</member>
<member name="M:LiveCharts.WinForms.CartesianChart.Update(System.Boolean,System.Boolean)">
<summary>
Updates the specified restart view.
</summary>
<param name="restartView">if set to <c>true</c> [restart view].</param>
<param name="force">if set to <c>true</c> [force].</param>
</member>
<member name="E:LiveCharts.WinForms.CartesianChart.DataClick">
<summary>
Occurs when the users clicks any point in the chart
</summary>
</member>
<member name="E:LiveCharts.WinForms.CartesianChart.DataHover">
<summary>
Occurs when the users hovers over any point in the chart
</summary>
</member>
<member name="E:LiveCharts.WinForms.CartesianChart.UpdaterTick">
<summary>
Occurs every time the chart updates
</summary>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Base">
<summary>
Gets the base.
</summary>
<value>
The base.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.AxisY">
<summary>
Gets or sets the axis y.
</summary>
<value>
The axis y.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.AxisX">
<summary>
Gets or sets the axis x.
</summary>
<value>
The axis x.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.DefaultLegend">
<summary>
Gets or sets the default legend.
</summary>
<value>
The default legend.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Zoom">
<summary>
Gets or sets the zoom.
</summary>
<value>
The zoom.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Pan">
<summary>
Gets or sets the pan.
</summary>
<value>
The pan.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.LegendLocation">
<summary>
Gets or sets the legend location.
</summary>
<value>
The legend location.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Series">
<summary>
Gets or sets the series.
</summary>
<value>
The series.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.DisableAnimations">
<summary>
Gets or sets a value indicating whether [disable animations].
</summary>
<value>
<c>true</c> if [disable animations]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.DataTooltip">
<summary>
Gets or sets the data tooltip.
</summary>
<value>
The data tooltip.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Hoverable">
<summary>
Gets or sets a value indicating whether this <see cref="T:LiveCharts.WinForms.CartesianChart"/> is hoverable.
</summary>
<value>
<c>true</c> if hoverable; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollMode">
<summary>
Gets or sets the scroll mode.
</summary>
<value>
The scroll mode.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollHorizontalFrom">
<summary>
Gets or sets the scroll horizontal from.
</summary>
<value>
The scroll horizontal from.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollHorizontalTo">
<summary>
Gets or sets the scroll horizontal to.
</summary>
<value>
The scroll horizontal to.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollVerticalFrom">
<summary>
Gets or sets the scroll vertical from.
</summary>
<value>
The scroll vertical from.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollVerticalTo">
<summary>
Gets or sets the scroll vertical to.
</summary>
<value>
The scroll vertical to.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.ScrollBarFill">
<summary>
Gets or sets the scroll bar fill.
</summary>
<value>
The scroll bar fill.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.Background">
<summary>
Gets or sets the background.
</summary>
<value>
The background.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.VisualElements">
<summary>
Gets or sets the visual elements.
</summary>
<value>
The visual elements.
</value>
</member>
<member name="P:LiveCharts.WinForms.CartesianChart.UpdaterState">
<summary>
Gets or sets the state of the updater.
</summary>
<value>
The state of the updater.
</value>
</member>
<member name="T:LiveCharts.WinForms.SolidGauge">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.SolidGauge.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.SolidGauge.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.SolidGauge"/> class.
</summary>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.Base">
<summary>
Gets the base.
</summary>
<value>
The base.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.Uses360Mode">
<summary>
Gets or sets a value indicating whether [uses360 mode].
</summary>
<value>
<c>true</c> if [uses360 mode]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.From">
<summary>
Gets or sets from.
</summary>
<value>
From.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.To">
<summary>
Gets or sets to.
</summary>
<value>
To.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.Value">
<summary>
Gets or sets the value.
</summary>
<value>
The value.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.InnerRadius">
<summary>
Gets or sets the inner radius.
</summary>
<value>
The inner radius.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.Stroke">
<summary>
Gets or sets the stroke.
</summary>
<value>
The stroke.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.StrokeThickness">
<summary>
Gets or sets the stroke thickness.
</summary>
<value>
The stroke thickness.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.ToColor">
<summary>
Gets or sets to color.
</summary>
<value>
To color.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FromColor">
<summary>
Gets or sets from color.
</summary>
<value>
From color.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.GaugeBackground">
<summary>
Gets or sets the gauge background.
</summary>
<value>
The gauge background.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.LabelFormatter">
<summary>
Gets or sets the label formatter.
</summary>
<value>
The label formatter.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.HighFontSize">
<summary>
Gets or sets the size of the high font.
</summary>
<value>
The size of the high font.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontSize">
<summary>
Gets or sets the size of the font.
</summary>
<value>
The size of the font.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontFamily">
<summary>
Gets or sets the font family.
</summary>
<value>
The font family.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontWeight">
<summary>
Gets or sets the font weight.
</summary>
<value>
The font weight.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontStyle">
<summary>
Gets or sets the font style.
</summary>
<value>
The font style.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.FontStretch">
<summary>
Gets or sets the font stretch.
</summary>
<value>
The font stretch.
</value>
</member>
<member name="P:LiveCharts.WinForms.SolidGauge.ForeGround">
<summary>
Gets or sets the fore ground.
</summary>
<value>
The fore ground.
</value>
</member>
<member name="T:LiveCharts.WinForms.GeoMap">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.GeoMap.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.GeoMap.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.GeoMap"/> class.
</summary>
</member>
<member name="E:LiveCharts.WinForms.GeoMap.LandClick">
<summary>
Occurs when [land click].
</summary>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.Base">
<summary>
Gets the base.
</summary>
<value>
The base.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.LanguagePack">
<summary>
Gets or sets the language pack.
</summary>
<value>
The language pack.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.DefaultLandFill">
<summary>
Gets or sets the default land fill.
</summary>
<value>
The default land fill.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.LandStrokeThickness">
<summary>
Gets or sets the land stroke thickness.
</summary>
<value>
The land stroke thickness.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.LandStroke">
<summary>
Gets or sets the land stroke.
</summary>
<value>
The land stroke.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.DisableAnimations">
<summary>
Gets or sets a value indicating whether [disable animations].
</summary>
<value>
<c>true</c> if [disable animations]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.Hoverable">
<summary>
Gets or sets a value indicating whether this <see cref="T:LiveCharts.WinForms.GeoMap"/> is hoverable.
</summary>
<value>
<c>true</c> if hoverable; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.HeatMap">
<summary>
Gets or sets the heat map.
</summary>
<value>
The heat map.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.GradientStopCollection">
<summary>
Gets or sets the gradient stop collection.
</summary>
<value>
The gradient stop collection.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.Source">
<summary>
Gets or sets the source.
</summary>
<value>
The source.
</value>
</member>
<member name="P:LiveCharts.WinForms.GeoMap.EnableZoomingAndPanning">
<summary>
Gets or sets a value indicating whether [enable zooming and panning].
</summary>
<value>
<c>true</c> if [enable zooming and panning]; otherwise, <c>false</c>.
</value>
</member>
<member name="T:LiveCharts.WinForms.PieChart">
<summary>
</summary>
<seealso cref="T:System.Windows.Forms.Integration.ElementHost"/>
</member>
<member name="F:LiveCharts.WinForms.PieChart.WpfBase">
<summary>
The WPF base
</summary>
</member>
<member name="M:LiveCharts.WinForms.PieChart.#ctor">
<summary>
Initializes a new instance of the <see cref="T:LiveCharts.WinForms.PieChart"/> class.
</summary>
</member>
<member name="M:LiveCharts.WinForms.PieChart.Update(System.Boolean,System.Boolean)">
<summary>
Updates the specified restart view.
</summary>
<param name="restartView">if set to <c>true</c> [restart view].</param>
<param name="force">if set to <c>true</c> [force].</param>
</member>
<member name="E:LiveCharts.WinForms.PieChart.DataClick">
<summary>
Occurs when the users clicks any point in the chart
</summary>
</member>
<member name="E:LiveCharts.WinForms.PieChart.DataHover">
<summary>
Occurs when the users hovers over any point in the chart
</summary>
</member>
<member name="E:LiveCharts.WinForms.PieChart.UpdaterTick">
<summary>
Occurs every time the chart updates
</summary>
</member>
<member name="P:LiveCharts.WinForms.PieChart.AxisY">
<summary>
Gets or sets the axis y.
</summary>
<value>
The axis y.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.AxisX">
<summary>
Gets or sets the axis x.
</summary>
<value>
The axis x.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.DefaultLegend">
<summary>
Gets or sets the default legend.
</summary>
<value>
The default legend.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.Zoom">
<summary>
Gets or sets the zoom.
</summary>
<value>
The zoom.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.LegendLocation">
<summary>
Gets or sets the legend location.
</summary>
<value>
The legend location.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.Series">
<summary>
Gets or sets the series.
</summary>
<value>
The series.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.AnimationsSpeed">
<summary>
Gets or sets the animations speed.
</summary>
<value>
The animations speed.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.DisableAnimations">
<summary>
Gets or sets a value indicating whether [disable animations].
</summary>
<value>
<c>true</c> if [disable animations]; otherwise, <c>false</c>.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.DataTooltip">
<summary>
Gets or sets the data tooltip.
</summary>
<value>
The data tooltip.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.InnerRadius">
<summary>
Gets or sets the inner radius.
</summary>
<value>
The inner radius.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.StartingRotationAngle">
<summary>
Gets or sets the starting rotation angle.
</summary>
<value>
The starting rotation angle.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.UpdaterState">
<summary>
Gets or sets the state of the updater.
</summary>
<value>
The state of the updater.
</value>
</member>
<member name="P:LiveCharts.WinForms.PieChart.HoverPushOut">
<summary>
Gets or sets the units that a slice is pushed out when a user moves the mouse over data point.
</summary>
<value>
The hover push out.
</value>
</member>
</members>
</doc>

View File

@@ -0,0 +1,3 @@
param($installPath, $toolsPath, $package, $project)
$DTE.ItemOperations.Navigate("https://lvcharts.net/thanks/wpf")

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,3 @@
param($installPath, $toolsPath, $package, $project)
$DTE.ItemOperations.Navigate("https://lvcharts.net/thanks/wpf")

BIN
resource/anaylisys3.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

BIN
resource/main_icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

BIN
resource/open3.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

BIN
resource/pair3.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

BIN
resource/radar3.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

BIN
resource/result3.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

BIN
resource/trend3.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB