public ShapeFigure createShapeFigure(Geometry geometry, FigureStyle style) { return new SimpleFeatureShapeFigure(createSimpleFeature(geometry), style, deriveSelectedStyle(style)); }
@Override public Shape getShape() { try { if (geometryShape == null) { geometryShape = new LiteShape2(getGeometry(), null, null, true); } return geometryShape; } catch (Exception e) { throw new IllegalArgumentException("simpleFeature", e); } }
public SimpleFeatureShapeFigure(SimpleFeature simpleFeature, FigureStyle normalStyle, FigureStyle selectedStyle) { super(getRank(simpleFeature), normalStyle, selectedStyle); this.simpleFeature = simpleFeature; this.geometryType = simpleFeature.getDefaultGeometry().getClass(); this.geometryShape = null; }
@Override public void setGeometry(Geometry geometry) { if (!geometryType.isAssignableFrom(geometry.getClass())) { Debug.trace("WARNING: Assigning a geometry of type " + geometry.getClass() + ", should actually be a " + geometryType); } simpleFeature.setDefaultGeometry(geometry); forceRegeneration(); fireFigureChanged(); }
public void testSpecificGeometryType() { SimpleFeatureType sft = createPlainFeatureType("Polygon", Polygon.class, DefaultGeographicCRS.WGS84); Polygon polygon = createPolygon(); SimpleFeature simpleFeature = createPlainFeature(sft, "_1", polygon, ""); SimpleFeatureShapeFigure shapeFigure = new SimpleFeatureShapeFigure(simpleFeature, new DefaultFigureStyle()); assertSame(polygon, shapeFigure.getGeometry()); assertNotNull(shapeFigure.getShape()); assertEquals(Figure.Rank.AREA, shapeFigure.getRank()); }
@Override public void setShape(Shape shape) { AwtGeomToJtsGeomConverter converter = new AwtGeomToJtsGeomConverter(); Geometry geometry; // May need to handle more cases here in the future! (nf) if (Polygon.class.isAssignableFrom(geometryType)) { geometry = converter.createPolygon(shape); } else if (MultiPolygon.class.isAssignableFrom(geometryType)) { geometry = converter.createMultiPolygon(shape); } else { geometry = converter.createMultiLineString(shape); } setGeometry(geometry); }
figure = new SimpleFeatureShapeFigure(feature, new DefaultFigureStyle()); assertSame(geometry, figure.getGeometry()); assertNotNull(figure.getShape()); assertEquals(Figure.Rank.AREA, figure.getRank()); figure = new SimpleFeatureShapeFigure(feature, new DefaultFigureStyle()); assertSame(geometry, figure.getGeometry()); assertNotNull(figure.getShape()); assertEquals(Figure.Rank.LINE, figure.getRank()); figure = new SimpleFeatureShapeFigure(feature, new DefaultFigureStyle()); assertSame(geometry, figure.getGeometry()); assertNotNull(figure.getShape()); assertEquals(Figure.Rank.LINE, figure.getRank()); figure = new SimpleFeatureShapeFigure(feature, new DefaultFigureStyle()); assertSame(geometry, figure.getGeometry()); assertNotNull(figure.getShape()); assertEquals(Figure.Rank.POINT, figure.getRank()); figure = new SimpleFeatureShapeFigure(feature, new DefaultFigureStyle()); assertSame(geometry, figure.getGeometry()); assertNotNull(figure.getShape()); assertEquals(Figure.Rank.NOT_SPECIFIED, figure.getRank());
public SimpleFeatureFigure createSimpleFeatureFigure(SimpleFeature simpleFeature, String defaultStyleCss) { final String css = getStyleCss(simpleFeature, defaultStyleCss); final FigureStyle normalStyle = DefaultFigureStyle.createFromCss(css); final FigureStyle selectedStyle = deriveSelectedStyle(normalStyle); final Object geometry = simpleFeature.getDefaultGeometry(); if (geometry instanceof Point) { return new SimpleFeaturePointFigure(simpleFeature, normalStyle, selectedStyle); } else { return new SimpleFeatureShapeFigure(simpleFeature, normalStyle, selectedStyle); } }
static Rank getRank(SimpleFeature simpleFeature) { final Object geometry = simpleFeature.getDefaultGeometry(); if (!(geometry instanceof Geometry)) { throw new IllegalArgumentException("simpleFeature: geometry type must be a " + Geometry.class); } return getRank((Geometry) geometry); }
@Override protected void loadFigureCollection(File file, FigureCollection figureCollection) throws IOException { FeatureSource<SimpleFeatureType, SimpleFeature> featureFeatureSource; FeatureCollection<SimpleFeatureType, SimpleFeature> featureTypeSimpleFeatureFeatureCollection; featureFeatureSource = getFeatureSource(file); featureTypeSimpleFeatureFeatureCollection = featureFeatureSource.getFeatures(); Iterator<SimpleFeature> featureIterator = featureTypeSimpleFeatureFeatureCollection.iterator(); while (featureIterator.hasNext()) { SimpleFeature simpleFeature = featureIterator.next(); DefaultFigureStyle figureStyle = createDefaultFigureStyle(); Object o = simpleFeature.getDefaultGeometry(); if (o instanceof Point) { figureCollection.addFigure(new SimpleFeaturePointFigure(simpleFeature, figureStyle)); } else { figureCollection.addFigure(new SimpleFeatureShapeFigure(simpleFeature, figureStyle)); } } }
public void testRank() { assertEquals(Figure.Rank.POINT, SimpleFeatureShapeFigure.getRank(createPoint())); assertEquals(Figure.Rank.POINT, SimpleFeatureShapeFigure.getRank(createMultiPoint())); assertEquals(Figure.Rank.LINE, SimpleFeatureShapeFigure.getRank(createLineString())); assertEquals(Figure.Rank.LINE, SimpleFeatureShapeFigure.getRank(createLinearRing())); assertEquals(Figure.Rank.LINE, SimpleFeatureShapeFigure.getRank(createMultiLineString())); assertEquals(Figure.Rank.AREA, SimpleFeatureShapeFigure.getRank(createPolygon())); assertEquals(Figure.Rank.AREA, SimpleFeatureShapeFigure.getRank(createMultiPolygon())); assertEquals(Figure.Rank.NOT_SPECIFIED, SimpleFeatureShapeFigure.getRank(createGeometryCollection())); }