// 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); } }
void VariableValuesChanged(object sender, FunctionValuesChangingEventArgs e) { if (TimesChanged != null) { TimesChanged(); } }
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); } }
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); } }
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); } } }
// 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; } }
private void Grid_ValuesChanged(object sender, FunctionValuesChangingEventArgs e) { RenderRequired = true; }
protected virtual void OnFunctionValuesChanged(FunctionValuesChangingEventArgs e) { }
private void ValuesChanged(object sender, FunctionValuesChangingEventArgs e) { themeIsDirty = true; base.RenderRequired = true; }
void TimeValuesChanged(object sender, FunctionValuesChangingEventArgs e) { if (TimesChanged != null) TimesChanged(); }