//ADD NUMBERS //Adds a stack panel for numeric sliders private void AddNumbers() { //COLLAPSE SLIDERS //Collapse Sliders expander if no sliders are connected if (!RadicalVM.NumVars.Any()) { this.SlidersExpander.Visibility = Visibility.Collapsed; return; } //GROUP VARIABLE CONTROL //stackpanel StackPanel groupControls = new StackPanel(); groupControls.Background = (SolidColorBrush)this.FindResource("PrimaryHueDarkBrush"); //expander Expander groupControlMenu = new Expander(); groupControlMenu.Background = (SolidColorBrush)this.FindResource("BackgroundHueDarkBrush"); groupControlMenu.IsExpanded = true; groupControlMenu.Header = Header2Formatting("Group Variable Control"); groupControlMenu.Content = groupControls; this.Sliders.Children.Add(groupControlMenu); //Add descriptive control labels groupControls.Children.Add(new VariableHeaderControl()); //Add group controls for slider direction GroupVariableControl groupControl = new GroupVariableControl(new GroupVarVM(this.RadicalVM, (int)(Direction.None))); this.GroupVars.Add(groupControl); groupControl.GroupControlName.Text = "All Variables"; groupControls.Children.Add(groupControl); //Border separator this.Sliders.Children.Add(this.Separator()); //INDIVIDUAL VARIBALE CONTROL //Stack Panel StackPanel individualControls = new StackPanel(); individualControls.Background = (SolidColorBrush)this.FindResource("PrimaryHueDarkBrush"); //Expander Expander individualControlMenu = new Expander(); individualControlMenu.Background = (SolidColorBrush)this.FindResource("BackgroundHueDarkBrush"); individualControlMenu.Header = Header2Formatting("Single Variable Control"); individualControlMenu.Content = individualControls; this.Sliders.Children.Add(individualControlMenu); //Add descriptive control labels individualControls.Children.Add(new VariableHeaderControl()); //Add individual slider controls foreach (VarVM var in RadicalVM.NumVars) { individualControls.Children.Add(new VariableControl(var)); } }
//ADD GEOMETRIES //Adds a nested stack panel for geometries and their control point variables private void AddGeometries() { //COLLAPSE GEOMETRIES //Collapse Geometries expander if no geometries are connected if (!RadicalVM.GeoVars.Any()) { this.GeometriesExpander.Visibility = Visibility.Collapsed; return; } int geoIndex = 0; foreach (List <VarVM> geometry in RadicalVM.GeoVars) { //SINGLE GEOMETRY //Stack Panel StackPanel variableMenus = new StackPanel(); variableMenus.Background = (SolidColorBrush)this.FindResource("PrimaryHueDarkBrush"); //Expander Expander singleGeo = new Expander(); singleGeo.Background = (SolidColorBrush)this.FindResource("BackgroundHueMidBrush"); singleGeo.Header = Header1Formatting(geometry[geoIndex].Name.Split('.')[0]); geoIndex++; singleGeo.Content = variableMenus; this.Geometries.Children.Add(singleGeo); //Border variableMenus.Children.Add(this.Separator()); //GROUP VARIABLE CONTROL //Stack Panel StackPanel groupControls = new StackPanel(); groupControls.Background = (SolidColorBrush)this.FindResource("PrimaryHueDarkBrush"); //Expander Expander groupControlMenu = new Expander(); groupControlMenu.IsExpanded = true; groupControlMenu.Header = Header2Formatting("Group Variable Control"); groupControlMenu.Background = (SolidColorBrush)this.FindResource("BackgroundHueDarkBrush"); //groupControlMenu.Foreground = (SolidColorBrush)this.FindResource("BackgroundHueDarkSubtextForegroundBrush"); groupControlMenu.Content = groupControls; variableMenus.Children.Add(groupControlMenu); //Add descriptive control labels groupControls.Children.Add(new VariableHeaderControl()); //Add group controls for X, Y, and Z directions GroupVariableControl groupControlX = new GroupVariableControl(new GroupVarVM(this.RadicalVM, (int)(Direction.X), geoIndex - 1)); this.GroupVars.Add(groupControlX); GroupVariableControl groupControlY = new GroupVariableControl(new GroupVarVM(this.RadicalVM, (int)(Direction.Y), geoIndex - 1)); this.GroupVars.Add(groupControlY); GroupVariableControl groupControlZ = new GroupVariableControl(new GroupVarVM(this.RadicalVM, (int)(Direction.Z), geoIndex - 1)); this.GroupVars.Add(groupControlZ); groupControlX.GroupControlName.Text = "X Variables"; groupControlY.GroupControlName.Text = "Y Variables"; groupControlZ.GroupControlName.Text = "Z Variables"; groupControls.Children.Add(groupControlX); groupControls.Children.Add(groupControlY); groupControls.Children.Add(groupControlZ); //Border separator variableMenus.Children.Add(this.Separator()); //INDIVIDUAL VARIBALE CONTROL //Stack Panel StackPanel individualControls = new StackPanel(); individualControls.Background = (SolidColorBrush)this.FindResource("PrimaryHueDarkBrush"); //Expander Expander individualControlMenu = new Expander(); individualControlMenu.Header = Header2Formatting("Single Variable Control"); individualControlMenu.Content = individualControls; individualControlMenu.Background = (SolidColorBrush)this.FindResource("BackgroundHueDarkBrush"); variableMenus.Children.Add(individualControlMenu); //Add descriptive control labels individualControls.Children.Add(new VariableHeaderControl()); //Add individual point controls in all directions foreach (VarVM var in geometry) { VariableControl vc = new VariableControl(var); vc.Background = (SolidColorBrush)this.FindResource("PrimaryHueDarkBrush"); individualControls.Children.Add(vc); } } }