@Override public Object createMemento() { return getGeometry().clone(); }
public SimpleFeatureShapeFigure(SimpleFeature simpleFeature, SceneTransformProvider provider, FigureStyle normalStyle, FigureStyle selectedStyle) { super(getRank(simpleFeature), normalStyle, selectedStyle); this.simpleFeature = simpleFeature; this.geometryType = simpleFeature.getDefaultGeometry().getClass(); this.shape = null; sceneTransformProvider = provider; }
@Override public void setMemento(Object memento) { simpleFeature.setDefaultGeometry(memento); forceRegeneration(); fireFigureChanged(); }
@Override public void setShape(Shape shape) { this.shape = shape; Geometry modelGeometry = getGeometryFromShape(shape); try { final Geometry sceneGeometry = sceneTransformProvider.getModelToSceneTransform().transform(modelGeometry); simpleFeature.setDefaultGeometry(sceneGeometry); fireFigureChanged(); } catch (TransformException e) { this.shape = null; } }
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, sceneTransformProvider, new DefaultFigureStyle()); assertEquals(polygon, shapeFigure.getGeometry()); assertNotNull(shapeFigure.getShape()); assertEquals(Figure.Rank.AREA, shapeFigure.getRank()); }
private ShapeFigure createShapeFigure(Geometry geometry, FigureStyle style) { return new SimpleFeatureShapeFigure(createSimpleFeature(geometry), sceneTransformProvider, style, deriveSelectedStyle(style)); }
@Override public Object clone() { SimpleFeatureShapeFigure clone = (SimpleFeatureShapeFigure) super.clone(); SimpleFeatureBuilder builder = new SimpleFeatureBuilder(simpleFeature.getFeatureType()); builder.init(simpleFeature); clone.simpleFeature = builder.buildFeature(null); clone.simpleFeature.setDefaultGeometry(getGeometry().clone()); clone.shape = getShape(); return clone; }
public void testMixedGeometries_1() { SimpleFeatureType sft = createPlainFeatureType("Geometry", Geometry.class, DefaultGeographicCRS.WGS84); Geometry geometry; SimpleFeature feature; SimpleFeatureShapeFigure figure; geometry = createPolygon(); feature = createPlainFeature(sft, "_1", geometry, ""); figure = new SimpleFeatureShapeFigure(feature, sceneTransformProvider, new DefaultFigureStyle()); assertEquals(geometry, figure.getGeometry()); assertNotNull(figure.getShape()); assertEquals(Figure.Rank.AREA, figure.getRank()); geometry = createLinearRing(); feature = createPlainFeature(sft, "_2", geometry, ""); figure = new SimpleFeatureShapeFigure(feature, sceneTransformProvider, new DefaultFigureStyle()); assertEquals(geometry, figure.getGeometry()); assertNotNull(figure.getShape()); assertEquals(Figure.Rank.LINE, figure.getRank()); geometry = createLineString(); feature = createPlainFeature(sft, "_3", geometry, ""); figure = new SimpleFeatureShapeFigure(feature, sceneTransformProvider, new DefaultFigureStyle()); assertEquals(geometry, figure.getGeometry()); assertNotNull(figure.getShape()); assertEquals(Figure.Rank.LINE, 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, sceneTransformProvider, normalStyle, selectedStyle); } else { return new SimpleFeatureShapeFigure(simpleFeature, sceneTransformProvider, normalStyle, selectedStyle); } }
@Override protected void loadFigureCollection(File file, FigureCollection figureCollection) throws IOException { FeatureSource<SimpleFeatureType, SimpleFeature> featureFeatureSource; FeatureCollection<SimpleFeatureType, SimpleFeature> featureTypeSimpleFeatureFeatureCollection; featureFeatureSource = getFeatureSource(file); featureTypeSimpleFeatureFeatureCollection = featureFeatureSource.getFeatures(); try(FeatureIterator<SimpleFeature> featureIterator = featureTypeSimpleFeatureFeatureCollection.features();) { while (featureIterator.hasNext()) { SimpleFeature simpleFeature = featureIterator.next(); DefaultFigureStyle figureStyle = createDefaultFigureStyle(); Object o = simpleFeature.getDefaultGeometry(); if (o instanceof Point) { figureCollection.addFigure(new SimpleFeaturePointFigure(simpleFeature, sceneTransformProvider, figureStyle)); } else { figureCollection.addFigure(new SimpleFeatureShapeFigure(simpleFeature, sceneTransformProvider, figureStyle)); } } } }
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 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 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())); }