private void Button_Click_3(object sender, RoutedEventArgs e) { try { UcionicaRaspored ucionica_rasp = ucionicaRaspored.Find(s => s.Ucionica.Id.Equals(ucionica.Id)); Predmet pomocni_pr = ucionica_rasp.OdrzavaniPredmeti[cell_row][cell_column].ElementAt(0); if (pomocni_pr.PomocniBroj.Equals(null)) { return; } int razlika = pomocni_pr.PomocniBroj; for (int i = cell_row; i < cell_row + odabranPredmet.MinDuzinaTermina * 3; i++) { ucionica_rasp.OdrzavaniPredmeti[razlika][cell_column].RemoveAt(0); razlika++; } if (from_table) { odabranPredmet.PomocniBrojTermina--; } if (odabranPredmet.PomocniBrojTermina != odabranPredmet.BrojTermina) { if (Predmeti1.Count() == 0) { Predmeti1.Add(odabranPredmet); prikazTermina.ItemsSource = Predmeti1; prikazTermina.Visibility = Visibility.Visible; } } } catch { MessageBox.Show("Niste odabrali termin"); return; } }
private void Inicijalizuj_Termine(Ucionica u) { //// string[] niz = { "", "Ponedeljak", "Utorak", "Sreda", "Cetrvtak", "Petak", "Subota" }; for (int i = 1; i < 7; i++) { DataGridCell cell = new DataGridCell(); cell.Content = niz[i]; cell.Foreground = Brushes.White; cell.FontWeight = FontWeights.Bold; Grid.SetRow(cell, 0); Grid.SetColumn(cell, i); glavniGrid.Children.Add(cell); } //// UcionicaRaspored ucionica_rasp = ucionicaRaspored.Find(s => s.Ucionica.Id.Equals(u.Id)); for (int i = 1; i < 61; i++) { for (int j = 1; j < 7; j++) { ListView list = new ListView(); list.ItemsSource = ucionica_rasp.OdrzavaniPredmeti[i][j]; DataTemplate template = new DataTemplate(); FrameworkElementFactory factory = new FrameworkElementFactory(typeof(ListView)); template.VisualTree = factory; FrameworkElementFactory imgFactory = new FrameworkElementFactory(typeof(TextBlock)); Binding newBinding = new Binding("Naziv"); imgFactory.SetBinding(TextBlock.TextProperty, newBinding); factory.AppendChild(imgFactory); list.ItemTemplate = template; list.Name = "ja"; list.Background = Brushes.White; list.AllowDrop = true; list.DragEnter += ListView_DragEnter; list.Drop += ListView_Drop; list.MouseMove += ListView_MouseMove; list.PreviewMouseLeftButtonDown += ListView_PreviewMouseLeftButtonDown; Grid.SetRow(list, i); Grid.SetColumn(list, j); glavniGrid.Children.Add(list); } } }
private void ListView_Drop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent("myFormat")) { ListView listView = sender as ListView; int row = Grid.GetRow(listView); int column = Grid.GetColumn(listView); Predmet t = e.Data.GetData("myFormat") as Predmet; UcionicaRaspored ucionica_rasp = ucionicaRaspored.Find(s => s.Ucionica.Id.Equals(ucionica.Id)); if (!from_table) { for (int i = row; i < row + odabranPredmet.MinDuzinaTermina * 3; i++) { if (ucionica_rasp.OdrzavaniPredmeti[i][column].Count() != 0) { MessageBox.Show("Nedovoljni termina ili je tremin popunjen"); return; } } } if (from_table) { for (int i = row; i < row + odabranPredmet.MinDuzinaTermina * 3; i++) { if (ucionica_rasp.OdrzavaniPredmeti[i][column].Count != 0) { if (!ucionica_rasp.OdrzavaniPredmeti[i][column].ElementAt(0).Equals(null)) { if (ucionica_rasp.OdrzavaniPredmeti[i][column].ElementAt(0).Equals(ucionica_rasp.OdrzavaniPredmeti[cell_row][cell_column].ElementAt(0))) { break; } else { MessageBox.Show("Nedovoljni termina ili je tremin popunjen"); return; } } } } if (ucionica_rasp.OdrzavaniPredmeti[cell_row][cell_column].ElementAt(0) == null) { return; } Predmet pomocni_pr = ucionica_rasp.OdrzavaniPredmeti[cell_row][cell_column].ElementAt(0); if (pomocni_pr.PomocniBroj.Equals(null)) { return; } int razlika = pomocni_pr.PomocniBroj; for (int i = cell_row; i < cell_row + odabranPredmet.MinDuzinaTermina * 3; i++) { ucionica_rasp.OdrzavaniPredmeti[razlika][cell_column].RemoveAt(0); razlika++; } } if (row + 3 * t.MinDuzinaTermina > 61) { MessageBox.Show("Prekoracili ste termin."); return; } if (!from_table) { odabranPredmet.PomocniBrojTermina++; if (odabranPredmet.PomocniBrojTermina == odabranPredmet.BrojTermina) { Predmeti1.Clear(); prikazTermina.ItemsSource = Predmeti1; prikazTermina.Visibility = Visibility.Visible; } } else if (odabranPredmet.PomocniBrojTermina == odabranPredmet.BrojTermina) { Predmeti1.Clear(); prikazTermina.ItemsSource = Predmeti1; prikazTermina.Visibility = Visibility.Visible; } var end = 0; Predmet p = new Predmet(t); for (int i = 0; i < t.MinDuzinaTermina; i++) { // t.PomocniBroj = row+end; ucionica_rasp.OdrzavaniPredmeti[row + end][column].Add(p); ucionica_rasp.OdrzavaniPredmeti[row + end][column].ElementAt(0).PomocniBroj = row; // t.PomocniBroj = row + end+1; ucionica_rasp.OdrzavaniPredmeti[row + 1 + end][column].Add(p); ucionica_rasp.OdrzavaniPredmeti[row + end + 1][column].ElementAt(0).PomocniBroj = row; //t.PomocniBroj = row + end+2; ucionica_rasp.OdrzavaniPredmeti[row + 2 + end][column].Add(p); ucionica_rasp.OdrzavaniPredmeti[row + end + 2][column].ElementAt(0).PomocniBroj = row; var j = i + 1; end = 3 * j; } } }