package GUI.TableModels;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import main.error.VideothekException;
import model.InRent;
import model.PriceCategory;
import model.Video;
import model.VideoUnit;
import model.data.exceptions.RecordNotFoundException;
import model.events.CustomerEvent;
import model.events.EventManager;
import model.events.InRentEvent;
import model.events.VideoCreatedEvent;
import model.events.VideoDeletedEvent;
import model.events.VideoEditedEvent;
import model.events.VideothekEvent;
import model.exceptions.VideoUnitRentedException;
/**
* CustomerTableModel.java
* @author Christopher Bertels (chbertel@uos.de)
* @date 18.09.2008
*/
public class ReturnTableModel extends DefaultTableModel
{
/**
* Konstruktor
* @param rowData Vector mit Daten
* @param columnNames Vector mit Spaltennamen
*/
public ReturnTableModel(Vector rowData, Vector columnNames)
{
super(rowData, columnNames);
}
/**
* Konstruktor
* @param videeoColumnNames Vector mit Spaltennamen
* @param rowCount #Zeilen
*/
public ReturnTableModel(Vector<String> videeoColumnNames, int rowCount) {
super(videeoColumnNames, rowCount);
}
/**
* fügt ein VideoUnit mit Abfrage in die Tabelle ein
* @param videoUnit VideoUnit
* @throws main.error.VideothekException VideoUnit momentan nicht ausgeliehen
*/
public void insertVideoUnit(VideoUnit videoUnit) throws VideothekException {
if (!videoUnit.isRented()) throw new VideothekException("Filmexemplar momentan nicht ausgeliehen!");
Vector<Vector> data = this.getDataVector();
for (Vector tmpVideoUnit : data) {
if ((Integer)tmpVideoUnit.get(1) == videoUnit.getID()) {
throw new VideothekException("Filmexemplar schon in der Liste vorhanden!");
}
}
insertRow(videoUnit);
}
/**
* fügt ein VideoUnit in die Tabelle ein
* @param videoUnit VideoUnit
*/
public void insertRow(VideoUnit videoUnit)
{
InRent inRent = videoUnit.getInRent();
Vector rowData = new Vector(5);
rowData.add(inRent.getCustomer().getID());
rowData.add(videoUnit.getVideoID());
rowData.add(videoUnit.getVideo().getTitle());
rowData.add(inRent.getReturnDate());
rowData.add(inRent.isWarned()?"Ja" : "Nein");
super.addRow(rowData);
fireTableDataChanged();
}
public void removeAll() {
getDataVector().removeAllElements();
fireTableDataChanged();
}
}