/// <summary> /// Konstruktor okna warunków początkowych /// </summary> internal InitialCondition(int _mode = SPDAssets.MAX, InitialConditions condition = null) { _tooltip = -1; InitializeComponent(); Mode = _mode; _selectedOperation = Operation.None; ComboBox.ItemsSource = SPDAssets.GetBrushRectangles(Mode, InitialConditions.GetTransformation(Mode)); ComboBox.SelectedIndex = 0; DataContext = this; _conditionNames = new List <Tuple <string, Tuple <string, bool> > >(); _conditions = new Dictionary <Tuple <string, bool>, Func <bool, int, int, bool, InitialConditions> >(); foreach (var T in new[] { false, true }) { _conditions.Add(new Tuple <string, bool>("Donut", T), InitialConditions.DonutFactory); _conditions.Add(new Tuple <string, bool>("Circle", T), InitialConditions.CircleFactory); _conditions.Add(new Tuple <string, bool>("Diagonal", T), InitialConditions.DiagonalFactory); _conditions.Add(new Tuple <string, bool>("NowakMay", T), InitialConditions.NowakMayFactory); } _conditionNames.AddRange( _conditions.Select( k => new Tuple <string, Tuple <string, bool> >(k.Value(k.Key.Item2, 1, 10, false).Name, new Tuple <string, bool>(k.Key.Item1, k.Key.Item2)))); ComboBoxCopy.ItemsSource = _conditionNames.Select(s => s.Item1); var D = SPDAssets.GenerateLegend(Legend.Height, Mode, InitialConditions.GetTransformation(Mode)); D.Stretch = Stretch.Fill; Legend.Children.Add(D); if (condition != null) { Condition = condition; } }
private void MenuItemDelete_Click(object sender, RoutedEventArgs e) { if (MatricesListBox.SelectedIndex == -1) { return; } var MatrixDescription = (MatricesListBox.SelectedItems[0] as MatrixDescription); var L = Condition.Matrices; var M = Condition.Matrices.Where(m => m.ToString() != MatrixDescription.Description).ToList(); for (int i = 0; i < Condition.Indices.GetLength(0); i++) { for (int j = 0; j < Condition.Indices.GetLength(1); j++) { var I = Condition.Indices[i, j]; if (Condition.Matrices[I].ToString() == MatrixDescription.Description) { Condition.Indices[i, j] = 0; } else { Condition.Indices[i, j] = M.FindIndex(m => m.ToString() == L[I].ToString()); } } } Condition.Matrices = M; BrushRectangles = SPDAssets.GetBrushRectangles(MatrixCount); _comboBox.ItemsSource = BrushRectangles; Condition = Condition; }
private void ButtonBase_OnClick(object sender, RoutedEventArgs e) { var D = Validate(); if (D == null) { MessageBox.Show(MainWindow.ErrorMessages[(int)Error]); } else { Condition.Matrices.Add(new PointMatrix((float)D[3], (float)D[2], (float)D[1], (float)D[0])); BrushRectangles = SPDAssets.GetBrushRectangles(MatrixCount); _comboBox.ItemsSource = BrushRectangles; Condition = Condition; } }
internal PointMatrixPicker(PointMatrix matrix, int Size1, int Size2, PointMatrixPick condition = null) { _condition = condition ?? PointMatrixPick.SingularMatrixCondition(matrix, Size1, Size2); BrushRectangles = SPDAssets.GetBrushRectangles((int)MatrixCount); if (Condition.Size != Size) { _condition = Condition.Resize(Size); } this.Size1 = Size1; this.Size2 = Size2; Size = Math.Max(Size1, Size2); InitializeComponent(); _selectedOperation = Operation.None; _comboBox.ItemsSource = BrushRectangles; _comboBox.SelectedIndex = 0; DataContext = this; _conditionNames = new List <Tuple <string, Tuple <string, bool> > >(); _conditions = new Dictionary <Tuple <string, bool>, Func <bool, int, int, bool, InitialConditions> >(); foreach (var T in new[] { false, true }) { _conditions.Add(new Tuple <string, bool>("Donut", T), InitialConditions.DonutFactory); _conditions.Add(new Tuple <string, bool>("Circle", T), InitialConditions.CircleFactory); _conditions.Add(new Tuple <string, bool>("Diagonal", T), InitialConditions.DiagonalFactory); } _conditionNames.AddRange( _conditions.Select( k => new Tuple <string, Tuple <string, bool> >(k.Value(k.Key.Item2, 1, 10, false).Name, new Tuple <string, bool>(k.Key.Item1, k.Key.Item2)))); ComboBoxCopy.ItemsSource = _conditionNames.Select(s => s.Item1); _canvalidate = true; Condition = Condition; }