Пример #1
0
        // TODO: make it ValuesChanged
        private void FunctionValuesValuesChanged(object sender, MultiDimensionalArrayChangingEventArgs args)
        {
            var e = args;

            //update dependend arrays
            var array = (MultiDimensionalArray)sender;
            //it this OK?
            IVariable variable = GetVariableForArray(array);

            if (variable.IsIndependent)
            {
                ResizeDependendFunctionValuesForArgument(variable, e.Action, args.Index, args.OldIndex, e.Shape[0]);
            }

            if (!FireEvents) // don't send up
            {
                return;
            }

            //raise event to the outside world if the store is consistent.
            if (FunctionValuesChanged != null)
            {
                FunctionValuesChangingEventArgs valuesChangedEventArgs = GetValuesChangedEventArgs(e, variable);

                FunctionValuesChanged(this, valuesChangedEventArgs);
            }
        }
Пример #2
0
 void VariableValuesChanged(object sender, FunctionValuesChangingEventArgs e)
 {
     if (TimesChanged != null)
     {
         TimesChanged();
     }
 }
 void VariableValuesChanged(object sender, FunctionValuesChangingEventArgs e)
 {
     if (TimesChanged != null)
     {
         TimesChanged();
     }
 }
Пример #4
0
        private void StoreValuesChanging(object sender, FunctionValuesChangingEventArgs e)
        {
            if (e.Function == this)
            {
                OnFunctionValuesChanging(e);
            }

            if (IsIndependent && e.Function != this)
            {
                return; // no bubbling
            }

            if (ValuesChanging != null)
            {
                ValuesChanging(e.Function, e);
            }
        }
Пример #5
0
        private void Store_ValuesChanged(object sender, FunctionValuesChangingEventArgs e)
        {
            if ((e.Function == this))
            {
                //do handle the change locally
                OnFunctionValuesChanged(e);
                //but don't 'publish' it
                if (!skipObserverNotification)
                {
                    NotifyObserversOnFunctionValuesChanged();
                }
            }

            if (ValuesChanged != null && (!IsIndependent || e.Function == this))
            {
                // bubble event
                ValuesChanged(e.Function, e);
            }
        }
Пример #6
0
        void parent_ValuesChanged(object sender, FunctionValuesChangingEventArgs e)
        {
            if (ValuesChanged != null)
            {
                // reset everything if we have too complicated change (argument is being changed or values being added / removed)
                if (e.Function == null ||
                    e.Function.IsIndependent ||
                    e.Action != NotifyCollectionChangeAction.Replace ||
                    Arguments.Count != e.Function.Arguments.Count)    //reduce filter
                {
                    ValuesChanged(this, new FunctionValuesChangingEventArgs {
                        Action = NotifyCollectionChangeAction.Reset
                    });
                }
                else
                {
                    var filteredVariable = GetFilteredVariable((IVariable)e.Function);
                    var stride           = filteredVariable.Values.Stride;
                    var indexInChild     = GetComponentValueIndexInChildComponent(e.MultiDimensionalIndex, stride);

                    if (indexInChild == -1)
                    {
                        return; // out of filtered arguments domain
                    }

                    var args = new FunctionValuesChangingEventArgs
                    {
                        Action   = e.Action,
                        Cancel   = e.Cancel,
                        Function = filteredVariable,
                        Index    = indexInChild,
                        Items    = e.Items,
                        Shape    = e.Shape,
                        Stride   = stride
                    };
                    ValuesChanged(this, args);
                }
            }
        }
Пример #7
0
        // TODO: make it ValuesChanging
        private void FunctionValuesValuesChanging(object sender, MultiDimensionalArrayChangingEventArgs args)
        {
            if (!FireEvents) // don't send up
            {
                return;
            }

            var       e        = args;
            var       array    = (MultiDimensionalArray)sender;
            IVariable variable = GetVariableForArray(array);

            if (FunctionValuesChanging != null)
            {
                //todo handle/bubble event the complex
                FunctionValuesChangingEventArgs valuesChangedEventArgs = GetValuesChangedEventArgs(e, variable);

                FunctionValuesChanging(this, valuesChangedEventArgs);

                args.Items  = valuesChangedEventArgs.Items;
                args.Index  = valuesChangedEventArgs.Index;
                args.Cancel = valuesChangedEventArgs.Cancel;
            }
        }
Пример #8
0
 private void Grid_ValuesChanged(object sender, FunctionValuesChangingEventArgs e)
 {
     RenderRequired = true;
 }
Пример #9
0
 protected virtual void OnFunctionValuesChanged(FunctionValuesChangingEventArgs e)
 {
 }
Пример #10
0
 private void ValuesChanged(object sender, FunctionValuesChangingEventArgs e)
 {
     themeIsDirty = true;
     base.RenderRequired = true;
 }
Пример #11
0
 void TimeValuesChanged(object sender, FunctionValuesChangingEventArgs e)
 {
     if (TimesChanged != null)
         TimesChanged();
 }