Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 7e7eb06e by Tony CHEMIT at 2017-09-10T09:38:26+00:00 Problème affichage navire et observateur dans arbre de navigation (See #867) - - - - - 93ecc2b2 by Tony CHEMIT at 2017-09-10T09:40:12+00:00 fix some rest problems = loading form - - - - - 11 changed files: - client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineGlobalCompositionUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableUIHandler.java - dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java - server/src/main/java/fr/ird/observe/server/injector/ImmutableSetInjector.java - services-client/src/test/java/fr/ird/observe/services/client/service/ReferenceValuesSetServiceClientTest.java - services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java - services/src/main/java/fr/ird/observe/services/service/referential/ObserveReferentialCache.java - services/src/main/java/fr/ird/observe/services/service/referential/ReferenceSetsRequest.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java @@ -656,12 +656,19 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U } - protected void loadReferentialReferenceSetsInModel(FormDefinition<E> formDefinition) { + public <E extends IdDto> void loadReferentialReferenceSetsInModel(FormDefinition<E> formDefinition) { + loadReferentialReferenceSetsInModel(formDefinition, true); + } + protected <E extends IdDto> void loadReferentialReferenceSetsInModel(FormDefinition<E> formDefinition, boolean clear) { Class<E> dtoType = formDefinition.getType(); ImmutableMap.Builder<String, ReferentialDtoReferenceSet<?>> modelReferentialReferenceSets = ImmutableMap.builder(); + if (!clear) { + modelReferentialReferenceSets.putAll(getModel().getReferentialReferenceSets()); + } + log.debug("Update referential reference sets for: " + dtoType); // mettre à jour le cache de référentiel ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/CatchLonglineUIHandler.java @@ -36,9 +36,6 @@ import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.client.ui.tree.navigation.nodes.longline.TripLonglineNavigationTreeNode; import fr.ird.observe.client.ui.util.UIHelper; import fr.ird.observe.client.ui.util.table.AutotSelectRowAndShowPopupActionSupport; -import fr.ird.observe.dto.decoration.DecoratorService; -import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; -import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.data.longline.BasketReference; import fr.ird.observe.dto.data.longline.BranchlineDto; import fr.ird.observe.dto.data.longline.BranchlineHelper; @@ -50,6 +47,10 @@ import fr.ird.observe.dto.data.longline.SetLonglineCatchHelper; import fr.ird.observe.dto.data.longline.SizeMeasureDto; import fr.ird.observe.dto.data.longline.TripLonglineReference; import fr.ird.observe.dto.data.longline.WeightMeasureDto; +import fr.ird.observe.dto.decoration.DecoratorService; +import fr.ird.observe.dto.decoration.decorators.ReferentialReferenceDecorator; +import fr.ird.observe.dto.form.Form; +import fr.ird.observe.dto.form.FormDefinition; import fr.ird.observe.dto.reference.DtoReferenceCollection; import fr.ird.observe.dto.referential.SizeMeasureTypeReference; import fr.ird.observe.dto.referential.SpeciesDto; @@ -58,12 +59,14 @@ import fr.ird.observe.dto.referential.WeightMeasureTypeReference; import fr.ird.observe.dto.referential.longline.CatchFateLonglineReference; import fr.ird.observe.dto.referential.longline.HealthnessReference; import fr.ird.observe.dto.result.SaveResultDto; +import fr.ird.observe.spi.DtoModelHelper; import java.beans.PropertyChangeListener; import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.HashSet; import java.util.List; +import java.util.Optional; import java.util.Set; import javax.swing.JComponent; import javax.swing.JOptionPane; @@ -651,6 +654,9 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat loadReferentialReferenceSetsInModel(form); + Optional<FormDefinition<BranchlineDto>> optionalFormDefinition = DtoModelHelper.getOptionalFormDefinition(BranchlineDto.class); + optionalFormDefinition.ifPresent(branchlineDtoFormDefinition -> loadReferentialReferenceSetsInModel(branchlineDtoFormDefinition, false)); + model.setForm(form); LonglinePositionHelper<CatchLonglineDto> positionHelper = POSITION_HELPER_ENTRY.getContextValue(getUi()); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionUIHandler.java @@ -35,6 +35,7 @@ import fr.ird.observe.client.ui.content.ContentUIHandler; import fr.ird.observe.client.ui.content.ContentUIModel; import fr.ird.observe.client.ui.content.list.ContentListUIModel; import fr.ird.observe.client.ui.util.JVetoableTabbedPane; +import fr.ird.observe.dto.data.longline.BaitsCompositionDto; import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.data.longline.ActivityLonglineDto; import fr.ird.observe.dto.data.longline.BasketDto; @@ -45,13 +46,16 @@ import fr.ird.observe.dto.data.longline.SectionWithTemplate; import fr.ird.observe.dto.data.longline.SectionWithTemplateHelper; import fr.ird.observe.dto.data.longline.SetLonglineDetailCompositionDto; import fr.ird.observe.dto.data.longline.SetLonglineDetailCompositionHelper; +import fr.ird.observe.dto.form.FormDefinition; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.services.service.data.longline.SetLonglineDetailCompositionService; +import fr.ird.observe.spi.DtoModelHelper; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import javax.swing.JComboBox; import javax.swing.JOptionPane; @@ -378,7 +382,11 @@ public class LonglineDetailCompositionUIHandler extends ContentUIHandler<SetLong Form<BranchlineDto> branchlineDtoForm = Form.newFormDto(BranchlineDto.class, null); BranchlineUIModel branchlineUIModel = getUi().getBranchlineDetailUI().getModel(); - branchlineUIModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); +// branchlineUIModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); + + Optional<FormDefinition<BranchlineDto>> optionalFormDefinition = DtoModelHelper.getOptionalFormDefinition(BranchlineDto.class); + optionalFormDefinition.ifPresent(getUi().getBranchlineDetailUI().getHandler()::loadReferentialReferenceSetsInModel); + branchlineUIModel.setForm(branchlineDtoForm); //FIXME Validate this default date ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineGlobalCompositionUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineGlobalCompositionUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineGlobalCompositionUIHandler.java @@ -27,11 +27,18 @@ import fr.ird.observe.client.db.ObserveSwingDataSource; import fr.ird.observe.client.db.constants.DataContextType; import fr.ird.observe.client.ui.content.ContentMode; import fr.ird.observe.client.ui.content.ContentUIHandler; -import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.data.longline.ActivityLonglineDto; +import fr.ird.observe.dto.data.longline.BaitsCompositionDto; +import fr.ird.observe.dto.data.longline.BranchlinesCompositionDto; +import fr.ird.observe.dto.data.longline.FloatlinesCompositionDto; +import fr.ird.observe.dto.data.longline.HooksCompositionDto; import fr.ird.observe.dto.data.longline.SetLonglineGlobalCompositionDto; import fr.ird.observe.dto.data.longline.SetLonglineGlobalCompositionHelper; +import fr.ird.observe.dto.form.Form; +import fr.ird.observe.dto.form.FormDefinition; import fr.ird.observe.dto.result.SaveResultDto; +import fr.ird.observe.spi.DtoModelHelper; +import java.util.Optional; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.jaxx.runtime.spi.UIHandler; @@ -147,7 +154,11 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong { // open floatlinesComposition tab FloatlinesCompositionUIModel floatlinesCompositionModel = getUi().getFloatlinesCompositionModel(); - floatlinesCompositionModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); +// floatlinesCompositionModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); + + Optional<FormDefinition<FloatlinesCompositionDto>> optionalFormDefinition = DtoModelHelper.getOptionalFormDefinition(FloatlinesCompositionDto.class); + optionalFormDefinition.ifPresent(getUi().getFloatlinesCompositionUI().getHandler()::loadReferentialReferenceSetsInModel); + floatlinesCompositionModel.setForm(form); SetLonglineGlobalCompositionHelper.copySetLonglineGlobalCompositionDto(form.getObject(), floatlinesCompositionModel.getBean()); @@ -159,7 +170,12 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong { // open branchlinesComposition tab BranchlinesCompositionUIModel branchlinesCompositionModel = getUi().getBranchlinesCompositionModel(); - branchlinesCompositionModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); + +// branchlinesCompositionModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); + + Optional<FormDefinition<BranchlinesCompositionDto>> optionalFormDefinition = DtoModelHelper.getOptionalFormDefinition(BranchlinesCompositionDto.class); + optionalFormDefinition.ifPresent(getUi().getBranchlinesCompositionUI().getHandler()::loadReferentialReferenceSetsInModel); + branchlinesCompositionModel.setForm(form); SetLonglineGlobalCompositionHelper.copySetLonglineGlobalCompositionDto(form.getObject(), branchlinesCompositionModel.getBean()); @@ -171,7 +187,10 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong { // open hooksComposition tab HooksCompositionUIModel hooksCompositionModel = getUi().getHooksCompositionModel(); - hooksCompositionModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); +// hooksCompositionModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); + Optional<FormDefinition<HooksCompositionDto>> optionalFormDefinition = DtoModelHelper.getOptionalFormDefinition(HooksCompositionDto.class); + optionalFormDefinition.ifPresent(getUi().getHooksCompositionUI().getHandler()::loadReferentialReferenceSetsInModel); + hooksCompositionModel.setForm(form); SetLonglineGlobalCompositionHelper.copySetLonglineGlobalCompositionDto(form.getObject(), hooksCompositionModel.getBean()); @@ -183,7 +202,10 @@ public class LonglineGlobalCompositionUIHandler extends ContentUIHandler<SetLong { // open baitsComposition tab BaitsCompositionUIModel baitsCompositionModel = getUi().getBaitsCompositionModel(); - baitsCompositionModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); +// baitsCompositionModel.setReferentialReferenceSets(getModel().getReferentialReferenceSets()); + Optional<FormDefinition<BaitsCompositionDto>> optionalFormDefinition = DtoModelHelper.getOptionalFormDefinition(BaitsCompositionDto.class); + optionalFormDefinition.ifPresent(getUi().getBaitsCompositionUI().getHandler()::loadReferentialReferenceSetsInModel); + baitsCompositionModel.setForm(form); SetLonglineGlobalCompositionHelper.copySetLonglineGlobalCompositionDto(form.getObject(), baitsCompositionModel.getBean()); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/table/ContentTableUIHandler.java @@ -226,7 +226,9 @@ public abstract class ContentTableUIHandler<E extends IdDto, D extends IdDto, U Dimension preferredSize = ui.getPreferredSize(); JSplitPane parentContainer = ui.getParentContainer(JSplitPane.class); - ui.setMinimumSize(new Dimension(preferredSize.width, parentContainer.getPreferredSize().height-200)); + if (parentContainer!=null) { + ui.setMinimumSize(new Dimension(preferredSize.width, parentContainer.getPreferredSize().height-200)); + } // parentContainer.getRightComponent().setMinimumSize(new Dimension(preferredSize.width, 200)); } ===================================== dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java ===================================== --- a/dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java +++ b/dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java @@ -491,7 +491,7 @@ public class DecoratorService extends DecoratorProvider { public void initTripLonglineDto() { registerDecorator(new TripLonglineDecorator()); registerDataReferenceDecorator(TripLonglineReference.class, - "${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vessel}$s##${observer}$s"); + "${startDate}$td/%1$tm/%1$tY##${endDate}$td/%2$tm/%2$tY##${vesselLabel}$s##${observerLabel}$s"); } @Override ===================================== server/src/main/java/fr/ird/observe/server/injector/ImmutableSetInjector.java ===================================== --- a/server/src/main/java/fr/ird/observe/server/injector/ImmutableSetInjector.java +++ b/server/src/main/java/fr/ird/observe/server/injector/ImmutableSetInjector.java @@ -32,6 +32,7 @@ import org.apache.commons.logging.LogFactory; import org.debux.webmotion.server.call.Call; import org.debux.webmotion.server.handler.ExecutorParametersInjectorHandler; import org.debux.webmotion.server.mapping.Mapping; +import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl; /** * Cet injecteur a été mis en place pour permettre la conversion des immutableSet arrivant dans une requete. @@ -70,8 +71,17 @@ public class ImmutableSetInjector implements ExecutorParametersInjectorHandler.I Objects.requireNonNull(parameterTree, "Le paramètre " + name + " n'as pas été trouvé, recompiler (parameter)!"); String[] values = (String[]) parameterTree.getValue(); - Collection o = gson.fromJson(values[0], generic); - builder.addAll(o); + String value = values[0]; + if (!value.isEmpty() && !value.contains("[")) { + if (((ParameterizedTypeImpl) generic).getActualTypeArguments()[0].equals(String.class)) { + value = "\"" + value + "\""; + } + value = "[" + value + "]"; + } + Collection o = gson.fromJson(value, generic); + if (o != null) { + builder.addAll(o); + } } result = builder.build(); ===================================== services-client/src/test/java/fr/ird/observe/services/client/service/ReferenceValuesSetServiceClientTest.java ===================================== --- a/services-client/src/test/java/fr/ird/observe/services/client/service/ReferenceValuesSetServiceClientTest.java +++ b/services-client/src/test/java/fr/ird/observe/services/client/service/ReferenceValuesSetServiceClientTest.java @@ -33,6 +33,7 @@ import fr.ird.observe.services.service.referential.ReferenceSetsRequest; import fr.ird.observe.services.service.referential.ReferentialService; import fr.ird.observe.spi.DtoModelHelper; import fr.ird.observe.spi.map.ImmutableDtoMap; +import fr.ird.observe.spi.map.ImmutableDtoMapDtoSimplifiedName; import java.util.Date; import org.junit.Assert; import org.junit.Before; @@ -67,7 +68,7 @@ public class ReferenceValuesSetServiceClientTest extends ServiceClientTestSuppor //FIXME ReferenceSetsRequest<TripSeineDto> request = new ReferenceSetsRequest<>(); request.setRequestName(requestName); - request.setLastUpdateDates(ImmutableDtoMap.<Date>builder().build()); + request.setLastUpdateDates(ImmutableDtoMapDtoSimplifiedName.<Date>builder().build()); ImmutableSet<ReferentialDtoReferenceSet<?>> referenceSetResult = service.getReferentialReferenceSets(request); Assert.assertNotNull(referenceSetResult); ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java ===================================== --- a/services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java +++ b/services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java @@ -61,7 +61,7 @@ import fr.ird.observe.spi.DtoModelHelper; import fr.ird.observe.spi.context.ReferentialDtoEntityContext; import fr.ird.observe.spi.context.ReferentialEntityContext; import fr.ird.observe.spi.context.ReferentialReferenceEntityContext; -import fr.ird.observe.spi.map.ImmutableDtoMap; +import fr.ird.observe.spi.map.ImmutableDtoMapDtoSimplifiedName; import fr.ird.observe.spi.map.ImmutableSetDtoMap; import java.util.Arrays; import java.util.Collections; @@ -143,7 +143,7 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe FormDefinition<D> requestDefinition = optionalRequestDefinition.get(); - ImmutableDtoMap<Date> lastUpdateDates = request.getLastUpdateDates(); + ImmutableDtoMapDtoSimplifiedName<Date> lastUpdateDates = request.getLastUpdateDates(); Objects.requireNonNull(lastUpdateDates); for (Class propertyType : requestDefinition.getPropertiesTypes()) { ===================================== services/src/main/java/fr/ird/observe/services/service/referential/ObserveReferentialCache.java ===================================== --- a/services/src/main/java/fr/ird/observe/services/service/referential/ObserveReferentialCache.java +++ b/services/src/main/java/fr/ird/observe/services/service/referential/ObserveReferentialCache.java @@ -30,6 +30,7 @@ import fr.ird.observe.dto.reference.ReferentialDtoReferenceSet; import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.spi.DtoModelHelper; import fr.ird.observe.spi.map.ImmutableDtoMap; +import fr.ird.observe.spi.map.ImmutableDtoMapDtoSimplifiedName; import fr.ird.observe.spi.map.MutableDtoMap; import java.io.Closeable; import java.io.Serializable; @@ -93,7 +94,7 @@ public class ObserveReferentialCache implements Closeable, Serializable { FormDefinition<D> formDefinition = optionalRequestDefinition.get(); log.info(String.format("Loading %d referential dependencies for: %s", formDefinition.getProperties().size(), dtoType.getName())); - ImmutableDtoMap<Date> lastUpdateDates = getLastUpdateDates(formDefinition); + ImmutableDtoMapDtoSimplifiedName<Date> lastUpdateDates = getLastUpdateDates(formDefinition); ReferenceSetsRequest<D> request = new ReferenceSetsRequest<>(); request.setRequestName(dtoType); @@ -125,9 +126,9 @@ public class ObserveReferentialCache implements Closeable, Serializable { * @param formDefinition la définition de requète * @return le dictionnaire des dates de dernières mises à jour pour chaque ensemble de référentiels */ - private ImmutableDtoMap<Date> getLastUpdateDates(FormDefinition<?> formDefinition) { + private ImmutableDtoMapDtoSimplifiedName<Date> getLastUpdateDates(FormDefinition<?> formDefinition) { - ImmutableDtoMap.Builder<Date> builder = ImmutableDtoMap.builder(); + ImmutableDtoMapDtoSimplifiedName.Builder<Date> builder = ImmutableDtoMapDtoSimplifiedName.builder(); for (Class type : formDefinition.getPropertiesTypes()) { ===================================== services/src/main/java/fr/ird/observe/services/service/referential/ReferenceSetsRequest.java ===================================== --- a/services/src/main/java/fr/ird/observe/services/service/referential/ReferenceSetsRequest.java +++ b/services/src/main/java/fr/ird/observe/services/service/referential/ReferenceSetsRequest.java @@ -24,7 +24,7 @@ package fr.ird.observe.services.service.referential; import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.ObserveDto; -import fr.ird.observe.spi.map.ImmutableDtoMap; +import fr.ird.observe.spi.map.ImmutableDtoMapDtoSimplifiedName; import java.util.Date; /** @@ -39,7 +39,7 @@ public class ReferenceSetsRequest<D extends IdDto> implements ObserveDto { private Class<D> requestName; - private ImmutableDtoMap<Date> lastUpdateDates; + private ImmutableDtoMapDtoSimplifiedName<Date> lastUpdateDates; public Class<D> getDtoType() { return requestName; @@ -49,11 +49,11 @@ public class ReferenceSetsRequest<D extends IdDto> implements ObserveDto { this.requestName = requestName; } - public ImmutableDtoMap<Date> getLastUpdateDates() { + public ImmutableDtoMapDtoSimplifiedName<Date> getLastUpdateDates() { return lastUpdateDates; } - public void setLastUpdateDates(ImmutableDtoMap<Date> lastUpdateDates) { + public void setLastUpdateDates(ImmutableDtoMapDtoSimplifiedName<Date> lastUpdateDates) { this.lastUpdateDates = lastUpdateDates; } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/85d9ecc9582ea6a62595354ad26... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/85d9ecc9582ea6a62595354ad26... You're receiving this email because of your account on gitlab.com.