r339 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/operation/catches/species resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split resources/i18n
Author: kmorin Date: 2013-02-05 19:41:42 +0100 (Tue, 05 Feb 2013) New Revision: 339 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/339 Log: - resolves #1976 [CAPTURE] - Trait - Initialisation de la date de fin - enable the batches to have an empty weight Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel-error-validation.xml trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java 2013-02-05 16:56:47 UTC (rev 338) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/AttachmentsAction.java 2013-02-05 18:41:42 UTC (rev 339) @@ -28,4 +28,10 @@ protected void doAction(ActionEvent event) throws Exception { //TODO } + + @Override + public boolean isEnabled() { + return false; + } + } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-02-05 16:56:47 UTC (rev 338) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-02-05 18:41:42 UTC (rev 339) @@ -88,7 +88,10 @@ // parentHandler.reloadFishingOperation(); } - //TODO ca sert à quoi ? + // if called directly from the EditFishingOperationUIHandler: + // the user does not want to save the modifications before + // selecting another tab, we must reload the current tab before setting + // the new index of the tab pane if (event.getSource() != null && event.getSource().getClass().isAssignableFrom(EditFishingOperationUIHandler.class)) { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-05 16:56:47 UTC (rev 338) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-05 18:41:42 UTC (rev 339) @@ -52,19 +52,20 @@ import fr.ifremer.tutti.ui.swing.util.TabHandler; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; -import jaxx.runtime.validator.swing.SwingValidator; -import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import javax.swing.JOptionPane; -import javax.swing.JTabbedPane; import java.awt.Color; import java.awt.Component; import java.awt.event.ActionEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.Date; import java.util.List; +import javax.swing.JOptionPane; +import javax.swing.JTabbedPane; +import jaxx.runtime.validator.swing.SwingValidator; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * Handler for UI {@link EditFishingOperationUI}. @@ -84,7 +85,26 @@ private final FishingOperationsUI parentUi; private final PersistenceService persistenceService; + + /** + * listener to set the same end date as the start date + * when the user changes it only (remove this listener before selecting the + * fishing operation) + */ + private final PropertyChangeListener startDateListener = new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + //check if the user changed the date and not only the time) + Date oldDate = (Date) evt.getOldValue(); + Date newDate = (Date) evt.getNewValue(); + if (!DateUtils.isSameDay(oldDate, newDate)) { + getModel().setGearShootingEndDate(newDate); + } + } + + + }; + /** * To monitor changes on the incoming fishing operation. * @@ -187,7 +207,7 @@ }); model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_FISHING_OPERATION_VALID, new PropertyChangeListener() { - + @Override public void propertyChange(PropertyChangeEvent evt) { Boolean valid = (Boolean) evt.getNewValue(); @@ -200,9 +220,6 @@ color = Color.RED; fontColor = Color.WHITE; } - Component tab = getTabPanel().getTabComponentAt(0); - tab.setForeground(fontColor); - tab.setBackground(color); } }); @@ -426,6 +443,9 @@ boolean empty = bean == null; EditFishingOperationUIModel model = getModel(); + + model.removePropertyChangeListener(EditFishingOperationUIModel.PROPERTY_GEAR_SHOOTING_START_DATE, startDateListener); + if (empty || !bean.equals(model.getFishingOperation()) || isAModelModified()) { if (empty) { bean = new FishingOperation(); @@ -487,6 +507,8 @@ model.setModify(false); fishingOperationMonitor.clearModified(); + + model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_GEAR_SHOOTING_START_DATE, startDateListener); } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-02-05 16:56:47 UTC (rev 338) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-02-05 18:41:42 UTC (rev 339) @@ -28,14 +28,11 @@ import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; import fr.ifremer.tutti.service.PersistenceService; -import fr.ifremer.tutti.ui.swing.AbstractTuttiAction; -import fr.ifremer.tutti.ui.swing.MainUI; import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.TuttiUI; import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiTabContainerUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; -import java.awt.BorderLayout; import jaxx.runtime.validator.swing.SwingValidator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -45,17 +42,8 @@ import java.beans.PropertyChangeListener; import java.util.List; import java.util.Timer; -import java.util.TimerTask; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import javax.swing.JDialog; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JProgressBar; -import javax.swing.border.EmptyBorder; -import javax.swing.border.TitledBorder; -import jaxx.runtime.SwingUtil; -import jaxx.runtime.swing.ErrorDialogUI; /** * Handler of UI {@link FishingOperationsUI}. Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java 2013-02-05 16:56:47 UTC (rev 338) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/ImportCasinoAction.java 2013-02-05 18:41:42 UTC (rev 339) @@ -53,4 +53,9 @@ protected void doAction(ActionEvent event) throws Exception { //TODO } + + @Override + public boolean isEnabled() { + return false; + } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java 2013-02-05 16:56:47 UTC (rev 338) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java 2013-02-05 18:41:42 UTC (rev 339) @@ -129,11 +129,6 @@ n_("tutti.table.species.batch.header.weight"), n_("tutti.table.species.batch.header.weight")); -// public static final ColumnIdentifier<SpeciesBatchRowModel> COMPUTED_WEIGHT = ColumnIdentifier.newId( -// SpeciesBatchRowModel.PROPERTY_COMPUTED_WEIGHT, -// n_("tutti.table.species.batch.header.computedWeight"), -// n_("tutti.table.species.batch.header.computedWeight")); - public static final ColumnIdentifier<SpeciesBatchRowModel> COMPUTED_NUMBER = ColumnIdentifier.newId( SpeciesBatchRowModel.PROPERTY_COMPUTED_NUMBER, n_("tutti.table.species.batch.header.computedNumber"), @@ -188,7 +183,7 @@ frequencyCols = Sets.newHashSet(); frequencyCols.add(COMPUTED_NUMBER); -// frequencyCols.add(COMPUTED_WEIGHT); + frequencyCols.add(WEIGHT); sampleCols = Sets.newHashSet(); sampleCols.add(SORTED_UNSORTED_CATEGORY); @@ -249,7 +244,7 @@ propertyName); if (result) { - if (frequencyCols.contains(propertyName) || WEIGHT.equals(propertyName)) { + if (frequencyCols.contains(propertyName)) { // must have filled a species to edit this column SpeciesBatchRowModel entry = getEntry(rowIndex); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-05 16:56:47 UTC (rev 338) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-05 18:41:42 UTC (rev 339) @@ -259,9 +259,9 @@ // a row is valid if species category is not empty and valid // then if any of none empty category is valid - boolean result = row.getSpecies() != null && - !row.getSortedUnsortedCategory().isEmpty() && - row.getSortedUnsortedCategory().isValid(); + boolean result = row.getSpecies() != null; +// &&!row.getSortedUnsortedCategory().isEmpty() && +// row.getSortedUnsortedCategory().isValid(); result &= row.getSizeCategory().isEmptyOrValid(); result &= row.getSexCategory().isEmptyOrValid(); @@ -592,14 +592,6 @@ TuttiUI.DECIMAL3_PATTERN); } -// { // Computed weight column (from frequencies) -// -// addColumnToModel(columnModel, -// FrequencyCellComponent.newEditor(ui), -// FrequencyCellComponent.newRender(), -// SpeciesBatchTableModel.COMPUTED_WEIGHT); -// } - { // Number column (from frequencies) addColumnToModel(columnModel, @@ -883,7 +875,6 @@ Preconditions.checkNotNull(sampleCategory); Preconditions.checkNotNull(sampleCategory.getCategoryType()); Preconditions.checkNotNull(sampleCategory.getCategoryValue()); - Preconditions.checkNotNull(sampleCategory.getCategoryWeight()); SpeciesBatch catchBean = row.toBean(); catchBean.setFishingOperation(fishingOperation); Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel-error-validation.xml =================================================================== --- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel-error-validation.xml 2013-02-05 16:56:47 UTC (rev 338) +++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIModel-error-validation.xml 2013-02-05 18:41:42 UTC (rev 339) @@ -58,13 +58,8 @@ <field name="batchWeight"> - <field-validator type="required" short-circuit="true"> - <message>tutti.validator.error.createSpeciesBatch.batchWeight.required - </message> - </field-validator> - <field-validator type="fieldexpression" short-circuit="true"> - <param name="expression"><![CDATA[ batchWeight >0 ]]></param> + <param name="expression"><![CDATA[ batchWeight == null || batchWeight > 0 ]]></param> <message> tutti.validator.error.createSpeciesBatch.batchWeight.invalidValue </message> Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 16:56:47 UTC (rev 338) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-05 18:41:42 UTC (rev 339) @@ -135,8 +135,8 @@ tutti.label.catches.macroWasteTotalWeight=Poids TOTAL (kg) tutti.label.catches.planktonTotalSampleWeight=Poids total échantillonné tutti.label.catches.planktonTotalWeight=Poids total -tutti.label.catches.speciesTotalInertWeight=Poids inerte (kg) -tutti.label.catches.speciesTotalLivingNotItemizedWeight=Poids vivant non détaillé (kg) +tutti.label.catches.speciesTotalInertWeight=Poids inerte trié (kg) +tutti.label.catches.speciesTotalLivingNotItemizedWeight=Poids vivant non détaillé trié (kg) tutti.label.catches.speciesTotalSampleSortedWeight=Poids VRAC trié (kg) tutti.label.catches.speciesTotalSortedWeight=Poids total VRAC (kg) tutti.label.catches.speciesTotalUnsortedWeight=Poids total HORS VRAC (kg)
participants (1)
-
kmorin@users.forge.codelutin.com