internal void ClearArrayElement()
 {
     if (ValueType.IsArrayOrListType())
     {
         if (ValueType.IsArray)
         {
             Value = DrawerUtility.CreateInstance(ValueType);
         }
         else
         {
             ((IList)Value).Clear();
         }
     }
 }
        internal void RemoveArrayElementAtIndex(int index)
        {
            if (ValueType.IsArrayOrListType())
            {
                if (ValueType.IsArray)
                {
                    Array array = (Array)Value;
                    ArrayUtility.Remove(ref array, index);

                    Value = array;
                }
                else
                {
                    ((IList)Value).RemoveAt(index);
                }
            }
        }
        internal void AddArrayElement()
        {
            if (ValueType.IsArrayOrListType())
            {
                object element = DrawerUtility.CreateInstance(ValueType.GetElementTypeInArrayOrList());
                if (ValueType.IsArray)
                {
                    Array array = (Array)Value;
                    ArrayUtility.Add(ref array, element);

                    Value = array;
                }
                else
                {
                    ((IList)Value).Add(element);
                }
            }
        }
Example #4
0
        private void RefreshDrawer()
        {
            if (innerDrawer != null)
            {
                return;
            }
            if (Target != null && Value != null)
            {
                TypeDrawer typeDrawer = DrawerUtility.GetTypeDrawerInstance(ValueType);
                if (typeDrawer != null)
                {
                    typeDrawer.Label      = Label;
                    typeDrawer.ItemDrawer = this;
                    innerDrawer           = typeDrawer;
                }
                else
                {
                    InstanceDrawer instanceDrawer = null;
                    if (ValueType.IsArrayOrListType())
                    {
                        instanceDrawer = new ArrayDrawer(Value);
                    }
                    else if (ValueType.IsStructOrClassType())
                    {
                        instanceDrawer = new ObjectDrawer(Value);
                    }

                    if (instanceDrawer != null)
                    {
                        instanceDrawer.Header     = Label;
                        instanceDrawer.ItemDrawer = this;

                        instanceDrawer.IsShowInherit = ParentDrawer.IsShowInherit;
                        instanceDrawer.IsShowBox     = ParentDrawer.IsShowBox;

                        innerDrawer = instanceDrawer;
                    }
                }
            }
        }