private void cmbStudenti_SelectedIndexChanged(object sender, EventArgs e)
        {
            broj_ESPB      = 0;
            lblPoruka.Text = "";
            student        = (Studenti)cmbStudenti.SelectedItem;
            lista_studenta = IzbornaLista.izbornaListaOdStudenta(student);

            //checklistbox kreiranje
            svi_predmeti_studenta.Items.Clear();
            svi_predmeti_studenta.Size     = new Size(400, 200);
            svi_predmeti_studenta.Location = new Point(50, 150);
            Controls.Add(svi_predmeti_studenta);

            //dodavanje predmeta u checklistbox iz izborne liste studenta
            foreach (Predmet p in lista_studenta.Predmeti_studenta)
            {
                string unos = p.Naziv_predmeta + ",  " + p.Smer + ",  " + p.Semestar;

                svi_predmeti_studenta.Items.Add(unos, true);

                if (p.Obavezan)
                {
                    svi_predmeti_studenta.SetItemCheckState(svi_predmeti_studenta.Items.Count - 1, CheckState.Indeterminate);
                }
            }

            List <Predmet> svi_predmeti = Predmet.sviPredmeti();

            //dodavanje predmeta u checklistbox ako su sa smera ili u chombobox ako nisu sa istog smera
            foreach (Predmet p in svi_predmeti)
            {
                if (!lista_studenta.imaPredmetUListi(p))
                {
                    if (p.Smer.ToString().Equals(student.Smer.ToString()))
                    {
                        svi_predmeti_studenta.Items.Add(p.Naziv_predmeta + ",  " + p.Smer + ",  " + p.Semestar);
                    }
                    else
                    {
                        cmbPredmeti.Items.Add(p);
                    }
                }
            }
            btnAzuriraj.Enabled = true;

            //Trenutni ESPB bodovi
            broj_ESPB = 0;
            for (int i = 0; i < svi_predmeti_studenta.Items.Count; i++)
            {
                if (svi_predmeti_studenta.GetItemCheckState(i) == CheckState.Checked || svi_predmeti_studenta.GetItemCheckState(i) == CheckState.Indeterminate)
                {
                    broj_ESPB += 6;
                }
            }
            lblESPB.Text = "ESPB: " + broj_ESPB;
        }
        private void prikazSortiraneListe(List <Predmet> predmeti_za_sortiranje)
        {
            IzbornaLista lista_studenta = IzbornaLista.izbornaListaOdStudenta(student);

            //dodavanje sortirane liste predmeta u checklistbox
            foreach (Predmet p in predmeti_za_sortiranje)
            {
                if (lista_studenta != null)
                {
                    if (lista_studenta.imaPredmetUListi(p))
                    {
                        svi_predmeti_studenta.Items.Add(p.Naziv_predmeta + ",  " + p.Smer + ",  " + p.Semestar, (p.Obavezan) ? CheckState.Indeterminate : CheckState.Checked);
                    }
                    else
                    {
                        svi_predmeti_studenta.Items.Add(p.Naziv_predmeta + ",  " + p.Smer + ",  " + p.Semestar, (p.Obavezan) ? CheckState.Indeterminate : CheckState.Unchecked);
                    }
                }
                else
                {
                    svi_predmeti_studenta.Items.Add(p.Naziv_predmeta + ",  " + p.Smer + ",  " + p.Semestar, (p.Obavezan) ? CheckState.Indeterminate : CheckState.Unchecked);
                }
            }


            //Trenutni ESPB bodovi
            broj_ESPB = 0;
            for (int i = 0; i < svi_predmeti_studenta.Items.Count; i++)
            {
                if (svi_predmeti_studenta.GetItemCheckState(i) == CheckState.Checked || svi_predmeti_studenta.GetItemCheckState(i) == CheckState.Indeterminate)
                {
                    broj_ESPB += 6;
                }
            }
            lblESPB.Text = "ESPB: " + broj_ESPB;
        }
        private void KorisnikMeni_Load(object sender, EventArgs e)
        {
            lblPodaciStudenta.Text      = "Ime studenta: " + student.Ime_studenta + "\nPrezime: " + student.Prezime_studenta + "\nSmer: " + student.Smer.ToString();
            lblPodaciStudenta.ForeColor = Color.Blue;

            IzbornaLista   lista_studenta = IzbornaLista.izbornaListaOdStudenta(student);
            List <Predmet> svi_predmeti   = Predmet.sviPredmeti();

            predmeti_za_sortiranje = new List <Predmet>();

            if (lista_studenta != null)
            {
                //ako student ima izbornu listu
                //dodaje u checklistbox sve predmete iz izborne liste studenta
                foreach (Predmet p in lista_studenta.Predmeti_studenta)
                {
                    predmeti_za_sortiranje.Add(p);
                }


                //dodaje u checklistbox predmete sa smera ili u combobox predmete sa drugog smera
                foreach (Predmet p in svi_predmeti)
                {
                    if (!lista_studenta.imaPredmetUListi(p))
                    {
                        if (p.Smer.ToString().Equals(student.Smer.ToString()))
                        {
                            predmeti_za_sortiranje.Add(p);
                        }
                        else
                        {
                            cmbPredmeti.Items.Add(p);
                        }
                    }
                }
            }
            else
            {
                //ako student nema izbornu listu
                //ubacuje predmete sa smera u checklistbox, a ostale u combobox
                foreach (Predmet p in svi_predmeti)
                {
                    if (p.Smer.ToString().Equals(student.Smer.ToString()))
                    {
                        predmeti_za_sortiranje.Add(p);
                    }
                    else
                    {
                        cmbPredmeti.Items.Insert(cmbPredmeti.Items.Count, p);
                    }
                }
            }

            //kreiranje delegata i dodavanje funkcija
            delSortiranje deleg = new delSortiranje(sortirajPoSemestru);

            deleg += new delSortiranje(sortirajPoImenu);
            deleg += new delSortiranje(prikazSortiraneListe);

            //pozivanje delegata
            deleg(predmeti_za_sortiranje);
        }