package polly.rx.httpv2;
import java.util.List;
import polly.rx.MSG;
import polly.rx.core.FleetDBManager;
import polly.rx.entities.FleetScanShip;
import de.skuzzle.polly.http.api.HttpEvent;
import de.skuzzle.polly.sdk.httpv2.html.AbstractHTMLTableModel;
public class FleetScanShipTableModel extends AbstractHTMLTableModel<FleetScanShip> {
private final static String COLUMNS[] = MSG.scanShipModelColumns.split(","); //$NON-NLS-1$
protected final FleetDBManager fleetDB;
public FleetScanShipTableModel(FleetDBManager fleetDB) {
this.fleetDB = fleetDB;
this.requirePermission(FleetDBManager.VIEW_FLEET_SCAN_PERMISSION);
}
@Override
public String getHeader(int column) {
return COLUMNS[column];
}
@Override
public int getColumnCount() {
return COLUMNS.length;
}
@Override
public boolean isFilterable(int column) {
return true;
}
@Override
public boolean isSortable(int column) {
return true;
}
@Override
public Object getCellValue(int column, FleetScanShip element) {
switch (column) {
case 0: return new ShipId(element.getRxId());
case 1: return element.getShipType();
case 2: return element.getShipClass();
case 3: return element.getSimpleName();
case 4: return element.getTechlevel();
case 5: return element.getOwner();
case 6: return element.changedOwner();
case 7: return element.getOwnerClan();
case 8: return element.getHistorySize();
default: return ""; //$NON-NLS-1$
}
}
@Override
public Class<?> getColumnClass(int column) {
switch (column) {
case 0: return Object.class;
case 2: return Integer.class;
case 4: return Integer.class;
case 6: return Boolean.class;
case 8: return Integer.class;
default: return super.getColumnClass(column);
}
}
@Override
public List<FleetScanShip> getData(HttpEvent e) {
return this.fleetDB.getAllScannedShips();
}
}