package polly.rx.httpv2;
import java.util.AbstractList;
import java.util.List;
import polly.rx.MSG;
import polly.rx.core.orion.Orion;
import polly.rx.core.orion.model.AlienSpawn;
import polly.rx.entities.DBAlienSpawn;
import de.skuzzle.polly.http.api.HttpEvent;
import de.skuzzle.polly.sdk.httpv2.html.AbstractHTMLTableModel;
import de.skuzzle.polly.sdk.httpv2.html.HTMLElement;
public class AlienSpawnModel extends AbstractHTMLTableModel<AlienSpawn> {
private final static String[] COLUMNS = MSG.htmlAlienSpawnColumns.split(";"); //$NON-NLS-1$
@Override
public String getHeader(int column) {
return COLUMNS[column];
}
@Override
public boolean isFilterable(int column) {
return column != COLUMNS.length - 1;
}
@Override
public boolean isSortable(int column) {
return column != COLUMNS.length - 1;
}
@Override
public int getColumnCount() {
return COLUMNS.length;
}
@Override
public Object getCellValue(int column, AlienSpawn element) {
final DBAlienSpawn dbas = (DBAlienSpawn) element;
switch (column) {
case 0:
return element.getName();
case 1:
return element.getSector().toString();
case 2:
return element.getRace().toString();
case 3:
return new HTMLElement("input") //$NON-NLS-1$
.value(MSG.htmlAlienRaceRemove).attr("type", "button") //$NON-NLS-1$ //$NON-NLS-2$
.attr("class", "button") //$NON-NLS-1$ //$NON-NLS-2$
.attr("onclick", "removeSpawn(" + dbas.getId() + ")"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
}
return null;
}
@Override
public Class<?> getColumnClass(int column) {
switch (column) {
case 0:
case 1:
case 2:
return String.class;
default:
return Object.class;
}
}
@Override
public List<AlienSpawn> getData(HttpEvent e) {
final List<? extends AlienSpawn> spawns = Orion.INSTANCE.getAlienManager()
.getAllSpawns();
return new AbstractList<AlienSpawn>() {
@Override
public AlienSpawn get(int index) {
return spawns.get(index);
}
@Override
public int size() {
return spawns.size();
}
};
}
}