This is an automated email from the git hooks/post-receive script. New commit to branch feature/8145-2 in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit 5df204ea979151aecb6b6ed5d631c1947f2331f6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Mar 20 21:42:26 2016 +0100 Revue du chargement du cache d'échantillon au niveau de l'ui et des actions d'édition des captures d'une campagne --- .../actions/AbstractChangeScreenAction.java | 10 +-- .../EditCatchesForSelectedCruiseAction.java | 55 ++--------------- .../EditCatchesSupportAction.java} | 71 +++++++++++++++++++--- .../content/home/actions/EditCatchesAction.java | 56 ++--------------- .../frequency/IndividualObservationUICache.java | 20 +++--- .../species/frequency/SpeciesFrequencyUIModel.java | 2 +- 6 files changed, 84 insertions(+), 130 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/AbstractChangeScreenAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/AbstractChangeScreenAction.java index 15e0c21..86b9819 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/AbstractChangeScreenAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/AbstractChangeScreenAction.java @@ -28,8 +28,6 @@ import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; import jaxx.runtime.SwingUtil; import jaxx.runtime.context.JAXXContextEntryDef; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import java.beans.PropertyVetoException; @@ -41,15 +39,11 @@ import static org.nuiton.i18n.I18n.t; * Will just check that the current screen can be quit via * the {@link MainUIHandler#quitCurrentScreen()}. * - * * @author Kevin Morin - kmorin@codelutin.com * @since 1.0 */ public abstract class AbstractChangeScreenAction extends AbstractMainUITuttiAction { - /** Logger. */ - private static final Log log = LogFactory.getLog(AbstractChangeScreenAction.class); - /** * Context entry to keep previous screen. * @@ -72,9 +66,7 @@ public abstract class AbstractChangeScreenAction extends AbstractMainUITuttiActi */ protected boolean skipCheckCurrentScreen; - protected AbstractChangeScreenAction(MainUIHandler handler, - boolean hideBody, - TuttiScreen screen) { + protected AbstractChangeScreenAction(MainUIHandler handler, boolean hideBody, TuttiScreen screen) { super(handler, hideBody); this.screen = screen; } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesForSelectedCruiseAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesForSelectedCruiseAction.java index f0899fc..322aa3d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesForSelectedCruiseAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesForSelectedCruiseAction.java @@ -22,18 +22,7 @@ package fr.ifremer.tutti.ui.swing.content.actions; * #L% */ -import com.google.common.base.Preconditions; -import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.service.ValidationService; -import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; -import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI; -import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI; -import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.*; /** * Opens the operations edition screen to edit the selected operations. @@ -41,51 +30,15 @@ import javax.swing.*; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class EditCatchesForSelectedCruiseAction extends AbstractChangeScreenAction { - - /** Logger. */ - private static final Log log = - LogFactory.getLog(EditCatchesForSelectedCruiseAction.class); +public class EditCatchesForSelectedCruiseAction extends EditCatchesSupportAction { public EditCatchesForSelectedCruiseAction(MainUIHandler handler) { - super(handler, true, TuttiScreen.EDIT_FISHING_OPERATION); - } - - @Override - public void doAction() throws Exception { - Preconditions.checkState(getContext().isCruiseFilled()); - if (log.isInfoEnabled()) { - log.info("Edit operations of cruise: " + getContext().getCruiseId()); - } - getContext().setValidationContext(ValidationService.VALIDATION_CONTEXT_EDIT); - loadReferantials(true); - getDataContext().loadCruiseSamplingCache(); - super.doAction(); + super(handler); } @Override - public void postSuccessAction() { - super.postSuccessAction(); - - SwingUtilities.invokeLater( - () -> { - - FishingOperationsUI currentBody = (FishingOperationsUI) getHandler().getCurrentBody(); - - BeanFilterableComboBox<FishingOperation> comboBox = currentBody.getFishingOperationComboBox(); - if (!comboBox.isEmpty()) { - FishingOperation selectedOperation = comboBox.getData().get(0); - currentBody.getModel().setSelectedFishingOperation(selectedOperation); - } - - EditFishingOperationUI fishingOperationTabContent = currentBody.getFishingOperationTabContent(); - - JComponent componentToFocus = fishingOperationTabContent.getHandler().getComponentToFocus(); - componentToFocus.requestFocusInWindow(); - - } - ); - + protected boolean isLoadReferential() { + return true; } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/actions/EditCatchesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesSupportAction.java similarity index 55% copy from tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/actions/EditCatchesAction.java copy to tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesSupportAction.java index c1c4712..b4a230d 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/actions/EditCatchesAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/actions/EditCatchesSupportAction.java @@ -1,4 +1,4 @@ -package fr.ifremer.tutti.ui.swing.content.home.actions; +package fr.ifremer.tutti.ui.swing.content.actions; /* * #%L @@ -23,11 +23,13 @@ package fr.ifremer.tutti.ui.swing.content.home.actions; */ import com.google.common.base.Preconditions; +import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.service.TuttiDataContext; import fr.ifremer.tutti.service.ValidationService; +import fr.ifremer.tutti.service.samplingCache.CruiseSamplingCacheLoader; import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; -import fr.ifremer.tutti.ui.swing.content.actions.AbstractChangeScreenAction; import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI; import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; @@ -38,29 +40,81 @@ import javax.swing.JComponent; import javax.swing.SwingUtilities; /** - * Opens the operations edition screen. + * Opens the operations edition screen to edit the selected operations. * * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class EditCatchesAction extends AbstractChangeScreenAction { +public abstract class EditCatchesSupportAction extends AbstractChangeScreenAction { /** Logger. */ - private static final Log log = LogFactory.getLog(EditCatchesAction.class); + private static final Log log = LogFactory.getLog(EditCatchesSupportAction.class); - public EditCatchesAction(MainUIHandler handler) { + public EditCatchesSupportAction(MainUIHandler handler) { super(handler, true, TuttiScreen.EDIT_FISHING_OPERATION); } + protected abstract boolean isLoadReferential(); + + protected boolean loadReferential; + protected boolean loadSamplingCache; + + @Override + public boolean prepareAction() throws Exception { + boolean doAction = super.prepareAction(); + + TuttiDataContext dataContext = getDataContext(); + if (doAction) { + + loadReferential = isLoadReferential(); + loadSamplingCache = dataContext.isCanUseCruiseSamplingCache() && + !(dataContext.isCruiseSamplingCacheLoaded() && dataContext.isCruiseSamplingCacheUpToDate()); + + int totalSteps = 1; + + if (loadReferential) { + totalSteps += 5; + } + + if (loadSamplingCache) { + + // Calcul des étapes (nb de traits dans la campagne) + long cruiseFishingOperationIds = getDataContext().getCruiseFishingOperationIds().stream().count(); + totalSteps += cruiseFishingOperationIds; + + if (log.isInfoEnabled()) { + log.info("Found " + cruiseFishingOperationIds + " fishing operations to load in sampling cache."); + } + } + + if (totalSteps > 1) { + ProgressionModel progressionModel = new ProgressionModel(); + progressionModel.setTotal(totalSteps); + setProgressionModel(progressionModel); + } + + } + return doAction; + } + @Override public void doAction() throws Exception { - Preconditions.checkState(getContext().isProgramFilled()); Preconditions.checkState(getContext().isCruiseFilled()); if (log.isInfoEnabled()) { log.info("Edit operations of cruise: " + getContext().getCruiseId()); } getContext().setValidationContext(ValidationService.VALIDATION_CONTEXT_EDIT); - getDataContext().loadCruiseSamplingCache(); + if (loadReferential) { + + loadReferantials(false); + + } + if (loadSamplingCache) { + + CruiseSamplingCacheLoader cruiseSamplingCacheLoader = new CruiseSamplingCacheLoader(getContext().getPersistenceService(), getContext().getDecoratorService(), getProgressionModel()); + getDataContext().loadCruiseSamplingCache(cruiseSamplingCacheLoader); + + } super.doAction(); } @@ -88,4 +142,5 @@ public class EditCatchesAction extends AbstractChangeScreenAction { ); } + } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/actions/EditCatchesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/actions/EditCatchesAction.java index c1c4712..2552e45 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/actions/EditCatchesAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/actions/EditCatchesAction.java @@ -22,20 +22,8 @@ package fr.ifremer.tutti.ui.swing.content.home.actions; * #L% */ -import com.google.common.base.Preconditions; -import fr.ifremer.tutti.persistence.entities.data.FishingOperation; -import fr.ifremer.tutti.service.ValidationService; -import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; -import fr.ifremer.tutti.ui.swing.content.actions.AbstractChangeScreenAction; -import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI; -import fr.ifremer.tutti.ui.swing.content.operation.FishingOperationsUI; -import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.JComponent; -import javax.swing.SwingUtilities; +import fr.ifremer.tutti.ui.swing.content.actions.EditCatchesSupportAction; /** * Opens the operations edition screen. @@ -43,49 +31,15 @@ import javax.swing.SwingUtilities; * @author Tony Chemit - chemit@codelutin.com * @since 1.0 */ -public class EditCatchesAction extends AbstractChangeScreenAction { - - /** Logger. */ - private static final Log log = LogFactory.getLog(EditCatchesAction.class); +public class EditCatchesAction extends EditCatchesSupportAction { public EditCatchesAction(MainUIHandler handler) { - super(handler, true, TuttiScreen.EDIT_FISHING_OPERATION); + super(handler); } @Override - public void doAction() throws Exception { - Preconditions.checkState(getContext().isProgramFilled()); - Preconditions.checkState(getContext().isCruiseFilled()); - if (log.isInfoEnabled()) { - log.info("Edit operations of cruise: " + getContext().getCruiseId()); - } - getContext().setValidationContext(ValidationService.VALIDATION_CONTEXT_EDIT); - getDataContext().loadCruiseSamplingCache(); - super.doAction(); + protected boolean isLoadReferential() { + return false; } - @Override - public void postSuccessAction() { - super.postSuccessAction(); - - SwingUtilities.invokeLater( - () -> { - - FishingOperationsUI currentBody = (FishingOperationsUI) getHandler().getCurrentBody(); - - BeanFilterableComboBox<FishingOperation> comboBox = currentBody.getFishingOperationComboBox(); - if (!comboBox.isEmpty()) { - FishingOperation selectedOperation = comboBox.getData().get(0); - currentBody.getModel().setSelectedFishingOperation(selectedOperation); - } - - EditFishingOperationUI fishingOperationTabContent = currentBody.getFishingOperationTabContent(); - - JComponent componentToFocus = fishingOperationTabContent.getHandler().getComponentToFocus(); - componentToFocus.requestFocusInWindow(); - - } - ); - - } } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java index 7e57a8a..c5fec05 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/IndividualObservationUICache.java @@ -211,11 +211,11 @@ public class IndividualObservationUICache implements Closeable { return; } - samplingCache.get().increment(fishingOperation, - species, - gender, - maturity, - uiModel.getLengthStep(lengthStep)); + samplingCache.get().addIndividualObservation(fishingOperation, + species, + gender, + maturity, + uiModel.getLengthStep(lengthStep)); } /** @@ -245,11 +245,11 @@ public class IndividualObservationUICache implements Closeable { return; } - samplingCache.get().decrement(fishingOperation, - species, - gender, - maturity, - uiModel.getLengthStep(lengthStep)); + samplingCache.get().removeIndividualObservation(fishingOperation, + species, + gender, + maturity, + uiModel.getLengthStep(lengthStep)); } diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java index 1dd8fa7..16e331a 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIModel.java @@ -145,7 +145,7 @@ public class SpeciesFrequencyUIModel extends AbstractTuttiTableUIModel<SpeciesBa protected SpeciesBatchRowModel batch; /** - * Default step to increment length step. + * Default step to addIndividualObservation length step. * * @since 0.2 */ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.