Tony CHEMIT pushed to branch feature/refactor_ui at ultreiaio / ird-observe Commits: 3df6c1b4 by Tony CHEMIT at 2017-09-27T15:41:04+02:00 improve add message api + now coordinate editor validation prepare is generic - - - - - 23 changed files: - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/ActivityLonglineObsUI.jcss - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/ActivityLonglineObsUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/GearUseFeaturesLonglineUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionObsUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineGlobalCompositionObsUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineObsUI.jcss - client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineObsUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/ActivitySeineUI.jcss - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/ActivitySeineUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/GearUseFeaturesSeineUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetCatchReleaseUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetSampleUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/RouteUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/SetSeineUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/TargetSampleUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/data/seine/TripSeineUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/spi/ContentUIHandler.java - client/src/main/java/fr/ird/observe/client/ui/content/spi/action/OpenAction.java - client/src/main/java/fr/ird/observe/client/ui/content/spi/init/CoordinatesEditorInitializer.java - client/src/main/java/fr/ird/observe/client/ui/content/spi/referential/ContentReferentialUIOpenAction.java - client/src/main/java/fr/ird/observe/client/ui/content/spi/table/ContentTableUIOpenAction.java Changes: ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/ActivityLonglineObsUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/ActivityLonglineObsUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/ActivityLonglineObsUI.jcss @@ -45,6 +45,7 @@ propertyLatitude:{ActivityLonglineObsDto.PROPERTY_LATITUDE}; propertyLongitude:{ActivityLonglineObsDto.PROPERTY_LONGITUDE}; propertyQuadrant:{ActivityLonglineObsDto.PROPERTY_QUADRANT}; + _validationContext:{"coordinate"}; } #vesselActivityLongline { @@ -90,5 +91,4 @@ toolTipText:"observe.common.ActivityLonglineObsDto.action.addSet.tip"; enabled:{!model.isModified() && model.isValid() && model.isSetOperation() && ! bean.isHasSetLongline()}; _observeAction:{AddActivityLonglineSetUIAction.ACTION_NAME}; - } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/ActivityLonglineObsUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/ActivityLonglineObsUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/ActivityLonglineObsUIHandler.java @@ -22,14 +22,12 @@ package fr.ird.observe.client.ui.content.data.longline; * #L% */ -import fr.ird.observe.client.ObserveClientApplicationContext; import fr.ird.observe.client.db.ClientDataContext; import fr.ird.observe.client.db.constants.DataContextType; import fr.ird.observe.client.ui.content.spi.ContentUIMode; import fr.ird.observe.client.ui.content.spi.action.OpenAction; import fr.ird.observe.client.ui.content.spi.open.ContentOpenableUIHandler; import fr.ird.observe.client.ui.content.spi.open.ContentOpenableUIOpenAction; -import fr.ird.observe.client.validation.ClientValidationContext; import fr.ird.observe.dto.data.longline.ActivityLonglineObsDto; import fr.ird.observe.dto.data.longline.ActivityLonglineObsHelper; import fr.ird.observe.dto.data.longline.TripLonglineDto; @@ -41,7 +39,6 @@ import fr.ird.observe.services.action.SaveServiceAction; import java.util.Optional; import javax.swing.SwingUtilities; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -93,22 +90,19 @@ class ActivityLonglineObsUIHandler extends ContentOpenableUIHandler<ActivityLong protected void computeDefaultMessages() { switch (getModel().getContentMode()) { case CREATE: - addMessage(ui, - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivityLonglineObsDto.class), + addInfoMessage( + ActivityLonglineObsDto.class, t("observe.common.ActivityLonglineObsDto.message.creating")); break; case UPDATE: - addMessage(ui, - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivityLonglineObsDto.class), + addInfoMessage( + ActivityLonglineObsDto.class, t("observe.common.ActivityLonglineObsDto.message.updating")); break; case READ: if (!getOpenDataManager().isOpenTripLongline(getSelectedParentId())) { - addMessage(ui, - NuitonValidatorScope.INFO, - getTypeI18nKey(TripLonglineDto.class), + addInfoMessage( + TripLonglineDto.class, t("observe.common.TripLonglineDto.message.not.open")); if (getModel().isHistoricalData()) { @@ -138,16 +132,6 @@ class ActivityLonglineObsUIHandler extends ContentOpenableUIHandler<ActivityLong return getOpenDataManager().canOpenActivityLongline(getSelectedParentId()); } - @Override - protected void prepareValidationContext() { - super.prepareValidationContext(); - - ClientValidationContext validationContext = ObserveClientApplicationContext.get().getValidationContext(); - validationContext.setCoordinatesEditor("coordinate", getUi().getCoordinatesEditor()); - - setValidatorContext(ui.getValidator()); - } - }; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/GearUseFeaturesLonglineUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/GearUseFeaturesLonglineUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/GearUseFeaturesLonglineUIHandler.java @@ -57,7 +57,6 @@ import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.n; @@ -196,9 +195,8 @@ public class GearUseFeaturesLonglineUIHandler extends ContentTableUIHandler<Trip // mode read : la marée n'est pas ouverte - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(TripLonglineDto.class), + addInfoMessage( + TripLonglineDto.class, t("observe.common.TripLonglineDto.message.not.open")); return ContentUIMode.READ; ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionObsUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionObsUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineDetailCompositionObsUIHandler.java @@ -59,7 +59,6 @@ import javax.swing.event.TableModelListener; import org.apache.commons.lang3.BooleanUtils; import org.nuiton.decorator.Decorator; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.validator.NuitonValidatorScope; import static com.google.common.collect.Lists.newArrayList; @@ -327,12 +326,11 @@ public class LonglineDetailCompositionObsUIHandler extends ContentUIHandler<SetL case CREATE: break; case UPDATE: - addInfoMessage(t("observe.common.LonglineDetailCompositionObsDto.message.updating")); + addTitleInfoMessage(t("observe.common.LonglineDetailCompositionObsDto.message.updating")); break; case READ: - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivityLonglineObsDto.class), + addInfoMessage( + ActivityLonglineObsDto.class, t("observe.common.ActivityLonglineObsDto.message.not.open")); break; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineGlobalCompositionObsUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineGlobalCompositionObsUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/LonglineGlobalCompositionObsUIHandler.java @@ -35,7 +35,6 @@ import fr.ird.observe.services.action.LoadFormServiceActionFactory; import fr.ird.observe.services.action.SaveServiceAction; import fr.ird.observe.services.action.SaveServiceActionFactory; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -110,12 +109,11 @@ public class LonglineGlobalCompositionObsUIHandler extends ContentUIHandler<SetL case CREATE: break; case UPDATE: - addInfoMessage(t("observe.common.LonglineGlobalCompositionDto.message.updating")); + addTitleInfoMessage(t("observe.common.LonglineGlobalCompositionDto.message.updating")); break; case READ: - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivityLonglineObsDto.class), + addInfoMessage( + ActivityLonglineObsDto.class, t("observe.common.ActivityLonglineObsDto.message.not.open")); break; @@ -150,12 +148,6 @@ public class LonglineGlobalCompositionObsUIHandler extends ContentUIHandler<SetL } @Override - protected void prepareValidationContext() { - super.prepareValidationContext(); - setValidatorContext(ui.getValidator()); - } - - @Override protected void updateExtra() { getUi().getFloatlinesCompositionUI().open(); getUi().getBranchlinesCompositionUI().open(); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineObsUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineObsUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineObsUI.jcss @@ -62,6 +62,7 @@ latitude:{bean.getSettingStartLatitude()}; longitude:{bean.getSettingStartLongitude()}; quadrant:{bean.getSettingStartQuadrant()}; + _validationContext:{"settingStart"}; } #settingEndTimeStamp { @@ -76,6 +77,7 @@ latitude:{bean.getSettingEndLatitude()}; longitude:{bean.getSettingEndLongitude()}; quadrant:{bean.getSettingEndQuadrant()}; + _validationContext:{"settingEnd"}; } /* ***************************************************************************** */ @@ -220,6 +222,7 @@ latitude:{bean.getHaulingStartLatitude()}; longitude:{bean.getHaulingStartLongitude()}; quadrant:{bean.getHaulingStartQuadrant()}; + _validationContext:{"haulingStart"}; } #haulingEndTimeStamp { @@ -234,6 +237,7 @@ latitude:{bean.getHaulingEndLatitude()}; longitude:{bean.getHaulingEndLongitude()}; quadrant:{bean.getHaulingEndQuadrant()}; + _validationContext:{"haulingEnd"}; } #haulingBreaks { ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineObsUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineObsUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/longline/SetLonglineObsUIHandler.java @@ -22,7 +22,6 @@ package fr.ird.observe.client.ui.content.data.longline; * #L% */ -import fr.ird.observe.client.ObserveClientApplicationContext; import fr.ird.observe.client.db.ClientDataContext; import fr.ird.observe.client.db.constants.DataContextType; import fr.ird.observe.client.ui.content.spi.ContentUIHandler; @@ -30,7 +29,6 @@ import fr.ird.observe.client.ui.content.spi.ContentUIMode; import fr.ird.observe.client.ui.content.spi.action.OpenAction; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; -import fr.ird.observe.client.validation.ClientValidationContext; import fr.ird.observe.dto.data.longline.ActivityLonglineObsDto; import fr.ird.observe.dto.data.longline.SetLonglineObsDto; import fr.ird.observe.dto.data.longline.SetLonglineObsReference; @@ -42,7 +40,6 @@ import fr.ird.observe.services.action.SaveServiceAction; import fr.ird.observe.services.action.SaveServiceActionFactory; import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -100,9 +97,8 @@ public class SetLonglineObsUIHandler extends ContentUIHandler<SetLonglineObsDto, addInfoMessage(t("observe.common.SetLonglineObsDto.message.updating")); break; case READ: - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivityLonglineObsDto.class), + addInfoMessage( + ActivityLonglineObsDto.class, t("observe.common.ActivityLonglineObsDto.message.not.open")); break; } @@ -120,17 +116,6 @@ public class SetLonglineObsUIHandler extends ContentUIHandler<SetLonglineObsDto, loadOrPreCreateForm(activityId, setId); } - @Override - protected void prepareValidationContext() { - super.prepareValidationContext(); - - ClientValidationContext validationContext = ObserveClientApplicationContext.get().getValidationContext(); - validationContext.setCoordinatesEditor("haulingStart", getUi().getHaulingStartCoordinates()); - validationContext.setCoordinatesEditor("haulingEnd", getUi().getHaulingEndCoordinates()); - validationContext.setCoordinatesEditor("settingStart", getUi().getSettingStartCoordinates()); - validationContext.setCoordinatesEditor("settingEnd", getUi().getSettingEndCoordinates()); - setValidatorContext(ui.getValidator()); - } }; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/ActivitySeineUI.jcss ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/ActivitySeineUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/ActivitySeineUI.jcss @@ -44,6 +44,7 @@ propertyLatitude:{ActivitySeineDto.PROPERTY_LATITUDE}; propertyLongitude:{ActivitySeineDto.PROPERTY_LONGITUDE}; propertyQuadrant:{ActivitySeineDto.PROPERTY_QUADRANT}; + _validationContext:{"coordinate"}; } #generalTab { ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/ActivitySeineUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/ActivitySeineUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/ActivitySeineUIHandler.java @@ -21,14 +21,12 @@ */ package fr.ird.observe.client.ui.content.data.seine; -import fr.ird.observe.client.ObserveClientApplicationContext; import fr.ird.observe.client.db.ClientDataContext; import fr.ird.observe.client.db.constants.DataContextType; import fr.ird.observe.client.ui.content.spi.ContentUIMode; -import fr.ird.observe.client.ui.content.spi.open.ContentOpenableUIOpenAction; import fr.ird.observe.client.ui.content.spi.action.OpenAction; import fr.ird.observe.client.ui.content.spi.open.ContentOpenableUIHandler; -import fr.ird.observe.client.validation.ClientValidationContext; +import fr.ird.observe.client.ui.content.spi.open.ContentOpenableUIOpenAction; import fr.ird.observe.dto.data.seine.ActivitySeineDto; import fr.ird.observe.dto.data.seine.RouteDto; import fr.ird.observe.dto.data.seine.TripSeineDto; @@ -42,7 +40,6 @@ import java.util.List; import java.util.Optional; import javax.swing.SwingUtilities; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -107,29 +104,25 @@ class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySeineDto, protected void computeDefaultMessages() { switch (model.getContentMode()) { case CREATE: - addMessage(ui, - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivitySeineDto.class), + addInfoMessage( + ActivitySeineDto.class, t("observe.common.ActivitySeineDto.message.creating")); break; case UPDATE: - addMessage(ui, - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivitySeineDto.class), + addInfoMessage( + ActivitySeineDto.class, t("observe.common.ActivitySeineDto.message.updating")); break; case READ: if (!getOpenDataManager().isOpenRoute(getSelectedParentId())) { - addMessage(ui, - NuitonValidatorScope.INFO, - getTypeI18nKey(RouteDto.class), + addInfoMessage( + RouteDto.class, t("observe.common.RouteDto.message.not.open")); break; } if (!getOpenDataManager().isOpenTripSeine(getDataContext().getSelectedTripSeineId())) { - addMessage(ui, - NuitonValidatorScope.INFO, - getTypeI18nKey(TripSeineDto.class), + addInfoMessage( + TripSeineDto.class, t("observe.common.TripSeineDto.message.not.open")); if (getModel().isHistoricalData()) { addInfoMessage(t("observe.common.DataDto.message.historical.data")); @@ -160,15 +153,6 @@ class ActivitySeineUIHandler extends ContentOpenableUIHandler<ActivitySeineDto, } @Override - protected void prepareValidationContext() { - super.prepareValidationContext(); - - ClientValidationContext validationContext = ObserveClientApplicationContext.get().getValidationContext(); - validationContext.setCoordinatesEditor("coordinate", getUi().getCoordinatesEditor()); - setValidatorContext(ui.getValidator()); - } - - @Override protected boolean computeCanReopen() { return getOpenDataManager().canOpenActivitySeine(getSelectedParentId()); } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectTransmittingBuoyOperationUIHandler.java @@ -48,7 +48,6 @@ import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.SwingUtilities; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -95,15 +94,13 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH case CREATE: break; case UPDATE: - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(FloatingObjectDto.class), + addInfoMessage( + FloatingObjectDto.class, t("observe.message.updating.floatingObject")); break; case READ: - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivitySeineDto.class), + addInfoMessage( + ActivitySeineDto.class, t("observe.common.ActivitySeineDto.message.not.open")); break; } @@ -137,12 +134,6 @@ public class FloatingObjectTransmittingBuoyOperationUIHandler extends ContentUIH } @Override - protected void prepareValidationContext() { - super.prepareValidationContext(); - setValidatorContext(ui.getValidator()); - } - - @Override protected void attachValidators(FloatingObjectTransmittingBuoyDto bean) { super.attachValidators(bean); Collection<TransmittingBuoyDto> transmittingBuoy = bean.getTransmittingBuoy(); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/FloatingObjectUIHandler.java @@ -69,7 +69,6 @@ import org.jdesktop.swingx.table.ColumnFactory; import org.jdesktop.swingx.table.TableColumnExt; import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.jaxx.runtime.swing.SwingUtil; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -175,23 +174,19 @@ public class FloatingObjectUIHandler extends ContentUIHandler<FloatingObjectDto, protected void computeDefaultMessages() { switch (getModel().getContentMode()) { case CREATE: - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(FloatingObjectDto.class), + addInfoMessage( + FloatingObjectDto.class, t("observe.common.FloatingObjectDto.message.creating")); break; case UPDATE: - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(FloatingObjectDto.class), + addInfoMessage( + FloatingObjectDto.class, t("observe.common.FloatingObjectDto.message.updating")); break; case READ: - addMessage( - getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivitySeineDto.class), - t("observe.common.ActivitySeineDto.message.not.open")); + addInfoMessage( + ActivitySeineDto.class, + t("observe.common.ActivitySeineDto.message.not.open")); break; } } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/GearUseFeaturesSeineUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/GearUseFeaturesSeineUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/GearUseFeaturesSeineUIHandler.java @@ -57,7 +57,6 @@ import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.n; @@ -195,9 +194,8 @@ public class GearUseFeaturesSeineUIHandler extends ContentTableUIHandler<TripSei // mode read - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(TripSeineDto.class), + addInfoMessage( + TripSeineDto.class, t("observe.common.TripSeineDto.message.not.open")); return ContentUIMode.READ; ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetCatchReleaseUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetCatchReleaseUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetCatchReleaseUIHandler.java @@ -55,7 +55,6 @@ import javax.swing.JTable; import javax.swing.SwingUtilities; import javax.swing.table.DefaultTableCellRenderer; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.n; @@ -189,9 +188,8 @@ public class NonTargetCatchReleaseUIHandler extends ContentTableUIHandler<SetSei removeAllMessages(ui); - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(SetSeineDto.class), + addInfoMessage( + SetSeineDto.class, t("observe.common.SetSeineDto.message.no.nonTargetCatchRelease")); } } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetSampleUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetSampleUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetSampleUIHandler.java @@ -46,7 +46,6 @@ import javax.swing.JComponent; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.n; @@ -144,10 +143,8 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS // on repasse en mode resteint car on ne peut pas éditer l'écran mode = ContentUIMode.READ; - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(SetSeineDto.class), - t("observe.common.SetSeineDto.message.no.nonTargetDiscarded")); + addInfoMessage(SetSeineDto.class, + t("observe.common.SetSeineDto.message.no.nonTargetDiscarded")); } return mode; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/RouteUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/RouteUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/RouteUIHandler.java @@ -25,9 +25,9 @@ import fr.ird.observe.client.ObserveClientApplicationContext; import fr.ird.observe.client.db.ClientDataContext; import fr.ird.observe.client.db.constants.DataContextType; import fr.ird.observe.client.ui.content.spi.ContentUIMode; -import fr.ird.observe.client.ui.content.spi.open.ContentOpenableUIOpenAction; import fr.ird.observe.client.ui.content.spi.action.OpenAction; import fr.ird.observe.client.ui.content.spi.open.ContentOpenableUIHandler; +import fr.ird.observe.client.ui.content.spi.open.ContentOpenableUIOpenAction; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; import fr.ird.observe.client.ui.util.UIHelper; @@ -44,7 +44,6 @@ import java.util.Date; import javax.swing.JOptionPane; import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.util.DateUtil; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -93,15 +92,13 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme protected void computeDefaultMessages() { switch (getModel().getContentMode()) { case CREATE: - addMessage(ui, - NuitonValidatorScope.INFO, - getTypeI18nKey(RouteDto.class), + addInfoMessage( + RouteDto.class, t("observe.common.RouteDto.message.creating")); break; case UPDATE: - addMessage(ui, - NuitonValidatorScope.INFO, - getTypeI18nKey(RouteDto.class), + addInfoMessage( + RouteDto.class, t("observe.common.RouteDto.message.updating")); if (getModel().isHistoricalData()) { @@ -111,12 +108,12 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme break; case READ: if (!getDataContext().isSelectedOpen(TripSeineDto.class)) { - addMessage(ui, NuitonValidatorScope.INFO, - getTypeI18nKey(TripSeineDto.class), + addInfoMessage( + TripSeineDto.class, t("observe.common.TripSeineDto.message.not.open")); } else { - addMessage(ui, NuitonValidatorScope.INFO, getTypeI18nKey(RouteDto.class), t("observe.common.RouteDto.message.not.open")); + addInfoMessage(RouteDto.class, t("observe.common.RouteDto.message.not.open")); } break; } @@ -133,13 +130,6 @@ class RouteUIHandler extends ContentOpenableUIHandler<RouteDto, RouteUI> impleme } @Override - protected void prepareValidationContext() { - super.prepareValidationContext(); - setValidatorContext(ui.getValidator()); - - } - - @Override protected boolean computeCanReopen() { // on peut reouvrir une route si : ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/SetSeineUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/SetSeineUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/SetSeineUIHandler.java @@ -44,7 +44,6 @@ import java.util.Date; import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; import org.nuiton.util.DateUtil; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.t; @@ -100,9 +99,8 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto, SetSeineUI> addInfoMessage(t("observe.common.SetSeineDto.message.updating")); break; case READ: - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(ActivitySeineDto.class), + addInfoMessage( + ActivitySeineDto.class, t("observe.common.ActivitySeineDto.message.not.open")); break; } @@ -134,12 +132,6 @@ public class SetSeineUIHandler extends ContentUIHandler<SetSeineDto, SetSeineUI> } - @Override - protected void prepareValidationContext() { - super.prepareValidationContext(); - setValidatorContext(ui.getValidator()); - } - }; } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/TargetSampleUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/TargetSampleUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/TargetSampleUIHandler.java @@ -48,7 +48,6 @@ import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.n; @@ -160,9 +159,8 @@ public class TargetSampleUIHandler<U extends ContentTableUI<TargetSampleDto, Tar mode = ContentUIMode.READ; - addMessage(getUi(), - NuitonValidatorScope.INFO, - getTypeI18nKey(SetSeineDto.class), + addInfoMessage( + SetSeineDto.class, discarded ? t("observe.common.SetSeineDto.message.no.targetCatch") : t("observe.common.SetSeineDto.message.no.targetDiscarded") ===================================== client/src/main/java/fr/ird/observe/client/ui/content/data/seine/TripSeineUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/TripSeineUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/data/seine/TripSeineUIHandler.java @@ -177,12 +177,6 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto, TripSein } @Override - protected void prepareValidationContext() { - super.prepareValidationContext(); - setValidatorContext(ui.getValidator()); - } - - @Override protected void setForm() { String programId = getSelectedParentId(); ===================================== client/src/main/java/fr/ird/observe/client/ui/content/spi/ContentUIHandler.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/spi/ContentUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/spi/ContentUIHandler.java @@ -526,7 +526,11 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E>> } protected void addInfoMessage(String message) { - addMessage(ui, NuitonValidatorScope.INFO, getTypeI18nKey(getModel().getBeanType()), t(message)); + addMessage(NuitonValidatorScope.INFO, getModel().getBeanType(), t(message)); + } + + public void addMessage(NuitonValidatorScope scope, Class fieldName, String message) { + openAction.addInfoMessage(fieldName, message); } protected String getTypeI18nKey(Class<?> klass) { ===================================== client/src/main/java/fr/ird/observe/client/ui/content/spi/action/OpenAction.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/spi/action/OpenAction.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/spi/action/OpenAction.java @@ -39,6 +39,7 @@ import fr.ird.observe.client.ui.content.spi.init.TabInfoInitializer; import fr.ird.observe.client.ui.content.spi.referential.ContentReferentialUIHandler; import fr.ird.observe.client.ui.tree.navigation.NavigationTree; import fr.ird.observe.client.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import fr.ird.observe.client.validation.ClientValidationContext; import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; import fr.ird.observe.dto.form.Form; @@ -47,6 +48,8 @@ import fr.ird.observe.services.action.LoadFormRequestDto; import fr.ird.observe.services.action.PreCreateFormRequestDto; import java.awt.Component; import java.awt.FocusTraversalPolicy; +import java.util.List; +import java.util.Objects; import javax.swing.JComponent; import javax.swing.JToolBar; import javax.swing.SwingUtilities; @@ -58,9 +61,11 @@ import org.nuiton.jaxx.validator.swing.SwingValidatorMessageTableModel; import org.nuiton.jaxx.validator.swing.SwingValidatorUtil; import org.nuiton.jaxx.widgets.datetime.DateTimeEditor; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; +import org.nuiton.jaxx.widgets.select.BeanListHeader; import org.nuiton.validator.NuitonValidatorScope; +import static fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper.getTypeI18nKey; import static org.nuiton.i18n.I18n.t; /** @@ -96,7 +101,6 @@ public abstract class OpenAction<E extends IdDto, U extends ContentUI<E>> { } public final void run() { - initModel(); resetValidationContext(); initUi(); @@ -142,14 +146,12 @@ public abstract class OpenAction<E extends IdDto, U extends ContentUI<E>> { } protected void updateExtra() { - } public void startEditUI() { prepareValidationContext(); setEditing(); attachValidators(); -// UIHelper.processDataBinding(ui, "reset.enabled", "save.enabled"); } protected void setTitle() { @@ -198,15 +200,24 @@ public abstract class OpenAction<E extends IdDto, U extends ContentUI<E>> { ObserveClientApplicationContext.get().getValidationContext().reset(); } - protected void prepareValidationContext() { - - // reset all validators + private void prepareValidationContext() { detachValidators(); - - // reset validation cache resetValidationContext(); - - setValidatorContext((SwingValidator<?>) ui.getObjectById("validator")); + SwingValidator<?> validator = (SwingValidator<?>) ui.getObjectById("validator"); + if (validator != null) { + setValidatorContext(validator); + } + ImmutableCollection<CoordinatesEditor> coordinatesEditors = formManager.getCoordinatesEditors(); + if (coordinatesEditors != null) { + CoordinatesEditorInitializer.prepareValidationContext(coordinatesEditors); + } + BeanListHeader referentialListHeader = (BeanListHeader) ui.getObjectById("referentialListHeader"); + if (referentialListHeader != null) { + List data = referentialListHeader.getData(); + ClientValidationContext validationContext = ObserveClientApplicationContext.get().getValidationContext(); + log.debug(String.format("%s Set referentiel list [%s] in validation context : %d", prefix, getModel().getBeanType().getSimpleName(), data.size())); + validationContext.setEditingReferentielList(data); + } } protected void attachValidators(E bean) { @@ -217,7 +228,8 @@ public abstract class OpenAction<E extends IdDto, U extends ContentUI<E>> { SwingValidatorUtil.setValidatorBean(ui, null); } - protected void setValidatorContext(SwingValidator<?> validator) { + private void setValidatorContext(SwingValidator<?> validator) { + Objects.requireNonNull(validator); validator.setContext(model.getContentMode().name().toLowerCase()); } @@ -231,21 +243,30 @@ public abstract class OpenAction<E extends IdDto, U extends ContentUI<E>> { } protected void addInfoMessage(String message) { - addMessage(ui, NuitonValidatorScope.INFO, ObserveI18nDecoratorHelper.getTypeI18nKey(model.getBeanType()), t(message)); + addInfoMessage(model.getBeanType(), t(message)); + } + + protected void addTitleInfoMessage(String message) { + addTitleMessage(NuitonValidatorScope.INFO, model.getBeanType(), t(message)); + } + + public void addInfoMessage(Class fieldName, String message) { + SwingValidatorMessageTableModel model = ui.getErrorTableModel(); + model.addMessages(ui, getTypeI18nKey(fieldName), NuitonValidatorScope.INFO, message); } - public static <E extends IdDto, U extends ContentUI<E>> void addMessage(U ui, NuitonValidatorScope scope, String fieldName, String message) { + private void addTitleMessage(NuitonValidatorScope scope, Class fieldName, String message) { SwingValidatorMessageTableModel model = ui.getErrorTableModel(); - model.addMessages(ui, fieldName, scope, message); + model.addMessages(ui, ObserveI18nDecoratorHelper.getTitle(fieldName), scope, message); } - protected void fixFormSize() { + private void fixFormSize() { // we want to see the hole form on screen - ui.setMinimumSize(ui.getPreferredSize()); +// ui.setMinimumSize(ui.getPreferredSize()); } - protected void grabFocusOnForm() { + private void grabFocusOnForm() { ObserveMainUI mainUI = ObserveClientApplicationContext.get().getMainUI(); boolean focusOnNavigation = mainUI.getModel().isFocusOnNavigation(); if (focusOnNavigation) { ===================================== client/src/main/java/fr/ird/observe/client/ui/content/spi/init/CoordinatesEditorInitializer.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/spi/init/CoordinatesEditorInitializer.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/spi/init/CoordinatesEditorInitializer.java @@ -26,10 +26,12 @@ import com.google.common.collect.ImmutableCollection; import fr.ird.observe.client.ObserveClientApplicationContext; import fr.ird.observe.client.ui.content.spi.ContentUI; import fr.ird.observe.client.ui.content.spi.ContentUIInitializerContext; +import fr.ird.observe.client.validation.ClientValidationContext; import fr.ird.observe.dto.IdDto; import io.ultreia.java4all.lang.GetterProducer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.Objects; import org.nuiton.jaxx.widgets.gis.CoordinateFormat; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditor; import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditorModel; @@ -41,6 +43,8 @@ import org.nuiton.jaxx.widgets.gis.absolute.CoordinatesEditorModel; */ public class CoordinatesEditorInitializer<E extends IdDto, U extends ContentUI<E>> extends ContentUIComponentInitializerSupport<CoordinatesEditor, E, U> { + private static final String VALIDATION_CONTEXT_CLIENT_PROPERTY = "validationContext"; + public CoordinatesEditorInitializer() { super(CoordinatesEditor.class); } @@ -54,7 +58,9 @@ public class CoordinatesEditorInitializer<E extends IdDto, U extends ContentUI<E component.getDmdFormat().setFocusable(false); component.getDmsFormat().setFocusable(false); component.getDdFormat().setFocusable(false); - + // check we have + String validationContextName = getValidationContextName(component); + Objects.requireNonNull(validationContextName, String.format("No ValidationContext client property found on %s in %s", component.getName(), context.getUi().getClass().getName())); } public static void install(ImmutableCollection<CoordinatesEditor> components) { @@ -89,6 +95,18 @@ public class CoordinatesEditorInitializer<E extends IdDto, U extends ContentUI<E } } + public static <U extends ContentUI> void prepareValidationContext(ImmutableCollection<CoordinatesEditor> components) { + ClientValidationContext validationContext = ObserveClientApplicationContext.get().getValidationContext(); + for (CoordinatesEditor component : components) { + String validationContextName = getValidationContextName(component); + validationContext.setCoordinatesEditor(validationContextName, component); + } + } + + private static String getValidationContextName(CoordinatesEditor component) { + return (String) component.getClientProperty(VALIDATION_CONTEXT_CLIENT_PROPERTY); + } + private static class MyPropertyChangeListener implements PropertyChangeListener { private final ImmutableCollection<CoordinatesEditor> components; ===================================== client/src/main/java/fr/ird/observe/client/ui/content/spi/referential/ContentReferentialUIOpenAction.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/spi/referential/ContentReferentialUIOpenAction.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/spi/referential/ContentReferentialUIOpenAction.java @@ -57,7 +57,7 @@ public abstract class ContentReferentialUIOpenAction<E extends ReferentialDto, R /** Logger. */ private static final Log log = LogFactory.getLog(ContentReferentialUIOpenAction.class); - public ContentReferentialUIOpenAction(U ui, ContentUIFormManager<E, ?> formManager, ObserveSwingDataSource dataSource, ClientDataContext dataContext, String prefix) { + ContentReferentialUIOpenAction(U ui, ContentUIFormManager<E, ?> formManager, ObserveSwingDataSource dataSource, ClientDataContext dataContext, String prefix) { super(ui, formManager, dataSource, dataContext, prefix); } @@ -194,22 +194,9 @@ public abstract class ContentReferentialUIOpenAction<E extends ReferentialDto, R // pass in editing mode (without any modification possible) model.setEditing(true); - ObserveClientApplicationContext applicationContext = ObserveClientApplicationContext.get(); - ClientValidationContext validationContext = applicationContext.getValidationContext(); + ClientValidationContext validationContext = ObserveClientApplicationContext.get().getValidationContext(); validationContext.reset(); } } - @Override - protected void prepareValidationContext() { - super.prepareValidationContext(); - BeanListHeader<R> jList = ui.getReferentialListHeader(); - List<R> data = jList.getData(); - ObserveClientApplicationContext applicationContext = ObserveClientApplicationContext.get(); - ClientValidationContext validationContext = applicationContext.getValidationContext(); - if (log.isDebugEnabled()) { - log.debug("Set referentiel list [" + getModel().getBeanType().getSimpleName() + "] in validation context : " + data.size()); - } - validationContext.setEditingReferentielList(data); - } } ===================================== client/src/main/java/fr/ird/observe/client/ui/content/spi/table/ContentTableUIOpenAction.java ===================================== --- a/client/src/main/java/fr/ird/observe/client/ui/content/spi/table/ContentTableUIOpenAction.java +++ b/client/src/main/java/fr/ird/observe/client/ui/content/spi/table/ContentTableUIOpenAction.java @@ -34,10 +34,7 @@ import fr.ird.observe.dto.IdDto; import fr.ird.observe.dto.data.longline.ActivityLonglineObsDto; import fr.ird.observe.dto.data.seine.ActivitySeineDto; import fr.ird.observe.dto.decoration.ObserveI18nDecoratorHelper; -import java.awt.Dimension; import javax.swing.JButton; -import javax.swing.JSplitPane; -import org.nuiton.validator.NuitonValidatorScope; import static org.nuiton.i18n.I18n.n; @@ -96,18 +93,16 @@ public abstract class ContentTableUIOpenAction<E extends IdDto, D extends IdDto, NavigationTreeNodeSupport node = getNavigationTree().getSelectedNode(); String entityLabel = ObserveI18nDecoratorHelper.getTypeI18nKey(node.getParent().getDataType()); message = t(message, t(entityLabel)); - addMessage(ui, NuitonValidatorScope.INFO, entityLabel, message); + addInfoMessage(node.getParent().getDataType(), message); break; case READ: if (dataContext.isSelectedActivityLongline()) { - addMessage(ui, - NuitonValidatorScope.INFO, - ObserveI18nDecoratorHelper.getTypeI18nKey(ActivityLonglineObsDto.class), + addInfoMessage( + ActivityLonglineObsDto.class, t("observe.common.ActivityLonglineObsDto.message.not.open")); } else { - addMessage(ui, - NuitonValidatorScope.INFO, - ObserveI18nDecoratorHelper.getTypeI18nKey(ActivitySeineDto.class), + addInfoMessage( + ActivitySeineDto.class, t("observe.common.ActivitySeineDto.message.not.open")); } break; @@ -157,24 +152,24 @@ public abstract class ContentTableUIOpenAction<E extends IdDto, D extends IdDto, } } - @Override - protected void fixFormSize() { - - if (getModel().isShowData()) { - super.fixFormSize(); - } else { - - // we want to see the hole form on screen - Dimension preferredSize = ui.getPreferredSize(); - - JSplitPane parentContainer = ui.getParentContainer(JSplitPane.class); - if (parentContainer != null) { - ui.setMinimumSize(new Dimension(preferredSize.width, parentContainer.getPreferredSize().height - 200)); - } - -// parentContainer.getRightComponent().setMinimumSize(new Dimension(preferredSize.width, 200)); - } - } +// @Override +// protected void fixFormSize() { +// +// if (getModel().isShowData()) { +// super.fixFormSize(); +// } else { +// +// // we want to see the hole form on screen +// Dimension preferredSize = ui.getPreferredSize(); +// +// JSplitPane parentContainer = ui.getParentContainer(JSplitPane.class); +// if (parentContainer != null) { +// ui.setMinimumSize(new Dimension(preferredSize.width, parentContainer.getPreferredSize().height - 200)); +// } +// +//// parentContainer.getRightComponent().setMinimumSize(new Dimension(preferredSize.width, 200)); +// } +// } public void updateSaveAction(boolean create) { JButton button = ui.getSaveEntry(); View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/3df6c1b4d87aa6f19f89a2f33fb0... --- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/commit/3df6c1b4d87aa6f19f89a2f33fb0... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT