mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-22 08:50:10 +00:00
3.0
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
using XCharts.Runtime;
|
||||
|
||||
namespace XCharts.Editor
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace XCharts.Editor
|
||||
{
|
||||
PropertyField("m_RadarType");
|
||||
PropertyField("m_RadarIndex");
|
||||
|
||||
|
||||
PropertyField("m_Symbol");
|
||||
PropertyField("m_LineStyle");
|
||||
PropertyField("m_ItemStyle");
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -17,6 +16,7 @@ namespace XCharts.Editor
|
||||
internal SerializedProperty baseProperty;
|
||||
internal SerializedProperty showProperty;
|
||||
internal List<HeaderMenuInfo> menus = new List<HeaderMenuInfo>();
|
||||
internal List<HeaderMenuInfo> serieDataMenus = new List<HeaderMenuInfo>();
|
||||
protected Dictionary<string, Type> m_CoordOptionsDic;
|
||||
protected List<string> m_CoordOptionsNames;
|
||||
private string m_DisplayName;
|
||||
@@ -62,12 +62,10 @@ namespace XCharts.Editor
|
||||
}
|
||||
|
||||
public virtual void OnEnable()
|
||||
{
|
||||
}
|
||||
{ }
|
||||
|
||||
public virtual void OnDisable()
|
||||
{
|
||||
}
|
||||
{ }
|
||||
|
||||
internal void OnInternalInspectorGUI()
|
||||
{
|
||||
@@ -76,12 +74,10 @@ namespace XCharts.Editor
|
||||
}
|
||||
|
||||
public virtual void OnInspectorGUI()
|
||||
{
|
||||
}
|
||||
{ }
|
||||
|
||||
protected virtual void DrawExtendeds()
|
||||
{
|
||||
}
|
||||
{ }
|
||||
|
||||
public virtual string GetDisplayTitle()
|
||||
{
|
||||
@@ -136,11 +132,11 @@ namespace XCharts.Editor
|
||||
{
|
||||
case SerializedPropertyType.Float:
|
||||
if (prop.floatValue < min)
|
||||
prop.floatValue = (float)min;
|
||||
prop.floatValue = (float) min;
|
||||
break;
|
||||
case SerializedPropertyType.Integer:
|
||||
if (prop.intValue < min)
|
||||
prop.intValue = (int)min;
|
||||
prop.intValue = (int) min;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -152,11 +148,11 @@ namespace XCharts.Editor
|
||||
{
|
||||
case SerializedPropertyType.Float:
|
||||
if (prop.floatValue > max)
|
||||
prop.floatValue = (float)max;
|
||||
prop.floatValue = (float) max;
|
||||
break;
|
||||
case SerializedPropertyType.Integer:
|
||||
if (prop.intValue > max)
|
||||
prop.intValue = (int)max;
|
||||
prop.intValue = (int) max;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -36,12 +35,11 @@ namespace XCharts.Editor
|
||||
}
|
||||
|
||||
public virtual void OnCustomInspectorGUI()
|
||||
{
|
||||
}
|
||||
{ }
|
||||
|
||||
private void OnExtraInspectorGUI()
|
||||
{
|
||||
foreach (var kv in Serie.extraComponentFieldNameDict)
|
||||
foreach (var kv in Serie.extraComponentMap)
|
||||
{
|
||||
var prop = FindProperty(kv.Value);
|
||||
if (prop.arraySize > 0)
|
||||
@@ -52,11 +50,11 @@ namespace XCharts.Editor
|
||||
private void PropertyFieldData()
|
||||
{
|
||||
m_DataFoldout = ChartEditorHelper.DrawHeader("Data", m_DataFoldout, false, null, null,
|
||||
new HeaderMenuInfo("Import ECharts Data", () =>
|
||||
{
|
||||
PraseExternalDataEditor.UpdateData(chart, serie, null);
|
||||
PraseExternalDataEditor.ShowWindow();
|
||||
}));
|
||||
new HeaderMenuInfo("Import ECharts Data", () =>
|
||||
{
|
||||
PraseExternalDataEditor.UpdateData(chart, serie, null);
|
||||
PraseExternalDataEditor.ShowWindow();
|
||||
}));
|
||||
if (!m_DataFoldout) return;
|
||||
EditorGUI.indentLevel++;
|
||||
var m_Datas = FindProperty("m_Data");
|
||||
@@ -75,7 +73,7 @@ namespace XCharts.Editor
|
||||
while (listSize > m_Datas.arraySize) m_Datas.arraySize++;
|
||||
while (listSize < m_Datas.arraySize) m_Datas.arraySize--;
|
||||
}
|
||||
if (listSize > 30)// && !XCSettings.editorShowAllListData)
|
||||
if (listSize > 30) // && !XCSettings.editorShowAllListData)
|
||||
{
|
||||
int num = listSize > 10 ? 10 : listSize;
|
||||
for (int i = 0; i < num; i++)
|
||||
@@ -117,69 +115,69 @@ namespace XCharts.Editor
|
||||
}
|
||||
var fieldCount = dimension + (showName ? 1 : 0);
|
||||
m_DataElementFoldout[index] = ChartEditorHelper.DrawHeader("SerieData " + index, flag, false, null,
|
||||
delegate (Rect drawRect)
|
||||
{
|
||||
//drawRect.width -= 2f;
|
||||
var maxX = drawRect.xMax;
|
||||
var currentWidth = drawRect.width;
|
||||
var lastX = drawRect.x;
|
||||
var lastWid = drawRect.width;
|
||||
var lastFieldWid = EditorGUIUtility.fieldWidth;
|
||||
var lastLabelWid = EditorGUIUtility.labelWidth;
|
||||
var serieData = m_Datas.GetArrayElementAtIndex(index);
|
||||
var sereName = serieData.FindPropertyRelative("m_Name");
|
||||
var data = serieData.FindPropertyRelative("m_Data");
|
||||
delegate(Rect drawRect)
|
||||
{
|
||||
//drawRect.width -= 2f;
|
||||
var maxX = drawRect.xMax;
|
||||
var currentWidth = drawRect.width;
|
||||
var lastX = drawRect.x;
|
||||
var lastWid = drawRect.width;
|
||||
var lastFieldWid = EditorGUIUtility.fieldWidth;
|
||||
var lastLabelWid = EditorGUIUtility.labelWidth;
|
||||
var serieData = m_Datas.GetArrayElementAtIndex(index);
|
||||
var sereName = serieData.FindPropertyRelative("m_Name");
|
||||
var data = serieData.FindPropertyRelative("m_Data");
|
||||
#if UNITY_2019_3_OR_NEWER
|
||||
var gap = 2;
|
||||
var namegap = 3;
|
||||
var gap = 2;
|
||||
var namegap = 3;
|
||||
#else
|
||||
var gap = 0;
|
||||
var namegap = 0;
|
||||
var gap = 0;
|
||||
var namegap = 0;
|
||||
#endif
|
||||
if (fieldCount <= 1)
|
||||
{
|
||||
while (2 > data.arraySize)
|
||||
if (fieldCount <= 1)
|
||||
{
|
||||
var value = data.arraySize == 0 ? index : 0;
|
||||
data.arraySize++;
|
||||
data.GetArrayElementAtIndex(data.arraySize - 1).floatValue = value;
|
||||
}
|
||||
SerializedProperty element = data.GetArrayElementAtIndex(1);
|
||||
var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15 + gap;
|
||||
drawRect.x = startX;
|
||||
drawRect.xMax = maxX;
|
||||
EditorGUI.PropertyField(drawRect, element, GUIContent.none);
|
||||
}
|
||||
else
|
||||
{
|
||||
var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15 + gap;
|
||||
var dataWidTotal = (currentWidth - (startX + 20.5f + 1));
|
||||
var dataWid = dataWidTotal / fieldCount;
|
||||
var xWid = dataWid - 2;
|
||||
for (int i = 0; i < dimension; i++)
|
||||
{
|
||||
var dataCount = i < 1 ? 2 : i + 1;
|
||||
while (dataCount > data.arraySize)
|
||||
while (2 > data.arraySize)
|
||||
{
|
||||
var value = data.arraySize == 0 ? index : 0;
|
||||
data.arraySize++;
|
||||
data.GetArrayElementAtIndex(data.arraySize - 1).floatValue = value;
|
||||
}
|
||||
drawRect.x = startX + i * xWid;
|
||||
drawRect.width = dataWid + 25;
|
||||
SerializedProperty element = data.GetArrayElementAtIndex(dimension <= 1 ? 1 : i);
|
||||
SerializedProperty element = data.GetArrayElementAtIndex(1);
|
||||
var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15 + gap;
|
||||
drawRect.x = startX;
|
||||
drawRect.xMax = maxX;
|
||||
EditorGUI.PropertyField(drawRect, element, GUIContent.none);
|
||||
}
|
||||
if (showName)
|
||||
else
|
||||
{
|
||||
drawRect.x = startX + (fieldCount - 1) * xWid;
|
||||
drawRect.width = dataWid + 40 + dimension * namegap - 2.5f;
|
||||
EditorGUI.PropertyField(drawRect, sereName, GUIContent.none);
|
||||
var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15 + gap;
|
||||
var dataWidTotal = (currentWidth - (startX + 20.5f + 1));
|
||||
var dataWid = dataWidTotal / fieldCount;
|
||||
var xWid = dataWid - 2;
|
||||
for (int i = 0; i < dimension; i++)
|
||||
{
|
||||
var dataCount = i < 1 ? 2 : i + 1;
|
||||
while (dataCount > data.arraySize)
|
||||
{
|
||||
var value = data.arraySize == 0 ? index : 0;
|
||||
data.arraySize++;
|
||||
data.GetArrayElementAtIndex(data.arraySize - 1).floatValue = value;
|
||||
}
|
||||
drawRect.x = startX + i * xWid;
|
||||
drawRect.width = dataWid + 25;
|
||||
SerializedProperty element = data.GetArrayElementAtIndex(dimension <= 1 ? 1 : i);
|
||||
EditorGUI.PropertyField(drawRect, element, GUIContent.none);
|
||||
}
|
||||
if (showName)
|
||||
{
|
||||
drawRect.x = startX + (fieldCount - 1) * xWid;
|
||||
drawRect.width = dataWid + 40 + dimension * namegap - 2.5f;
|
||||
EditorGUI.PropertyField(drawRect, sereName, GUIContent.none);
|
||||
}
|
||||
EditorGUIUtility.fieldWidth = lastFieldWid;
|
||||
EditorGUIUtility.labelWidth = lastLabelWid;
|
||||
}
|
||||
EditorGUIUtility.fieldWidth = lastFieldWid;
|
||||
EditorGUIUtility.labelWidth = lastLabelWid;
|
||||
}
|
||||
});
|
||||
});
|
||||
if (m_DataElementFoldout[index])
|
||||
{
|
||||
if (!(serie is ISimplifiedSerie))
|
||||
@@ -192,113 +190,53 @@ namespace XCharts.Editor
|
||||
EditorGUI.indentLevel++;
|
||||
var serieData = m_Datas.GetArrayElementAtIndex(index);
|
||||
var m_Name = serieData.FindPropertyRelative("m_Name");
|
||||
var m_Id = serieData.FindPropertyRelative("m_Id");
|
||||
var m_ParentId = serieData.FindPropertyRelative("m_ParentId");
|
||||
|
||||
var m_BaseInfo = serieData.FindPropertyRelative("m_BaseInfos");
|
||||
var m_Label = serieData.FindPropertyRelative("m_Labels");
|
||||
var m_ItemStyle = serieData.FindPropertyRelative("m_ItemStyles");
|
||||
var m_Emphasis = serieData.FindPropertyRelative("m_Emphases");
|
||||
var m_Symbol = serieData.FindPropertyRelative("m_Symbols");
|
||||
var m_LineStyle = serieData.FindPropertyRelative("m_LineStyles");
|
||||
var m_AreaStyle = serieData.FindPropertyRelative("m_AreaStyles");
|
||||
var m_TitleStyle = serieData.FindPropertyRelative("m_TitleStyles");
|
||||
|
||||
PropertyField(m_Name);
|
||||
PropertyField(m_Id);
|
||||
PropertyField(m_ParentId);
|
||||
if (serie.GetType().IsDefined(typeof(SerieDataExtraFieldAttribute), false))
|
||||
{
|
||||
var attribute = serie.GetType().GetAttribute<SerieDataExtraFieldAttribute>();
|
||||
foreach (var field in attribute.fields)
|
||||
{
|
||||
PropertyField(serieData.FindPropertyRelative(field));
|
||||
}
|
||||
}
|
||||
|
||||
var componentNum = m_BaseInfo.arraySize + m_Label.arraySize + m_ItemStyle.arraySize + m_Emphasis.arraySize
|
||||
+ m_Symbol.arraySize + m_LineStyle.arraySize + m_AreaStyle.arraySize;
|
||||
var title = "Component";
|
||||
if (componentNum == 0) title += " (None)";
|
||||
m_DataComponentFoldout = ChartEditorHelper.DrawHeader(title, m_DataComponentFoldout, false, null, null,
|
||||
new HeaderMenuInfo("Add BaseInfo", () =>
|
||||
serieDataMenus.Clear();
|
||||
if (serie.GetType().IsDefined(typeof(SerieDataExtraComponentAttribute), false))
|
||||
{
|
||||
serie.GetSerieData(index).GetOrAddComponent<SerieDataBaseInfo>();
|
||||
}, m_BaseInfo.arraySize == 0),
|
||||
new HeaderMenuInfo("Add ItemStyle", () =>
|
||||
{
|
||||
serie.GetSerieData(index).GetOrAddComponent<ItemStyle>();
|
||||
}, m_ItemStyle.arraySize == 0),
|
||||
new HeaderMenuInfo("Add Label", () =>
|
||||
{
|
||||
serie.GetSerieData(index).GetOrAddComponent<LabelStyle>();
|
||||
}, m_Label.arraySize == 0),
|
||||
new HeaderMenuInfo("Add Emphasis", () =>
|
||||
{
|
||||
serie.GetSerieData(index).GetOrAddComponent<Emphasis>();
|
||||
}, m_Emphasis.arraySize == 0),
|
||||
new HeaderMenuInfo("Add Symbol", () =>
|
||||
{
|
||||
serie.GetSerieData(index).GetOrAddComponent<SerieSymbol>();
|
||||
}, m_Symbol.arraySize == 0),
|
||||
new HeaderMenuInfo("Add LineStyle", () =>
|
||||
{
|
||||
serie.GetSerieData(index).GetOrAddComponent<LineStyle>();
|
||||
}, m_LineStyle.arraySize == 0),
|
||||
new HeaderMenuInfo("Add AreaStyle", () =>
|
||||
{
|
||||
serie.GetSerieData(index).GetOrAddComponent<AreaStyle>();
|
||||
}, m_AreaStyle.arraySize == 0),
|
||||
new HeaderMenuInfo("Add TitleStyle", () =>
|
||||
{
|
||||
serie.GetSerieData(index).GetOrAddComponent<TitleStyle>();
|
||||
}, m_TitleStyle.arraySize == 0),
|
||||
new HeaderMenuInfo("Remove BaseInfo", () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveComponent<SerieDataBaseInfo>();
|
||||
}, m_BaseInfo.arraySize > 0),
|
||||
new HeaderMenuInfo("Remove ItemStyle", () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveComponent<ItemStyle>();
|
||||
}, m_ItemStyle.arraySize > 0),
|
||||
new HeaderMenuInfo("Remove Label", () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveComponent<LabelStyle>();
|
||||
}, m_Label.arraySize > 0),
|
||||
new HeaderMenuInfo("Remove Emphasis", () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveComponent<Emphasis>();
|
||||
}, m_Emphasis.arraySize > 0),
|
||||
new HeaderMenuInfo("Remove Symbol", () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveComponent<SerieSymbol>();
|
||||
}, m_Symbol.arraySize > 0),
|
||||
new HeaderMenuInfo("Remove LineStyle", () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveComponent<LineStyle>();
|
||||
}, m_LineStyle.arraySize > 0),
|
||||
new HeaderMenuInfo("Remove AreaStyle", () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveComponent<AreaStyle>();
|
||||
}, m_AreaStyle.arraySize > 0),
|
||||
new HeaderMenuInfo("Remove TitleStyle", () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveComponent<TitleStyle>();
|
||||
}, m_TitleStyle.arraySize > 0),
|
||||
new HeaderMenuInfo("Remove All", () =>
|
||||
var attribute = serie.GetType().GetAttribute<SerieDataExtraComponentAttribute>();
|
||||
foreach (var type in attribute.types)
|
||||
{
|
||||
var size = serieData.FindPropertyRelative(SerieData.extraComponentMap[type]).arraySize;
|
||||
serieDataMenus.Add(new HeaderMenuInfo("Add " + type.Name, () =>
|
||||
{
|
||||
serie.GetSerieData(index).GetOrAddComponent(type);
|
||||
EditorUtility.SetDirty(chart);
|
||||
}, size == 0));
|
||||
}
|
||||
foreach (var type in attribute.types)
|
||||
{
|
||||
var size = serieData.FindPropertyRelative(SerieData.extraComponentMap[type]).arraySize;
|
||||
serieDataMenus.Add(new HeaderMenuInfo("Remove " + type.Name, () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveComponent(type);
|
||||
EditorUtility.SetDirty(chart);
|
||||
}, size > 0));
|
||||
}
|
||||
}
|
||||
serieDataMenus.Add(new HeaderMenuInfo("Remove All", () =>
|
||||
{
|
||||
serie.GetSerieData(index).RemoveAllComponent();
|
||||
}, componentNum > 0));
|
||||
}, true));
|
||||
m_DataComponentFoldout = ChartEditorHelper.DrawHeader("Component", m_DataComponentFoldout, false, null, null, serieDataMenus);
|
||||
if (m_DataComponentFoldout)
|
||||
{
|
||||
if (m_BaseInfo.arraySize > 0)
|
||||
PropertyField(m_BaseInfo.GetArrayElementAtIndex(0));
|
||||
if (m_Label.arraySize > 0)
|
||||
PropertyField(m_Label.GetArrayElementAtIndex(0));
|
||||
if (m_ItemStyle.arraySize > 0)
|
||||
PropertyField(m_ItemStyle.GetArrayElementAtIndex(0));
|
||||
if (m_Emphasis.arraySize > 0)
|
||||
PropertyField(m_Emphasis.GetArrayElementAtIndex(0));
|
||||
if (m_Symbol.arraySize > 0)
|
||||
PropertyField(m_Symbol.GetArrayElementAtIndex(0));
|
||||
if (m_LineStyle.arraySize > 0)
|
||||
PropertyField(m_LineStyle.GetArrayElementAtIndex(0));
|
||||
if (m_AreaStyle.arraySize > 0)
|
||||
PropertyField(m_AreaStyle.GetArrayElementAtIndex(0));
|
||||
if (m_TitleStyle.arraySize > 0)
|
||||
PropertyField(m_TitleStyle.GetArrayElementAtIndex(0));
|
||||
foreach (var kv in SerieData.extraComponentMap)
|
||||
{
|
||||
var prop = serieData.FindPropertyRelative(kv.Value);
|
||||
if (prop.arraySize > 0)
|
||||
PropertyField(prop.GetArrayElementAtIndex(0));
|
||||
}
|
||||
}
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine.Assertions;
|
||||
using UnityEditor;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using UnityEditor;
|
||||
using UnityEngine.Assertions;
|
||||
using XCharts.Runtime;
|
||||
|
||||
namespace XCharts.Editor
|
||||
@@ -22,7 +21,6 @@ namespace XCharts.Editor
|
||||
List<SerieBaseEditor> m_Editors;
|
||||
private bool m_SerieFoldout;
|
||||
|
||||
|
||||
public SerieListEditor(BaseChartEditor editor)
|
||||
{
|
||||
Assert.IsNotNull(editor);
|
||||
@@ -136,7 +134,7 @@ namespace XCharts.Editor
|
||||
|
||||
if (!m_EditorTypes.TryGetValue(settingsType, out editorType))
|
||||
editorType = typeof(SerieBaseEditor);
|
||||
var editor = (SerieBaseEditor)Activator.CreateInstance(editorType);
|
||||
var editor = (SerieBaseEditor) Activator.CreateInstance(editorType);
|
||||
editor.Init(chart, serie, property, m_BaseEditor);
|
||||
editor.menus.Clear();
|
||||
editor.menus.Add(new HeaderMenuInfo("Clone", () =>
|
||||
@@ -176,7 +174,7 @@ namespace XCharts.Editor
|
||||
var attribute = editor.serie.GetType().GetAttribute<SerieExtraComponentAttribute>();
|
||||
foreach (var type in attribute.types)
|
||||
{
|
||||
var size = editor.FindProperty(Serie.extraComponentFieldNameDict[type]).arraySize;
|
||||
var size = editor.FindProperty(Serie.extraComponentMap[type]).arraySize;
|
||||
editor.menus.Add(new HeaderMenuInfo("Add " + type.Name, () =>
|
||||
{
|
||||
editor.serie.AddExtraComponent(type);
|
||||
@@ -187,7 +185,7 @@ namespace XCharts.Editor
|
||||
}
|
||||
foreach (var type in attribute.types)
|
||||
{
|
||||
var size = editor.FindProperty(Serie.extraComponentFieldNameDict[type]).arraySize;
|
||||
var size = editor.FindProperty(Serie.extraComponentMap[type]).arraySize;
|
||||
editor.menus.Add(new HeaderMenuInfo("Remove " + type.Name, () =>
|
||||
{
|
||||
editor.serie.RemoveExtraComponent(type);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
using XCharts.Runtime;
|
||||
|
||||
namespace XCharts.Editor
|
||||
|
||||
Reference in New Issue
Block a user