private void btn_OK_Click(object sender, RoutedEventArgs e) { // transfer settings to node if (this.node_current != null) { List <FlowNetworkCalcRule> rules_to_transfer = new List <FlowNetworkCalcRule>(); int size_FW = this.suffix_FW_Op.Count; int size_BW = this.suffix_BW_Op.Count; for (int i = 0; i < size_FW; i++) { if (this.operators_FW[i].SelectedItem == null) { continue; } if (this.operators_FW[i].SelectedItem.ToString() == "NoNe") { continue; } rules_to_transfer.Add(new FlowNetworkCalcRule { Direction = FlowNetworkCalcDirection.FORWARD, Suffix_Operands = this.suffix_FW_Op[i].Text, Suffix_Result = this.suffix_FW_Res[i].Text, Operator = FlowNetworkCalcRule.StringToOperator(this.operators_FW[i].SelectedItem.ToString()) }); } for (int i = 0; i < size_BW; i++) { if (this.operators_BW[i].SelectedItem == null) { continue; } if (this.operators_BW[i].SelectedItem.ToString() == "NoNe") { continue; } rules_to_transfer.Add(new FlowNetworkCalcRule { Direction = FlowNetworkCalcDirection.BACKWARD, Suffix_Operands = this.suffix_BW_Op[i].Text, Suffix_Result = this.suffix_BW_Res[i].Text, Operator = FlowNetworkCalcRule.StringToOperator(this.operators_BW[i].SelectedItem.ToString()) }); } this.node_current.CalculationRules = rules_to_transfer; } // done this.DialogResult = true; this.Close(); }
private void InitContent() { if (this.main_grid == null) { return; } if (this.node_current == null) { return; } List <string> operators = new List <string> { "NoNe", "+", "-", "*", "/", "Min", "Max", ":=" }; this.btn_OK.Click += btn_OK_Click; int counter_F = 0; int counter_B = 0; this.suffix_FW_Op = new List <TextBox>(); this.suffix_BW_Op = new List <TextBox>(); this.operators_FW = new List <ComboBox>(); this.operators_BW = new List <ComboBox>(); this.suffix_FW_Res = new List <TextBox>(); this.suffix_BW_Res = new List <TextBox>(); // get info from node, if available if (this.node_current.CalculationRules != null) { foreach (FlowNetworkCalcRule rule in this.node_current.CalculationRules) { // iteration check if (counter_F > NR_ENTRIES_MAX - 1 && rule.Direction == FlowNetworkCalcDirection.FORWARD) { continue; } if (counter_B > NR_ENTRIES_MAX - 1 && rule.Direction == FlowNetworkCalcDirection.BACKWARD) { continue; } TextBox tb = new TextBox(); tb.Width = 50; tb.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; tb.VerticalAlignment = System.Windows.VerticalAlignment.Center; tb.Style = (Style)tb.TryFindResource("CoordinateInput"); tb.Text = rule.Suffix_Operands; Grid.SetColumn(tb, (rule.Direction == FlowNetworkCalcDirection.FORWARD) ? 1 : 4); Grid.SetRow(tb, (rule.Direction == FlowNetworkCalcDirection.FORWARD) ? counter_F + 2 : counter_B + 2); this.main_grid.Children.Add(tb); // -- ComboBox cb = new ComboBox(); cb.Margin = new Thickness(2, 2, 5, 2); cb.ItemsSource = operators; cb.SelectedItem = FlowNetworkCalcRule.OperatorToString(rule.Operator); Grid.SetColumn(cb, (rule.Direction == FlowNetworkCalcDirection.FORWARD) ? 2 : 5); Grid.SetRow(cb, (rule.Direction == FlowNetworkCalcDirection.FORWARD) ? counter_F + 2 : counter_B + 2); this.main_grid.Children.Add(cb); // -- TextBox tb_1 = new TextBox(); tb_1.Width = 50; tb_1.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; tb_1.VerticalAlignment = System.Windows.VerticalAlignment.Center; tb_1.Style = (Style)tb_1.TryFindResource("CoordinateInput"); tb_1.Text = rule.Suffix_Result; Grid.SetColumn(tb_1, (rule.Direction == FlowNetworkCalcDirection.FORWARD) ? 3 : 6); Grid.SetRow(tb_1, (rule.Direction == FlowNetworkCalcDirection.FORWARD) ? counter_F + 2 : counter_B + 2); this.main_grid.Children.Add(tb_1); // save and count if (rule.Direction == FlowNetworkCalcDirection.FORWARD) { counter_F++; this.suffix_FW_Op.Add(tb); this.operators_FW.Add(cb); this.suffix_FW_Res.Add(tb_1); } else { counter_B++; this.suffix_BW_Op.Add(tb); this.operators_BW.Add(cb); this.suffix_BW_Res.Add(tb_1); } } } // complete list, if necessary for (int i = counter_F; i < NR_ENTRIES_MAX; i++) { TextBox tbF = new TextBox(); tbF.Width = 50; tbF.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; tbF.VerticalAlignment = System.Windows.VerticalAlignment.Center; tbF.Style = (Style)tbF.TryFindResource("CoordinateInput"); tbF.Text = "__" + i.ToString(); Grid.SetColumn(tbF, 1); Grid.SetRow(tbF, i + 2); this.main_grid.Children.Add(tbF); // -- ComboBox cbF = new ComboBox(); cbF.Margin = new Thickness(2, 2, 5, 2); cbF.ItemsSource = operators; Grid.SetColumn(cbF, 2); Grid.SetRow(cbF, i + 2); this.main_grid.Children.Add(cbF); // -- TextBox tbF_1 = new TextBox(); tbF_1.Width = 50; tbF_1.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; tbF_1.VerticalAlignment = System.Windows.VerticalAlignment.Center; tbF_1.Style = (Style)tbF_1.TryFindResource("CoordinateInput"); tbF_1.Text = "__" + i.ToString(); Grid.SetColumn(tbF_1, 3); Grid.SetRow(tbF_1, i + 2); this.main_grid.Children.Add(tbF_1); this.suffix_FW_Op.Add(tbF); this.operators_FW.Add(cbF); this.suffix_FW_Res.Add(tbF_1); } for (int i = counter_B; i < NR_ENTRIES_MAX; i++) { TextBox tbB = new TextBox(); tbB.Width = 50; tbB.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; tbB.VerticalAlignment = System.Windows.VerticalAlignment.Center; tbB.Style = (Style)tbB.TryFindResource("CoordinateInput"); tbB.Text = "__" + i.ToString(); Grid.SetColumn(tbB, 4); Grid.SetRow(tbB, i + 2); this.main_grid.Children.Add(tbB); // -- ComboBox cbB = new ComboBox(); cbB.Margin = new Thickness(2, 2, 5, 2); cbB.ItemsSource = operators; Grid.SetColumn(cbB, 5); Grid.SetRow(cbB, i + 2); this.main_grid.Children.Add(cbB); // -- TextBox tbB_1 = new TextBox(); tbB_1.Width = 50; tbB_1.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; tbB_1.VerticalAlignment = System.Windows.VerticalAlignment.Center; tbB_1.Style = (Style)tbB_1.TryFindResource("CoordinateInput"); tbB_1.Text = "__" + i.ToString(); Grid.SetColumn(tbB_1, 6); Grid.SetRow(tbB_1, i + 2); this.main_grid.Children.Add(tbB_1); this.suffix_BW_Op.Add(tbB); this.operators_BW.Add(cbB); this.suffix_BW_Res.Add(tbB_1); } this.content_initialized = true; }