예제 #1
0
        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; }
        }
예제 #2
0
        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);
                }
            }
        }
예제 #3
0
        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;
                }
            }
        }