branch feature/6944 updated (ad5649f -> 6970a68)
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 from ad5649f fix code, hide actions buttons, tab name new 6970a68 add map in trip long line ui The 1 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 6970a68fc613b9caeda3c03109de835598ff1df1 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Apr 22 14:13:33 2015 +0200 add map in trip long line ui Summary of changes: .../src/main/java/fr/ird/observe/DataService.java | 24 +- .../entities/longline/TripLonglineDAOImpl.java | 141 ++++++++++ .../observe/entities/seine/TripSeineDAOImpl.java | 18 +- .../java/fr/ird/observe/tripMap/TripMapPoint.java | 12 +- .../fr/ird/observe/tripMap/TripMapPointType.java | 16 ++ .../content/open/impl/longline/TripLonglineUI.css | 8 + .../content/open/impl/longline/TripLonglineUI.jaxx | 286 +++++++++++---------- .../open/impl/longline/TripLonglineUIHandler.java | 44 ++++ .../open/impl/seine/TripSeineUIHandler.java | 2 +- .../observe/ui/util/tripMap/TripMapUIHandler.java | 20 +- observe-swing/src/main/map/style.xml | 8 +- .../resources/i18n/observe-swing_en_GB.properties | 2 + .../resources/i18n/observe-swing_es_ES.properties | 2 + .../resources/i18n/observe-swing_fr_FR.properties | 2 + 14 files changed, 419 insertions(+), 166 deletions(-) create mode 100644 observe-entities/src/main/java/fr/ird/observe/tripMap/TripMapPointType.java -- 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 6970a68fc613b9caeda3c03109de835598ff1df1 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Apr 22 14:13:33 2015 +0200 add map in trip long line ui --- .../src/main/java/fr/ird/observe/DataService.java | 24 +- .../entities/longline/TripLonglineDAOImpl.java | 141 ++++++++++ .../observe/entities/seine/TripSeineDAOImpl.java | 18 +- .../java/fr/ird/observe/tripMap/TripMapPoint.java | 12 +- .../fr/ird/observe/tripMap/TripMapPointType.java | 16 ++ .../content/open/impl/longline/TripLonglineUI.css | 8 + .../content/open/impl/longline/TripLonglineUI.jaxx | 286 +++++++++++---------- .../open/impl/longline/TripLonglineUIHandler.java | 44 ++++ .../open/impl/seine/TripSeineUIHandler.java | 2 +- .../observe/ui/util/tripMap/TripMapUIHandler.java | 20 +- observe-swing/src/main/map/style.xml | 8 +- .../resources/i18n/observe-swing_en_GB.properties | 2 + .../resources/i18n/observe-swing_es_ES.properties | 2 + .../resources/i18n/observe-swing_fr_FR.properties | 2 + 14 files changed, 419 insertions(+), 166 deletions(-) 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 de1b1f3..2b4316a 100644 --- a/observe-business/src/main/java/fr/ird/observe/DataService.java +++ b/observe-business/src/main/java/fr/ird/observe/DataService.java @@ -1672,16 +1672,30 @@ public class DataService { String txName = "loadTrip"; TopiaContext tx = beginTransaction(source, txName); + List<TripMapPoint> tripMapPoints; + try { - TripSeineDAO dao = (TripSeineDAO) source.getDAO(tx, TripSeine.class); - List<TripMapPoint> tripMapPoints = dao.extractTripMapActivityPoints(id); - return tripMapPoints; + if (Entities.isSeineId(id)) { + TripSeineDAO dao = (TripSeineDAO) source.getDAO(tx, TripSeine.class); - } catch (Exception e) { + tripMapPoints = dao.extractTripMapActivityPoints(id); + + } else if (Entities.isLonglineId(id)) { + + TripLonglineDAO dao = (TripLonglineDAO) source.getDAO(tx, TripLongline.class); + + tripMapPoints = dao.extractTripMapActivityPoints(id); + + } else { + throw new ObserveTechnicalException(String.format("id '%s' is not seine id or longe line id", id)); + } + + } catch (TopiaException e) { throw new DataSourceException(e, txName); - } finally { + } finally{ closeTransaction(source, tx, txName); } + return tripMapPoints; } diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java b/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java index b5bc612..5fb8b58 100644 --- a/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java +++ b/observe-entities/src/main/java/fr/ird/observe/entities/longline/TripLonglineDAOImpl.java @@ -22,11 +22,15 @@ package fr.ird.observe.entities.longline; * #L% */ +import com.google.common.collect.Lists; import fr.ird.observe.entities.constants.ReferenceLocale; +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 fr.ird.observe.tripMap.TripMapPointType; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.framework.TopiaSQLQuery; @@ -67,6 +71,143 @@ public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAO } + public List<TripMapPoint> extractTripMapActivityPoints(String tripId) throws TopiaException { + + TripLongline tripLongline = findByTopiaId(tripId); + + List<TripMapPoint> tripMapPoints = Lists.newLinkedList(); + + // add departure harbours + Harbour departureHarbour = tripLongline.getDepartureHarbour(); + if (departureHarbour != null + && departureHarbour.getLatitude() != null + && departureHarbour.getLongitude() != null) { + TripMapPoint departurePoint = new TripMapPoint(); + departurePoint.setTime(tripLongline.getStartDate()); + departurePoint.setLatitude(departureHarbour.getLatitude()); + departurePoint.setLongitude(departureHarbour.getLongitude()); + tripMapPoints.add(departurePoint); + } + + // Add Activities + TripMapActivityPointQuery tripMapActivityPointQuery = new TripMapActivityPointQuery(tripId); + List<List<TripMapPoint>> results = tripMapActivityPointQuery.findMultipleResult(context); + for (List<TripMapPoint> result : results) { + tripMapPoints.addAll(result); + } + + // add landing harbours + Harbour landingHarbour = tripLongline.getLandingHarbour(); + if (landingHarbour != null + && landingHarbour.getLatitude() != null + && landingHarbour.getLongitude() != null) { + TripMapPoint landingPoint = new TripMapPoint(); + landingPoint.setTime(tripLongline.getEndDate()); + landingPoint.setLatitude(landingHarbour.getLatitude()); + landingPoint.setLongitude(landingHarbour.getLongitude()); + tripMapPoints.add(landingPoint); + } + + return tripMapPoints; + } + + private static class TripMapActivityPointQuery extends TopiaSQLQuery<List<TripMapPoint>> { + + private static String SQL = "SELECT" + + " a.timestamp, " + + " a.latitude," + + " a.longitude," + + " s.settingStartTimestamp," + + " s.settingStartLatitude," + + " s.settingStartLongitude," + + " s.settingEndTimestamp," + + " s.settingEndLatitude," + + " s.settingEndLongitude," + + " s.haulingStartTimestamp," + + " s.haulingStartLatitude," + + " s.haulingStartLongitude," + + " s.haulingEndTimestamp," + + " s.haulingEndLatitude," + + " s.haulingEndLongitude" + + " FROM observe_longLine.activity a" + + " LEFT OUTER JOIN observe_longLine.set s" + + " ON s.topiaId = a.set" + + " WHERE a.trip = ?" + + " ORDER BY a.timestamp"; + + protected String tripId; + + public TripMapActivityPointQuery(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 List<TripMapPoint> prepareResult(ResultSet resultSet) throws SQLException { + + List<TripMapPoint> result = Lists.newLinkedList(); + + // activity + TripMapPoint activity = new TripMapPoint(); + activity.setTime(resultSet.getDate(1)); + activity.setLatitude(resultSet.getFloat(2)); + activity.setLongitude(resultSet.getFloat(3)); + activity.setType(TripMapPointType.activity); + result.add(activity); + + // settingStart + if (resultSet.getString(4) != null) { + TripMapPoint settingStart = new TripMapPoint(); + settingStart.setTime(resultSet.getDate(4)); + settingStart.setLatitude(resultSet.getFloat(5)); + settingStart.setLongitude(resultSet.getFloat(6)); + settingStart.setType(TripMapPointType.settingStart); + result.add(settingStart); + } + + // settingEnd + if (resultSet.getString(7) != null) { + TripMapPoint settingEnd = new TripMapPoint(); + settingEnd.setTime(resultSet.getDate(7)); + settingEnd.setLatitude(resultSet.getFloat(8)); + settingEnd.setLongitude(resultSet.getFloat(9)); + settingEnd.setType(TripMapPointType.settingEnd); + result.add(settingEnd); + } + + // haulingStart + if (resultSet.getString(10) != null) { + TripMapPoint haulingStart = new TripMapPoint(); + haulingStart.setTime(resultSet.getDate(10)); + haulingStart.setLatitude(resultSet.getFloat(11)); + haulingStart.setLongitude(resultSet.getFloat(12)); + haulingStart.setType(TripMapPointType.haulingStart); + result.add(haulingStart); + } + + // haulingEnd + if (resultSet.getString(13) != null) { + TripMapPoint haulingEnd = new TripMapPoint(); + haulingEnd.setTime(resultSet.getDate(13)); + haulingEnd.setLatitude(resultSet.getFloat(14)); + haulingEnd.setLongitude(resultSet.getFloat(15)); + haulingEnd.setType(TripMapPointType.haulingEnd); + result.add(haulingEnd); + } + + return result; + } + } + + + + private static class StubSqlQuery<E extends TripLongline> extends TopiaSQLQuery<E> { private final String sql; 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 756d3c1..aeda497 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 @@ -30,6 +30,7 @@ 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 fr.ird.observe.tripMap.TripMapPointType; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.framework.TopiaSQLQuery; @@ -153,8 +154,21 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< 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)]); + if (resultSet.getString(5) == null) { + point.setType(TripMapPointType.activity); + } else { + SchoolType schoolType = SchoolType.values()[resultSet.getInt(5)]; + switch (schoolType) { + case libre: + point.setType(TripMapPointType.schoolLibre); + break; + case objet: + point.setType(TripMapPointType.schoolObjet); + break; + default: + point.setType(TripMapPointType.activity); + } + } return point; 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 index 247240a..9d42b39 100644 --- a/observe-entities/src/main/java/fr/ird/observe/tripMap/TripMapPoint.java +++ b/observe-entities/src/main/java/fr/ird/observe/tripMap/TripMapPoint.java @@ -1,7 +1,5 @@ package fr.ird.observe.tripMap; -import fr.ird.observe.entities.constants.seine.SchoolType; - import java.util.Date; /** @@ -15,7 +13,7 @@ public class TripMapPoint { protected float longitude; - protected SchoolType schoolType; + protected TripMapPointType type; public Date getTime() { return time; @@ -41,11 +39,11 @@ public class TripMapPoint { this.longitude = longitude; } - public SchoolType getSchoolType() { - return schoolType; + public TripMapPointType getType() { + return type; } - public void setSchoolType(SchoolType schoolType) { - this.schoolType = schoolType; + public void setType(TripMapPointType type) { + this.type = type; } } diff --git a/observe-entities/src/main/java/fr/ird/observe/tripMap/TripMapPointType.java b/observe-entities/src/main/java/fr/ird/observe/tripMap/TripMapPointType.java new file mode 100644 index 0000000..500e7a2 --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/tripMap/TripMapPointType.java @@ -0,0 +1,16 @@ +package fr.ird.observe.tripMap; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public enum TripMapPointType { + + activity, + schoolLibre, + schoolObjet, + settingStart, + settingEnd, + haulingStart, + haulingEnd; + +} diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css index 703ca5c..7282179 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.css @@ -26,6 +26,14 @@ NumberEditor { numberPattern:{fr.ird.observe.ui.UIHelper.INT_6_DIGITS_PATTERN}; } +#generalTab { + title: {t("observe.tripLongline.tab.general")}; +} + +#mapTab { + title: {t("observe.tripLongline.tab.map")}; +} + #model { editable:true; modified:{validator.isChanged()}; diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.jaxx b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.jaxx index 0dabc54..f011083 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.jaxx +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUI.jaxx @@ -37,6 +37,7 @@ fr.ird.observe.entities.referentiel.Ocean fr.ird.observe.entities.referentiel.longline.TripType fr.ird.observe.ui.actions.shared.DeleteDataUIAction + fr.ird.observe.ui.util.tripMap.TripMapUI org.jdesktop.swingx.JXDatePicker @@ -81,145 +82,152 @@ protected boolean canEditOcean(java.util.List<ActivityLongline> activities) { <!-- formulaire --> <JPanel id="body" layout='{new BorderLayout()}'> - <Table fill="both" constraints='BorderLayout.CENTER'> - - <!-- tripType --> - <row> - <cell anchor='west'> - <JLabel id='tripTypeLabel'/> - </cell> - <cell anchor='east'> - <BeanComboBox id='tripType' constructorParams='this' genericType='TripType'/> - </cell> - </row> - - <!-- 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> - - <!-- homeId --> - <row> - - <cell anchor='west'> - <JLabel id='homeIdLabel'/> - </cell> - <cell anchor='east' weightx="1" fill="both"> - <JPanel layout='{new BorderLayout()}'> - <JToolBar id='homeIdToolbar' constraints='BorderLayout.WEST'> - <JButton id='resetHomeId' styleClass='resetButton'/> - </JToolBar> - <JTextField id='homeId' constraints='BorderLayout.CENTER'/> - </JPanel> - </cell> - </row> - - <!-- totalFishingOperationsNumber --> - <row> - <cell anchor='west'> - <JLabel id='totalFishingOperationsNumberLabel'/> - </cell> - <cell anchor='west' weightx="0.5"> - <NumberEditor id='totalFishingOperationsNumber' constructorParams='this'/> - </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> - - <!-- comment --> - <row> - <cell columns='2' fill='both' weighty="1"> - <JScrollPane id='comment' - onFocusGained='comment2.requestFocus()'> - <JTextArea id='comment2' - onKeyReleased='getModel().getBean().setComment(comment2.getText())'/> - </JScrollPane> - </cell> - </row> - </Table> + <JTabbedPane id='tripLonglineTabPane' constraints='BorderLayout.CENTER'> + <tab id='generalTab'> + <Table fill="both"> + + <!-- tripType --> + <row> + <cell anchor='west'> + <JLabel id='tripTypeLabel'/> + </cell> + <cell anchor='east'> + <BeanComboBox id='tripType' constructorParams='this' genericType='TripType'/> + </cell> + </row> + + <!-- 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> + + <!-- homeId --> + <row> + + <cell anchor='west'> + <JLabel id='homeIdLabel'/> + </cell> + <cell anchor='east' weightx="1" fill="both"> + <JPanel layout='{new BorderLayout()}'> + <JToolBar id='homeIdToolbar' constraints='BorderLayout.WEST'> + <JButton id='resetHomeId' styleClass='resetButton'/> + </JToolBar> + <JTextField id='homeId' constraints='BorderLayout.CENTER'/> + </JPanel> + </cell> + </row> + + <!-- totalFishingOperationsNumber --> + <row> + <cell anchor='west'> + <JLabel id='totalFishingOperationsNumberLabel'/> + </cell> + <cell anchor='west' weightx="0.5"> + <NumberEditor id='totalFishingOperationsNumber' constructorParams='this'/> + </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> + + <!-- comment --> + <row> + <cell columns='2' fill='both' weighty="1"> + <JScrollPane id='comment' + onFocusGained='comment2.requestFocus()'> + <JTextArea id='comment2' + onKeyReleased='getModel().getBean().setComment(comment2.getText())'/> + </JScrollPane> + </cell> + </row> + </Table> + </tab> + <tab id="mapTab"> + <TripMapUI 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/longline/TripLonglineUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java index f8cfa5d..38cb49c 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/content/open/impl/longline/TripLonglineUIHandler.java @@ -23,6 +23,7 @@ package fr.ird.observe.ui.content.open.impl.longline; */ 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; @@ -34,6 +35,7 @@ import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.open.ContentOpenableUIHandler; import fr.ird.observe.ui.content.open.ContentOpenableUIModel; +import fr.ird.observe.ui.util.tripMap.TripMapUI; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaContext; @@ -43,6 +45,10 @@ import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.util.TopiaEntityBinder; import org.nuiton.util.DateUtil; +import javax.swing.JTabbedPane; +import javax.swing.SwingUtilities; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import java.util.Date; import static org.nuiton.i18n.I18n.n; @@ -93,6 +99,44 @@ public class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLongline } @Override + public void initUI() throws Exception { + super.initUI(); + + TripLonglineUI ui = getUi(); + TripMapUI tripMap = ui.getTripMap(); + ObserveConfig config = ui.getContextValue(ObserveConfig.class); + + tripMap.getHandler().setConfig(config); + + getUi().getTripLonglineTabPane().addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + JTabbedPane tripLonglineTabPane = (JTabbedPane) e.getSource(); + TripLonglineUI ui = getUi(); + TripMapUI tripMap = ui.getTripMap(); + if (tripLonglineTabPane.getSelectedComponent().equals(tripMap)) { + ui.getActions().setVisible(false); + + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + + TripLonglineUI ui = getUi(); + TripMapUI tripMap = ui.getTripMap(); + + tripMap.getHandler().doOpenMap(ui.getDataSource(), ui.getDataService(), getSelectedId()); + } + }); + + } else { + ui.getActions().setVisible(true); + } + } + }); + + } + + @Override public void openUI() throws Exception { super.openUI(); 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 fb467d8..587b34f 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 @@ -112,7 +112,7 @@ public class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeine> { JTabbedPane tripSeineTabPane = (JTabbedPane) e.getSource(); TripSeineUI ui = getUi(); TripMapUI tripMap = ui.getTripMap(); - if (tripSeineTabPane.getSelectedComponent() == tripMap) { + if (tripSeineTabPane.getSelectedComponent().equals(tripMap)) { ui.getActions().setVisible(false); SwingUtilities.invokeLater(new Runnable() { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java index 8eb175a..d4f9c3a 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/util/tripMap/TripMapUIHandler.java @@ -14,8 +14,8 @@ import fr.ird.observe.ObserveConfig; import fr.ird.observe.ObserveTechnicalException; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceException; -import fr.ird.observe.entities.constants.seine.SchoolType; import fr.ird.observe.tripMap.TripMapPoint; +import fr.ird.observe.tripMap.TripMapPointType; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.logging.Log; @@ -60,6 +60,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.List; /** @@ -224,20 +225,20 @@ public class TripMapUIHandler { pointFeatureTypeBuilder.setName("point Builder"); pointFeatureTypeBuilder.setCRS(CRS.decode("EPSG:4326", true)); pointFeatureTypeBuilder.add("points", MultiPoint.class); - pointFeatureTypeBuilder.add("schoolType", String.class); + pointFeatureTypeBuilder.add("pointType", String.class); SimpleFeatureType pointFeatureType = pointFeatureTypeBuilder.buildFeatureType(); SimpleFeatureBuilder pointBuilder = new SimpleFeatureBuilder(pointFeatureType); DefaultFeatureCollection pointsFeatures = new DefaultFeatureCollection(); - for (final SchoolType schoolType : SchoolType.values()) { + for (final TripMapPointType type : TripMapPointType.values()) { Iterable<Coordinate> coordinates = Iterables.transform( Iterables.filter(tripMapPoints, new Predicate<TripMapPoint>() { @Override public boolean apply(TripMapPoint input) { - return input.getSchoolType() == schoolType; + return type.equals(input.getType()); } }), new Function<TripMapPoint, Coordinate>() { @@ -247,10 +248,13 @@ public class TripMapUIHandler { } }); - MultiPoint points = geometryFactory.createMultiPoint(Lists.newArrayList(coordinates).toArray(new Coordinate[0])); - pointBuilder.add(points); - pointBuilder.add(schoolType.name()); - pointsFeatures.add(pointBuilder.buildFeature(null)); + ArrayList<Coordinate> coordinatesArray = Lists.newArrayList(coordinates); + if (! coordinatesArray.isEmpty()) { + MultiPoint points = geometryFactory.createMultiPoint(coordinatesArray.toArray(new Coordinate[0])); + pointBuilder.add(points); + pointBuilder.add(type.name()); + pointsFeatures.add(pointBuilder.buildFeature(null)); + } } Style stylePoints = findStyle(styledLayerDescriptor, TRIP_POINTS_LAYER_NAME, null); diff --git a/observe-swing/src/main/map/style.xml b/observe-swing/src/main/map/style.xml index a42c641..50354f7 100644 --- a/observe-swing/src/main/map/style.xml +++ b/observe-swing/src/main/map/style.xml @@ -74,8 +74,8 @@ <Name>Point libre</Name> <ogc:Filter> <ogc:PropertyIsEqualTo> - <ogc:PropertyName>schoolType</ogc:PropertyName> - <ogc:Literal>libre</ogc:Literal> + <ogc:PropertyName>pointType</ogc:PropertyName> + <ogc:Literal>schoolLibre</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <PointSymbolizer> @@ -100,8 +100,8 @@ <Name>Point objet</Name> <ogc:Filter> <ogc:PropertyIsEqualTo> - <ogc:PropertyName>schoolType</ogc:PropertyName> - <ogc:Literal>objet</ogc:Literal> + <ogc:PropertyName>pointType</ogc:PropertyName> + <ogc:Literal>schoolObjet</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <PointSymbolizer> 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 d838cf5..b67fc38 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 @@ -2085,6 +2085,8 @@ observe.tripLongline.message.updating=Updating a trip observe.tripLongline.observer=Observer observe.tripLongline.ocean=Ocean observe.tripLongline.startDate=Start date +observe.tripLongline.tab.general= +observe.tripLongline.tab.map= observe.tripLongline.title=Trip observe.tripLongline.totalFishingOperationsNumber=Total fishing operation count observe.tripLongline.tripType=Trip type 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 46b1424..070e9a7 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 @@ -2085,6 +2085,8 @@ observe.tripLongline.message.updating= observe.tripLongline.observer= observe.tripLongline.ocean= observe.tripLongline.startDate= +observe.tripLongline.tab.general= +observe.tripLongline.tab.map= observe.tripLongline.title= observe.tripLongline.totalFishingOperationsNumber= observe.tripLongline.tripType= 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 3c8d4dd..e72a30b 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 @@ -2083,6 +2083,8 @@ observe.tripLongline.message.updating=La maréee est en cours de modification. observe.tripLongline.observer=Observateur observe.tripLongline.ocean=Océan observe.tripLongline.startDate=Date début +observe.tripLongline.tab.general=Caractéristiques +observe.tripLongline.tab.map=Carte observe.tripLongline.title=Marée observe.tripLongline.totalFishingOperationsNumber=Nombre total d'opérations de pêche observe.tripLongline.tripType=Type de marée -- 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