Example #1
0
 void editor_E_EditorValueChanging(wTreeNodeItem item, wEditorValueChangingArgs args)
 {
     if (E_TreeNodeEditorValueChanging != null)
     {
         E_TreeNodeEditorValueChanging(item, args);
     }
 }
Example #2
0
        /// <summary>
        /// 상속받은 에디터는 Value 를 수정한 뒤에는 이 함수를 호출해야 한다.
        /// </summary>
        /// <param name="oldValue"></param>
        /// <param name="newValue"></param>
        internal void OnEditorValueChanged(object oldValue, object newValue, bool callOnce = false)
        {
            if (_isValueChanged)
            {
                return;
            }
            if (callOnce)
            {
                _isValueChanged = true;
            }
            if (oldValue.Equals(newValue))
            {
                return;                           //editor value is not changed...
            }
            wEditorValueChangingArgs args = new wEditorValueChangingArgs(oldValue, newValue);

            if (E_EditorValueChanging != null)
            {
                E_EditorValueChanging(_itemToEdit, args);
            }
            if (args.IsCanceled)
            {
                if (E_EditorValueChangeCanceled != null)
                {
                    E_EditorValueChangeCanceled(ItemToEdit.OwnerNode, ItemToEdit);
                }
            }
            else
            {
                newValue = args.NewValue;

                if (oldValue.Equals(newValue) == false)
                {
                    _itemToEdit.SetValue(newValue);
                    _itemToEdit.OwnerNode.DrawBuffer();
                    DrawHandler.ReDrawTree(false);
                    if (E_EditorValueChanged != null)
                    {
                        E_EditorValueChanged(ItemToEdit, oldValue, newValue);
                    }
                }
                else
                {
                    if (E_EditorValueChangeCanceled != null)
                    {
                        E_EditorValueChangeCanceled(ItemToEdit.OwnerNode, ItemToEdit);
                    }
                }
            }
        }