package polly.rx.httpv2; import java.util.Date; import java.util.List; import polly.rx.MSG; import polly.rx.core.FleetDBManager; import polly.rx.entities.FleetScan; import de.skuzzle.polly.http.api.HttpEvent; import de.skuzzle.polly.sdk.httpv2.html.AbstractHTMLTableModel; import de.skuzzle.polly.sdk.httpv2.html.HTMLElement; import de.skuzzle.polly.sdk.util.DirectedComparator.SortOrder; public class FleetScanTableModel extends AbstractHTMLTableModel<FleetScan> { private final static String[] COLUMNS = MSG.scanModelColumns.split(","); //$NON-NLS-1$ protected final FleetDBManager fleetDb; public FleetScanTableModel(FleetDBManager fleetDb) { this.fleetDb = fleetDb; this.requirePermission(FleetDBManager.VIEW_FLEET_SCAN_PERMISSION); } @Override public boolean isFilterable(int column) { return true; } @Override public boolean isSortable(int column) { return true; } @Override public String getHeader(int column) { return COLUMNS[column]; } @Override public int getColumnCount() { return COLUMNS.length; } @Override public Object getCellValue(int column, FleetScan element) { switch (column) { case 0: return element.getDate(); case 1: return element.getQuadrant() + " " + element.getX() + ", " + element.getY(); //$NON-NLS-1$ //$NON-NLS-2$ case 2: return element.getLocalSens(); case 3: return element.getOwnerName(); case 4: return element.getOwnerClan(); case 5: return new HTMLElement("a") //$NON-NLS-1$ .attr("href", RXController.PAGE_FLEET_SCAN_DETAILS + "?scanId="+element.getId()) //$NON-NLS-1$ //$NON-NLS-2$ .content(element.getFleetName()); case 6: return element.getFleetTag(); case 7: return element.getShipCount(); default: return ""; //$NON-NLS-1$ } } @Override public Class<?> getColumnClass(int column) { switch (column) { case 0: return Date.class; case 2: case 7: return Integer.class; } return super.getColumnClass(column); } @Override public int getDefaultSortColumn() { return 0; } @Override public SortOrder getDefaultSortOrder() { return SortOrder.DESCENDING; } @Override public List<FleetScan> getData(HttpEvent e) { return this.fleetDb.getAllScans(); } }