rendered paste bodypackage se20.coursework;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.table.AbstractTableModel;
/**
*
* @author James Szabo
* @version
*/
public abstract class EventsModel extends AbstractTableModel
{
private static final int NUM_COLUMNS = 6;
public int getColumnCount()
{
return NUM_COLUMNS;
}
@Override public String getColumnName(int columnIndex)
{
switch (columnIndex) {
case 0: return "Date";
case 1: return "Time";
case 2: return "Room";
case 3: return "Artist";
case 4: return "Ticket Price";
case 5: return "Tickets Available";
default: return null;
}
}
public Object getValueAt(int rowIndex, int columnIndex)
{
switch (columnIndex) {
case 0: return getEvent(rowIndex).getDate();
case 1: return getEvent(rowIndex).getTime();
case 2: return getEvent(rowIndex).getRoom();
case 3: return getEvent(rowIndex).getArtist();
case 4: return getEvent(rowIndex).getTicketPrice();
case 5: return getEvent(rowIndex).getTicketsRemaining();
default: return null;
}
}
private ResultSet data;
public EventsModel()
{
data = null;
}
public EventsModel(ResultSet results)
{
update(results);
}
public void update(ResultSet results)
{
data = results;
fireTableDataChanged();
}
public int getRowCount()
{
if (data == null)
return 0;
try {
data.last();
return data.getRow();
}
catch (SQLException error) {
return 0;
}
}
protected Event getEvent(int rowIndex)
{
if (data == null)
return null;
try {
if (!data.absolute(rowIndex+1))
return null;
else {
String date = data.getString(1);
String time = data.getString(2);
String room = data.getString(3);
String artist = data.getString(4);
int ticketPrice = data.getInt(5);
int ticketsRemaining = data.getInt(6);
return new Event(date, time, room, artist, ticketPrice, ticketsRemaining);
}
}
catch (SQLException error) {
return null;
}
}
}