This is an automated email from the git hooks/post-receive script. New commit to branch feature/6944 in repository observe. See http://git.codelutin.com/observe.git commit e44444d950d4af380d0bbeb915cd63d73581f369 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 16 17:52:10 2015 +0200 add Date on map --- .../open/impl/seine/TripSeineUIHandler.java | 48 +++++++++++++++++++--- observe-swing/src/main/resources/log4j.properties | 2 + 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java index 3908feb..d7ba4e0 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUIHandler.java @@ -62,9 +62,15 @@ import org.geotools.map.FeatureLayer; import org.geotools.map.Layer; import org.geotools.map.MapContent; import org.geotools.referencing.CRS; +import org.geotools.styling.Fill; +import org.geotools.styling.Font; +import org.geotools.styling.LinePlacementImpl; +import org.geotools.styling.LineSymbolizer; import org.geotools.styling.SLD; +import org.geotools.styling.Stroke; import org.geotools.styling.Style; import org.geotools.styling.StyleFactory; +import org.geotools.styling.TextSymbolizer; import org.geotools.swing.JMapPane; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; @@ -72,6 +78,7 @@ import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.util.DateUtil; +import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.opengis.filter.FilterFactory; import org.opengis.referencing.FactoryException; @@ -88,6 +95,8 @@ import java.awt.event.MouseWheelListener; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; import java.io.File; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -389,6 +398,9 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { mapContent.addLayer(layer); } + + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); + // add lines DataService dataService = getDataService(); DataSource source = getDataSource(); @@ -399,9 +411,10 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); SimpleFeatureTypeBuilder lineFeatureTypeBuilder = new SimpleFeatureTypeBuilder(); - lineFeatureTypeBuilder.setName("a-type-name"); + lineFeatureTypeBuilder.setName("lineBuilder"); lineFeatureTypeBuilder.setCRS(CRS.decode("EPSG:4326", true)); - lineFeatureTypeBuilder.add("geom-attr-name", LineString.class); + lineFeatureTypeBuilder.add("line", LineString.class); + lineFeatureTypeBuilder.add("label", String.class); SimpleFeatureType lineFeatureType = lineFeatureTypeBuilder.buildFeatureType(); SimpleFeatureBuilder lineBuilder = new SimpleFeatureBuilder(lineFeatureType); @@ -421,7 +434,10 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { if (coordinatesByDay.size() > 1) { LineString line = geometryFactory.createLineString(coordinatesByDay.toArray(new Coordinate[0])); lineBuilder.add(line); - featuresDays.add(lineBuilder.buildFeature(null)); + lineBuilder.add(dateFormat.format(previousPoint.getTime())); + SimpleFeature feature = lineBuilder.buildFeature(null); + + featuresDays.add(feature); } @@ -431,6 +447,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { }; LineString lineBetweenTwoDays = geometryFactory.createLineString(coordinates); lineBuilder.add(lineBetweenTwoDays); + lineBuilder.add(DateFormat.getDateInstance().format(previousPoint.getTime())); featuresBetweenTowDays.add(lineBuilder.buildFeature(null)); coordinatesByDay = Lists.newLinkedList(); @@ -445,6 +462,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { if (coordinatesByDay.size() > 1) { LineString line = geometryFactory.createLineString(coordinatesByDay.toArray(new Coordinate[0])); lineBuilder.add(line); + lineBuilder.add(dateFormat.format(previousPoint.getTime())); featuresDays.add(lineBuilder.buildFeature(null)); } @@ -491,9 +509,9 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { protected FeatureCollection generateFeaturePoints(List<TripMapPoint> tripMapPoints, final SchoolType schoolType) throws FactoryException { SimpleFeatureTypeBuilder pointFeatureTypeBuilder = new SimpleFeatureTypeBuilder(); - pointFeatureTypeBuilder.setName("a-type-name"); + pointFeatureTypeBuilder.setName("point Builder"); pointFeatureTypeBuilder.setCRS(CRS.decode("EPSG:4326", true)); - pointFeatureTypeBuilder.add("geom-attr-name", MultiPoint.class); + pointFeatureTypeBuilder.add("point", MultiPoint.class); SimpleFeatureType pointFeatureType = pointFeatureTypeBuilder.buildFeatureType(); SimpleFeatureBuilder pointBuilder = new SimpleFeatureBuilder(pointFeatureType); @@ -524,7 +542,25 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { } protected Style getStyleLineDay() { - return SLD.createLineStyle(Color.BLACK, 1); + StyleFactory sf = CommonFactoryFinder.getStyleFactory(null); + FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); + + Stroke stroke = sf.createStroke(ff.literal(Color.BLACK), ff.literal(1)); + LineSymbolizer lineSym = sf.createLineSymbolizer(stroke, null); + + + Font font = sf.getDefaultFont(); + font.setSize(ff.literal(14)); + Fill labelFill = sf.createFill(ff.literal(Color.BLACK)); + + LinePlacementImpl labelPlacement = new LinePlacementImpl(ff, true, true, false, null, null); + labelPlacement.setPerpendicularOffset(ff.literal(10)); + + TextSymbolizer textSym = sf.createTextSymbolizer( + labelFill, new Font[]{font}, null, ff.property("label"), labelPlacement, null); + + return SLD.wrapSymbolizers( lineSym, textSym ); + } protected Style getStyleLineBetweenTwoDays() { diff --git a/observe-swing/src/main/resources/log4j.properties b/observe-swing/src/main/resources/log4j.properties index 40d46fe..d605aa0 100644 --- a/observe-swing/src/main/resources/log4j.properties +++ b/observe-swing/src/main/resources/log4j.properties @@ -50,3 +50,5 @@ log4j.logger.org.nuiton.topia.migration=INFO #log4j.logger.org.nuiton.topia.replication=INFO log4j.logger.jaxx.runtime.validator.swing.SwingValidator=ERROR + +log4j.logger.fr.ird.observe.ui.content.open.impl.seine.TripSeineUIHandler=DEBUG -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.