package jeql.workbench; import java.awt.Color; import java.util.List; import com.vividsolutions.jts.geom.Geometry; import jeql.api.row.Row; import jeql.api.row.RowSchema; import jeql.api.row.SchemaUtil; import jeql.monitor.MonitorRowList; import jeql.style.StyleExtracter; import jeql.util.ColorUtil; import jeql.workbench.ui.geomview.GeometryList; import jeql.workbench.ui.geomview.style.BasicStyle; import jeql.workbench.ui.geomview.style.Style; public class RowListGeometryList implements GeometryList { private List rows; private RowSchema schema; private int geomCol = -1; private StyleExtracter styler; public RowListGeometryList(MonitorRowList rowList) { setRowList(rowList); } public void setRowList(MonitorRowList rowList) { this.rows = rowList.getRows(); schema = rowList.getSchema(); geomCol = SchemaUtil.getColumnWithType(schema, Geometry.class); styler = new StyleExtracter(schema); } public int size() { return rows.size(); } public Geometry getGeometry(int i) { if (rows.size() <= 0 || geomCol < 0) return null; // TODO Auto-generated method stub Row row = (Row) rows.get(i); return (Geometry) row.getValue(geomCol); } public Style getStyle(int i) { Row row = (Row) rows.get(i); Color fill = styler.fill(row); if (fill == null) fill = ColorUtil.lighter(Color.BLUE); Color stroke = styler.stroke(row); if (stroke == null) stroke = ColorUtil.lighter(Color.BLUE); return new BasicStyle(stroke, fill, (float) styler.strokeWidth(row)); } }