package com.revolsys.swing.map.overlay; import java.awt.Color; import java.awt.Graphics2D; import com.revolsys.awt.WebColors; import com.revolsys.geometry.model.Geometry; import com.revolsys.geometry.model.GeometryFactory; import com.revolsys.geometry.model.Punctual; import com.revolsys.swing.map.Viewport2D; import com.revolsys.swing.map.layer.record.renderer.GeometryStyleRenderer; import com.revolsys.swing.map.layer.record.style.GeometryStyle; import com.revolsys.util.Property; public class SelectedRecordsRenderer { private final GeometryStyle highlightStyle = GeometryStyle .polygon(WebColors.Lime, 5, WebColors.Lime) // .setMarker("ellipse", 5, WebColors.Lime, 3, WebColors.Black); private final GeometryStyle lineStyle = GeometryStyle.line(WebColors.Black); private final int alpha; public SelectedRecordsRenderer(final Color color, final int alpha) { this.alpha = alpha; setStyleColor(color); } public void paintSelected(final Viewport2D viewport, final Graphics2D graphics, final GeometryFactory viewportGeometryFactory, Geometry geometry) { geometry = viewport.getGeometry(geometry); if (Property.hasValue(geometry)) { GeometryStyleRenderer.renderGeometry(viewport, graphics, geometry, this.highlightStyle); if (!(geometry instanceof Punctual)) { GeometryStyleRenderer.renderGeometryOutline(viewport, graphics, geometry, this.lineStyle); } } } public void setStyleColor(final Color lineColor) { final Color fillColor = WebColors.newAlpha(lineColor, this.alpha); this.highlightStyle.setLineColor(lineColor); this.highlightStyle.setPolygonFill(fillColor); this.highlightStyle.setMarkerLineColor(lineColor); } }