Author: kmorin Date: 2013-01-10 17:23:59 +0100 (Thu, 10 Jan 2013) New Revision: 168 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/168 Log: refs #1908 [CONSOLIDATION] Mise en place des deux contextes de validation (pour les captures) 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/FishingOperationsUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 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/EditFishingOperationUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-10 14:54:02 UTC (rev 167) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-01-10 16:23:59 UTC (rev 168) @@ -52,6 +52,7 @@ import javax.swing.JLabel; import javax.swing.JPanel; import java.awt.BorderLayout; +import java.awt.Component; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyVetoException; @@ -63,6 +64,7 @@ import javax.swing.SingleSelectionModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import jaxx.runtime.validator.swing.SwingValidator; import org.nuiton.validator.bean.simple.SimpleBeanValidatorEvent; import org.nuiton.validator.bean.simple.SimpleBeanValidatorListener; @@ -268,10 +270,9 @@ @Override public void setSelectedIndex(int index) { int currentIndex = tabPanel.getSelectedIndex(); - if (currentIndex < 0) { - super.setSelectedIndex(index); - - } else { + boolean mustSelectIndex = true; + + if (currentIndex >= 0) { CustomTab currentTab = (CustomTab) tabPanel.getTabComponentAt(currentIndex); AbstractTuttiBeanUIModel model = currentTab.getModel(); @@ -281,8 +282,15 @@ save(); } super.setSelectedIndex(index); + + } else { + mustSelectIndex = false; } } + + if (mustSelectIndex) { + super.setSelectedIndex(index); + } } }); @@ -293,7 +301,6 @@ } - @Override public void onCloseUI() { @@ -397,15 +404,8 @@ boolean newBean = StringUtils.isBlank(id); if (newBean) { - // cancel to create a new fishingOperation - parentUi.getHandler().selectFishingOperation(null); - - } else { - - // reselect in ui the fishingOperation - FishingOperation selectedFishingOperation = parentUi.getModel().getSelectedFishingOperation(); - parentUi.getHandler().selectFishingOperation(selectedFishingOperation); + parentUi.getHandler().closeCurrentFishingOperation(); } } 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-01-10 14:54:02 UTC (rev 167) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-01-10 16:23:59 UTC (rev 168) @@ -169,12 +169,14 @@ public void createNewFishingOperation() { + FishingOperationsUIModel model = getModel(); + // deselect selected fishingOperation - getModel().setSelectedFishingOperation(null); + model.setSelectedFishingOperation(null); // use a new empty fishingOperation FishingOperation newFishingOperation = new FishingOperation(); - newFishingOperation.setCruise(getModel().getCruise()); + newFishingOperation.setCruise(model.getCruise()); // by default use the current day with no time information Date currentDate = new Date(); @@ -184,6 +186,7 @@ newFishingOperation.setDate(currentDate); newFishingOperation.setGearShootingStartDate(currentDate); newFishingOperation.setGearShootingEndDate(currentDate); + selectFishingOperation(newFishingOperation); } @@ -200,56 +203,59 @@ String fishingOperationText; - if (fishingOperation == null) { - fishingOperationText = ""; - } else { + if (fishingOperation != null) { Decorator<FishingOperation> decorator = getDecorator(FishingOperation.class, null); fishingOperationText = _("tutti.label.traitReminder", decorator.toString(fishingOperation)); - } - // propagate fishingOperation to his tabs - ui.getFishingOperationTabContent().getHandler().selectFishingOperation(fishingOperation); + // propagate fishingOperation to his tabs + ui.getFishingOperationTabContent().getHandler().selectFishingOperation(fishingOperation); - ui.getCatchesTabContent().getHandler().selectFishingOperation(fishingOperation, - fishingOperationText); + ui.getCatchesTabContent().getHandler().selectFishingOperation(fishingOperation, + fishingOperationText); - // repaint tabs - ui.getTabPane().repaint(); + // repaint tabs + ui.getTabPane().repaint(); + } } + + public void closeCurrentFishingOperation() { + ui.getFishingOperationTabContent().getHandler().selectFishingOperation(null); + ui.getCatchesTabContent().getHandler().selectFishingOperation(null, ""); + } public void saveFishingOperation(FishingOperation toSave) { // persist the fishingOperation boolean create = toSave.getId() == null; + FishingOperationsUIModel model = getModel(); + FishingOperation savedFishingOperation; - FishingOperation savedFishingOperation; if (create) { savedFishingOperation = persistenceService.createFishingOperation(toSave); + model.addFishingOperation(savedFishingOperation); + } else { savedFishingOperation = persistenceService.saveFishingOperation(toSave); - } + + // add the saved fishingOperation to fishingOperation list + List<FishingOperation> data = model.getFishingOperation(); - FishingOperationsUIModel model = getModel(); + FishingOperation existingFishingOperation = + TuttiEntities.findById(data, savedFishingOperation.getId()); + if (existingFishingOperation != null) { + data.remove(existingFishingOperation); + } + data.add(savedFishingOperation); - // add the saved fishingOperation to fishingOperation list - - List<FishingOperation> data = model.getFishingOperation(); - - FishingOperation existingFishingOperation = - TuttiEntities.findById(data, savedFishingOperation.getId()); - if (existingFishingOperation != null) { - data.remove(existingFishingOperation); + // update model fishingOperation list + model.setFishingOperation(data); } - data.add(savedFishingOperation); - // update model fishingOperation list - model.setFishingOperation(data); - // update model selected fishingOperation model.setSelectedFishingOperation(savedFishingOperation); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-01-10 14:54:02 UTC (rev 167) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIModel.java 2013-01-10 16:23:59 UTC (rev 168) @@ -24,14 +24,14 @@ * #L% */ +import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.beans.AbstractSerializableBean; -import java.util.List; - /** * Model fo UI {@link FishingOperationsUI}. * @@ -66,6 +66,12 @@ firePropertyChange(PROPERTY_FISHING_OPERATION, oldValue, fishingOperation); } + public void addFishingOperation(FishingOperation fishingOperation) { + Object oldValue = Lists.newArrayList(getFishingOperation()); + this.fishingOperation.add(fishingOperation); + firePropertyChange(PROPERTY_FISHING_OPERATION, oldValue, this.fishingOperation); + } + public FishingOperation getSelectedFishingOperation() { return selectedFishingOperation; } 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-01-10 14:54:02 UTC (rev 167) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-01-10 16:23:59 UTC (rev 168) @@ -145,6 +145,7 @@ tutti.label.tab.fishingOperation=Trait tutti.label.tab.fishingOperation.environment=Environnement tutti.label.tab.fishingOperation.gearShooting=Mise en oeuvre de l'engin +tutti.label.tab.fishingOperation.general=Trait tutti.label.tab.fishingOperation.hydrology=Paramètres hydrologiques tutti.label.tab.macroDechet=Macro déchets tutti.label.tab.observationIndividuel=Observations individuelles