branch feature/7677 updated (15cbafa -> bf3480d)
This is an automated email from the git hooks/post-receive script. New change to branch feature/7677 in repository observe. See http://git.codelutin.com/observe.git discards 15cbafa migration de l'écran d'export des données observateur (refs #7677) discards 11bed76 migration de l'écran d'export (refs #7677) adds 32a4697 Moving to version 5.0-SNAPSHOT adds 85c8361 Suppresion du champs TripSeine#datearriveeport (termine #7697). adds 41f0245 A la fermeture d'une base bien desenregistrer les listeners dessus adds 6eb2fec Fermeture du context applicatif à la fermeture de l'application adds 19554fc Supression d'un log intutile adds e11bdf2 Suppression d'une classe obsolète adds 11123c1 Fermer proprement les base h2 new 4de96a3 migration de l'écran d'export (refs #7677) new bf3480d migration de l'écran d'export des données observateur (refs #7677) This update added new revisions after undoing existing revisions. That is to say, some revisions that were in the old version of the branch are not in the new version. This situation occurs when a user --force pushes a change and generates a repository containing something like this: * -- * -- B -- O -- O -- O (15cbafa) \ N -- N -- N refs/heads/feature/7677 (bf3480d) You should already have received notification emails for all of the O revisions, and so the following emails describe only the N revisions from the common base, B. Any revisions marked "omits" are not gone; other references still refer to them. Any revisions marked "discards" are gone forever. The 2 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 bf3480d36a1183829f788b431be5ab697bd3d2c5 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Nov 6 08:26:09 2015 +0100 migration de l'écran d'export des données observateur (refs #7677) commit 4de96a3c97d066aaebd2dacbe7b705ba4725b9b5 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Nov 4 15:19:02 2015 +0100 migration de l'écran d'export (refs #7677) Summary of changes: observe-application-swing/pom.xml | 2 +- .../main/java/fr/ird/observe/ObserveRunner.java | 35 +++++-- .../observe/ObserveSwingApplicationContext.java | 5 +- .../fr/ird/observe/db/ObserveSwingDataSource.java | 8 +- observe-application-web/pom.xml | 2 +- observe-entities-validation/pom.xml | 2 +- .../CollectionFieldExpressionValidator2.java | 6 -- observe-entities/pom.xml | 2 +- .../observe/ObserveTopiaApplicationContext.java | 19 ++++ .../fr/ird/observe/entities/OpenableEntities.java | 101 --------------------- observe-entities/src/main/xmi/observe-seine.zargo | Bin 84597 -> 84457 bytes observe-services-api/pom.xml | 2 +- observe-services-configuration-api/pom.xml | 2 +- observe-services-configuration-rest/pom.xml | 2 +- observe-services-configuration-topia/pom.xml | 2 +- observe-services-model/pom.xml | 2 +- .../src/main/xmi/observe-services-dto-seine.zargo | Bin 61995 -> 61923 bytes observe-services-rest/pom.xml | 2 +- observe-services-runner/pom.xml | 2 +- observe-services-topia/pom.xml | 2 +- .../services/dto/ObserveDtosInitializer.java | 1 - observe-test-data/pom.xml | 2 +- pom.xml | 2 +- 23 files changed, 68 insertions(+), 135 deletions(-) delete mode 100644 observe-entities/src/main/java/fr/ird/observe/entities/OpenableEntities.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/7677 in repository observe. See http://git.codelutin.com/observe.git commit 4de96a3c97d066aaebd2dacbe7b705ba4725b9b5 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Nov 4 15:19:02 2015 +0100 migration de l'écran d'export (refs #7677) --- .../java/fr/ird/observe/ui/admin/AdminStep.java | 3 +- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 3 +- .../ird/observe/ui/admin/export/ExportModel.java | 82 +++++++------- .../observe/ui/admin/export/ExportUIHandler.java | 121 ++++++++++++--------- .../fr/ird/observe/ui/admin/export/TripEntry.java | 26 ++--- .../ui/admin/export/TripToExportTableModel.java | 13 +-- .../fr/ird/observe/ui/storage/StorageUIModel.java | 5 + .../ui/tree/DataSelectionTreeCellRenderer.java | 15 +-- 8 files changed, 143 insertions(+), 125 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java index 04d5726..4d514ab 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminStep.java @@ -212,7 +212,8 @@ public enum AdminStep implements WizardExtStep { false, false, DbMode.USE_LOCAL, - DbMode.USE_REMOTE + DbMode.USE_REMOTE, + DbMode.USE_SERVER ), /** pour afficher après les opération un ecran de résumé */ diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java index 1943e55..fd2d118 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java @@ -1110,7 +1110,8 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { // avec des droits d'écriture de données // validate &= centralSourceModel.isValid() && // centralSourceModel.getPgConfig().isCanWriteData(); - validate &= centralSourceModel.getDataSourceInformation().canWriteData(); + validate &= centralSourceModel.getDataSourceInformation() != null + && centralSourceModel.getDataSourceInformation().canWriteData(); } if (containsOperation(AdminStep.IMPORT_GPS)) { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java index 5964f15..4b79bbe 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportModel.java @@ -21,6 +21,8 @@ */ package fr.ird.observe.ui.admin.export; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import fr.ird.observe.db.ObserveSwingDataSource; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -28,10 +30,12 @@ import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import fr.ird.observe.ui.admin.AdminActionModel; import fr.ird.observe.ui.admin.AdminStep; +import fr.ird.observe.ui.storage.tabs.DataSelectionModel; import org.nuiton.decorator.Decorator; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * Le modèle d'une opération d'export de données observers. @@ -50,11 +54,11 @@ public class ExportModel extends AdminActionModel { /** les données exportables */ protected List<TripEntry> data; - protected Decorator<ProgramDto> programDecorator; + protected Decorator<ReferenceDto> programDecorator; - protected Decorator<TripSeineDto> tripSeineDecorator; + protected Decorator<ReferenceDto> tripSeineDecorator; - protected Decorator<TripLonglineDto> tripLonglineDecorator; + protected Decorator<ReferenceDto> tripLonglineDecorator; protected ObserveSwingDataSource source; @@ -94,33 +98,27 @@ public class ExportModel extends AdminActionModel { return data; } - //FIXME -// 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); -// -// boolean exists = existingTripIds.contains(trip.getTopiaId()); -// -// TripEntry entry = new TripEntry(trip, exists); -// tripEntries.add(entry); -// -// } -// -// } -// -// } -// -// this.data = ImmutableList.copyOf(tripEntries); -// -// } + public void setData(DataSelectionModel selectionModel) { + + List<TripEntry> tripEntries = Lists.newArrayList(); + + for (Map.Entry<ReferenceDto<ProgramDto>, List<ReferenceDto>> entry : selectionModel.getSelectedDataByProgram().entrySet()) { + + ReferenceDto<ProgramDto> program = entry.getKey(); + + for (ReferenceDto trip : entry.getValue()) { + + boolean exists = existingTrips.contains(trip); + + TripEntry tripEntry = new TripEntry(program, trip, exists); + + tripEntries.add(tripEntry); + } + } + + this.data = ImmutableList.copyOf(tripEntries); + + } public ObserveSwingDataSource getSource() { return source; @@ -138,28 +136,30 @@ public class ExportModel extends AdminActionModel { this.centralSource = centralSource; } - public void setProgramDecorator(Decorator<ProgramDto> programDecorator) { + public void setProgramDecorator(Decorator<ReferenceDto> programDecorator) { this.programDecorator = programDecorator; } - public void setTripSeineDecorator(Decorator<TripSeineDto> mareeDecorator) { + public void setTripSeineDecorator(Decorator<ReferenceDto> mareeDecorator) { this.tripSeineDecorator = mareeDecorator; } - public void setTripLonglineDecorator(Decorator<TripLonglineDto> tripLonglineDecorator) { + public void setTripLonglineDecorator(Decorator<ReferenceDto> tripLonglineDecorator) { this.tripLonglineDecorator = tripLonglineDecorator; } - public String decorate(TripSeineDto trip) { - return tripSeineDecorator.toString(trip); - } + public String decorate(ReferenceDto referenceDto) { + String decor= null; - public String decorate(TripLonglineDto trip) { - return tripLonglineDecorator.toString(trip); - } + if (ProgramDto.class.isAssignableFrom(referenceDto.getType())) { + decor = programDecorator.toString(referenceDto); + } else if (TripSeineDto.class.isAssignableFrom(referenceDto.getType())) { + decor = tripSeineDecorator.toString(referenceDto); + } else if (TripLonglineDto.class.isAssignableFrom(referenceDto.getType())) { + decor = tripLonglineDecorator.toString(referenceDto); + } - public String decorate(ProgramDto program) { - return programDecorator.toString(program); + return decor; } public List<TripEntry> getSelectedTrips() { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java index 806b023..4d3798f 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java @@ -21,11 +21,14 @@ */ package fr.ird.observe.ui.admin.export; -import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.service.longline.TripLonglineService; +import fr.ird.observe.services.service.seine.TripSeineService; +import fr.ird.observe.ui.DecoratorService; import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.admin.AdminStep; import fr.ird.observe.ui.admin.AdminTabUI; @@ -33,6 +36,7 @@ import fr.ird.observe.ui.admin.AdminTabUIHandler; import fr.ird.observe.ui.admin.AdminUI; import fr.ird.observe.ui.admin.AdminUIModel; import fr.ird.observe.ui.admin.config.SelectDataUI; +import fr.ird.observe.ui.storage.tabs.DataSelectionModel; import jaxx.runtime.swing.editor.MyDefaultCellEditor; import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.logging.Log; @@ -95,8 +99,7 @@ public class ExportUIHandler extends AdminTabUIHandler { // } selectTabUI.getSelectionModel().clearSelection(); - // FIXME -// selectTabUI.getSelectionRenderer().setExistingTripIds(model.getExportModel().getExistingTripIds()); + selectTabUI.getSelectionRenderer().setExistingTrips(model.getExportModel().getExistingTrips()); updateSelectionModel(selectTabUI); } }); @@ -195,9 +198,9 @@ public class ExportUIHandler extends AdminTabUIHandler { DecoratorService decoratorProvider = getDecoratorService(); ExportModel stepModel = model.getExportModel(); - Decorator<ProgramDto> pDecorator = decoratorProvider.getDecoratorByType(ProgramDto.class); - Decorator<TripLonglineDto> tripLonglineDecorator = decoratorProvider.getDecoratorByType(TripLonglineDto.class); - Decorator<TripSeineDto> tripSeineDecorator = decoratorProvider.getDecoratorByType(TripSeineDto.class); + Decorator<ReferenceDto> pDecorator = decoratorProvider.getDecoratorByType(ReferenceDto.class, ProgramDto.class.getSimpleName()); + Decorator<ReferenceDto> tripLonglineDecorator = decoratorProvider.getDecoratorByType(ReferenceDto.class, TripLonglineDto.class.getSimpleName()); + Decorator<ReferenceDto> tripSeineDecorator = decoratorProvider.getDecoratorByType(ReferenceDto.class, TripSeineDto.class.getSimpleName()); stepModel.setProgramDecorator(pDecorator); stepModel.setTripSeineDecorator(tripSeineDecorator); stepModel.setTripLonglineDecorator(tripLonglineDecorator); @@ -227,9 +230,8 @@ public class ExportUIHandler extends AdminTabUIHandler { sendMessage(t("observe.message.exportData.prepare.data")); // récupération des couples (program, marees) sur la base temporaire - //FIXME -// DataSelectionModel selectionModel = model.getSelectionDataModel(); -// stepModel.setData(selectionModel); + DataSelectionModel selectionModel = model.getSelectionDataModel(); + stepModel.setData(selectionModel); List<TripEntry> entries = stepModel.getData(); @@ -269,53 +271,64 @@ public class ExportUIHandler extends AdminTabUIHandler { ObserveSwingDataSource centralSource = stepModel.getCentralSource(); ObserveSwingDataSource source = stepModel.getSource(); + ReferenceDto<ProgramDto> program = tripEntry.getProgram(); + ReferenceDto trip = tripEntry.getTrip(); + String tripId = trip.getId(); - //FIXME -// Trip trip = tripEntry.getTrip(); -// String tripId = trip.getTopiaId(); -// -// String tripDecorated = stepModel.decorate(trip); -// String programDecorated = stepModel.decorate(trip.getProgram()); -// -// if (tripEntry.isExist()) { -// -// //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)); -// -// getDataService().deleteTrip(centralSource, tripId); -// -// } -// -// 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 -// -//// tx = beginTransaction(centralSource, txName); -//// -//// // on supprime la maree qui n'a pas pu etre importee -//// try { -//// TopiaDAO<Trip> dao = ObserveDAOHelper.getTripSeineDAO(tx); -//// // on recharge la données depuis la base centrale -//// m = dao.findByTopiaId(m.getTopiaId()); -//// dao.delete(m); -//// commitTransaction(centralSource, tx, txName); -//// } finally { -//// closeTransaction(centralSource, tx, txName); -//// } + String tripDecorated = stepModel.decorate(trip); + String programDecorated = stepModel.decorate(program); + + if (tripEntry.isExist()) { + + //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)); + + if (TripSeineDto.class.isAssignableFrom(trip.getType())) { + + TripSeineService tripSeineService = centralSource.newService(TripSeineService.class); + + tripSeineService.delete(tripId); + + } else if (TripLonglineDto.class.isAssignableFrom(trip.getType())) { + + TripLonglineService tripLonglineService = centralSource.newService(TripLonglineService.class); + + tripLonglineService.delete(tripId); + + } + + } + + 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 + +// tx = beginTransaction(centralSource, txName); // -// throw e; -// } +// // on supprime la maree qui n'a pas pu etre importee +// try { +// TopiaDAO<Trip> dao = ObserveDAOHelper.getTripSeineDAO(tx); +// // on recharge la données depuis la base centrale +// m = dao.findByTopiaId(m.getTopiaId()); +// dao.delete(m); +// commitTransaction(centralSource, tx, txName); +// } finally { +// closeTransaction(centralSource, tx, txName); +// } + + throw e; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java index 3e96d54..32a35bf 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripEntry.java @@ -21,8 +21,8 @@ */ package fr.ird.observe.ui.admin.export; -import fr.ird.observe.services.dto.longline.TripLonglineDto; -import fr.ird.observe.services.dto.seine.TripSeineDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.referential.ProgramDto; import java.io.Serializable; @@ -31,25 +31,25 @@ public class TripEntry implements Serializable { private static final long serialVersionUID = 1L; - //FIXME -// protected final Trip trip; + protected final ReferenceDto<ProgramDto> program; + + protected final ReferenceDto trip; protected final boolean exist; - public TripEntry(TripLonglineDto trip, boolean exist) { -// this.trip = trip; + public TripEntry(ReferenceDto<ProgramDto> program, ReferenceDto trip, boolean exist) { + this.program = program; + this.trip = trip; this.exist = exist; } - public TripEntry(TripSeineDto trip, boolean exist) { -// this.trip = trip; - this.exist = exist; + public ReferenceDto<ProgramDto> getProgram() { + return program; } - //FIXME -// public Trip getTrip() { -// return trip; -// } + public ReferenceDto getTrip() { + return trip; + } public boolean isExist() { return exist; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java index d05c654..7a9f61b 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/TripToExportTableModel.java @@ -21,7 +21,7 @@ */ package fr.ird.observe.ui.admin.export; -import fr.ird.observe.services.dto.referential.ProgramDto; +import fr.ird.observe.services.dto.ReferenceDto; import javax.swing.table.AbstractTableModel; import java.util.HashSet; @@ -39,9 +39,8 @@ public class TripToExportTableModel extends AbstractTableModel { protected static final Class<?>[] COLUMN_CLASSES = { Boolean.class, - ProgramDto.class, - //FIXME -// Trip.class, + ReferenceDto.class, //program + ReferenceDto.class, // trip Boolean.class }; @@ -115,12 +114,10 @@ public class TripToExportTableModel extends AbstractTableModel { value = selected.contains(rowIndex); break; case 1: - //FIXME -// value = tripEntry.getTrip().getProgram(); + value = tripEntry.getProgram(); break; case 2: - //FIXME -// value = tripEntry.getTrip(); + value = tripEntry.getTrip(); break; case 3: value = tripEntry.isExist(); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java index 961c0ec..424329a 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/storage/StorageUIModel.java @@ -1638,6 +1638,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { dst.setSecurityModel(getSecurityModel()); dst.setAdminAction(getAdminAction()); dst.setConnexionStatus(getConnexionStatus()); + dst.setDataSourceInformation(getDataSourceInformation()); } public void firePgConfigChanged(String propertyName, @@ -1918,4 +1919,8 @@ public class StorageUIModel extends WizardModel<StorageStep> { public ObserveDataSourceInformation getDataSourceInformation() { return dataSourceInformation; } + + public void setDataSourceInformation(ObserveDataSourceInformation dataSourceInformation) { + this.dataSourceInformation = dataSourceInformation; + } } diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeCellRenderer.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeCellRenderer.java index 763b6fa..f668715 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeCellRenderer.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/DataSelectionTreeCellRenderer.java @@ -21,6 +21,7 @@ */ package fr.ird.observe.ui.tree; +import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.seine.TripSeineDto; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -49,14 +50,14 @@ public class DataSelectionTreeCellRenderer extends AbstractObserveTreeCellRender private static final Log log = LogFactory.getLog(DataSelectionTreeCellRenderer.class); - protected List<String> existingTripIds; + protected List<ReferenceDto> existingTrips; - public List<String> getExistingTripIds() { - return existingTripIds; + public List<ReferenceDto> getExistingTrips() { + return existingTrips; } - public void setExistingTripIds(List<String> existingMareeIds) { - this.existingTripIds = existingMareeIds; + public void setExistingTrips(List<ReferenceDto> existingTrips) { + this.existingTrips = existingTrips; } public DataSelectionTreeCellRenderer() { @@ -110,9 +111,9 @@ public class DataSelectionTreeCellRenderer extends AbstractObserveTreeCellRender if (TripSeineDto.class.equals(node.getInternalClass())) { - if (existingTripIds != null) { + if (existingTrips != null) { - if (existingTripIds.contains(node.getId())) { + if (existingTrips.contains(((TripSeineNode)node).getEntity())) { text = t("observe.comon.exist.on.remote", text); exist = true; } -- 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/7677 in repository observe. See http://git.codelutin.com/observe.git commit bf3480d36a1183829f788b431be5ab697bd3d2c5 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Nov 6 08:26:09 2015 +0100 migration de l'écran d'export des données observateur (refs #7677) --- .../java/fr/ird/observe/ui/DecoratorService.java | 7 ++++ .../fr/ird/observe/ui/admin/AdminTabUIHandler.java | 44 ++++++++++++++++------ .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 5 ++- .../observe/ui/admin/export/ExportUIHandler.java | 4 +- .../controller/v1/DataSourceServiceController.java | 6 +++ .../services/service/DataSourceService.java | 7 ++++ .../fr/ird/observe/services/dto/ImportDataDto.java | 38 +++++++++++++++++++ .../services/service/DataSourceServiceTopia.java | 18 +++++++++ 8 files changed, 113 insertions(+), 16 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java index 279a9f0..dec2413 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/DecoratorService.java @@ -158,6 +158,8 @@ public class DecoratorService extends DecoratorProvider { public static final String OBSERVE_COMMON_PREFIX = "observe.common."; + public static final String TRIP_CONTEXT = "Trip"; + /** la locale du referentiel. */ protected ReferentialLocale referentialLocale; @@ -541,6 +543,11 @@ public class DecoratorService extends DecoratorProvider { registerDecorator(TripLonglineDto.class.getSimpleName(), new ReferenceDecorator("${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel}$s##${observer}$s")); + // Trip commun decorator + registerDecorator(TRIP_CONTEXT, + new ReferenceDecorator("${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel}$s##${observer}$s")); + + String oldCode = l(locale, "observe.common.oldCode3L"); // Species decorator registerDecorator(new SpeciesDecorator( oldCode)); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java index 6c7afed..53dc106 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminTabUIHandler.java @@ -21,11 +21,15 @@ */ package fr.ird.observe.ui.admin; +import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveRunner; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.SendMessageAble; import fr.ird.observe.db.ObserveSwingDataSource; +import fr.ird.observe.services.dto.ImportDataDto; import fr.ird.observe.services.service.BabModelVersionException; +import fr.ird.observe.services.service.DataSourceDumpProducerService; +import fr.ird.observe.services.service.DataSourceService; import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.ui.DecoratorService; @@ -115,18 +119,34 @@ public class AdminTabUIHandler implements SendMessageAble { protected void replicateData(ObserveSwingDataSource source, ObserveSwingDataSource target, - String... tripIds) { - //FIXME -// ReplicationService service = getReplicationService(); -// if (tripIds == null || tripIds.length == 0) { -// -// // on replique toutes les données -// service.replicateAllData(source, target); -// } else { -// -// // on replique les données specifiees -// service.replicateData(source, target, tripIds); -// } + String... tripIds) throws DatabaseNotFoundException, BabModelVersionException, DatabaseConnexionNotAuthorizedException { + + if (tripIds != null && tripIds.length > 0) { + + openSource(source); + + DataSourceDumpProducerService dataSourceDumpProducerService = source.newService(DataSourceDumpProducerService.class); + + // on replique les données specifiees + ImmutableSet<String> dataIds = ImmutableSet.<String>copyOf(tripIds); + + byte[] dataDump = dataSourceDumpProducerService.getDataDump(dataIds); + + source.close(); + + + openSource(target); + + DataSourceService dataSourceService = target.newService(DataSourceService.class); + + ImportDataDto importData = new ImportDataDto(dataDump, dataIds); + + dataSourceService.importData(importData); + + target.close(); + + } + } protected void replicateReferentiel(ObserveSwingDataSource source, diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java index fd2d118..e9f8c58 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/AdminUIModel.java @@ -1197,8 +1197,9 @@ public class AdminUIModel extends WizardExtModel<AdminStep> { break; case SYNCHRONIZE: case IMPORT_GPS: - validate &= getStepState(s) == - WizardState.SUCCESSED; + //FIXME + //validate &= getStepState(s) == + // WizardState.SUCCESSED; break; case SAVE_LOCAL: // valide si l'action a ete executee avec success diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java index 4d3798f..5ce47f9 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/admin/export/ExportUIHandler.java @@ -126,8 +126,8 @@ public class ExportUIHandler extends AdminTabUIHandler { n("observe.synchro.table.exportData.exist.label.tip")); UIHelper.setTableColumnRenderer(table4, 0, UIHelper.newBooleanTableCellRenderer(renderer5)); - UIHelper.setTableColumnRenderer(table4, 1, UIHelper.newDecorateTableCellRenderer(renderer5, ProgramDto.class)); - UIHelper.setTableColumnRenderer(table4, 2, UIHelper.newDecorateTableCellRenderer(renderer5, TripSeineDto.class)); + UIHelper.setTableColumnRenderer(table4, 1, UIHelper.newDecorateTableCellRenderer(renderer5, ReferenceDto.class, ProgramDto.class.getSimpleName())); + UIHelper.setTableColumnRenderer(table4, 2, UIHelper.newDecorateTableCellRenderer(renderer5, ReferenceDto.class, DecoratorService.TRIP_CONTEXT)); UIHelper.setTableColumnRenderer(table4, 3, UIHelper.newBooleanTableCellRenderer(renderer5)); UIHelper.setTableColumnEditor(table4, 0, MyDefaultCellEditor.newBooleanEditor(false)); diff --git a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java index bd05431..12af1be 100644 --- a/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java +++ b/observe-application-web/src/main/java/fr/ird/observe/application/web/controller/v1/DataSourceServiceController.java @@ -35,6 +35,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ImportDataDto; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.ObserveDbUserDto; import fr.ird.observe.services.service.BabModelVersionException; @@ -136,6 +137,11 @@ public class DataSourceServiceController extends ObserveServiceControllerSupport getAuthenticatedService().migrateData(); } + @Override + public void importData(ImportDataDto importData) { + getAuthenticatedService().importData(importData); + } + protected ObserveDataSourceConfiguration getTopiaDataSourceConfiguration(ObserveDataSourceConfiguration dataSourceConfigurationFromRequest) { Preconditions.checkArgument(dataSourceConfigurationFromRequest instanceof ObserveDataSourceConfigurationRest); diff --git a/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java b/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java index 9bb7a62..e079f67 100644 --- a/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java +++ b/observe-services-api/src/main/java/fr/ird/observe/services/service/DataSourceService.java @@ -29,9 +29,11 @@ import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ImportDataDto; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.ObserveDbUserDto; import fr.ird.observe.services.spi.NoDataAccess; +import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; import fr.ird.observe.services.spi.ReadReferentialPermission; import fr.ird.observe.services.spi.Write; @@ -80,4 +82,9 @@ public interface DataSourceService extends ObserveService { @NoDataAccess void migrateData(); + @WriteDataPermission + @Write + @PostRequest + void importData(ImportDataDto importData); + } diff --git a/observe-services-model/src/main/java/fr/ird/observe/services/dto/ImportDataDto.java b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ImportDataDto.java new file mode 100644 index 0000000..8ef6084 --- /dev/null +++ b/observe-services-model/src/main/java/fr/ird/observe/services/dto/ImportDataDto.java @@ -0,0 +1,38 @@ +package fr.ird.observe.services.dto; + +import com.google.common.collect.ImmutableSet; + +/** + * @author Sylvain Bavencoff - bavencoff@codelutin.com + */ +public class ImportDataDto implements ObserveDto { + + protected byte[] dumpData; + + protected ImmutableSet<String> importDataIds; + + public ImportDataDto() { + this(null, null); + } + + public ImportDataDto(byte[] dumpData, ImmutableSet<String> importDataIds) { + this.dumpData = dumpData; + this.importDataIds = importDataIds; + } + + public byte[] getDumpData() { + return dumpData; + } + + public ImmutableSet<String> getImportDataIds() { + return importDataIds; + } + + public void setDumpData(byte[] dumpData) { + this.dumpData = dumpData; + } + + public void setImportDataIds(ImmutableSet<String> importDataIds) { + this.importDataIds = importDataIds; + } +} diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java index d32d557..d0e9e64 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/DataSourceServiceTopia.java @@ -43,6 +43,7 @@ import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; import fr.ird.observe.services.dto.IdDto; +import fr.ird.observe.services.dto.ImportDataDto; import fr.ird.observe.services.dto.IncompatibleDataSourceCreateConfigurationException; import fr.ird.observe.services.dto.ObserveDbUserDto; import org.apache.commons.logging.Log; @@ -380,6 +381,23 @@ public class DataSourceServiceTopia extends ObserveServiceTopia implements DataS } + @Override + public void importData(ImportDataDto importData) { + + // création d'une base temporaire pour y importer le référentiel et les données + ObserveDataSourceConfigurationTopiaH2 temporaryDataSourceConfiguration = createTemporaryDatabaseFromDump("ImportData", importData.getDumpData()); + ObserveTopiaApplicationContext temporaryTopiaApplicationContext = ObserveTopiaApplicationContextFactory.getOrCreateTopiaApplicationContext(temporaryDataSourceConfiguration); + + if (log.isInfoEnabled()) { + log.info("Import data."); + } + + // Réplication des données + ObserveTopiaApplicationContext topiaApplicationContext = serviceContext.getTopiaApplicationContext(); + replicateData(temporaryTopiaApplicationContext, topiaApplicationContext, importData.getImportDataIds()); + + } + protected void executeGzipSqlStatements(ObserveTopiaApplicationContext topiaApplicationContext, String temporaryFilePrefix, byte... content) { File temporaryDirectory = serviceContext.createTemporaryDirectory(temporaryFilePrefix); -- 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