package cz.cvut.fel.restauracefel.sklad_service;
import cz.cvut.fel.restauracefel.hibernate.Material;
import java.io.FileNotFoundException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.AbstractListModel;
/**
* Trida, ktera reprezentuje model vsech surovin pro komponentu JList
* @author Lukas Camra
*/
public class SurovinyModel extends AbstractListModel {
List<Material> suroviny=new ArrayList<Material>();
/**
* getter pro zobrazene suroviny v JList
* @return vraci List surovin zobrazenych v JListu
*/
public List<Material> getSuroviny() {
return suroviny;
}
/**
* Konstruktor vytvarejici model
*/
public SurovinyModel() {
try {
this.suroviny = ServiceFacade.getInstance().getAllMaterials();
} catch (FileNotFoundException ex) {
Logger.getLogger(SurovinyModel.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
Logger.getLogger(SurovinyModel.class.getName()).log(Level.SEVERE, null, ex);
} catch (RemoteException e){}
}
/**
* Konstruktor vytvarejici model
* @param suroviny List, ktery ma byt zobrazeny v JList
*/
public SurovinyModel(List<Material> suroviny){
if(suroviny!=null)
this.suroviny=suroviny;
}
/**
* vraci pocet zobrazovanych surovin
* @return vraci pocet zobrazovanych surovin
*/
public int getSize() {
return suroviny.size();
}
/**
* metoda pro nalezeni reprezentovaneho objektu retezcem
* @param arg0 cislo v seznamu
* @return vraci nazev Suroviny s indexem arg0 v seznamu
*/
public Object getElementAt(int arg0) {
return suroviny.get(arg0).getName();
}
/**
* metoda pro nalezeni reprezentovaneho objektu
* @param arg cislo v seznamu
* @return vraci objekt tridy Material s indexem arg v seznamu
*/
public Object getMaterialAt(int arg)
{
return suroviny.get(arg);
}
/**
* Metoda pro odstraneni prvku ze seznamu
* @param i index, ktery reprezentuje objekt, ktery ma byt ze seznamu vymazan
*/
public void removeElement(int i){
suroviny.remove(i);
}
}