branch develop updated (39432f2 -> 2ccfb51)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See http://git.codelutin.com/observe.git from 39432f2 fixes #6937: Problème lors de la synchronisation des référentiels Merge branch 'feature/6937' into develop new 39b6abd refs #6939 suppression de la case à cocher qui correspondait à l'import access new 677db7b fixes #6939: Une case à cocher est toujours présente mais sans libellé dans les actions Merge branch 'feature/6939' into develop new 4038961 refs #6938 on rattache le program a sa maree dans le modele de selection new f745d40 refs #6938 Suppression de méthodes sur les dao (on utilise le chargement via le modèle de sélection) + ajout de méthode pour supprimer une marée new e359dc6 refs #6938 Utilisation du modèel de sélection pour obtenir les marées existantes sur la base distante + nettoyage du code new 0b850cd refs #6938 simplification et amélioration du code d'export de marées new 2ccfb51 fixes #6938: [ObServeLL] Revue de la fonctionnalité d'export de marée Merge branch 'feature/6938' into develop The 7 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 2ccfb5195f6602980ef0f3f58a87be516fdec750 Merge: 677db7b 0b850cd Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 09:30:51 2015 +0200 fixes #6938: [ObServeLL] Revue de la fonctionnalité d'export de marée Merge branch 'feature/6938' into develop commit 0b850cdbdeac51acb0b722dc3e4bebad2d16cc81 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 08:18:16 2015 +0200 refs #6938 simplification et amélioration du code d'export de marées commit e359dc6eedb4177a5504b4dc80855fcd5d772331 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 08:10:10 2015 +0200 refs #6938 Utilisation du modèel de sélection pour obtenir les marées existantes sur la base distante + nettoyage du code commit f745d403cea48073d0e7f6de635fc3311935ae98 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 08:07:54 2015 +0200 refs #6938 Suppression de méthodes sur les dao (on utilise le chargement via le modèle de sélection) + ajout de méthode pour supprimer une marée commit 40389619dcadce4f1701ad5e01ad84684d66711e Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 08:06:59 2015 +0200 refs #6938 on rattache le program a sa maree dans le modele de selection commit 677db7b1c5f40a14a490abbcae497829ea363e31 Merge: 39432f2 39b6abd Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 09:24:48 2015 +0200 fixes #6939: Une case à cocher est toujours présente mais sans libellé dans les actions Merge branch 'feature/6939' into develop commit 39b6abd00464899f6e0afeebadaf5ddc0e7e0ca7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 09:24:42 2015 +0200 refs #6939 suppression de la case à cocher qui correspondait à l'import access Summary of changes: .../src/main/java/fr/ird/observe/DataService.java | 44 ++++++ .../ird/observe/db/model/DataSelectionModel.java | 2 + .../entities/longline/TripLonglineDAOImpl.java | 38 +---- .../observe/entities/seine/TripSeineDAOImpl.java | 38 +---- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 123 ++++++---------- .../fr/ird/observe/ui/admin/config/ConfigUI.jaxx | 6 - .../ird/observe/ui/admin/export/ExportModel.java | 76 +++++++--- .../observe/ui/admin/export/ExportUIHandler.java | 164 +++++---------------- .../fr/ird/observe/ui/admin/export/TripEntry.java | 49 +----- .../ui/admin/export/TripToExportTableModel.java | 28 +--- .../resources/i18n/observe-swing_fr_FR.properties | 2 +- 11 files changed, 201 insertions(+), 369 deletions(-) -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 39b6abd00464899f6e0afeebadaf5ddc0e7e0ca7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 09:24:42 2015 +0200 refs #6939 suppression de la case à cocher qui correspondait à l'import access --- .../src/main/java/fr/ird/observe/ui/admin/config/ConfigUI.jaxx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUI.jaxx b/observe-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUI.jaxx index 2bdb6ca..b040681 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUI.jaxx +++ b/observe-swing/src/main/java/fr/ird/observe/ui/admin/config/ConfigUI.jaxx @@ -111,12 +111,6 @@ public void addMessage(AdminStep step, String text) { </row> <row> <cell> - <JCheckBox id='ACCESS' - onItemStateChanged='getHandler().updateOperationState((JCheckBox)event.getSource())'/> - </cell> - </row> - <row> - <cell> <JCheckBox id='REPORT' onItemStateChanged='getHandler().updateOperationState((JCheckBox)event.getSource())'/> </cell> -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 677db7b1c5f40a14a490abbcae497829ea363e31 Merge: 39432f2 39b6abd Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 09:24:48 2015 +0200 fixes #6939: Une case à cocher est toujours présente mais sans libellé dans les actions Merge branch 'feature/6939' into develop .../src/main/java/fr/ird/observe/ui/admin/config/ConfigUI.jaxx | 6 ------ 1 file changed, 6 deletions(-) -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 40389619dcadce4f1701ad5e01ad84684d66711e Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 08:06:59 2015 +0200 refs #6938 on rattache le program a sa maree dans le modele de selection --- .../src/main/java/fr/ird/observe/db/model/DataSelectionModel.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java b/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java index ee4a093..5877ba4 100644 --- a/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java +++ b/observe-business/src/main/java/fr/ird/observe/db/model/DataSelectionModel.java @@ -98,6 +98,7 @@ public class DataSelectionModel implements Serializable { // ajout de toutes les marées ouvertes ou non for (T trip : trips) { + trip.setProgram(program); model.cacheEntity(trip); tripIds.add(trip.getTopiaId()); } @@ -106,6 +107,7 @@ public class DataSelectionModel implements Serializable { // ajout de toutes les marées non ouvertes for (T trip : trips) { + trip.setProgram(program); if (!trip.isOpen()) { model.cacheEntity(trip); tripIds.add(trip.getTopiaId()); -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit f745d403cea48073d0e7f6de635fc3311935ae98 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 08:07:54 2015 +0200 refs #6938 Suppression de méthodes sur les dao (on utilise le chargement via le modèle de sélection) + ajout de méthode pour supprimer une marée --- .../src/main/java/fr/ird/observe/DataService.java | 44 ++++++++++++++++++++++ .../entities/longline/TripLonglineDAOImpl.java | 32 +--------------- .../observe/entities/seine/TripSeineDAOImpl.java | 32 +--------------- 3 files changed, 46 insertions(+), 62 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 c810802..029675a 100644 --- a/observe-business/src/main/java/fr/ird/observe/DataService.java +++ b/observe-business/src/main/java/fr/ird/observe/DataService.java @@ -139,9 +139,16 @@ public class DataService { protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this); + private boolean skipTransactionListener; + private TopiaTransactionListener transactionListener = new TopiaTransactionListener() { public void commit(TopiaTransactionEvent event) { + + if (skipTransactionListener) { + return; + } + java.util.Set<TopiaEntity> entities = event.getEntities(); // pour recenser les referentiels modifies @@ -2389,4 +2396,41 @@ public class DataService { firePropertyChangedEvent(event, "Data [" + entity + "] changed", listeners); } } + + public void deleteTrip(DataSource source, String tripId) throws DataSourceException { + + String txName = "deleteTrip"; + TopiaContext tx = beginTransaction(source, txName); + try { + + if (Entities.isSeineId(tripId)) { + + TripSeineDAO dao = (TripSeineDAO) source.getDAO(tx, TripSeine.class); + TripSeine result = dao.findByTopiaId(tripId); + dao.delete(result); + + } else { + + TripLonglineDAO dao = (TripLonglineDAO) source.getDAO(tx, TripLongline.class); + TripLongline result = dao.findByTopiaId(tripId); + dao.delete(result); + + } + + skipTransactionListener = true; + try { + + commitTransaction(source, tx, txName); + + } finally { + skipTransactionListener = false; + } + + } catch (Exception e) { + throw new DataSourceException(e, txName); + } finally { + closeTransaction(source, tx, txName); + } + + } } 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 f64a5d2..525361b 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 @@ -53,13 +53,6 @@ public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAO return -1; } - public List<E> findAllStub(ReferenceLocale referenceLocale) throws TopiaException { - - List<E> result = StubSqlQuery.findAll(context, referenceLocale); - return result; - - } - public List<E> findAllStubByProgramId(String programId, ReferenceLocale referenceLocale) throws TopiaException { List<E> result = StubSqlQuery.findAll(context, programId, referenceLocale); @@ -88,27 +81,6 @@ public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAO this.referenceLocale = referenceLocale; } - public static <E extends TripLongline> List<E> findAll(TopiaContextImplementor context, ReferenceLocale referenceLocale) throws TopiaException { - - String sql = "SELECT" + - " t.topiaId," + - " t.startDate," + - " t.endDate," + - " t.open," + - " p.lastName," + - " p.firstName," + - " v." + referenceLocale.getColumnName() + - " FROM observe_longline.trip t, observe_common.person p, observe_common.vessel v" + - " WHERE " + - " t.observer = p.topiaId" + - " AND t.vessel = v.topiaId" + - " ORDER BY t.endDate"; - - StubSqlQuery<E> request = new StubSqlQuery<E>(sql, null, referenceLocale); - return request.findMultipleResult(context); - - } - public static <E extends TripLongline> List<E> findAll(TopiaContextImplementor context, String programId, ReferenceLocale referenceLocale) throws TopiaException { String sql = "SELECT" + @@ -156,9 +128,7 @@ public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAO @Override protected PreparedStatement prepareQuery(Connection connection) throws SQLException { PreparedStatement preparedStatement = connection.prepareStatement(sql); - if (id!=null) { - preparedStatement.setString(1, id); - } + preparedStatement.setString(1, id); return preparedStatement; } 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 8c02673..08a63a9 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 @@ -58,13 +58,6 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< return -1; } - public List<E> findAllStub(ReferenceLocale referenceLocale) throws TopiaException { - - List<E> result = StubSqlQuery.findAll(context, referenceLocale); - return result; - - } - public List<E> findAllStubByProgramId(String programId, ReferenceLocale referenceLocale) throws TopiaException { List<E> result = StubSqlQuery.findAll(context, programId, referenceLocale); @@ -109,27 +102,6 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< } - static <E extends TripSeine> List<E> findAll(TopiaContextImplementor context, ReferenceLocale referenceLocale) throws TopiaException { - - String sql = "SELECT" + - " t.topiaId," + - " t.startDate," + - " t.endDate," + - " t.open," + - " p.lastName," + - " p.firstName," + - " v." + referenceLocale.getColumnName() + - " FROM observe_seine.trip t, observe_common.person p, observe_common.vessel v" + - " WHERE " + - " t.observer = p.topiaId" + - " AND t.vessel = v.topiaId" + - " ORDER BY t.endDate"; - - StubSqlQuery<E> request = new StubSqlQuery<E>(sql, null, referenceLocale); - return request.findMultipleResult(context); - - } - static <E extends TripSeine> E find(TopiaContextImplementor context, String tripId, ReferenceLocale referenceLocale) throws TopiaException { String sql = "SELECT" + @@ -161,9 +133,7 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< @Override protected PreparedStatement prepareQuery(Connection connection) throws SQLException { PreparedStatement preparedStatement = connection.prepareStatement(sql); - if (id != null) { - preparedStatement.setString(1, id); - } + preparedStatement.setString(1, id); return preparedStatement; } -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit e359dc6eedb4177a5504b4dc80855fcd5d772331 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 08:10:10 2015 +0200 refs #6938 Utilisation du modèel de sélection pour obtenir les marées existantes sur la base distante + nettoyage du code --- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 90 ++++++++++------------ 1 file changed, 39 insertions(+), 51 deletions(-) diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java index 22920ab..e196a24 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java @@ -23,7 +23,6 @@ package fr.ird.observe.ui.admin; import fr.ird.observe.DataService; import fr.ird.observe.ObserveConfig; -import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.ObserveServiceHelper; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.DataSourceConfig; @@ -33,8 +32,6 @@ import fr.ird.observe.db.impl.H2DataSource; import fr.ird.observe.db.impl.PGDataSource; import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.entities.Trip; -import fr.ird.observe.entities.constants.ReferenceLocale; -import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.report.model.Report; import fr.ird.observe.ui.admin.consolidate.ConsolidateModel; @@ -53,7 +50,6 @@ import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.TopiaContext; import org.nuiton.validator.NuitonValidatorScope; import java.beans.PropertyChangeEvent; @@ -183,8 +179,9 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (containsOperation(AdminStep.EXPORT_DATA)) { - // on doit aussi recalculer les ids des Trip distantes - computeExistingTrips(getSafeCentralSource(true)); + // on doit aussi calculer les ids des marées distantes + computeExistingTrips(dataService, getSafeCentralSource(true)); + } // on remplit le modèle de sélection @@ -394,6 +391,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { public static String getTripKey(Trip trip) { StringBuilder sb = new StringBuilder(); + sb.append(trip.getProgram().getTopiaId()).append("-"); sb.append(trip.getStartDate()).append("-"); sb.append(trip.getEndDate()).append("-"); if (trip.getVessel() != null) { @@ -1295,8 +1293,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } } - public void populateSelectionModel(DataService dataService, - DataSource source) { + public void populateSelectionModel(DataService dataService, DataSource source) { try { DataSelectionModel.populate(getSelectionDataModel(), dataService, source); } catch (Exception e) { @@ -1311,42 +1308,31 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } } - protected void computeExistingTrips(DataSource source) { - String txName = "computeExistingTrips"; + protected void computeExistingTrips(DataService dataService, DataSource source) { + DataSelectionModel selectionModel = new DataSelectionModel(); try { + DataSelectionModel.populate(selectionModel, dataService, source); + } catch (Exception e) { + if (log.isErrorEnabled()) { + log.error("could not populate selected model", e); + } + } - TopiaContext tx = source.beginTransaction(txName); - try { + List<String> existingTripIds = new ArrayList<String>(); - List<String> keys = new ArrayList<String>(); - { - List<TripSeine> trips = ObserveDAOHelper.getTripSeineDAO(tx).findAllStub(ReferenceLocale.FR); - for (TripSeine trip : trips) { - String key = getTripKey(trip); - keys.add(key); - } - } - { - List<TripLongline> trips = ObserveDAOHelper.getTripLonglineDAO(tx).findAllStub(ReferenceLocale.FR); - for (TripLongline trip : trips) { - String key = getTripKey(trip); - keys.add(key); - } - } + for (List<String> tripIds : selectionModel.getDatas().values()) { - if (log.isDebugEnabled()) { - log.debug("found " + keys.size() + "existing Trip(s)"); - } - getExportModel().setExistingTripIds(keys); - } finally { - source.closeTransaction(tx, txName); - } - } catch (Exception e) { - if (log.isErrorEnabled()) { - log.error("Can not have existing Trip...", e); + for (String tripId : tripIds) { + Trip trip = (Trip) selectionModel.getEntityCache(tripId); + String key = getTripKey(trip); + existingTripIds.add(key); } + } + + getExportModel().setExistingTripIds(existingTripIds); + } protected void updateSaveLocalOperation() { @@ -1383,24 +1369,26 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } protected void doOpenSource(DataSource source) { - if (source == null || source.isOpen()) { - return; - } - try { - source.doOpen(); - } catch (DataSourceException e) { - throw new IllegalStateException("Could not open " + source, e); + + if (source != null && !source.isOpen()) { + try { + source.doOpen(); + } catch (DataSourceException e) { + throw new IllegalStateException("Could not open " + source, e); + } } + } protected void doCloseSource(DataSource source, boolean destroy) { - if (source == null || !source.isOpen() || source.wasClosed()) { - return; - } - try { - source.doClose(destroy); - } catch (DataSourceException e) { - throw new IllegalStateException("Could not close " + source, e); + + if (source != null && source.isOpen() && !source.wasClosed()) { + try { + source.doClose(destroy); + } catch (DataSourceException e) { + throw new IllegalStateException("Could not close " + source, e); + } } + } } -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 0b850cdbdeac51acb0b722dc3e4bebad2d16cc81 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 08:18:16 2015 +0200 refs #6938 simplification et amélioration du code d'export de marées --- .../entities/longline/TripLonglineDAOImpl.java | 6 +- .../observe/entities/seine/TripSeineDAOImpl.java | 6 +- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 33 +---- .../ird/observe/ui/admin/export/ExportModel.java | 76 +++++++--- .../observe/ui/admin/export/ExportUIHandler.java | 164 +++++---------------- .../fr/ird/observe/ui/admin/export/TripEntry.java | 49 +----- .../ui/admin/export/TripToExportTableModel.java | 28 +--- .../resources/i18n/observe-swing_fr_FR.properties | 2 +- 8 files changed, 114 insertions(+), 250 deletions(-) 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 525361b..b5bc612 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 @@ -90,6 +90,7 @@ public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAO " t.open," + " p.lastName," + " p.firstName," + + " v.topiaId," + " v." + referenceLocale.getColumnName() + " FROM observe_longline.trip t, observe_common.person p, observe_common.vessel v" + " WHERE " + @@ -112,6 +113,7 @@ public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAO " t.open," + " p.lastName," + " p.firstName," + + " v.topiaId," + " v." + referenceLocale.getColumnName() + " FROM observe_longline.trip t, observe_common.person p, observe_common.vessel v" + " WHERE " + @@ -149,7 +151,9 @@ public class TripLonglineDAOImpl<E extends TripLongline> extends TripLonglineDAO trip.setObserver(observer); Vessel vessel = new VesselImpl(); - String label = set.getString(7); + String vesselId = set.getString(7); + vessel.setTopiaId(vesselId); + String label = set.getString(8); referenceLocale.setLabel(label, vessel); trip.setVessel(vessel); 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 08a63a9..bb185d6 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 @@ -89,6 +89,7 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< " t.open," + " p.lastName," + " p.firstName," + + " v.topiaId, " + " v." + referenceLocale.getColumnName() + " FROM observe_seine.trip t, observe_common.person p, observe_common.vessel v" + " WHERE " + @@ -111,6 +112,7 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< " t.open," + " p.lastName," + " p.firstName," + + " v.topiaId," + " v." + referenceLocale.getColumnName() + " FROM observe_seine.trip t, observe_common.person p, observe_common.vessel v" + " WHERE " + @@ -155,7 +157,9 @@ public class TripSeineDAOImpl<E extends TripSeine> extends TripSeineDAOAbstract< trip.setObserver(observer); Vessel vessel = new VesselImpl(); - String label = set.getString(7); + String vesselId = set.getString(7); + vessel.setTopiaId(vesselId); + String label = set.getString(8); referenceLocale.setLabel(label, vessel); trip.setVessel(vessel); diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java index e196a24..ebbe452 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java @@ -32,7 +32,7 @@ import fr.ird.observe.db.impl.H2DataSource; import fr.ird.observe.db.impl.PGDataSource; import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.entities.Trip; -import fr.ird.observe.entities.seine.TripSeine; +import fr.ird.observe.entities.Trips; import fr.ird.observe.report.model.Report; import fr.ird.observe.ui.admin.consolidate.ConsolidateModel; import fr.ird.observe.ui.admin.export.ExportModel; @@ -286,18 +286,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } }; - PropertyChangeListener listenAccessModified = new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - if (log.isDebugEnabled()) { - log.debug("access import model has changed [" + - evt.getPropertyName() + "] = " + - evt.getNewValue()); - } - validate(); - } - }; - PropertyChangeListener listenSaveLocalChanged = new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { @@ -432,7 +420,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return null; } String id = data.iterator().next(); - if (id.startsWith(TripSeine.class.getName())) { + if (Trips.isTripId(id)) { return id; } @@ -445,10 +433,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return (AdminActionModel) super.getStepModel(operation); } - public StorageUIHandler getStorageHandler() { - return storageHandler; - } - public DataService getDataService() { return dataService; } @@ -517,10 +501,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { return result; } - public EnumSet<DbMode> getAvailableIncomingModes() { - return availableIncomingModes; - } - public void start(AdminUI ui) { availableIncomingModes.clear(); @@ -1237,7 +1217,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { if (containsOperation(AdminStep.REPORT)) { -// universe.add(AdminStep.CONSOLIDATE); universe.add(AdminStep.REPORT); // pas de page de resume @@ -1286,13 +1265,6 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { } } - public void removeTmpSource() { - if (tmpSource != null) { - doCloseSource(tmpSource, false); - tmpSource = null; - } - } - public void populateSelectionModel(DataService dataService, DataSource source) { try { DataSelectionModel.populate(getSelectionDataModel(), dataService, source); @@ -1311,6 +1283,7 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { protected void computeExistingTrips(DataService dataService, DataSource source) { DataSelectionModel selectionModel = new DataSelectionModel(); + selectionModel.setUseOpenData(true); try { DataSelectionModel.populate(selectionModel, dataService, source); } catch (Exception e) { diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java index 490af49..97e2ca6 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java @@ -21,15 +21,20 @@ */ package fr.ird.observe.ui.admin.export; +import com.google.common.collect.ImmutableList; import fr.ird.observe.db.DataSource; +import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.entities.Trip; import fr.ird.observe.entities.longline.TripLongline; import fr.ird.observe.entities.referentiel.Program; import fr.ird.observe.entities.seine.TripSeine; import fr.ird.observe.ui.admin.AdminActionModel; import fr.ird.observe.ui.admin.AdminStep; +import fr.ird.observe.ui.admin.AdminUIModel; +import org.apache.commons.collections4.CollectionUtils; import org.nuiton.decorator.Decorator; +import java.util.ArrayList; import java.util.List; /** @@ -40,7 +45,7 @@ import java.util.List; */ public class ExportModel extends AdminActionModel { - /** les index des maréées à exporter. */ + /** les index des marées à exporter. */ protected int[] exportDataSelectedIndex; /** les ids des marées déjà existante sur la base distante lors d'un export */ @@ -63,11 +68,7 @@ public class ExportModel extends AdminActionModel { super(AdminStep.EXPORT_DATA); } - public int[] getExportDataSelectedIndex() { - return exportDataSelectedIndex; - } - - public void setExportDataSelectedIndex(int[] exportDataSelectedIndex) { + public void setExportDataSelectedIndex(int... exportDataSelectedIndex) { this.exportDataSelectedIndex = exportDataSelectedIndex; } @@ -75,8 +76,8 @@ public class ExportModel extends AdminActionModel { return existingTripIds; } - public void setExistingTripIds(List<String> existingMareeIds) { - this.existingTripIds = existingMareeIds; + public void setExistingTripIds(List<String> existingTripIds) { + this.existingTripIds = existingTripIds; } @Override @@ -87,7 +88,6 @@ public class ExportModel extends AdminActionModel { existingTripIds = null; } exportDataSelectedIndex = null; - programDecorator = null; tripSeineDecorator = null; data = null; centralSource = null; @@ -98,8 +98,32 @@ public class ExportModel extends AdminActionModel { return data; } - public void setData(List<TripEntry> data) { - this.data = data; + public void setData(DataSelectionModel selectionModel) { + + List<TripEntry> tripEntries = new ArrayList<TripEntry>(); + + for (List<String> tripIds : selectionModel.getSelectedDataByProgram().values()) { + + if (CollectionUtils.isNotEmpty(tripIds)) { + + for (String tripId : tripIds) { + + Trip trip = (Trip) selectionModel.getEntityCache(tripId); + + String tripKey = AdminUIModel.getTripKey(trip); + boolean exists = existingTripIds.contains(tripKey); + + TripEntry entry = new TripEntry(trip, exists); + tripEntries.add(entry); + + } + + } + + } + + this.data = ImmutableList.copyOf(tripEntries); + } public DataSource getSource() { @@ -118,31 +142,35 @@ public class ExportModel extends AdminActionModel { this.centralSource = centralSource; } - public Decorator<Program> getProgramDecorator() { - return programDecorator; - } - public void setProgramDecorator(Decorator<Program> programDecorator) { this.programDecorator = programDecorator; } - public Decorator<TripSeine> getTripSeineDecorator() { - return tripSeineDecorator; - } - public void setTripSeineDecorator(Decorator<TripSeine> mareeDecorator) { this.tripSeineDecorator = mareeDecorator; } - public Decorator<TripLongline> getTripLonglineDecorator() { - return tripLonglineDecorator; - } - public void setTripLonglineDecorator(Decorator<TripLongline> tripLonglineDecorator) { this.tripLonglineDecorator = tripLonglineDecorator; } public String decorate(Trip trip) { - return trip instanceof TripSeine ? tripSeineDecorator.toString(trip): tripLonglineDecorator.toString(trip); + return trip instanceof TripSeine ? tripSeineDecorator.toString(trip) : tripLonglineDecorator.toString(trip); + } + + public String decorate(Program program) { + return programDecorator.toString(program); } + + public List<TripEntry> getSelectedTrips() { + + List<TripEntry> entries = new ArrayList<TripEntry>(); + + for (int index : exportDataSelectedIndex) { + entries.add(data.get(index)); + } + return entries; + + } + } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java b/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java index 87466f9..7f76253 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java @@ -22,7 +22,6 @@ package fr.ird.observe.ui.admin.export; import fr.ird.observe.DecoratorService; -import fr.ird.observe.ObserveDAOHelper; import fr.ird.observe.db.DataSource; import fr.ird.observe.db.model.DataSelectionModel; import fr.ird.observe.entities.Trip; @@ -41,8 +40,6 @@ import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.persistence.TopiaDAO; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; @@ -50,10 +47,8 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.Map; import java.util.concurrent.Callable; import static org.nuiton.i18n.I18n.n; @@ -231,48 +226,11 @@ public class ExportUIHandler extends AdminTabUIHandler { sendMessage(t("observe.message.exportData.prepare.data")); - String txName = "prepareData"; - - // récupération de la liste des ids de marées sur la base distante - List<String> existingTrips = stepModel.getExistingTripIds(); - - // construction du modèle des marées à exporter - List<TripEntry> entries = new ArrayList<TripEntry>(); - - DataSelectionModel selectionModel = model.getSelectionDataModel(); - // récupération des couples (program, marees) sur la base temporaire - Map<String, List<String>> datas = - selectionModel.getSelectedDataByProgram(); - - TopiaContext tx = beginTransaction(source, txName); - try { - - for (String p : datas.keySet()) { - - List<String> tripIds = datas.get(p); - if (tripIds == null || tripIds.isEmpty()) { - // pas de maree sur ce program - continue; - } - for (String tripId : tripIds) { - - TripEntry entry = new TripEntry(); - Trip trip = (Trip) tx.findByTopiaId(tripId); - entry.setTrip(trip); - stepModel.decorate(trip); - String tripKey = AdminUIModel.getTripKey(trip); - entry.setExist(existingTrips.contains(tripKey)); - entries.add(entry); - - } - } - } finally { - closeTransaction(source, tx, txName); - } + DataSelectionModel selectionModel = model.getSelectionDataModel(); + stepModel.setData(selectionModel); - // on peut garder les données, l'export est possible - stepModel.setData(entries); + List<TripEntry> entries = stepModel.getData(); if (entries.isEmpty()) { // pas de données possible à exporter @@ -283,8 +241,7 @@ public class ExportUIHandler extends AdminTabUIHandler { sendMessage(t("observe.message.exportData.operation.needFix", new Date())); - // on rend la main à l'ui pour que l'utilisateur selectionne les marees - // a exporter + // on rend la main à l'ui pour que l'utilisateur selectionne les marees a exporter return WizardState.NEED_FIX; } @@ -292,102 +249,54 @@ public class ExportUIHandler extends AdminTabUIHandler { ExportModel stepModel = model.getExportModel(); - Decorator<Program> pDecorator = stepModel.getProgramDecorator(); - // on filtre les marées sélectionnées pour export - List<TripEntry> entries = new ArrayList<TripEntry>(); - int[] selectedIndex = stepModel.getExportDataSelectedIndex(); + List<TripEntry> tripEntries = stepModel.getSelectedTrips(); - List<TripEntry> data = stepModel.getData(); - DataSource centralSource = stepModel.getCentralSource(); - DataSource source = stepModel.getSource(); + for (TripEntry tripEntry : tripEntries) { - for (int index : selectedIndex) { - entries.add(data.get(index)); - } + processTrip(stepModel, tripEntry); - //TODO afficher un message de confirmation pour l'écrasement des marées - //TODO sur la base distante - - // on supprime les marées à écraser de la base distante - -// List<String> existingTripIds = stepModel.getExistingMareeIds(); - - String txName = "deleteTrips"; - - // on supprime les marées à écraser de la base distante - TopiaContext tx = beginTransaction(centralSource, txName); - try { - TopiaDAO<TripSeine> tripSeineDao = ObserveDAOHelper.getTripSeineDAO(tx); - TopiaDAO<TripLongline> tripLonglineDao = ObserveDAOHelper.getTripLonglineDAO(tx); - - for (TripEntry entry : entries) { - String tripId = entry.getTripId(); - String programId = entry.getProgramId(); - boolean seine = entry.isSeine(); - if (!entry.isExist()) { - // pas concerné par cette phase - continue; - } + } - Trip trip; + sendMessage(t("observe.message.synchro.operation.done", new Date())); - if (seine) { + return WizardState.SUCCESSED; + } - trip = tripSeineDao.findByTopiaId(tripId); - } else { - trip = tripLonglineDao.findByTopiaId(tripId); + protected void processTrip(ExportModel stepModel, TripEntry tripEntry) throws Exception { - } - if (trip == null) { + DataSource centralSource = stepModel.getCentralSource(); + DataSource source = stepModel.getSource(); - // ne devrait jamais arrivé... - continue; - } - Program p = trip.getProgram(); + Trip trip = tripEntry.getTrip(); + String tripId = trip.getTopiaId(); - String tripDecorated = stepModel.decorate(trip); + String tripDecorated = stepModel.decorate(trip); + String programDecorated = stepModel.decorate(trip.getProgram()); - sendMessage(t("observe.message.exportData.delete.remote.maree", tripDecorated, pDecorator.toString(p))); - if (log.isInfoEnabled()) { - log.info(t("observe.message.exportData.delete.remote.maree", tripId, programId)); - } + if (tripEntry.isExist()) { - if (seine) { - tripSeineDao.delete((TripSeine) trip); - } else { - tripLonglineDao.delete((TripLongline) trip); + //TODO afficher un message de confirmation pour l'écrasement des marées sur la base distante + // on supprime les marées à écraser de la base distante - } + if (log.isInfoEnabled()) { + log.info(tripId + " -- " + t("observe.message.exportData.delete.remote.maree", tripDecorated, programDecorated)); } + sendMessage(t("observe.message.exportData.delete.remote.maree", tripDecorated, programDecorated)); - commitTransaction(centralSource, tx, txName); + getDataService().deleteTrip(centralSource, tripId); - } catch (Exception e) { - rollbackTransaction(centralSource, tx, txName); - throw e; - } finally { - closeTransaction(centralSource, tx, txName); } - // seconde passe, on duplique les marées vers la base distante et - // on rattache les marees a leur program - for (TripEntry entry : entries) { - String tripId = entry.getTripId(); - String programId = entry.getProgramId(); - Trip trip = entry.getTrip(); - Program program = trip.getProgram(); - - String tripDecorated = stepModel.decorate(trip); - sendMessage(t("observe.message.exportData.replicate.maree", tripDecorated, pDecorator.toString(program))); - if (log.isInfoEnabled()) { - log.info(t("observe.message.exportData.replicate.maree", tripId, programId)); - } + if (log.isInfoEnabled()) { + log.info(tripId + " -- " + t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); + } + sendMessage(t("observe.message.exportData.replicate.maree", tripDecorated, programDecorated)); - try { - replicateData(source, centralSource, tripId); - } catch (Exception e) { - //FIXME 20100726 : il faut supprimer tous les objets crées pour cette marée + try { + replicateData(source, centralSource, tripId); + } catch (Exception e) { + //FIXME 20100726 : il faut supprimer tous les objets crées pour cette marée // tx = beginTransaction(centralSource, txName); // @@ -401,13 +310,10 @@ public class ExportUIHandler extends AdminTabUIHandler { // } finally { // closeTransaction(centralSource, tx, txName); // } - throw e; - } - } - sendMessage(t("observe.message.synchro.operation.done", new Date())); + throw e; + } - return WizardState.SUCCESSED; } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java b/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java index 4a30745..b49ff82 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java @@ -21,65 +21,30 @@ */ package fr.ird.observe.ui.admin.export; -import fr.ird.observe.entities.Entities; import fr.ird.observe.entities.Trip; -import fr.ird.observe.entities.referentiel.Program; import java.io.Serializable; /** Une classe qui représente une entrée dans le modèle (sans la sélection) */ -public class TripEntry implements Serializable{ +public class TripEntry implements Serializable { private static final long serialVersionUID = 1L; - Program program; + protected final Trip trip; - String programId; + protected final boolean exist; - Trip trip; - - String tripId; - - Boolean exist; - - public Boolean isExist() { - return exist; - } - - public void setExist(Boolean exist) { + public TripEntry(Trip trip, boolean exist) { + this.trip = trip; this.exist = exist; } - public String getProgramId() { - return programId; - } - - public String getTripId() { - return tripId; - } - public Trip getTrip() { return trip; } - public void setTrip(Trip trip) { - this.trip = trip; - if (trip == null) { - tripId = null; - program = null; - programId = null; - } else { - tripId = trip.getTopiaId(); - program = trip.getProgram(); - programId = program == null ? null : program.getTopiaId(); - } - } - - public Program getProgram() { - return trip == null ? null : trip.getProgram(); + public boolean isExist() { + return exist; } - public boolean isSeine() { - return Entities.isSeineId(tripId); - } } diff --git a/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java b/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java index a9769ce..1612302 100644 --- a/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java +++ b/observe-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java @@ -23,8 +23,6 @@ package fr.ird.observe.ui.admin.export; import fr.ird.observe.entities.Trip; import fr.ird.observe.entities.referentiel.Program; -import fr.ird.observe.entities.seine.TripSeine; -import org.nuiton.i18n.I18n; import javax.swing.table.AbstractTableModel; import java.util.HashSet; @@ -40,16 +38,10 @@ import java.util.Set; */ public class TripToExportTableModel extends AbstractTableModel { - protected static final String[] COLUMN_NAMES = { - I18n.n("observe.synchro.common.selected"), - I18n.n("observe.synchro.common.program"), - I18n.n("observe.synchro.common.maree"), - I18n.n("observe.synchro.common.exist")}; - protected static final Class<?>[] COLUMN_CLASSES = { Boolean.class, Program.class, - TripSeine.class, + Trip.class, Boolean.class }; @@ -116,20 +108,20 @@ public class TripToExportTableModel extends AbstractTableModel { @Override public Object getValueAt(int rowIndex, int columnIndex) { Object value = null; - TripEntry p = data == null ? null : data[rowIndex]; - if (p != null) { + TripEntry tripEntry = data == null ? null : data[rowIndex]; + if (tripEntry != null) { switch (columnIndex) { case 0: value = selected.contains(rowIndex); break; case 1: - value = p.getProgram(); + value = tripEntry.getTrip().getProgram(); break; case 2: - value = p.getTrip(); + value = tripEntry.getTrip(); break; case 3: - value = p.isExist(); + value = tripEntry.isExist(); break; default: throw new IllegalStateException( @@ -140,14 +132,6 @@ public class TripToExportTableModel extends AbstractTableModel { return value; } - public Program getProgramAt(int rowIndex) { - return data[rowIndex].getTrip().getProgram(); - } - - public Trip getTripAt(int rowIndex) { - return data[rowIndex].getTrip(); - } - public boolean isSelectAll() { return selectAll; } 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 5f540dc..92b3836 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 @@ -1721,7 +1721,7 @@ observe.synchro.step.validate=Validation observe.synchro.step.validate.description=Validation des données d'une source de données observe.synchro.table.exportData.exist.label=E observe.synchro.table.exportData.exist.label.tip=Marée déjà présente sur la base distante -observe.synchro.table.exportData.program.label=Program +observe.synchro.table.exportData.program.label=Programme observe.synchro.table.exportData.program.label.tip=Libellé du programme de la maréee observe.synchro.table.exportData.selected=... observe.synchro.table.exportData.selected.tip=Sélectionner - Désélectionner toutes les marées à exporter -- 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 develop in repository observe. See http://git.codelutin.com/observe.git commit 2ccfb5195f6602980ef0f3f58a87be516fdec750 Merge: 677db7b 0b850cd Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Apr 11 09:30:51 2015 +0200 fixes #6938: [ObServeLL] Revue de la fonctionnalité d'export de marée Merge branch 'feature/6938' into develop .../src/main/java/fr/ird/observe/DataService.java | 44 ++++++ .../ird/observe/db/model/DataSelectionModel.java | 2 + .../entities/longline/TripLonglineDAOImpl.java | 38 +---- .../observe/entities/seine/TripSeineDAOImpl.java | 38 +---- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 123 ++++++---------- .../ird/observe/ui/admin/export/ExportModel.java | 76 +++++++--- .../observe/ui/admin/export/ExportUIHandler.java | 164 +++++---------------- .../fr/ird/observe/ui/admin/export/TripEntry.java | 49 +----- .../ui/admin/export/TripToExportTableModel.java | 28 +--- .../resources/i18n/observe-swing_fr_FR.properties | 2 +- 10 files changed, 201 insertions(+), 363 deletions(-) -- 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