branch develop updated (a3dc0a0 -> 9269054)
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 a3dc0a0 suppresion des imports d'une classe supprimée (OpenableEntities) new 0c76495 migration de l'écran d'export (refs #7677) new fc9a6f8 migration de l'écran d'export des données observateur (refs #7677) new 9269054 Merge branch 'feature/7677' into develop The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 926905443d201440e31226fb0b8de4583bc6e12f Merge: a3dc0a0 fc9a6f8 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Nov 6 08:38:41 2015 +0100 Merge branch 'feature/7677' into develop commit fc9a6f8a341188119fcc3fdbbb7c5b31b8165602 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 0c76495b41ffca57c55f400ce438f525bb788cbd 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: .../java/fr/ird/observe/ui/DecoratorService.java | 7 ++ .../java/fr/ird/observe/ui/admin/AdminStep.java | 3 +- .../fr/ird/observe/ui/admin/AdminTabUIHandler.java | 44 ++++++-- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 8 +- .../ird/observe/ui/admin/export/ExportModel.java | 82 +++++++------- .../observe/ui/admin/export/ExportUIHandler.java | 125 ++++++++++++--------- .../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 +-- .../controller/v1/DataSourceServiceController.java | 6 + .../services/service/DataSourceService.java | 7 ++ .../fr/ird/observe/services/dto/ImportDataDto.java | 38 +++++++ .../services/service/DataSourceServiceTopia.java | 18 +++ 14 files changed, 256 insertions(+), 141 deletions(-) create mode 100644 observe-services-model/src/main/java/fr/ird/observe/services/dto/ImportDataDto.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 develop in repository observe. See http://git.codelutin.com/observe.git commit 0c76495b41ffca57c55f400ce438f525bb788cbd 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 develop in repository observe. See http://git.codelutin.com/observe.git commit fc9a6f8a341188119fcc3fdbbb7c5b31b8165602 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>.
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 926905443d201440e31226fb0b8de4583bc6e12f Merge: a3dc0a0 fc9a6f8 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Nov 6 08:38:41 2015 +0100 Merge branch 'feature/7677' into develop .../java/fr/ird/observe/ui/DecoratorService.java | 7 ++ .../java/fr/ird/observe/ui/admin/AdminStep.java | 3 +- .../fr/ird/observe/ui/admin/AdminTabUIHandler.java | 44 ++++++-- .../java/fr/ird/observe/ui/admin/AdminUIModel.java | 8 +- .../ird/observe/ui/admin/export/ExportModel.java | 82 +++++++------- .../observe/ui/admin/export/ExportUIHandler.java | 125 ++++++++++++--------- .../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 +-- .../controller/v1/DataSourceServiceController.java | 6 + .../services/service/DataSourceService.java | 7 ++ .../fr/ird/observe/services/dto/ImportDataDto.java | 38 +++++++ .../services/service/DataSourceServiceTopia.java | 18 +++ 14 files changed, 256 insertions(+), 141 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