public void popuniSaPodacima(long idSelektiranogKlijenta) {
        // Isprazni tabelu dostava
        //obracuniJTable.setModel(new ObracuniTableModel());

        // Uzmi sve klijente iz baze
        Baza baza = Baza.getBaza();
        List<Klijent> sviKlijenti = baza.dajSve(Klijent.class);
        // izfiltriraj one klijente koji su obrisani
        ukloniObrisaneKlijenteIz(sviKlijenti);

        // Napravi jComboBoxItem-ove sa svim klijentima
        List<JComboBoxItem> sviKlijentiJComboBoxItemi = new ArrayList<JComboBoxItem>();
        for (Klijent k : sviKlijenti) {
            sviKlijentiJComboBoxItemi.add(new JComboBoxItem(k.getId(), k.getIme()));
        }
        // Popuni obracunZaJComboBox sa JComboBoxItem-ovima
        GuiUtilities.popuniJComboBoxSa(sviKlijentiJComboBoxItemi, obracunZaJComboBox, idSelektiranogKlijenta);

        // Popuni tabelu obracuni sa obracunima za klijenta koji ima idSelektiranogKlijenta
        Klijent selektiraniKlijent = baza.dajPoId(Klijent.class, idSelektiranogKlijenta);
        popuniObracuniJTableSaPodacimaOKlijentu(selektiraniKlijent);
        // Oznaci prvi red u tabeli za dostave
        if (obracuniJTable.getRowCount() > 0) {
            ListSelectionModel selectionModel = obracuniJTable.getSelectionModel();
            selectionModel.setSelectionInterval(0, 0);

            // Uzmi oznaceni obracun iz tabele Racun
            Racun oznaceniRacun = ((ObracuniTableModel) obracuniJTable.getModel()).getRacuniZaKlijenta()
                    .get(obracuniJTable.getSelectedRow());
        }

        // Refreshati panel
        osvjeziJPanel();
    }
 private void ukloniObrisaneKlijenteIz(List<Klijent> sviKlijenti) {
     List<Klijent> obrisaniKlijenti = new ArrayList<Klijent>();
     for (Klijent k : sviKlijenti) {
         if (k.isObrisano()) {
             obrisaniKlijenti.add(k);
         }
     }
     sviKlijenti.removeAll(obrisaniKlijenti);
 }
 public void popuniObracuniJTableSaPodacimaOKlijentu(Klijent selektiraniKlijent) {
     TableModel obracuniTableModel;
     if (selektiraniKlijent != null) {
         obracuniTableModel = new ObracuniTableModel(selektiraniKlijent);
     } else {
         Klijent prazanKlijent = new Klijent();
         prazanKlijent.setRacuni(new ArrayList<Racun>(0));
         obracuniTableModel = new DostaveTableModel(prazanKlijent);
     }
     obracuniJTable.setModel(obracuniTableModel);
 }
    public void popuniSaSvimPodacimaIzBaze() {
        // Uzmi sve klijente iz baze
        Baza baza = Baza.getBaza();
        List<Klijent> sviKlijenti = baza.dajSve(Klijent.class);

        // izfiltriraj one klijente koji su obrisani
        ukloniObrisaneKlijenteIz(sviKlijenti);

        // Napravi jComboBoxItem-ove sa svim klijentima
        List<JComboBoxItem> sviKlijentiJComboBoxItemi = new ArrayList<JComboBoxItem>();
        for (Klijent k : sviKlijenti) {
            sviKlijentiJComboBoxItemi.add(new JComboBoxItem(k.getId(), k.getIme()));
        }
        // Popuni obracunZaJComboBox sa JComboBoxItem-ovima
        GuiUtilities.popuniJComboBoxSa(sviKlijentiJComboBoxItemi, obracunZaJComboBox, sviKlijentiJComboBoxItemi.get(0).getId());

        Klijent prviKlijentUJComboBoxu = sviKlijenti.get(0);
        popuniObracuniJTableSaPodacimaOKlijentu(prviKlijentUJComboBoxu);

        osvjeziJPanel();
    }
 ObracuniTableModel(Klijent klijent) {
     if(klijent != null) {
         this.klijent = klijent;
         this.racuniZaKlijenta = (List<Racun>) klijent.getRacuni();
         List<Racun> obrisaniRacuni = new ArrayList<Racun>();
         for (Racun d : this.racuniZaKlijenta) {
         	if (d.isObrisano()) {
                 obrisaniRacuni.add(d);
             }
         }
         racuniZaKlijenta.removeAll(obrisaniRacuni);
     }
 }