public ValueContainer Evaluate(IValueEnvironment env) { //TODO: Make it so no casting is needed DictionaryKeyValueObserver <string, ValueContainer> repeatVariables = ((Environment.ValueEnvironment)env).GetRange(Name); ValueContainer value = new ValueContainer(0); Action onValueChanged = () => { double sum = 0; foreach (ValueContainer item in repeatVariables.Where(v => !v.Inactive)) { sum += Convert.ToDouble(item.Value); } value.Value = sum; }; Action onCollectionChange = () => { foreach (ValueContainer item in repeatVariables) { item.ValueChanged += onValueChanged; } onValueChanged(); }; repeatVariables.FilterResultChanged += onCollectionChange; onCollectionChange(); return(value); }
public ValueContainer Evaluate(IValueEnvironment env) { //TODO: Make it so no casting is needed DictionaryKeyValueObserver<string, ValueContainer> repeatVariables = ((Environment.ValueEnvironment)env).GetRange(Name); ValueContainer value = new ValueContainer(0); Action onValueChanged = () => { int count = 0; double sum = 0; foreach (ValueContainer item in repeatVariables.Where(v => !v.Inactive)) { count++; sum += Convert.ToDouble(item.Value); } value.Value = count > 0 ? sum / count : 0; }; Action onCollectionChange = () => { foreach (ValueContainer item in repeatVariables) { item.ValueChanged += onValueChanged; } onValueChanged(); }; repeatVariables.FilterResultChanged += onCollectionChange; onCollectionChange(); return value; }
public FrameworkElement BuildForm(IValueEnvironment vEnv, ITypeEnvironment tEnv) { StackPanel sp = new StackPanel(); sp.Children.Add(Statement1.BuildForm(vEnv, tEnv)); sp.Children.Add(Statement2.BuildForm(vEnv, tEnv)); return(sp); }
public ValueContainer Evaluate(IValueEnvironment env) { ValueContainer a = Expr1.Evaluate(env); ValueContainer value = new ValueContainer(!Convert.ToBoolean(a.Value)); Action onValueChanged = () => value.Value = !Convert.ToBoolean(a.Value); a.ValueChanged += onValueChanged; return(value); }
public ValueContainer Evaluate(IValueEnvironment env) { ValueContainer a = Expr2.Evaluate(env); ValueContainer b = Expr3.Evaluate(env); ValueContainer value = new ValueContainer(Convert.ToBoolean(Expr1.Evaluate(env).Value) ? a.Value : b.Value); Action onValueChanged = () => value.Value = Convert.ToBoolean(Expr1.Evaluate(env).Value) ? a.Value : b.Value; a.ValueChanged += onValueChanged; b.ValueChanged += onValueChanged; return(value); }
public ValueContainer Evaluate(IValueEnvironment env) { ValueContainer a = Expr1.Evaluate(env); ValueContainer b = Expr2.Evaluate(env); ValueContainer value = new ValueContainer(Evaluate(a, b)); Action onValueChanged = () => value.Value = Evaluate(a, b); a.ValueChanged += onValueChanged; b.ValueChanged += onValueChanged; return(value); }
public FrameworkElement BuildForm(IValueEnvironment vEnv, ITypeEnvironment tEnv) { StackPanel sp = new StackPanel(); sp.Orientation = Orientation.Horizontal; sp.Children.Add(new Label() { Width = 200, Content = Text.Trim('\"') }); sp.Children.Add(Expression.BuildForm(tEnv).BuildElement(Expression.Evaluate(vEnv), true)); return(sp); }
public FrameworkElement BuildForm(IValueEnvironment vEnv, ITypeEnvironment tEnv) { vEnv.Clear(); tEnv.Clear(); StackPanel sPanel = new StackPanel(); sPanel.CanVerticallyScroll = true; sPanel.CanHorizontallyScroll = false; sPanel.Children.Add(Body.BuildForm(vEnv, tEnv)); return(new ScrollViewer() { Content = sPanel }); }
public FrameworkElement BuildForm(IValueEnvironment vEnv, ITypeEnvironment tEnv) { ValueContainer value = CheckExpression.Evaluate(vEnv); StackPanel sp = new StackPanel(); Action onValueChanged = () => { sp.Visibility = Convert.ToBoolean(value.Value) ? Visibility.Visible : Visibility.Collapsed; }; value.ValueChanged += onValueChanged; onValueChanged(); sp.Children.Add(IfTrueBody.BuildForm(vEnv, tEnv)); return(sp); }
public ValueContainer Evaluate(IValueEnvironment env) { if (!env.IsDeclared(Name)) { ValueContainer a = Value.Evaluate(env); ValueContainer value = new ValueContainer(a.Value); Action onValueChanged = () => value.Value = a.Value; a.ValueChanged += onValueChanged; env.Declare(Name, value); return(value); } return(env.GetDeclared(Name)); }
public FrameworkElement BuildForm(IValueEnvironment vEnv, ITypeEnvironment tEnv) { Button b = new Button() { Width = 200, Content = "Next" }; b.Click += (s, e) => { for (FrameworkElement fe = (FrameworkElement)b.Parent; fe != null; fe = (FrameworkElement)fe.Parent) { if (fe is Selector) { ((Selector)fe).SelectedIndex++; break; } } }; return b; }
public FrameworkElement BuildForm(IValueEnvironment vEnv, ITypeEnvironment tEnv) { Style s = new Style(); s.Setters.Add(new Setter(UIElement.VisibilityProperty, Visibility.Collapsed)); s.Setters.Add(new Setter(FrameworkElement.MarginProperty, new Thickness(0))); TabControl t = new TabControl() { ItemContainerStyle = s }; t.Margin = new Thickness(0); t.Padding = new Thickness(0); t.BorderThickness = new Thickness(0); t.Items.Add(Statement1.BuildForm(vEnv, tEnv)); t.Items.Add(Statement2.BuildForm(vEnv, tEnv)); return(t); }
public FrameworkElement BuildForm(IValueEnvironment vEnv, ITypeEnvironment tEnv) { Button b = new Button() { Width = 200, Content = "Next" }; b.Click += (s, e) => { for (FrameworkElement fe = (FrameworkElement)b.Parent; fe != null; fe = (FrameworkElement)fe.Parent) { if (fe is Selector) { ((Selector)fe).SelectedIndex++; break; } } }; return(b); }
public FrameworkElement BuildForm(IValueEnvironment vEnv, ITypeEnvironment tEnv) { IList <int> baseInstances = null; //TODO: Make it so no casting is needed Eval.Environment.ValueEnvironment vEnvExt = (Eval.Environment.ValueEnvironment)vEnv; Environment.TypeEnvironment tEnvExt = (Environment.TypeEnvironment)tEnv; //Need to execute the body atleast once to bring the variable into existance. Action <VarAccessEventArgs> onVarAccess = (args) => { baseInstances = args.Instances; args.SetVarInstance(0); }; vEnvExt.VarAccess += onVarAccess; tEnvExt.VarAccess += onVarAccess; Body.BuildForm(vEnv, tEnv); vEnvExt.VarAccess -= onVarAccess; tEnvExt.VarAccess -= onVarAccess; StackPanel sp = new StackPanel(); ValueContainer value = Expression.Evaluate(vEnv); value.ValueChanged += () => { Action <VarAccessEventArgs> baseInstancesEvent = (args) => args.SetVarBaseInstances(baseInstances); vEnvExt.VarAccess += baseInstancesEvent; tEnvExt.VarAccess += baseInstancesEvent; FillChildren(sp, Convert.ToInt32(value.Value), vEnvExt, tEnvExt); vEnvExt.VarAccess -= baseInstancesEvent; tEnvExt.VarAccess -= baseInstancesEvent; }; FillChildren(sp, Convert.ToInt32(value.Value), vEnvExt, tEnvExt); return(sp); }
public ValueContainer Evaluate(IValueEnvironment env) { return(evalExpr.Evaluate(env)); }
public ValueContainer Evaluate(IValueEnvironment env) { return(env.GetDeclared(Name)); }
public ValueContainer Evaluate(IValueEnvironment env) { return(new ValueContainer(Value)); }
public ValueContainer Evaluate(IValueEnvironment env) { return env.GetDeclared(Name); }
public ValueContainer Evaluate(IValueEnvironment env) { return evalExpr.Evaluate(env); }