Fixed chart name repeat check error #183

This commit is contained in:
monitor1394
2022-02-21 21:30:33 +08:00
parent 5c2ea52118
commit c002ac071b
5 changed files with 41 additions and 6 deletions

View File

@@ -42,6 +42,7 @@
## branch-2.0 ## branch-2.0
* (2022.02.21) Fixed chart name repeat check error #183
* (2022.02.17) Fixed bug where axis split line might be displayed outside the coordinate system #181 * (2022.02.17) Fixed bug where axis split line might be displayed outside the coordinate system #181
* (2022.02.08) Fixed {d} formatter error when value is 0 * (2022.02.08) Fixed {d} formatter error when value is 0
* (2022.02.08) Fixed `YAxis` `AxisLabel`'s `onZero` does not work * (2022.02.08) Fixed `YAxis` `AxisLabel`'s `onZero` does not work

View File

@@ -42,6 +42,7 @@
## branch-2.0 ## branch-2.0
* (2022.02.21) 修复`Chart``chartName`重复检测问题 #183
* (2022.02.17) 修复`Axis``SplitLine`可能会显示在坐标系外的问题 #181 * (2022.02.17) 修复`Axis``SplitLine`可能会显示在坐标系外的问题 #181
* (2022.02.08) 修复数据全0时`{d}`显示不正确的问题 * (2022.02.08) 修复数据全0时`{d}`显示不正确的问题
* (2022.02.08) 修复`YAxis``AxisLabel``onZero`参数不生效的问题 * (2022.02.08) 修复`YAxis``AxisLabel``onZero`参数不生效的问题

View File

@@ -137,6 +137,12 @@ namespace XCharts
EditorGUILayout.PropertyField(serializedObject.FindProperty(filed)); EditorGUILayout.PropertyField(serializedObject.FindProperty(filed));
} }
} }
if (XChartsMgr.Instance.IsRepeatChartName(m_Chart, m_ChartName.stringValue))
{
EditorGUILayout.BeginHorizontal();
EditorGUILayout.HelpBox("chart name is repeated:" + m_ChartName.stringValue, MessageType.Error);
EditorGUILayout.EndHorizontal();
}
} }
BlockEnd(); BlockEnd();

View File

@@ -18,7 +18,7 @@ namespace XCharts
public static string CheckChart(BaseGraph chart) public static string CheckChart(BaseGraph chart)
{ {
if(chart == null) if (chart == null)
return string.Empty; return string.Empty;
if (chart is BaseChart) if (chart is BaseChart)
return CheckChart((BaseChart)chart); return CheckChart((BaseChart)chart);
@@ -28,7 +28,7 @@ namespace XCharts
public static string CheckChart(BaseChart chart) public static string CheckChart(BaseChart chart)
{ {
if(chart == null) if (chart == null)
return string.Empty; return string.Empty;
var sb = ChartHelper.sb; var sb = ChartHelper.sb;
sb.Length = 0; sb.Length = 0;
@@ -45,10 +45,10 @@ namespace XCharts
private static void CheckName(BaseChart chart, StringBuilder sb) private static void CheckName(BaseChart chart, StringBuilder sb)
{ {
if (string.IsNullOrEmpty(chart.chartName)) return; if (string.IsNullOrEmpty(chart.chartName)) return;
var list = XChartsMgr.Instance.GetCharts(chart.chartName); if (XChartsMgr.Instance.IsRepeatChartName(chart))
if (list.Count > 1)
{ {
sb.AppendFormat("warning:chart name is repeated: {0}\n", chart.chartName); var info = XChartsMgr.Instance.GetRepeatChartNameInfo(chart, chart.chartName);
sb.AppendFormat("warning:chart name is repeated: {0}\n{1}", chart.chartName, info);
} }
} }

View File

@@ -279,7 +279,7 @@ namespace XCharts
public List<BaseChart> GetCharts(string chartName) public List<BaseChart> GetCharts(string chartName)
{ {
if (string.IsNullOrEmpty(chartName)) return null; if (string.IsNullOrEmpty(chartName)) return null;
return m_ChartList.FindAll(chart => chartName.Equals(chartName)); return m_ChartList.FindAll(chart => chartName.Equals(chart.chartName));
} }
public void RemoveChart(string chartName) public void RemoveChart(string chartName)
@@ -299,6 +299,33 @@ namespace XCharts
return m_ChartList.Contains(chart); return m_ChartList.Contains(chart);
} }
public bool IsRepeatChartName(BaseChart chart, string chartName = null)
{
if(chartName == null)
chartName = chart.chartName;
if (string.IsNullOrEmpty(chartName))
return false;
foreach (var temp in m_ChartList)
{
if (temp != chart && chartName.Equals(temp.chartName))
return true;
}
return false;
}
public string GetRepeatChartNameInfo(BaseChart chart, string chartName)
{
if (string.IsNullOrEmpty(chartName))
return string.Empty;
string result = "";
foreach (var temp in m_ChartList)
{
if (temp != chart && chartName.Equals(temp.chartName))
result += ChartHelper.GetFullName(temp.transform) + "\n";
}
return result;
}
public static void RemoveAllChartObject() public static void RemoveAllChartObject()
{ {
if (Instance.m_ChartList.Count == 0) if (Instance.m_ChartList.Count == 0)