| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | 
							- using System;
 
- using System.Collections.Generic;
 
- using UnityEditor;
 
- using UnityEngine;
 
- using UnityEngine.Assertions;
 
- using XCharts.Runtime;
 
- namespace XCharts.Editor
 
- {
 
-     public class SerieBaseEditor
 
-     {
 
-         internal BaseChart chart { get; private set; }
 
-         internal Serie serie { get; private set; }
 
-         //Editor m_Inspector;
 
-         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;
 
-         internal void Init(BaseChart chart, Serie target, SerializedProperty property, UnityEditor.Editor inspector)
 
-         {
 
-             this.chart = chart;
 
-             this.serie = target;
 
-             this.baseProperty = property;
 
-             m_DisplayName = string.Format("Serie {0}: {1}", serie.index, serie.GetType().Name);
 
-             //m_Inspector = inspector;
 
-             showProperty = baseProperty.FindPropertyRelative("m_Show");
 
-             if (showProperty == null)
 
-                 showProperty = baseProperty.FindPropertyRelative("m_Enable");
 
-             OnEnable();
 
-             if (serie.GetType().IsDefined(typeof(CoordOptionsAttribute), false))
 
-             {
 
-                 var attribute = serie.GetType().GetAttribute<CoordOptionsAttribute>();
 
-                 m_CoordOptionsDic = new Dictionary<string, Type>();
 
-                 m_CoordOptionsNames = new List<string>();
 
-                 if (attribute.type0 != null)
 
-                 {
 
-                     m_CoordOptionsDic[attribute.type0.Name] = attribute.type0;
 
-                     m_CoordOptionsNames.Add(attribute.type0.Name);
 
-                 }
 
-                 if (attribute.type1 != null)
 
-                 {
 
-                     m_CoordOptionsDic[attribute.type1.Name] = attribute.type1;
 
-                     m_CoordOptionsNames.Add(attribute.type1.Name);
 
-                 }
 
-                 if (attribute.type2 != null)
 
-                 {
 
-                     m_CoordOptionsDic[attribute.type2.Name] = attribute.type2;
 
-                     m_CoordOptionsNames.Add(attribute.type2.Name);
 
-                 }
 
-                 if (attribute.type3 != null)
 
-                 {
 
-                     m_CoordOptionsDic[attribute.type3.Name] = attribute.type3;
 
-                     m_CoordOptionsNames.Add(attribute.type3.Name);
 
-                 }
 
-             }
 
-         }
 
-         public virtual void OnEnable()
 
-         { }
 
-         public virtual void OnDisable()
 
-         { }
 
-         internal void OnInternalInspectorGUI()
 
-         {
 
-             OnInspectorGUI();
 
-             EditorGUILayout.Space();
 
-         }
 
-         public virtual void OnInspectorGUI()
 
-         { }
 
-         protected virtual void DrawExtendeds()
 
-         { }
 
-         public virtual string GetDisplayTitle()
 
-         {
 
-             // var title = string.Format("serie {0}: {1}", serie.index, serie.GetType().Name);
 
-             // return ObjectNames.NicifyVariableName(title);
 
-             return m_DisplayName;
 
-         }
 
-         internal SerializedProperty FindProperty(string path)
 
-         {
 
-             return baseProperty.FindPropertyRelative(path);
 
-         }
 
-         protected SerializedProperty PropertyField(string path)
 
-         {
 
-             Assert.IsNotNull(path);
 
-             var property = FindProperty(path);
 
-             Assert.IsNotNull(property, "Can't find:" + path);
 
-             var title = ChartEditorHelper.GetContent(property.displayName);
 
-             PropertyField(property, title);
 
-             return property;
 
-         }
 
-         protected void PropertyField(SerializedProperty property)
 
-         {
 
-             Assert.IsNotNull(property);
 
-             var title = ChartEditorHelper.GetContent(property.displayName);
 
-             PropertyField(property, title);
 
-         }
 
-         protected void PropertyField(SerializedProperty property, GUIContent title)
 
-         {
 
-             EditorGUILayout.PropertyField(property, title);
 
-         }
 
-         protected void PropertyListField(string relativePropName, bool showOrder = true)
 
-         {
 
-             //TODO:
 
-             PropertyField(relativePropName);
 
-         }
 
-         protected void PropertyTwoFiled(string relativePropName)
 
-         {
 
-             var m_DrawRect = GUILayoutUtility.GetRect(1f, 17f);
 
-             var prop = FindProperty(relativePropName);
 
-             ChartEditorHelper.MakeTwoField(ref m_DrawRect, m_DrawRect.width, prop, prop.displayName);
 
-         }
 
-         protected void PropertyFieldLimitMin(string relativePropName, double min)
 
-         {
 
-             var prop = PropertyField(relativePropName);
 
-             switch (prop.propertyType)
 
-             {
 
-                 case SerializedPropertyType.Float:
 
-                     if (prop.floatValue < min)
 
-                         prop.floatValue = (float) min;
 
-                     break;
 
-                 case SerializedPropertyType.Integer:
 
-                     if (prop.intValue < min)
 
-                         prop.intValue = (int) min;
 
-                     break;
 
-             }
 
-         }
 
-         protected void PropertyFieldLimitMax(string relativePropName, int max)
 
-         {
 
-             var prop = PropertyField(relativePropName);
 
-             switch (prop.propertyType)
 
-             {
 
-                 case SerializedPropertyType.Float:
 
-                     if (prop.floatValue > max)
 
-                         prop.floatValue = (float) max;
 
-                     break;
 
-                 case SerializedPropertyType.Integer:
 
-                     if (prop.intValue > max)
 
-                         prop.intValue = (int) max;
 
-                     break;
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |