branch feature/6944 created (now 0d6d869)
This is an automated email from the git hooks/post-receive script. New change to branch feature/6944 in repository observe. See http://git.codelutin.com/observe.git at 0d6d869 add map in trip seine UI This branch includes the following new commits: new 6dbaa21 add compute trip for map new 16616a3 add shape file and options map in config new 0d6d869 add map in trip seine UI The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 0d6d869f00552bd4154233390edce902b436aeef Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 16 08:58:08 2015 +0200 add map in trip seine UI commit 16616a346f42bf3a0f7ba66ebd74693f0275350a Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 16 08:56:52 2015 +0200 add shape file and options map in config commit 6dbaa2121a5bb745abb9e332c2814537cc95d6ac Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 16 08:42:39 2015 +0200 add compute trip for map -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
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 6dbaa2121a5bb745abb9e332c2814537cc95d6ac Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 16 08:42:39 2015 +0200 add compute trip for map --- .../src/main/java/fr/ird/observe/DataService.java | 25 ++++++ .../observe/entities/seine/TripSeineDAOImpl.java | 90 ++++++++++++++++++++++ .../java/fr/ird/observe/tripMap/TripMapPoint.java | 51 ++++++++++++ 3 files changed, 166 insertions(+) diff --git a/observe-business/src/main/java/fr/ird/observe/DataService.java b/observe-business/src/main/java/fr/ird/observe/DataService.java index 029675a..e35ea06 100644 --- a/observe-business/src/main/java/fr/ird/observe/DataService.java +++ b/observe-business/src/main/java/fr/ird/observe/DataService.java @@ -84,6 +84,7 @@ import fr.ird.observe.entities.seine.TargetLength; import fr.ird.observe.entities.seine.TargetSample; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.entities.seine.TripSeineDAO; +import fr.ird.observe.tripMap.TripMapPoint; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -1632,6 +1633,30 @@ public class DataService { } } + public List<TripMapPoint> loadTrip(DataSource source, String id) throws DataSourceException { + if (!source.canReadData()) { + if (log.isDebugEnabled()) { + log.debug("Can not read data!"); + } + return null; + } + + String txName = "loadTrip"; + TopiaContext tx = beginTransaction(source, txName); + + try { + TripSeineDAO dao = (TripSeineDAO) source.getDAO(tx, TripSeine.class); + List<TripMapPoint> tripMapPoints = dao.extractTripMap(id); + return tripMapPoints; + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + } + + // ------------------------------------------------------------------------ // -- Méthodes de chargement de données // ------------------------------------------------------------------------ diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java index bb185d6..21215d9 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/seine/TripSeineDAOImpl.java @@ -21,11 +21,15 @@ */ package fr.ird.observe.entities.seine; +import com.google.common.collect.Lists; import fr.ird.observe.entities.constants.ReferenceLocale; +import fr.ird.observe.entities.constants.seine.SchoolType; +import fr.ird.observe.entities.referentiel.Harbour; import fr.ird.observe.entities.referentiel.Person; import fr.ird.observe.entities.referentiel.PersonImpl; import fr.ird.observe.entities.referentiel.Vessel; import fr.ird.observe.entities.referentiel.VesselImpl; +import fr.ird.observe.tripMap.TripMapPoint; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.framework.TopiaSQLQuery; @@ -34,6 +38,8 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Time; +import java.util.Calendar; import java.util.List; /** @@ -72,6 +78,90 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< } + public List<TripMapPoint> extractTripMap(String tripId) throws TopiaException { + + TripSeine tripSeine = findByTopiaId(tripId); + + List<TripMapPoint> tripMapPoints = Lists.newLinkedList(); + + // add departure harbours + Harbour departureHarbour = tripSeine.getDepartureHarbour(); + if (departureHarbour != null) { + TripMapPoint departurePoint = new TripMapPoint(); + departurePoint.setTime(tripSeine.getStartDate()); + departurePoint.setLatitude(departureHarbour.getLatitude()); + departurePoint.setLongitude(departureHarbour.getLongitude()); + tripMapPoints.add(departurePoint); + } + + // Add Activities + TripMapPointQuery tripMapPointQuery = new TripMapPointQuery(tripId); + tripMapPoints.addAll(tripMapPointQuery.findMultipleResult(context)); + + // add landing harbours + Harbour landingHarbour = tripSeine.getLandingHarbour(); + if (landingHarbour != null) { + TripMapPoint landingPoint = new TripMapPoint(); + landingPoint.setTime(tripSeine.getEndDate()); + landingPoint.setLatitude(landingHarbour.getLatitude()); + landingPoint.setLongitude(landingHarbour.getLongitude()); + tripMapPoints.add(landingPoint); + } + + return tripMapPoints; + } + + private static class TripMapPointQuery extends TopiaSQLQuery<TripMapPoint> { + + private static String SQL = "SELECT" + + " r.date, " + + " a.time, " + + " a.latitude," + + " a.longitude," + + " s.schoolType" + + " FROM observe_seine.route r" + + " INNER JOIN observe_seine.activity a" + + " ON a.route = r.topiaId" + + " LEFT OUTER JOIN observe_seine.set s" + + " ON s.topiaId = a.set" + + " WHERE r.trip = ?" + + " ORDER BY r.date, a.time"; + + protected String tripId; + + public TripMapPointQuery(String tripId) { + this.tripId = tripId; + } + + @Override + protected PreparedStatement prepareQuery(Connection connection) throws SQLException { + PreparedStatement preparedStatement = connection.prepareStatement(SQL); + preparedStatement.setString(1, tripId); + return preparedStatement; + } + + @Override + protected TripMapPoint prepareResult(ResultSet resultSet) throws SQLException { + + TripMapPoint point = new TripMapPoint(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(resultSet.getDate(1)); + Time time = resultSet.getTime(2); + calendar.set(Calendar.HOUR_OF_DAY, time.getHours()); + calendar.set(Calendar.MINUTE, time.getMinutes()); + calendar.set(Calendar.SECOND, time.getSeconds()); + point.setTime(calendar.getTime()); + point.setLatitude(resultSet.getFloat(3)); + point.setLongitude(resultSet.getFloat(4)); + if (resultSet.getString(5) != null) { + point.setSchoolType(SchoolType.values()[resultSet.getInt(5)]); + } + + return point; + } + } + + private static class StubSqlQuery<E extends TripSeine> extends TopiaSQLQuery<E> { private final String sql; diff --git a/observe-entities/src/main/java/fr/ird/observe/tripMap/TripMapPoint.java b/observe-entities/src/main/java/fr/ird/observe/tripMap/TripMapPoint.java new file mode 100644 index 0000000..247240a --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/tripMap/TripMapPoint.java @@ -0,0 +1,51 @@ +package fr.ird.observe.tripMap; + +import fr.ird.observe.entities.constants.seine.SchoolType; + +import java.util.Date; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class TripMapPoint { + + protected Date time; + + protected float latitude; + + protected float longitude; + + protected SchoolType schoolType; + + public Date getTime() { + return time; + } + + public void setTime(Date time) { + this.time = time; + } + + public float getLatitude() { + return latitude; + } + + public void setLatitude(float latitude) { + this.latitude = latitude; + } + + public float getLongitude() { + return longitude; + } + + public void setLongitude(float longitude) { + this.longitude = longitude; + } + + public SchoolType getSchoolType() { + return schoolType; + } + + public void setSchoolType(SchoolType schoolType) { + this.schoolType = schoolType; + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
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 16616a346f42bf3a0f7ba66ebd74693f0275350a Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 16 08:56:52 2015 +0200 add shape file and options map in config --- .../main/java/fr/ird/observe/ObserveConfig.java | 71 +++------- .../java/fr/ird/observe/ObserveConfigOption.java | 106 +++++++++++++++ .../fr/ird/observe/ObserveResourceManager.java | 9 +- .../main/java/fr/ird/observe/ObserveRunner.java | 9 +- .../ird/observe/ui/actions/ShowConfigAction.java | 29 +++- .../resources/shapeFiles/zee/World_EEZ_v8_2014.dbf | Bin 0 -> 177553 bytes .../resources/shapeFiles/zee/World_EEZ_v8_2014.prj | 1 + .../resources/shapeFiles/zee/World_EEZ_v8_2014.sbn | Bin 0 -> 2852 bytes .../resources/shapeFiles/zee/World_EEZ_v8_2014.sbx | Bin 0 -> 372 bytes .../resources/shapeFiles/zee/World_EEZ_v8_2014.shp | Bin 0 -> 5091908 bytes .../shapeFiles/zee/World_EEZ_v8_2014.shp.xml | 147 +++++++++++++++++++++ .../resources/shapeFiles/zee/World_EEZ_v8_2014.shx | Bin 0 -> 2092 bytes 12 files changed, 313 insertions(+), 59 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java b/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java index a7102b8..b8909dc 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveConfig.java @@ -22,6 +22,7 @@ package fr.ird.observe; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fr.ird.observe.db.DataSourceFactory; import fr.ird.observe.db.constants.CommonDataSourceConfigParam; @@ -39,6 +40,7 @@ import org.nuiton.util.version.Version; import org.nuiton.util.version.Versions; import javax.swing.JOptionPane; +import java.awt.Color; import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; @@ -50,57 +52,7 @@ import java.util.Locale; import java.util.Properties; import java.util.Set; -import static fr.ird.observe.ObserveConfigOption.AUTO_POPUP_NUMBER_EDITOR; -import static fr.ird.observe.ObserveConfigOption.BACKUP_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.BAIT_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.BIRDS_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.CHANGE_SYNCHRO_SRC; -import static fr.ird.observe.ObserveConfigOption.CONFIG_FILE; -import static fr.ird.observe.ObserveConfigOption.DB_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.DB_LOCALE; -import static fr.ird.observe.ObserveConfigOption.DEFAULT_CREATION_MODE; -import static fr.ird.observe.ObserveConfigOption.DEFAULT_DB_MODE; -import static fr.ird.observe.ObserveConfigOption.DEFAULT_GPS_MAX_DELAY; -import static fr.ird.observe.ObserveConfigOption.DEFAULT_GPS_MAX_SPEED; -import static fr.ird.observe.ObserveConfigOption.DETAILLED_ACTIVITIES_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.DEV_MODE; -import static fr.ird.observe.ObserveConfigOption.FULL_SCREEN; -import static fr.ird.observe.ObserveConfigOption.H2_CAN_MIGRATE; -import static fr.ird.observe.ObserveConfigOption.H2_LOGIN; -import static fr.ird.observe.ObserveConfigOption.H2_PASSWORD; -import static fr.ird.observe.ObserveConfigOption.H2_SERVER_PORT; -import static fr.ird.observe.ObserveConfigOption.I18N_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.INITIAL_DB_DUMP; -import static fr.ird.observe.ObserveConfigOption.LOAD_LOCAL_STORAGE; -import static fr.ird.observe.ObserveConfigOption.LOCALE; -import static fr.ird.observe.ObserveConfigOption.MAMMALS_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.NON_TARGET_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.OBJECTS_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_CAN_MIGRATE; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_LOGIN; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_PASSWORD; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_URL; -import static fr.ird.observe.ObserveConfigOption.OBSTUNA_USE_SSL_CERT; -import static fr.ird.observe.ObserveConfigOption.REPORT_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.RESOURCES_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.SAMPLES_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.SHOW_DATE_TIME_EDITOR_SLIDER; -import static fr.ird.observe.ObserveConfigOption.SHOW_MIGRATION_PROGRESSION; -import static fr.ird.observe.ObserveConfigOption.SHOW_MIGRATION_SQL; -import static fr.ird.observe.ObserveConfigOption.SHOW_NUMBER_EDITOR_BUTTON; -import static fr.ird.observe.ObserveConfigOption.SHOW_SQL; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_LONGLINE_CATCH_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_LONGLINE_DEPREDATOR_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_LONGLINE_ENCOUNTER_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_NON_TARGET_CATCH_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_OBJECT_OBSERVED_SPECIES_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_OBJECT_SCHOOL_ESTIMATE_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_SCHOOL_ESTIMATE_ID; -import static fr.ird.observe.ObserveConfigOption.SPECIES_LIST_SEINE_TARGET_CATCH_ID; -import static fr.ird.observe.ObserveConfigOption.STORE_REMOTE_STORAGE; -import static fr.ird.observe.ObserveConfigOption.TARGET_DISCARDS_OBSERVATION; -import static fr.ird.observe.ObserveConfigOption.TMP_DIRECTORY; -import static fr.ird.observe.ObserveConfigOption.values; +import static fr.ird.observe.ObserveConfigOption.*; import static fr.ird.observe.ObserveResourceManager.Resource; import static org.nuiton.i18n.I18n.t; @@ -866,6 +818,23 @@ public class ObserveConfig extends ApplicationConfig implements IObserveConfig { setOption(SPECIES_LIST_LONGLINE_DEPREDATOR_ID, speciesListLonglineDepredatorId); } + public Color getMapBackgroundColor() { + Color result = getOptionAsColor(MAP_BACKGROUND_COLOR.key); + return result; + } + + public List<File> getMapLayerFiles() { + List<File> layers = Lists.newLinkedList(); + + for (ObserveConfigOption layerOption : ObserveConfigOption.MAP_LAYERS) { + File layerFile = getOptionAsFile(layerOption.key); + if (layerFile != null && layerFile.exists()) { + layers.add(layerFile); + } + } + return layers; + } + public String[] getUnsavables() { if (unsavables == null) { List<String> tmp = new ArrayList<String>(); diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java b/observe-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java index 2fa3e54..d797d8c 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveConfigOption.java @@ -21,12 +21,15 @@ */ package fr.ird.observe; +import com.google.common.collect.ImmutableList; import fr.ird.observe.db.constants.CreationMode; import fr.ird.observe.db.constants.DbMode; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ConfigOptionDef; +import java.awt.Color; import java.io.File; +import java.util.List; import java.util.Locale; import static org.nuiton.i18n.I18n.n; @@ -612,8 +615,111 @@ public enum ObserveConfigOption implements ConfigOptionDef { String.class, false, false + ), + + /** le chemin vers le fond de carte */ + MAP_BACKGROUND_COLOR( + "map.background.color", + n("observe.config.map.background.description"), + new Color(87, 200, 255).toString(), + Color.class, + false, + false + ), + /** shape file 1 */ + MAP_LAYER_1( + "map.layer1.path", + n("observe.config.map.layer1.description"), + "${user.home}/.observe/shapeFiles/zee/World_EEZ_v8_2014.shp", + File.class, + false, + false + ), + /** shape file 2 */ + MAP_LAYER_2( + "map.layer2.path", + n("observe.config.map.layer2.description"), + null, + File.class, + false, + false + ), + /** shape file 3 */ + MAP_LAYER_3( + "map.layer3.path", + n("observe.config.map.layer3.description"), + null, + File.class, + false, + false + ), + /** shape file 4 */ + MAP_LAYER_4( + "map.layer4.path", + n("observe.config.map.layer4.description"), + null, + File.class, + false, + false + ), + /** shape file 5 */ + MAP_LAYER_5( + "map.layer5.path", + n("observe.config.map.layer5.description"), + null, + File.class, + false, + false + ), + /** shape file 6 */ + MAP_LAYER_6( + "map.layer6.path", + n("observe.config.map.layer6.description"), + null, + File.class, + false, + false + ), + /** shape file 7 */ + MAP_LAYER_7( + "map.layer7.path", + n("observe.config.map.layer7.description"), + null, + File.class, + false, + false + ), + /** shape file 8 */ + MAP_LAYER_8( + "map.layer8.path", + n("observe.config.map.layer8.description"), + null, + File.class, + false, + false + ), + /** shape file 9 */ + MAP_LAYER_9( + "map.layer9.path", + n("observe.config.map.layer9.description"), + null, + File.class, + false, + false + ), + /** shape file 10 */ + MAP_LAYER_10( + "map.layer10.path", + n("observe.config.map.layer10.description"), + null, + File.class, + false, + false ); + protected static List<ObserveConfigOption> MAP_LAYERS = ImmutableList.of(MAP_LAYER_1, MAP_LAYER_2, MAP_LAYER_3, + MAP_LAYER_4, MAP_LAYER_5, MAP_LAYER_6, MAP_LAYER_7, MAP_LAYER_8, MAP_LAYER_9, MAP_LAYER_10); + /** * Clef qui represente l'option (c'est celle enregistrée dans le fichier de * configuration). diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java b/observe-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java index a38fb58..b6f8403 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveResourceManager.java @@ -58,6 +58,12 @@ public class ObserveResourceManager { public static final String OBSERVE_REPORTS_PROPERTIES = "/observe-reports.properties"; + public static final String OBSERVE_MAP_BACKGROUND = + "/shapefiles/backgroundes/background.shp"; + + public static final String OBSERVE_MAP_LAYERS = + "/shapeFiles"; + /** Logger */ static private Log log = LogFactory.getLog(ObserveResourceManager.class); @@ -65,7 +71,8 @@ public class ObserveResourceManager { ui(OBSERVE_UI_PROPERTIES), application(OBSERVE_APPLICATION_PROPERTIES), - report(OBSERVE_REPORTS_PROPERTIES); + report(OBSERVE_REPORTS_PROPERTIES), + mapLayers(OBSERVE_MAP_LAYERS); private final String location; diff --git a/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java b/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java index 0001918..432f4a2 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java +++ b/observe-swing/src/main/java/fr/ird/observe/ObserveRunner.java @@ -213,7 +213,7 @@ public abstract class ObserveRunner extends ApplicationRunner { if (log.isInfoEnabled()) { log.info(t("observe.runner.i18n.loaded", - config.getLocale().getDisplayLanguage())); + config.getLocale().getDisplayLanguage())); } // 4 - preparation de la configuration des ui @@ -458,6 +458,13 @@ public abstract class ObserveRunner extends ApplicationRunner { // 8 - validation report directory resourceManager.createDirectory(config, VALIDATION_REPORT_DIRECTORY); + + // 9 - resources shapeFiles + +// String message = t("observe.runner.copy.default.report.file", eezShapeFile); +// +// resourceManager.copyDirectory(Resource.mapLayers, config, RESOURCES_DIRECTORY, massage); + } protected void detectLocalDataBase(ObserveConfig config) throws IOException { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java b/observe-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java index a19ff09..a2fe180 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/actions/ShowConfigAction.java @@ -220,7 +220,7 @@ public class ShowConfigAction extends AbstractAction { protected void addH2Options(ObserveConfigUIBuilder helper) { helper.addCategory(n("observe.config.category.h2"), - n("observe.config.category.h2.description")); + n("observe.config.category.h2.description")); helper.addOption(ObserveConfigOption.H2_LOGIN); helper.addOption(ObserveConfigOption.H2_PASSWORD); @@ -261,7 +261,7 @@ public class ShowConfigAction extends AbstractAction { protected void addGpsOptions(ObserveConfigUIBuilder helper) { helper.addCategory(n("observe.config.category.gps"), - n("observe.config.category.gps.description")); + n("observe.config.category.gps.description")); helper.addOption(ObserveConfigOption.DEFAULT_GPS_MAX_DELAY); helper.addOption(ObserveConfigOption.DEFAULT_GPS_MAX_SPEED); @@ -282,11 +282,10 @@ public class ShowConfigAction extends AbstractAction { helper.addCategory( n("observe.config.category.observation"), - n("observe.config.category.observation.description")); - - helper.addOption(ObserveConfigOption.DETAILLED_ACTIVITIES_OBSERVATION, - ObserveUICallback.ui); + n("observe.config.category.observation.description"), + ObserveUICallback.ui.name()); + helper.addOption(ObserveConfigOption.DETAILLED_ACTIVITIES_OBSERVATION); helper.addOption(ObserveConfigOption.NON_TARGET_OBSERVATION); helper.addOption(ObserveConfigOption.BAIT_OBSERVATION); helper.addOption(ObserveConfigOption.MAMMALS_OBSERVATION); @@ -325,6 +324,24 @@ public class ShowConfigAction extends AbstractAction { } + protected void addMapOptions(ObserveConfigUIBuilder helper) { + + helper.addCategory( + n("observe.config.category.map"), + n("observe.config.category.map.description"), + ObserveUICallback.ui.name()); + + helper.addOption(ObserveConfigOption.DETAILLED_ACTIVITIES_OBSERVATION); + helper.addOption(ObserveConfigOption.NON_TARGET_OBSERVATION); + helper.addOption(ObserveConfigOption.BAIT_OBSERVATION); + helper.addOption(ObserveConfigOption.MAMMALS_OBSERVATION); + helper.addOption(ObserveConfigOption.SAMPLES_OBSERVATION); + helper.addOption(ObserveConfigOption.OBJECTS_OBSERVATION); + helper.addOption(ObserveConfigOption.BIRDS_OBSERVATION); + helper.addOption(ObserveConfigOption.TARGET_DISCARDS_OBSERVATION); + + } + protected void addOthersOptions(ObserveConfigUIBuilder helper) { helper.addCategory(n("observe.config.category.other"), diff --git a/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.dbf b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.dbf new file mode 100644 index 0000000..e5397a1 Binary files /dev/null and b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.dbf differ diff --git a/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.prj b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.prj new file mode 100644 index 0000000..f45cbad --- /dev/null +++ b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.prj @@ -0,0 +1 @@ +GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] \ No newline at end of file diff --git a/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.sbn b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.sbn new file mode 100644 index 0000000..9b84b5b Binary files /dev/null and b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.sbn differ diff --git a/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.sbx b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.sbx new file mode 100644 index 0000000..e891817 Binary files /dev/null and b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.sbx differ diff --git a/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.shp b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.shp new file mode 100644 index 0000000..429acd0 Binary files /dev/null and b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.shp differ diff --git a/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.shp.xml b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.shp.xml new file mode 100644 index 0000000..187f15b --- /dev/null +++ b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.shp.xml @@ -0,0 +1,147 @@ +<metadata xml:lang="nl"><Esri><CreaDate>20131014</CreaDate><CreaTime>13354700</CreaTime><SyncOnce>FALSE</SyncOnce><SyncDate>20140227</SyncDate><SyncTime>14430500</SyncTime><ModDate>20140227</ModDate><ModTime>14430500</ModTime><DataProperties><lineage><Process ToolSource="c:\program files (x86)\arcgis\desktop10.1\ArcToolbox\Toolboxes\Data Management Tools.tbx\CalculateField" Date="20120906" Time="120028" Name="" export="">CalculateField World_Maritime_Boundaries_v7 LastChange [Remarks] VB [...] +The data set of the Exclusive Economic Zones can be used in many applications. In biogeography for example, it is possible to create for instance species distribution lists per country.</idPurp><idAbs><DIV STYLE="text-align:Left;"><DIV><DIV><P STYLE="margin:0 0 0 0;"><SPAN>Two global GIS-covers in ESRI shape format were produced: one contains polylines representing the maritime boundaries;the second holds polygons representing the EEZs. When all the boundary [...] +HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy +MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACFAMgDASIA +AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA +AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 +ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm +p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA +AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx +BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK +U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 +uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iii +gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooqoNQQ7j5 +Uu1ZDGWAHUHHTOamU4x+J2At0VSOpRKxVkYFeoLoCPr81NbVoOEU4kYhVUsrcn2BJ9T+Bqfaw3uO +zL9FYl9qiwR/JcCeVjhYlkCDOM9QCR+uawY9a1K4gkkGmxFQCA5V32H1LEdODwcfXPFZrEcyvCLY +WOz+1W//AD3i/wC+xR9rtv8An4i/77FedXGteIbm6aJZUVedpj/dowJ4O48jgHqe2fejSr3VJZFF +xqUwJQsj5aRGGcdFxtPU/MeeOO9Uqk7XaX9fILHopu7YdbiIf8DFH2u2/wCfiL/vsVy2nQyzQPLe +XEt8r5KrFdHa645wBwT143dq2rWHTNUtxcW080sRJB23Mo57gjd+hojUc/hsFi/9rtv+fiL/AL7F +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</Data></Thumbnail></Binary><mdContact xmlns=""><rpIndName>Nathalie De Hauwere</rpIndName><rpOrgName>Flanders Marine Institute, VLIZ</rpOrgName><rpPosName>Scientific Assistant, GIS</rpPosName><role><RoleCd value="007"/></role><rpCntInfo xmlns=""><cntAddress addressType=""><eMailAdd>info@marineregions.org</eMailAdd></cntAddress></rpCntInfo><displayName>Nathalie De Hauwere</displayName></mdContact><mdMaint xmlns="" [...] + + +- Singapore - Malaysia + +- New boundary between Colombia and Nicaragua + +- Malta (Continental Shelf) + +- Guyana - Suriname + + +- Norway: create seperate polygon for the Fisheries Protection Zone around + +- Boundary Morocco - Mauritania + +- Maritime Dispute Chile-Peru + +- Split Guadeloupe and Martinique + +- Split US Virgin Islands and Puerto Rico + +- ISO Codes + +- Error in the western boundary of the Wallis & Futuna EEZ + +- Boundary Kenya - Somalia + +- Boundary UK - France, Celtic Sea + +- Boundary China/North Korea is disputed + +- Change terminology: 'disputed' in 'median line - disputed' + +- Boundary Tuvalu-Kiribati: agreed boundary: + +- Boundary New Caledonia (with Australia/Norfolk Island): continental shelf instead of EEZ + +- Congo (Kinshasa) has claimed 200 NM / territorial sea / baselines / and continental shelf + +- Include metadata in downloadfiles + +- Update boundary Palmyra Atoll, based on http://www.nauticalcharts.noaa.gov/csdl/mbound.htm + +- Vanuatu EEZ boundary + +- Trinidad & Tobago + Barbados + Venezuela</statement></dataLineage></dqInfo><eainfo><detailed Name="World_EEZ_v8_2014" xmlns=""><enttyp><enttypl Sync="TRUE">World_EEZ_v8_2014</enttypl><enttypt Sync="TRUE">Feature Class</enttypt><enttypc Sync="TRUE">249</enttypc></enttyp><attr xmlns=""><attrlabl Sync="TRUE">FID</attrlabl><attalias Sync="TRUE">FID</attalias><attrtype Sync="TRUE">OID</attrtype><attwidth Sync="TRUE">4</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</ [...] diff --git a/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.shx b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.shx new file mode 100644 index 0000000..c8f1c74 Binary files /dev/null and b/observe-swing/src/main/resources/shapeFiles/zee/World_EEZ_v8_2014.shx differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
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 0d6d869f00552bd4154233390edce902b436aeef Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Thu Apr 16 08:58:08 2015 +0200 add map in trip seine UI --- observe-swing/pom.xml | 22 ++ observe-swing/src/license/THIRD-PARTY.properties | 23 +- .../ui/content/open/impl/seine/TripSeineUI.css | 8 + .../ui/content/open/impl/seine/TripSeineUI.jaxx | 323 +++++++++++---------- .../open/impl/seine/TripSeineUIHandler.java | 156 +++++++++- .../resources/i18n/observe-swing_en_GB.properties | 15 + .../resources/i18n/observe-swing_es_ES.properties | 15 + .../resources/i18n/observe-swing_fr_FR.properties | 15 + pom.xml | 68 +++++ 9 files changed, 480 insertions(+), 165 deletions(-) diff --git a/observe-swing/pom.xml b/observe-swing/pom.xml index ab87ab1..6f4be94 100644 --- a/observe-swing/pom.xml +++ b/observe-swing/pom.xml @@ -237,6 +237,28 @@ <scope>runtime</scope> </dependency> + <!-- Map --> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-swing</artifactId> + </dependency> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-shapefile</artifactId> + </dependency> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-api</artifactId> + </dependency> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-main</artifactId> + </dependency> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-render</artifactId> + </dependency> + <!-- Logging --> <dependency> <groupId>org.slf4j</groupId> diff --git a/observe-swing/src/license/THIRD-PARTY.properties b/observe-swing/src/license/THIRD-PARTY.properties index 02aa035..843f100 100644 --- a/observe-swing/src/license/THIRD-PARTY.properties +++ b/observe-swing/src/license/THIRD-PARTY.properties @@ -1,33 +1,42 @@ # Generated by org.codehaus.mojo.license.AddThirdPartyMojo #------------------------------------------------------------------------------- # Already used licenses in project : +# - AL 2.0 # - Apache License 2.0 +# - Apache License, version 2.0 # - Apache Software License, version 1.1 # - BSD License -# - Common Public License Version 1.0 +# - Common Development and Distribution License +# - Eclipse Distribution License (EDL), Version 1.0 +# - Eclipse Public License (EPL), Version 1.0 +# - Eclipse Public License 1.0 # - GNU General Public License - Version 2 with the class path exception -# - GNU LESSER GENERAL PUBLIC LICENSE +# - GNU General Public License, Version 2 with the Classpath Exception # - GNU Lesser General Public License -# - GNU Lesser General Public License, 2.1 -# - GNU Lesser General Public License, version 2.1 # - GNU Library or Lesser General Public License # - General Public License (GPL) # - Indiana University Extreme! Lab Software License, vesion 1.1.1 +# - JDL (Java Distribution License) # - LGPL 2.1 # - Lesser General Public License (LGPL) # - Lesser General Public License (LGPL) v 3.0 # - MIT License # - MPL 1.1 # - New BSD License +# - OGC copyright # - Public Domain +# - Similar to Apache License but with the acknowledgment clause removed +# - Simplified BSD # - The Apache Software License, Version 2.0 # - The H2 License, Version 1.0 -# - lgpl -# - license.txt #------------------------------------------------------------------------------- # Please fill the missing licenses for dependencies : # # -#Tue Jun 25 08:54:11 CEST 2013 +#Tue Apr 14 11:12:38 CEST 2015 commons-primitives--commons-primitives--1.0=The Apache Software License, Version 2.0 dom4j--dom4j--1.6.1=BSD License +java3d--vecmath--1.3.2=GNU General Public License - Version 2 with the class path exception +javax.media--jai_codec--1.1.3=JDL (Java Distribution License) +javax.media--jai_imageio--1.1=JDL (Java Distribution License) +jgridshift--jgridshift--1.0=GNU Library or Lesser General Public License diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css index b747f9a..b1772ef 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.css @@ -30,6 +30,14 @@ NumberEditor { numberPattern:{fr.ird.observe.ui.UIHelper.INT_6_DIGITS_PATTERN}; } +#generalTab { + title:"observe.tripSeine.tab.general"; +} + +#mapTab { + title:"observe.tripSeine.tab.map"; +} + #model { editable:true; modified:{validator.isChanged()}; diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.jaxx b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.jaxx index b8d2d76..d63894c 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.jaxx +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/seine/TripSeineUI.jaxx @@ -45,6 +45,8 @@ static fr.ird.observe.ui.UIHelper.getStringValue static org.apache.commons.lang3.StringUtils.isEmpty static org.nuiton.i18n.I18n.n + + org.geotools.swing.JMapPane </import> <!-- handler --> @@ -76,163 +78,170 @@ protected boolean canEditOcean(java.util.List<Route> routes) { <!-- formulaire --> <JPanel id="body" layout='{new BorderLayout()}'> - <Table insets="0" fill="both" constraints='BorderLayout.CENTER'> - - <!-- captain --> - <row> - <cell anchor='west'> - <JLabel id='captainLabel'/> - </cell> - <cell anchor='east'> - <BeanComboBox id='captain' constructorParams='this' genericType='Person'/> - </cell> - </row> - - <!-- observer --> - <row> - <cell anchor='west'> - <JLabel id='observerLabel'/> - </cell> - <cell anchor='east'> - <BeanComboBox id='observer' constructorParams='this' genericType='Person'/> - </cell> - </row> - - <!-- dataEntryOperator --> - <row> - <cell anchor='west'> - <JLabel id='dataEntryOperatorLabel'/> - </cell> - <cell anchor='east'> - <BeanComboBox id='dataEntryOperator' constructorParams='this' genericType='Person'/> - </cell> - </row> - - <!-- vessel --> - <row> - <cell anchor='west'> - <JLabel id='vesselLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='vessel' constructorParams='this' genericType='Vessel'/> - </cell> - </row> - - <!-- ocean (editable uniquement si pas de route saisie) --> - <row> - <cell anchor='west'> - <JLabel id='oceanLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='ocean' genericType='Ocean' constructorParams='this'/> - </cell> - </row> - - <!-- departureHarbour --> - <row> - <cell anchor='west'> - <JLabel id='departureHarbourLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='departureHarbour' genericType='Harbour' constructorParams='this'/> - </cell> - </row> - - <!-- landingHarbour --> - <row> - <cell anchor='west'> - <JLabel id='landingHarbourLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <BeanComboBox id='landingHarbour' genericType='Harbour' constructorParams='this'/> - </cell> - </row> - - <!-- id ers --> - <row> - - <cell anchor='west'> - <JLabel id='ersIdLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JPanel layout='{new BorderLayout()}'> - <JToolBar id='ersIdToolbar' constraints='BorderLayout.WEST'> - <JButton id='resetErsId' constraints='BorderLayout.WEST' styleClass='resetButton'/> - </JToolBar> - <JTextField id='ersId' constraints='BorderLayout.CENTER'/> - </JPanel> - </cell> - </row> - - <!-- startDate --> - <row> - <cell anchor='west'> - <JLabel id='startDateLabel'/> - </cell> - <cell anchor='west' weightx="0.5"> - <JXDatePicker id='startDate'/> - </cell> - </row> - - <!-- endDate --> - <row> - <cell anchor='west'> - <JLabel id='endDateLabel'/> - </cell> - <cell anchor='west' weightx="0.5"> - <JXDatePicker id='endDate'/> - </cell> - </row> - - <!-- formsUrl --> - <row> - <cell anchor="west"> - <JLabel id='formsUrlLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JPanel layout='{new BorderLayout()}'> - <JToolBar id='formsUrlToolbar' constraints='BorderLayout.WEST'> - <JButton id='resetFormsUrl' constraints='BorderLayout.WEST' styleClass='resetButton'/> - </JToolBar> - <JTextField id='formsUrl' constraints='BorderLayout.CENTER'/> - <JToolBar id='formsUrlToolbar2' constraints='BorderLayout.EAST'> - <JButton id='openLinkFormulairesUrl' - onActionPerformed='getHandler().openLink(getModel().getBean().getFormsUrl())'/> - </JToolBar> - - </JPanel> - </cell> - </row> - - <!-- reportsUrl --> - <row> - <cell anchor="west"> - <JLabel id='reportsUrlLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JPanel layout='{new BorderLayout()}'> - <JToolBar id='reportsUrlToolbar' constraints='BorderLayout.WEST'> - <JButton id='resetReportsUrl' constraints='BorderLayout.WEST' styleClass='resetButton'/> - </JToolBar> - <JTextField id='reportsUrl' constraints='BorderLayout.CENTER'/> - - <JToolBar id='reportsUrlToolbar2' constraints='BorderLayout.EAST'> - <JButton id='openLinkRapportsUrl' constraints='BorderLayout.EAST' - onActionPerformed='getHandler().openLink(getModel().getBean().getReportsUrl())'/> - </JToolBar> - </JPanel> - </cell> - </row> - - <!-- comment --> - <row> - <cell fill='both' weighty="1" columns="2"> - <JScrollPane id='comment' onFocusGained='comment2.requestFocus()'> - <JTextArea id='comment2' onKeyReleased='getModel().getBean().setComment(comment2.getText())'/> - </JScrollPane> - </cell> - </row> - </Table> + <JTabbedPane id='tripSeineTabPane' constraints='BorderLayout.CENTER'> + <tab id='generalTab'> + <Table insets="0" fill="both"> + + <!-- captain --> + <row> + <cell anchor='west'> + <JLabel id='captainLabel'/> + </cell> + <cell anchor='east'> + <BeanComboBox id='captain' constructorParams='this' genericType='Person'/> + </cell> + </row> + + <!-- observer --> + <row> + <cell anchor='west'> + <JLabel id='observerLabel'/> + </cell> + <cell anchor='east'> + <BeanComboBox id='observer' constructorParams='this' genericType='Person'/> + </cell> + </row> + + <!-- dataEntryOperator --> + <row> + <cell anchor='west'> + <JLabel id='dataEntryOperatorLabel'/> + </cell> + <cell anchor='east'> + <BeanComboBox id='dataEntryOperator' constructorParams='this' genericType='Person'/> + </cell> + </row> + + <!-- vessel --> + <row> + <cell anchor='west'> + <JLabel id='vesselLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <BeanComboBox id='vessel' constructorParams='this' genericType='Vessel'/> + </cell> + </row> + + <!-- ocean (editable uniquement si pas de route saisie) --> + <row> + <cell anchor='west'> + <JLabel id='oceanLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <BeanComboBox id='ocean' genericType='Ocean' constructorParams='this'/> + </cell> + </row> + + <!-- departureHarbour --> + <row> + <cell anchor='west'> + <JLabel id='departureHarbourLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <BeanComboBox id='departureHarbour' genericType='Harbour' constructorParams='this'/> + </cell> + </row> + + <!-- landingHarbour --> + <row> + <cell anchor='west'> + <JLabel id='landingHarbourLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <BeanComboBox id='landingHarbour' genericType='Harbour' constructorParams='this'/> + </cell> + </row> + + <!-- id ers --> + <row> + + <cell anchor='west'> + <JLabel id='ersIdLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <JPanel layout='{new BorderLayout()}'> + <JToolBar id='ersIdToolbar' constraints='BorderLayout.WEST'> + <JButton id='resetErsId' constraints='BorderLayout.WEST' styleClass='resetButton'/> + </JToolBar> + <JTextField id='ersId' constraints='BorderLayout.CENTER'/> + </JPanel> + </cell> + </row> + + <!-- startDate --> + <row> + <cell anchor='west'> + <JLabel id='startDateLabel'/> + </cell> + <cell anchor='west' weightx="0.5"> + <JXDatePicker id='startDate'/> + </cell> + </row> + + <!-- endDate --> + <row> + <cell anchor='west'> + <JLabel id='endDateLabel'/> + </cell> + <cell anchor='west' weightx="0.5"> + <JXDatePicker id='endDate'/> + </cell> + </row> + + <!-- formsUrl --> + <row> + <cell anchor="west"> + <JLabel id='formsUrlLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <JPanel layout='{new BorderLayout()}'> + <JToolBar id='formsUrlToolbar' constraints='BorderLayout.WEST'> + <JButton id='resetFormsUrl' constraints='BorderLayout.WEST' styleClass='resetButton'/> + </JToolBar> + <JTextField id='formsUrl' constraints='BorderLayout.CENTER'/> + <JToolBar id='formsUrlToolbar2' constraints='BorderLayout.EAST'> + <JButton id='openLinkFormulairesUrl' + onActionPerformed='getHandler().openLink(getModel().getBean().getFormsUrl())'/> + </JToolBar> + + </JPanel> + </cell> + </row> + + <!-- reportsUrl --> + <row> + <cell anchor="west"> + <JLabel id='reportsUrlLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <JPanel layout='{new BorderLayout()}'> + <JToolBar id='reportsUrlToolbar' constraints='BorderLayout.WEST'> + <JButton id='resetReportsUrl' constraints='BorderLayout.WEST' styleClass='resetButton'/> + </JToolBar> + <JTextField id='reportsUrl' constraints='BorderLayout.CENTER'/> + + <JToolBar id='reportsUrlToolbar2' constraints='BorderLayout.EAST'> + <JButton id='openLinkRapportsUrl' constraints='BorderLayout.EAST' + onActionPerformed='getHandler().openLink(getModel().getBean().getReportsUrl())'/> + </JToolBar> + </JPanel> + </cell> + </row> + + <!-- comment --> + <row> + <cell fill='both' weighty="1" columns="2"> + <JScrollPane id='comment' onFocusGained='comment2.requestFocus()'> + <JTextArea id='comment2' onKeyReleased='getModel().getBean().setComment(comment2.getText())'/> + </JScrollPane> + </cell> + </row> + </Table> + </tab> + <tab id="mapTab"> + <JMapPane id='tripMap'/> + </tab> + </JTabbedPane> </JPanel> <!-- surcharge des actions (pour appliquer la css specifique) --> 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 34bdd7d..19004de 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 @@ -21,7 +21,13 @@ */ package fr.ird.observe.ui.content.open.impl.seine; +import com.google.common.base.Function; +import com.google.common.collect.Lists; +import com.vividsolutions.jts.geom.Coordinate; +import com.vividsolutions.jts.geom.GeometryFactory; +import com.vividsolutions.jts.geom.LineString; import fr.ird.observe.DataService; +import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.db.DataContext; import fr.ird.observe.db.DataSource; @@ -30,19 +36,45 @@ import fr.ird.observe.db.util.TopiaExecutor2; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.seine.Routes; import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.tripMap.TripMapPoint; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.open.ContentOpenableUIHandler; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.geotools.data.FileDataStore; +import org.geotools.data.FileDataStoreFinder; +import org.geotools.data.simple.SimpleFeatureSource; +import org.geotools.feature.DefaultFeatureCollection; +import org.geotools.feature.simple.SimpleFeatureBuilder; +import org.geotools.feature.simple.SimpleFeatureTypeBuilder; +import org.geotools.geometry.DirectPosition2D; +import org.geotools.geometry.jts.JTSFactoryFinder; +import org.geotools.geometry.jts.ReferencedEnvelope; +import org.geotools.map.FeatureLayer; +import org.geotools.map.Layer; +import org.geotools.map.MapContent; +import org.geotools.styling.SLD; +import org.geotools.styling.Style; +import org.geotools.swing.JMapPane; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; 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 javax.swing.JTabbedPane; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.Color; +import java.awt.event.MouseWheelEvent; +import java.awt.event.MouseWheelListener; +import java.io.File; import java.util.Date; +import java.util.List; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -135,6 +167,24 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { } + + ObserveConfig config = ui.getContextValue(ObserveConfig.class); + + final JMapPane tripMap = getUi().getTripMap(); + + tripMap.setBackground(config.getMapBackgroundColor()); + + getUi().getTripSeineTabPane().addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + JTabbedPane tripSeineTabPane = (JTabbedPane) e.getSource(); + if (tripSeineTabPane.getSelectedComponent() == tripMap) { + doOpenMap(); + } + } + }); + + tripMap.addMouseWheelListener(new MouseMapListener()); finalizeOpenUI(mode, create); } @@ -293,4 +343,108 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { } + public void doOpenMap() { + JMapPane tripMap = getUi().getTripMap(); + tripMap.setMapContent(getMapContent()); + tripMap.setDisplayArea(tripArea); + } + + protected MapContent mapContent; + protected ReferencedEnvelope tripArea; + + public MapContent getMapContent() { +// if (mapContent == null) { + try { + + mapContent = new MapContent(); + mapContent.setTitle("Un titre"); + + + // add map layers + ObserveConfig config = ui.getContextValue(ObserveConfig.class); + + for (File layerFile : config.getMapLayerFiles()) { + FileDataStore store = FileDataStoreFinder.getDataStore(layerFile); + SimpleFeatureSource featureSource = store.getFeatureSource(); + Style style = SLD.createSimpleStyle(featureSource.getSchema()); + Layer layer = new FeatureLayer(featureSource, style); + mapContent.addLayer(layer); + } + + // add trip + DataService dataService = getDataService(); + DataSource source = getDataSource(); + String tripId = getSelectedId(); + + List<TripMapPoint> tripMapPoints = dataService.loadTrip(source, tripId); + + GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); + + SimpleFeatureTypeBuilder typeBuilder = new SimpleFeatureTypeBuilder(); + typeBuilder.setName("a-type-name"); + //typeBuilder.setCRS(CRS.decode("EPSG:4326")); + typeBuilder.add("geom-attr-name", LineString.class); + + SimpleFeatureType type = typeBuilder.buildFeatureType(); + SimpleFeatureBuilder builder = new SimpleFeatureBuilder(type); + + + List <Coordinate> coordinates = Lists.transform(tripMapPoints, new Function<TripMapPoint, Coordinate>() { + + @Override + public Coordinate apply(TripMapPoint input) { + return new Coordinate(input.getLongitude(), input.getLatitude()); + } + }); + + LineString line = geometryFactory.createLineString(coordinates.toArray(new Coordinate[0])); + + builder.add(line); + + SimpleFeature tripFeature = builder.buildFeature("trip"); + + DefaultFeatureCollection features = new DefaultFeatureCollection(); + features.add(tripFeature); + + Style style = SLD.createLineStyle(Color.green, 1); + Layer layer = new FeatureLayer(features, style); + mapContent.addLayer(layer); + + // set zoom + + tripArea = new ReferencedEnvelope(); + for (TripMapPoint point : tripMapPoints) { + tripArea.expandToInclude(new DirectPosition2D(point.getLongitude(), point.getLatitude())); + } + tripArea.expandBy(1.1); + + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("Error on generate Map", e); + } + } +// } + return mapContent; + } + + private class MouseMapListener implements MouseWheelListener { + + @Override + public void mouseWheelMoved(MouseWheelEvent e) { + int notches = e.getWheelRotation(); + double scale = notches; + + if (log.isDebugEnabled()) { + log.debug(String.format("Map mouse zoom (rotation : %s, scale : %s)", notches, scale)); + } + + JMapPane tripMap = getUi().getTripMap(); + ReferencedEnvelope displayArea = tripMap.getDisplayArea(); + displayArea.expandBy(scale); + tripMap.setDisplayArea(displayArea); + } + + + } + } diff --git a/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties b/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties index fe6def8..7081d6d 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_en_GB.properties @@ -925,6 +925,8 @@ observe.config.category.gps=GPS observe.config.category.gps.description=GPS Configuration observe.config.category.h2=Local data source observe.config.category.h2.description=Configuration of local data source +observe.config.category.map= +observe.config.category.map.description= observe.config.category.observation= observe.config.category.observation.description= observe.config.category.obstuna=Remote data source @@ -957,6 +959,17 @@ observe.config.h2.can.migrate.description=Flag to know if you can migrate h2 dat observe.config.h2.login.description=H2 Login observe.config.h2.password.description=H2 Password observe.config.h2.serverPort.description= +observe.config.map.background.description= +observe.config.map.layer1.description= +observe.config.map.layer10.description= +observe.config.map.layer2.description= +observe.config.map.layer3.description= +observe.config.map.layer4.description= +observe.config.map.layer5.description= +observe.config.map.layer6.description= +observe.config.map.layer7.description= +observe.config.map.layer8.description= +observe.config.map.layer9.description= observe.config.observation.activitysDetaillees= observe.config.observation.fauneAssociee= observe.config.observation.floatingObject= @@ -2072,6 +2085,8 @@ observe.tripSeine.message.creating=Creating a trip observe.tripSeine.message.no.active.found=No opened trip found, you can create a new one or open an existing one. observe.tripSeine.message.not.open=Current trip is not opened, no edit possible. observe.tripSeine.message.updating=Updating a trip +observe.tripSeine.tab.general=Caracteristics +observe.tripSeine.tab.map=Map observe.tripSeine.title=Trip observe.validation.report.contextName= observe.validation.report.entities.with.messages= diff --git a/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties b/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties index dcf55c3..1bad99e 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_es_ES.properties @@ -925,6 +925,8 @@ observe.config.category.gps=GPS observe.config.category.gps.description=Configuración GPS observe.config.category.h2=Base local observe.config.category.h2.description=Configuración de la base locale +observe.config.category.map= +observe.config.category.map.description= observe.config.category.observation=Calificacion de las observaciones observe.config.category.observation.description=Gestion de los indicadores de calificación de los programas observe.config.category.obstuna=Base remota @@ -957,6 +959,17 @@ observe.config.h2.can.migrate.description=Autorizar la actualización de las bas observe.config.h2.login.description=Login h2 observe.config.h2.password.description=Contraseña h2 observe.config.h2.serverPort.description=Puerto del servidor h2 +observe.config.map.background.description= +observe.config.map.layer1.description= +observe.config.map.layer10.description= +observe.config.map.layer2.description= +observe.config.map.layer3.description= +observe.config.map.layer4.description= +observe.config.map.layer5.description= +observe.config.map.layer6.description= +observe.config.map.layer7.description= +observe.config.map.layer8.description= +observe.config.map.layer9.description= observe.config.observation.activitysDetaillees=Observación de actividades detalladas observe.config.observation.fauneAssociee=Observación de Fauna asociada observe.config.observation.floatingObject=Observación de objetos flotantes @@ -2072,6 +2085,8 @@ observe.tripSeine.message.creating= observe.tripSeine.message.no.active.found= observe.tripSeine.message.not.open= observe.tripSeine.message.updating= +observe.tripSeine.tab.general= +observe.tripSeine.tab.map=Mapa observe.tripSeine.title= observe.validation.report.contextName= observe.validation.report.entities.with.messages= diff --git a/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties b/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties index 7939c4d..7ed62a1 100644 --- a/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties +++ b/observe-swing/src/main/resources/i18n/observe-swing_fr_FR.properties @@ -925,6 +925,8 @@ observe.config.category.gps=GPS observe.config.category.gps.description=Configuration GPS observe.config.category.h2=Base locale observe.config.category.h2.description=Configuration base locale +observe.config.category.map= +observe.config.category.map.description= observe.config.category.observation=Qualification des observations observe.config.category.observation.description=Gestion des indicateurs de qualification des programmes observe.config.category.obstuna=Base distante @@ -957,6 +959,17 @@ observe.config.h2.can.migrate.description=Autoriser la mise à jour des bases lo observe.config.h2.login.description=Le login h2 observe.config.h2.password.description=Le mot de passe h2 observe.config.h2.serverPort.description=Port du serveur h2 +observe.config.map.background.description= +observe.config.map.layer1.description= +observe.config.map.layer10.description= +observe.config.map.layer2.description= +observe.config.map.layer3.description= +observe.config.map.layer4.description= +observe.config.map.layer5.description= +observe.config.map.layer6.description= +observe.config.map.layer7.description= +observe.config.map.layer8.description= +observe.config.map.layer9.description= observe.config.observation.activitysDetaillees=Observation des activités détaillées observe.config.observation.fauneAssociee=Observation des Faunes associées observe.config.observation.floatingObject=Observation des objets flottants @@ -2070,6 +2083,8 @@ observe.tripSeine.message.creating=La marée est en cours de création. observe.tripSeine.message.no.active.found=Aucune marée ouverte, vous pouvez soit en créer une nouvelle, soit en réouvrir une. observe.tripSeine.message.not.open=La marée courante n'est pas ouverte, aucune modification possible. observe.tripSeine.message.updating=La maréee est en cours de modification. +observe.tripSeine.tab.general=Caractéristiques +observe.tripSeine.tab.map=Carte observe.tripSeine.title=Marée observe.validation.report.contextName=Context de validation utilisé \: %1$s observe.validation.report.entities.with.messages=Nombre d'entités avec des messages \: %1$s diff --git a/pom.xml b/pom.xml index c00c21f..ba64549 100644 --- a/pom.xml +++ b/pom.xml @@ -122,6 +122,8 @@ <sl4jVersion>1.7.9</sl4jVersion> <swingXVersion>1.6.4</swingXVersion> + <geoToolsVersion>12.0.1</geoToolsVersion> + <!-- license header configuration --> <license.licenseName>gpl_v3</license.licenseName> <license.organizationName>IRD, Codelutin, Tony Chemit</license.organizationName> @@ -444,6 +446,72 @@ <version>${hibernateVersion}</version> </dependency> + <!-- Map --> + <dependency> + <groupId>com.bbn</groupId> + <artifactId>openmap</artifactId> + <version>5.0.4</version> + </dependency> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-shapefile</artifactId> + <version>${geoToolsVersion}</version> + <exclusions> + <exclusion> + <groupId>java3d</groupId> + <artifactId>vecmath</artifactId> + </exclusion> + <exclusion> + <groupId>jgridshift</groupId> + <artifactId>jgridshift</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-swing</artifactId> + <version>${geoToolsVersion}</version> + </dependency> + + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-api</artifactId> + <version>${geoToolsVersion}</version> + <exclusions> + <exclusion> + <groupId>jgridshift</groupId> + <artifactId>jgridshift</artifactId> + </exclusion> + <exclusion> + <groupId>java3d</groupId> + <artifactId>vecmath</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-main</artifactId> + <version>${geoToolsVersion}</version> + </dependency> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-render</artifactId> + <version>${geoToolsVersion}</version> + </dependency> + + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-opengis</artifactId> + <version>${geoToolsVersion}</version> + <exclusions> + <exclusion> + <groupId>java3d</groupId> + <artifactId>vecmath</artifactId> + </exclusion> + </exclusions> + </dependency> + <!-- logging --> <dependency> <groupId>org.slf4j</groupId> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.
participants (1)
-
codelutin.com scm