Tutti-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- 4058 discussions
r456 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split java/fr/ifremer/tutti/ui/swing/content/protocol resources/i18n
by kmorin@users.forge.codelutin.com 22 Feb '13
by kmorin@users.forge.codelutin.com 22 Feb '13
22 Feb '13
Author: kmorin
Date: 2013-02-22 19:11:12 +0100 (Fri, 22 Feb 2013)
New Revision: 456
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/456
Log:
- refs #2042 [PROTOCOLE] - Esp?\195?\168ces - Ajout des esp?\195?\168ces sur un protocole
- refs #2043: [CAPTURES] - Esp?\195?\168ces - S?\195?\169lection d'une esp?\195?\168ce pour la cr?\195?\169ation du lot
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.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/catches/species/split/AddSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-02-22 17:47:32 UTC (rev 455)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-02-22 18:11:12 UTC (rev 456)
@@ -92,10 +92,13 @@
CreateSpeciesBatchUIModel model = getModel();
if (!selectedSpecies.isReferenceTaxon()) {
+ String decoratedSynonym = decorate(selectedSpecies);
List<Species> referents = referentSpecies;
Map<String, Species> referentsById = TuttiEntities.splitByTaxonId(referents);
String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
selectedSpecies = referentsById.get(taxonId);
+ String decoratedReferent = decorate(selectedSpecies);
+ sendMessage(_("tutti.flash.information.species.replaced", decoratedSynonym, decoratedReferent));
}
List<Species> availableSpecies = Lists.newArrayList(model.getAvailableSpecies());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java 2013-02-22 17:47:32 UTC (rev 455)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java 2013-02-22 18:11:12 UTC (rev 456)
@@ -53,8 +53,11 @@
@Override
protected void doAction(ActionEvent event) {
+ String decoratedSynonym = decorate(selectedSpecies);
String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
selectedSpecies = getModel().getAllReferentSpeciesByTaxonId().get(taxonId);
+ String decoratedReferent = decorate(selectedSpecies);
+ sendMessage(_("tutti.flash.information.species.replaced", decoratedSynonym, decoratedReferent));
getUI().getSpeciesComboBox().setSelectedItem(selectedSpecies);
}
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-22 17:47:32 UTC (rev 455)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-22 18:11:12 UTC (rev 456)
@@ -194,6 +194,7 @@
tutti.flash.information.species.exported.from.protocol=Espèces du protocole exportées dans le fichier %s.
tutti.flash.information.species.imported.in.protocol=Espèces importées dans le protocole depuis le fichier %s.
tutti.flash.information.species.remove.from.protocol=L'espèce %s a été retirée du protocole
+tutti.flash.information.species.replaced=L'espèce "%s" a été remplacée par son référent "%s"
tutti.information.db.loaded=Tutti est connecté à une base de données
tutti.information.no.db.exist=Aucune base détecté, vous pouvez installer la dernière disponible sur le réseau.
tutti.information.no.db.loaded=Tutti a détecté une base mais elle n'est pas actuellement ouverte.
1
0
r455 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/operation/catches/species java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split java/fr/ifremer/tutti/ui/swing/content/protocol resources/i18n
by kmorin@users.forge.codelutin.com 22 Feb '13
by kmorin@users.forge.codelutin.com 22 Feb '13
22 Feb '13
Author: kmorin
Date: 2013-02-22 18:47:32 +0100 (Fri, 22 Feb 2013)
New Revision: 455
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/455
Log:
- refs #2041: [Protocole] - Esp?\195?\168ces - Import des esp?\195?\168ces
- refs #2042 [PROTOCOLE] - Esp?\195?\168ces - Ajout des esp?\195?\168ces sur un protocole
- refs #2043: [CAPTURES] - Esp?\195?\168ces - S?\195?\169lection d'une esp?\195?\168ce pour la cr?\195?\169ation du lot
- set the tooltip of the trawl distance field on the textfield of the editor (fix it when we use next jaxx release)
- debug fishing operation caracteristics tab modification state after save
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
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/SaveFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIHandler.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/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.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/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -85,8 +85,10 @@
this.handler = handler;
this.hideBody = hideBody;
- putValue(SMALL_ICON, SwingUtil.createActionIcon(icon));
- putValue(LARGE_ICON_KEY, SwingUtil.createActionIcon(icon));
+ if (icon != null) {
+ putValue(SMALL_ICON, SwingUtil.createActionIcon(icon));
+ putValue(LARGE_ICON_KEY, SwingUtil.createActionIcon(icon));
+ }
putValue(ACTION_COMMAND_KEY, name);
putValue(NAME, text);
putValue(SHORT_DESCRIPTION, tip);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-22 17:47:32 UTC (rev 455)
@@ -419,7 +419,7 @@
useFloat: false;
numberPattern: {INT_6_DIGITS_PATTERN};
enabled: {!model.isFishingOperationRectiligne()};
- toolTipText: {_("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance()))};
+ toolTipText: {model.getTrawlDistance() != null ? _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) : null};
}
#durationLabel {
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-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -355,6 +355,17 @@
}
});
}
+
+ // FIXME kmorin 20130222 remove this when we use jaxx 2.5.11
+ model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_TRAWL_DISTANCE, new PropertyChangeListener() {
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ String tooltip = model.getTrawlDistance() != null ?
+ _("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance())) :
+ null;
+ ui.getTrawlDistanceField().getTextField().setToolTipText(tooltip);
+ }
+ });
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -134,6 +134,7 @@
} else if (modelClass.isAssignableFrom(HydrologyTabUIModel.class)) {
toSave.setHydrologyCaracteristics(caracteristics);
}
+ subModel.setModify(false);
}
sendMessage(
@@ -154,17 +155,6 @@
handler.getParentUi().getTabPane().setSelectedIndex(1);
}
-// if (event.getSource() != null) {
-// Class<?> sourceClass = event.getSource().getClass();
-// if (sourceClass.isAssignableFrom(EditFishingOperationUIHandler.class)) {
-// int newIndex = event.getID();
-// parentHandler.getTabPanel().setSelectedIndex(newIndex);
-//
-// } else if (sourceClass.isAssignableFrom(TuttiScreen.class)) {
-// TuttiScreen nextScreen = (TuttiScreen) event.getSource();
-// getContext().setScreen(nextScreen);
-// }
-// }
}
protected void saveFishingOperation(FishingOperation toSave) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIHandler.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SelectSpeciesUIHandler.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -29,6 +29,8 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.AbstractTuttiUIHandler;
import fr.ifremer.tutti.ui.swing.TuttiUI;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -58,6 +60,14 @@
initBeanComboBox(ui.getSpeciesCombo(),
Lists.<Species>newArrayList(),
null);
+
+ getModel().addPropertyChangeListener(SelectSpeciesUIModel.PROPERTY_SPECIES,
+ new PropertyChangeListener() {
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ ui.getSpeciesCombo().getHandler().sortData();
+ }
+ });
}
@Override
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-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -257,15 +257,15 @@
if (species == null) {
- // no species, can not edit
+ // no species, can not edit
result = false;
} else {
// Is protocol authorize it ?
- result = speciesSampleCategories.containsEntry(
- species,
- samplePropertyName.getSampleCategoryType());
+ result = !speciesSampleCategories.containsKey(species)
+ || speciesSampleCategories.containsEntry(species,
+ samplePropertyName.getSampleCategoryType());
if (result) {
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-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -105,8 +105,8 @@
public static JAXXContextEntryDef<List<Caracteristic>> FREQUENCY_LENGTH_CONTEXT_ENTRY =
JAXXUtil.newListContextEntryDef("frequencyLength");
- public static JAXXContextEntryDef<List<Species>> SPECIES_UNIVERSE_CONTEXT_ENTRY =
- JAXXUtil.newListContextEntryDef("speciesUniverse");
+ public static JAXXContextEntryDef<List<Species>> SPECIES_REFERENT_CONTEXT_ENTRY =
+ JAXXUtil.newListContextEntryDef("speciesReferent");
public static final Set<String> SAMPLING_PROPERTIES = Sets.newHashSet(
SpeciesBatchRowModel.PROPERTY_SAMPLE_CATEGORY,
@@ -419,9 +419,11 @@
persistenceService.getAllCaracteristic());
}
- List<Species> speciesList = persistenceService.getAllSpecies(protocol);
+ // use only the referent here, if the user needs a synonym, he will
+ // click on the button to select another species
+ List<Species> speciesList = persistenceService.getAllReferentSpecies();
- SPECIES_UNIVERSE_CONTEXT_ENTRY.setContextValue(ui, speciesList);
+ SPECIES_REFERENT_CONTEXT_ENTRY.setContextValue(ui, speciesList);
FREQUENCY_LENGTH_CONTEXT_ENTRY.setContextValue(ui, lengthCaracterics);
}
@@ -436,15 +438,14 @@
List<SampleCategoryType> samplingOrder;
- List<Species> speciesUniverse =
- SPECIES_UNIVERSE_CONTEXT_ENTRY.getContextValue(ui);
+ List<Species> speciesUniverse =
+ SPECIES_REFERENT_CONTEXT_ENTRY.getContextValue(ui);
List<Species> allSpecies;
Multimap<Species, SampleCategoryType> speciesSampleCategories =
HashMultimap.create();
-
boolean protocolFilled = context.isProtocolFilled();
if (protocolFilled) {
@@ -462,36 +463,28 @@
SampleCategoryType.sex,
SampleCategoryType.maturity,
SampleCategoryType.age);
-
+
// fill available species from protocol
allSpecies = Lists.newArrayList();
if (!protocol.isSpeciesEmpty()) {
- // split by referenceTaxonId
- Multimap<String, Species> map = TuttiEntities.splitByReferenceTaxonId(speciesUniverse);
+ // split by taxonId
+ Map<String, Species> map = TuttiEntities.splitByTaxonId(speciesUniverse);
for (SpeciesProtocol protocolSpecy : protocol.getSpecies()) {
-
- // referenceTaxonId
- String referenceTaxonId = String.valueOf(protocolSpecy.getSpeciesReferenceTaxonId());
-
- // all synonyms
- Collection<Species> synonyms = map.get(referenceTaxonId);
- allSpecies.addAll(synonyms);
- // TODO 20130218 kmorin: check with tchemit if we should not
- // check that the species has the category in the protocol
- for (Species species : synonyms) {
- speciesSampleCategories.put(species, SampleCategoryType.sortedUnsorted);
- speciesSampleCategories.put(species, SampleCategoryType.size);
- speciesSampleCategories.put(species, SampleCategoryType.sex);
- speciesSampleCategories.put(species, SampleCategoryType.maturity);
- speciesSampleCategories.put(species, SampleCategoryType.age);
- }
+ String taxonId = String.valueOf(protocolSpecy.getSpeciesReferenceTaxonId());
+ Species species = map.get(taxonId);
+ allSpecies.add(species);
+
+ speciesSampleCategories.put(species, SampleCategoryType.sortedUnsorted);
+ speciesSampleCategories.put(species, SampleCategoryType.size);
+ speciesSampleCategories.put(species, SampleCategoryType.sex);
+ speciesSampleCategories.put(species, SampleCategoryType.maturity);
+ speciesSampleCategories.put(species, SampleCategoryType.age);
}
- //TODO 20130218 kmorin: check with Vincent what to allow on the
- // other species which are not in the protocol
}
+
} else {
// no protocol, use default values
@@ -635,7 +628,7 @@
table.setModel(tableModel);
table.setColumnModel(columnModel);
-
+
Color toConfirmColor = getConfig().getColorRowToConfirm();
// paint the cell in orange if the row is to confirm
Highlighter attachmentHighlighter = TuttiUIUtil.newBackgroundColorHighlighter(
@@ -681,7 +674,7 @@
getTable().setRowFilter(filter);
}
});
-
+
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -27,6 +27,7 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.TuttiPersistence;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
@@ -35,6 +36,7 @@
import java.awt.event.ActionEvent;
import java.util.List;
+import java.util.Map;
import static org.nuiton.i18n.I18n._;
@@ -52,28 +54,30 @@
private static final Log log = LogFactory.getLog(AddSpeciesAction.class);
protected List<Species> allSpecies;
+
+ protected List<Species> referentSpecies;
protected Species selectedSpecies;
public AddSpeciesAction(CreateSpeciesBatchUIHandler handler) {
super(handler,
"addSpecies",
- "add",
null,
+ _("tutti.action.addSpecies.text"),
_("tutti.action.addSpecies.tip"),
false
);
TuttiPersistence persistenceService = getContext().getService(PersistenceService.class);
allSpecies = persistenceService.getAllSpecies();
+ referentSpecies = persistenceService.getAllReferentSpecies();
}
@Override
protected boolean prepareAction(ActionEvent event) {
boolean result = super.prepareAction(event);
- CreateSpeciesBatchUIHandler handler = getHandler();
- List<Species> availableSpecies = handler.getModel().getAvailableSpecies();
+ List<Species> availableSpecies = getModel().getAvailableSpecies();
List<Species> species = Lists.newArrayList(allSpecies);
species.removeAll(availableSpecies);
@@ -85,11 +89,19 @@
@Override
protected void doAction(ActionEvent event) {
- CreateSpeciesBatchUIHandler handler = getHandler();
- CreateSpeciesBatchUIModel model = handler.getModel();
+ CreateSpeciesBatchUIModel model = getModel();
+ if (!selectedSpecies.isReferenceTaxon()) {
+ List<Species> referents = referentSpecies;
+ Map<String, Species> referentsById = TuttiEntities.splitByTaxonId(referents);
+ String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
+ selectedSpecies = referentsById.get(taxonId);
+ }
+
List<Species> availableSpecies = Lists.newArrayList(model.getAvailableSpecies());
- availableSpecies.add(selectedSpecies);
+ if (!availableSpecies.contains(selectedSpecies)) {
+ availableSpecies.add(selectedSpecies);
+ }
model.setAvailableSpecies(availableSpecies);
model.setSpecies(selectedSpecies);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -27,6 +27,7 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.TuttiPersistence;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
@@ -49,6 +50,9 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
+import java.util.Map;
+import jaxx.runtime.JAXXUtil;
+import jaxx.runtime.context.JAXXContextEntryDef;
/**
* Handler of {@link CreateSpeciesBatchUI}.
@@ -90,7 +94,6 @@
@Override
public void beforeInitUI() {
-
CreateSpeciesBatchUIModel model = new CreateSpeciesBatchUIModel();
ui.setContextValue(model);
listModelIsModify(model);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/AddSpeciesProtocolAction.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -57,7 +57,6 @@
@Override
protected void doAction(ActionEvent event) {
-
EditProtocolUI ui = getUI();
EditProtocolUIHandler handler = getHandler();
@@ -65,31 +64,29 @@
EditProtocolSpeciesTableModel tableModel = handler.getTableModel();
Species species = (Species) ui.getSpeciesComboBox().getSelectedItem();
Preconditions.checkNotNull(
- species, "Cant add a speciesProtocol with a null species");
+ species, "Can't add a speciesProtocol with a null species");
+ Preconditions.checkArgument(species.isReferenceTaxon(),
+ "Can't add a speciesProtocol with a not referent species");
-
Integer taxonId = species.getReferenceTaxonId();
-
- // get referent species
String taxonIdStr = String.valueOf(taxonId);
- Species referentSpecies =
- getModel().getAllReferentSpeciesByTaxonId().get(taxonIdStr);
-
// remove all synonyms of this taxon
Collection<Species> allSynonyms = getModel().getAllSynonyms(taxonIdStr);
- ui.getSpeciesComboBox().getData().removeAll(allSynonyms);
+ getModel().getAllSynonyms().removeAll(allSynonyms);
+
+ ui.getSpeciesComboBox().getData().remove(species);
ui.getSpeciesComboBox().getHandler().sortData();
handler.selectFirstInCombo(ui.getSpeciesComboBox());
// add new row to model (do it after combo stuff for ui best display)
EditProtocolSpeciesRowModel protocol = tableModel.createNewRow();
- protocol.setSpecies(referentSpecies);
+ protocol.setSpecies(species);
tableModel.addNewRow(protocol);
getModel().setModify(true);
- String speciesStr = getDecorator(Species.class, DecoratorService.SPECIES_BY_CRUISE_CODE).toString(referentSpecies);
+ String speciesStr = getDecorator(Species.class, DecoratorService.SPECIES_BY_CRUISE_CODE).toString(species);
sendMessage(_("tutti.flash.information.species.add.to.protocol",
speciesStr));
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.css 2013-02-22 17:47:32 UTC (rev 455)
@@ -75,6 +75,10 @@
enabled: {!speciesComboBox.isEmpty()};
}
+#selectOtherSpecies {
+ _tuttiAction: {SelectOtherSpeciesAction.class};
+}
+
#addSpeciesProtocol {
_tuttiAction: {AddSpeciesProtocolAction.class};
enabled: {speciesComboBox.getSelectedItem() != null};
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUI.jaxx 2013-02-22 17:47:32 UTC (rev 455)
@@ -150,11 +150,14 @@
genericType='Species'/>
</cell>
<cell fill='both'>
+ <JButton id='selectOtherSpecies'/>
+ </cell>
+ <cell fill='both'>
<JButton id='addSpeciesProtocol'/>
</cell>
</row>
<row fill='both' weighty='1'>
- <cell fill='both' columns='2'>
+ <cell fill='both' columns='3'>
<JScrollPane>
<JXTable id='speciesTable'
onMouseClicked='handler.autoSelectRowInTable(event, tablePopup)'/>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -37,8 +37,11 @@
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.home.ImportProtocolAction;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUI;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.SelectSpeciesUIModel;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
+import java.awt.Dimension;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.editor.bean.BeanDoubleList;
import jaxx.runtime.swing.editor.bean.BeanDoubleListModel;
@@ -76,6 +79,8 @@
private static final Log log =
LogFactory.getLog(EditProtocolUIHandler.class);
+ protected SelectSpeciesUI dialog;
+
public EditProtocolUIHandler(TuttiUI parentUi, EditProtocolUI ui) {
super(parentUi.getHandler().getContext(), ui);
}
@@ -151,8 +156,8 @@
List<Species> allSpecies = Lists.newArrayList(persistenceService.getAllSpecies());
model.setAllSpecies(allSpecies);
- Multimap<String, Species> allSpeciesByTaxonId = Multimaps.index(allSpecies,
- TuttiEntities.GET_TAXON_ID);
+ Multimap<String, Species> allSpeciesByTaxonId =
+ TuttiEntities.splitByReferenceTaxonId(allSpecies);
model.setAllSpeciesByTaxonId(allSpeciesByTaxonId);
Map<String, Species> allReferentSpeciesByTaxonId = TuttiEntities.splitByTaxonId(
@@ -269,8 +274,12 @@
initTable(table);
- List<Species> speciesList = Lists.newArrayList(model.getAllSpecies());
+ Collection<Species> referents =
+ model.getAllReferentSpeciesByTaxonId().values();
+ List<Species> speciesList = Lists.newArrayList(referents);
+ initBeanComboBox(ui.getSpeciesComboBox(), speciesList, null);
+
List<EditProtocolSpeciesRowModel> rows;
// build speciesProtocol rows
@@ -278,7 +287,7 @@
rows = Lists.newArrayList();
} else {
- rows = toRows(speciesList, protocol.getSpecies());
+ rows = toRows(protocol.getSpecies());
if (log.isDebugEnabled()) {
log.debug("Will edit protocol with " +
@@ -289,7 +298,6 @@
// set to model ( will propagate to tableModel)
model.setRows(rows);
- initBeanComboBox(ui.getSpeciesComboBox(), speciesList, null);
selectFirstInCombo(ui.getSpeciesComboBox());
initDoubleList(EditProtocolUIModel.PROPERTY_LENGTH_CLASSES_PMFM_ID,
@@ -314,11 +322,12 @@
// if new protocol can already cancel his creation
model.setModify(model.isCreate());
+
+ dialog = new SelectSpeciesUI(ui);
}
- public List<EditProtocolSpeciesRowModel> toRows(List<Species> speciesList,
- List<SpeciesProtocol> speciesProtocols) {
-
+ public List<EditProtocolSpeciesRowModel> toRows(List<SpeciesProtocol> speciesProtocols) {
+ List<Species> speciesList = ui.getSpeciesComboBox().getData();
Preconditions.checkNotNull(speciesList);
EditProtocolUIModel model = getModel();
@@ -332,14 +341,16 @@
Integer taxonId = speciesProtocol.getSpeciesReferenceTaxonId();
String taxonIdStr = String.valueOf(taxonId);
- // remove all synonyms from available species list
+ // remove all synonyms from available synonym list
Collection<Species> allSynonyms = model.getAllSynonyms(taxonIdStr);
- speciesList.removeAll(allSynonyms);
+ model.getAllSynonyms().removeAll(allSynonyms);
- EditProtocolSpeciesRowModel row = getTableModel().createNewRow();
-
// get species referent taxon
Species species = allReferentSpeciesByTaxonId.get(taxonIdStr);
+ // remove it from the combo box
+ speciesList.remove(species);
+
+ EditProtocolSpeciesRowModel row = getTableModel().createNewRow();
row.setSpecies(species);
row.setLengthStepPmfm(allCaracteristic.get(speciesProtocol.getLengthStepPmfmId()));
row.fromBean(speciesProtocol);
@@ -431,6 +442,16 @@
model.removePropertyChangeListener(id, updateListener);
}
+ public Species openSelectOtherSpeciesDialog(String title, List<Species> species) {
+ SelectSpeciesUIModel model = dialog.getModel();
+ model.setSpecies(species);
+ model.setSelectedSpecies(null);
+
+ openDialog(ui, dialog, title, new Dimension(400, 130));
+
+ return model.getSelectedSpecies();
+ }
+
//------------------------------------------------------------------------//
//-- Internal methods --//
//------------------------------------------------------------------------//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -24,6 +24,7 @@
* #L%
*/
+import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
@@ -97,7 +98,9 @@
protected boolean removeSpeciesEnabled;
protected List<Species> allSpecies;
-
+
+ protected List<Species> allSynonyms;
+
protected Multimap<String, Species> allSpeciesByTaxonId;
protected Map<String, Species> allReferentSpeciesByTaxonId;
@@ -243,12 +246,16 @@
public void setAllSpecies(List<Species> allSpecies) {
this.allSpecies = allSpecies;
+ if (allReferentSpeciesByTaxonId != null && allSpecies != null) {
+ allSynonyms = Lists.newArrayList(allSpecies);
+ allSynonyms.removeAll(allReferentSpeciesByTaxonId.values());
+ }
}
public Multimap<String, Species> getAllSpeciesByTaxonId() {
return allSpeciesByTaxonId;
}
-
+
public Collection<Species> getAllSynonyms(String taxonId) {
return allSpeciesByTaxonId.get(taxonId);
}
@@ -257,12 +264,20 @@
this.allSpeciesByTaxonId = allSpeciesByTaxonId;
}
+ public List<Species> getAllSynonyms() {
+ return allSynonyms;
+ }
+
public Map<String, Species> getAllReferentSpeciesByTaxonId() {
return allReferentSpeciesByTaxonId;
}
public void setAllReferentSpeciesByTaxonId(Map<String, Species> allReferentSpeciesByTaxonId) {
this.allReferentSpeciesByTaxonId = allReferentSpeciesByTaxonId;
+ if (allReferentSpeciesByTaxonId != null && allSpecies != null) {
+ allSynonyms = Lists.newArrayList(allSpecies);
+ allSynonyms.removeAll(allReferentSpeciesByTaxonId.values());
+ }
}
public List<Caracteristic> getCaracteristics() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -116,8 +116,7 @@
// build rows from imported+merged protocol
// (will also remove all synonyms of species referent used)
List<EditProtocolSpeciesRowModel> rows =
- handler.toRows(speciesComboBox.getData(),
- protocol.getSpecies());
+ handler.toRows(protocol.getSpecies());
// update species comboBox
speciesComboBox.getHandler().sortData();
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java 2013-02-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/RemoveSpeciesProtocolAction.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -25,12 +25,17 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.DecoratorService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import java.awt.event.ActionEvent;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import jaxx.runtime.swing.editor.bean.BeanComboBox;
import static org.nuiton.i18n.I18n._;
@@ -63,16 +68,37 @@
Preconditions.checkState(rowIndex != -1,
"Cant remove species if no species selected");
- EditProtocolSpeciesTableModel tableModel = getHandler().getTableModel();
+ EditProtocolSpeciesTableModel tableModel = handler.getTableModel();
EditProtocolSpeciesRowModel selectedRow = tableModel.getEntry(rowIndex);
// re-add all synonym of this taxon to the species comobox
- Integer taxonId = selectedRow.getSpecies().getReferenceTaxonId();
- Collection<Species> allSynonyms = getModel().getAllSynonyms(String.valueOf(taxonId));
- getUI().getSpeciesComboBox().getData().addAll(allSynonyms);
- getUI().getSpeciesComboBox().getHandler().sortData();
+ Species species = selectedRow.getSpecies();
+ BeanComboBox<Species> combo = getUI().getSpeciesComboBox();
+ combo.getData().add(species);
+ combo.getHandler().sortData();
+
+ EditProtocolUIModel model = getModel();
+ Integer taxonId = species.getReferenceTaxonId();
+ List<Species> allSynonyms = Lists.newArrayList(
+ model.getAllSynonyms(String.valueOf(taxonId)));
+ allSynonyms.remove(species);
+ model.getAllSynonyms().addAll(allSynonyms);
+ // reorder the list by name, otherwise,
+ // all the species without a reftax code will be at the end
+ Collections.sort(model.getAllSynonyms(), new Comparator<Species>() {
+ public int compare(Species o1, Species o2) {
+ if (o1 == null) {
+ return -1;
+ }
+ if (o2 == null) {
+ return 1;
+ }
+ return o1.getName().compareTo(o2.getName());
+ }
+
+ });
// remove the row from the model(do it after treating the comboBox which can be long)
tableModel.removeRow(rowIndex);
Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java (from rev 453, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/AddSpeciesAction.java)
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SelectOtherSpeciesAction.java 2013-02-22 17:47:32 UTC (rev 455)
@@ -0,0 +1,61 @@
+
+package fr.ifremer.tutti.ui.swing.content.protocol;
+
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.species.split.*;
+import java.awt.event.ActionEvent;
+import java.util.Collection;
+import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Action to select a species which is not in the referent list.
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 1.1
+ */
+public class SelectOtherSpeciesAction extends AbstractTuttiAction<EditProtocolUIModel, EditProtocolUI, EditProtocolUIHandler> {
+
+ private static final long serialVersionUID = 1L;
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(AddSpeciesAction.class);
+
+ protected Species selectedSpecies;
+
+ public SelectOtherSpeciesAction(EditProtocolUIHandler handler) {
+ super(handler,
+ "selectOtherSpecies",
+ null,
+ _("tutti.action.selectOtherSpecies.text"),
+ _("tutti.action.selectOtherSpecies.tip"),
+ false
+ );
+ }
+
+ @Override
+ protected boolean prepareAction(ActionEvent event) {
+ boolean result = super.prepareAction(event);
+ EditProtocolUIModel model = getModel();
+
+ List<Species> species = Lists.newArrayList(model.getAllSynonyms());
+
+ selectedSpecies = getHandler().openSelectOtherSpeciesDialog(
+ _("tutti.title.selectSpecies"), species);
+
+ result &= selectedSpecies != null;
+ return result;
+ }
+
+ @Override
+ protected void doAction(ActionEvent event) {
+ String taxonId = String.valueOf(selectedSpecies.getReferenceTaxonId());
+ selectedSpecies = getModel().getAllReferentSpeciesByTaxonId().get(taxonId);
+ getUI().getSpeciesComboBox().setSelectedItem(selectedSpecies);
+ }
+
+}
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-22 14:39:37 UTC (rev 454)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-22 17:47:32 UTC (rev 455)
@@ -2,7 +2,8 @@
tutti.about.message=<h3>Tutti</h3><p><strong>Outil de saisie de données d'opérations et de captures au cours des campagnes halieutiques.</strong></p><br/><p>Ce logiciel permettra la saisie en mer des données d'opération de pêche (positions, environnement, engin, etc) et des captures associées (composition de la capture en espèces scientifiques avec poids, nombres, tailles etc) pour l'ensemble des campagnes halieutiques réalisées par l'Ifremer.</p><p>Ce projet a été initiée en 2012 par l'<a href\="http\://www.ifremer.fr">Ifremer</a> et réalisé par la société <a href\="http\://codelutin.com">Codelutin</a>.</p><hr/><br/><p>Pour plus d'informations, vous pouvez visiter le <a href\="http\://maven-site.forge.codelutin.com/tutti">site du projet</a>.</p><p>Projet hébergé sur la forge <a href\="http\://forge.codelutin.com/projects/tutti">Forge.codelutin.com</a>.</p>
tutti.action.about=À propos
tutti.action.about.tip=À Propos
-tutti.action.addSpecies.tip=Ajouter une espèce
+tutti.action.addSpecies.text=...
+tutti.action.addSpecies.tip=Sélectionner une autre espèce
tutti.action.addSpeciesProtocol.tip=Ajouter une espèce au protocole
tutti.action.attachments=Pièces jointes (%s)
tutti.action.attachments.tip=Pièces jointes
@@ -146,6 +147,8 @@
tutti.action.saveProtocol.tip=Enregistrer le protocol
tutti.action.selectCruise=Sélectionner une campagne
tutti.action.selectCruise.tip=Sélectionner la campagne à utiliser
+tutti.action.selectOtherSpecies.text=...
+tutti.action.selectOtherSpecies.tip=Sélectionner une autre espèce
tutti.action.site=Site
tutti.action.site.tip=Accéder au site du projet Tutti
tutti.action.splitSpeciesBatch=Catégoriser le lot
1
0
Author: kmorin
Date: 2013-02-22 15:39:37 +0100 (Fri, 22 Feb 2013)
New Revision: 454
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/454
Log:
use the latest release of jaxx (for the release of monday)
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-02-21 11:17:08 UTC (rev 453)
+++ trunk/pom.xml 2013-02-22 14:39:37 UTC (rev 454)
@@ -130,7 +130,7 @@
<h2Version>1.3.168</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
- <jaxxVersion>2.5.11-SNAPSHOT</jaxxVersion>
+ <jaxxVersion>2.5.10</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.7</xworkVersion>
1
0
r453 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/util resources/i18n
by kmorin@users.forge.codelutin.com 21 Feb '13
by kmorin@users.forge.codelutin.com 21 Feb '13
21 Feb '13
Author: kmorin
Date: 2013-02-21 12:17:08 +0100 (Thu, 21 Feb 2013)
New Revision: 453
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/453
Log:
fixes #1991 Affichage de la distance parcourue en milles marin via un popup au survole de la distance en m?\195?\168tres
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.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/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-21 09:19:02 UTC (rev 452)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-21 11:17:08 UTC (rev 453)
@@ -411,7 +411,6 @@
#trawlDistanceLabel {
text: "tutti.label.fishingOperation.trawlDistance";
labelFor: {trawlDistanceField};
- toolTipText: {getStringValue(model.getTrawlDistance() != null ? model.getTrawlDistance() / 1852 : null)};
}
#trawlDistanceField {
@@ -420,7 +419,7 @@
useFloat: false;
numberPattern: {INT_6_DIGITS_PATTERN};
enabled: {!model.isFishingOperationRectiligne()};
- toolTipText: {getStringValue(model.getTrawlDistance() != null ? model.getTrawlDistance() / 1852 : null)};
+ toolTipText: {_("tutti.tooltip.distanceInMilles", TuttiUIUtil.getDistanceInMilles(model.getTrawlDistance()))};
}
#durationLabel {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-21 09:19:02 UTC (rev 452)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-21 11:17:08 UTC (rev 453)
@@ -340,9 +340,20 @@
(Math.PI / 2 - Math.asin(Math.sin(eLat) * Math.sin(sLat)
+ Math.cos(eLong - sLong) * Math.cos(eLat) * Math.cos(sLat)));
return d.intValue();
-
}
+ public static String getDistanceInMilles(Float distance) {
+ String distanceText;
+ if (distance != null) {
+ Float distanceInMilles = distance / 1852;
+ distanceText = String.format("%.3f", distanceInMilles);
+
+ } else {
+ distanceText = "";
+ }
+ return distanceText;
+ }
+
public static String getWeightStringValue(Float weight) {
String textValue;
if (weight != null) {
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-21 09:19:02 UTC (rev 452)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-21 11:17:08 UTC (rev 453)
@@ -479,6 +479,7 @@
tutti.to.be.done=< A FAIRE >
tutti.tooltip.attachment.none=Pas de pièce-jointes
tutti.tooltip.comment.none=Pas de commentaire
+tutti.tooltip.distanceInMilles=%s milles marins
tutti.ui.common.error=Erreur
tutti.validator.error.comment.too.long=Taille de commentaire trop longue (limitée à %s caractères)
tutti.validator.error.createSpeciesBatch.batchWeight.invalidValue=Le poids du lot doit être strictement positif
1
0
Author: kmorin
Date: 2013-02-21 10:19:02 +0100 (Thu, 21 Feb 2013)
New Revision: 452
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/452
Log:
use jaxx 2.5.11-SNAPSHOT
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-02-20 17:25:51 UTC (rev 451)
+++ trunk/pom.xml 2013-02-21 09:19:02 UTC (rev 452)
@@ -130,7 +130,7 @@
<h2Version>1.3.168</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
- <jaxxVersion>2.5.10</jaxxVersion>
+ <jaxxVersion>2.5.11-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.7</xworkVersion>
1
0
r451 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/util java/fr/ifremer/tutti/ui/swing/util/editor resources/fr/ifremer/tutti/ui/swing/content/operation
by kmorin@users.forge.codelutin.com 20 Feb '13
by kmorin@users.forge.codelutin.com 20 Feb '13
20 Feb '13
Author: kmorin
Date: 2013-02-20 18:25:51 +0100 (Wed, 20 Feb 2013)
New Revision: 451
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/451
Log:
fixes #2020: [ERGONOMIE] Dates - Permettre l'?\195?\169dition manuelle des dates
fixes #2022: [TRAIT] Saisies des dates / heures - probl?\195?\168mes de r?\195?\169initialisation des champs
fixes #2023: [TRAIT] Saisies des dates / heures - modification date de fin et de d?\195?\169but
fixes #2024: [TRAIT] Saisies des dates / heures - perte des heures
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
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/EditFishingOperationUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/SimpleTimeEditorHandler.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-20 13:03:56 UTC (rev 450)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiUIHandler.java 2013-02-20 17:25:51 UTC (rev 451)
@@ -72,6 +72,8 @@
import java.awt.Font;
import java.awt.Frame;
import java.awt.event.ActionEvent;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
import java.awt.event.ItemEvent;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
@@ -79,10 +81,13 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.Serializable;
+import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import static org.nuiton.i18n.I18n._;
@@ -497,14 +502,28 @@
editor.init();
}
- protected void initDatePicker(JXDatePicker picker) {
+ protected void initDatePicker(final JXDatePicker picker) {
if (log.isDebugEnabled()) {
log.debug("disable JXDatePicker editor" + picker.getName());
}
String dateFormat = getConfig().getDateFormat();
picker.setFormats(dateFormat);
- picker.getEditor().setEditable(false);
+ picker.getEditor().addFocusListener(new FocusAdapter() {
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ try {
+ picker.commitEdit();
+
+ } catch (ParseException ex) {
+ if (log.isDebugEnabled()) {
+ log.debug("format error", ex);
+ }
+ }
+ }
+
+ });
}
public <O> Decorator<O> getDecorator(Class<O> type, String name) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-20 13:03:56 UTC (rev 450)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-20 17:25:51 UTC (rev 451)
@@ -284,7 +284,7 @@
}
#gearShootingStartTimeField {
- property: gearShootingStartDate;
+ property: gearShootingStartTime;
date: {model.getGearShootingStartDate()};
}
@@ -371,7 +371,7 @@
}
#gearShootingEndTimeField {
- property: gearShootingEndDate;
+ property: gearShootingEndTime;
date: {model.getGearShootingEndDate()};
}
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-20 13:03:56 UTC (rev 450)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-20 17:25:51 UTC (rev 451)
@@ -58,10 +58,12 @@
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
+import org.jdesktop.swingx.JXDatePicker;
import static org.nuiton.i18n.I18n._;
@@ -93,7 +95,8 @@
//check if the user changed the date and not only the time)
Date oldDate = (Date) evt.getOldValue();
Date newDate = (Date) evt.getNewValue();
- if (oldDate == null || !DateUtils.isSameDay(oldDate, newDate)) {
+ if (getModel().getGearShootingEndDate() == null &&
+ (oldDate == null || !DateUtils.isSameDay(oldDate, newDate))) {
getModel().setGearShootingEndDate(newDate);
}
}
@@ -466,90 +469,6 @@
};
}
-// public void clearFishingOperation() {
-// EditFishingOperationUIModel model = getModel();
-// model.fromBean(new FishingOperation());
-//
-// model.setModify(false);
-// fishingOperationMonitor.clearModified();
-//
-// model.setEmpty(true);
-//
-// }
-
-// public void selectFishingOperation(FishingOperation bean) {
-// boolean empty = bean == null;
-//
-// EditFishingOperationUIModel editFishingOperationUIModel = getModel();
-//
-// uninstallStartDateListener();
-//
-// if (empty || !bean.equals(editFishingOperationUIModel.getFishingOperation()) || isAModelModified()) {
-// if (empty) {
-// bean = new FishingOperation();
-// }
-//
-// FishingOperationLocation strata = bean.getStrata();
-// FishingOperationLocation subStrata = bean.getSubStrata();
-// FishingOperationLocation location = bean.getLocation();
-//
-// Cruise cruise = bean.getCruise();
-// if (cruise != null) {
-// // update gear universe
-// ui.getGearComboBox().setData(Lists.newArrayList(cruise.getGear()));
-//
-// // update vessel universe
-// ui.getVesselComboBox().setData(Lists.newArrayList(cruise.getVessel()));
-// }
-//
-// editFishingOperationUIModel.fromBean(bean);
-//
-// // to be sure combo list will be reloaded
-// editFishingOperationUIModel.setStrata(null);
-// editFishingOperationUIModel.setSubStrata(null);
-// editFishingOperationUIModel.setLocation(null);
-// editFishingOperationUIModel.convertGearShootingCoordinatesDDToDMS();
-//
-// if (strata != null) {
-// ui.getStrataComboBox().setSelectedItem(strata);
-// }
-//
-// if (subStrata != null) {
-// ui.getSubStrataComboBox().setSelectedItem(subStrata);
-// }
-//
-// if (location != null) {
-// ui.getLocationComboBox().setSelectedItem(location);
-// }
-//
-// editFishingOperationUIModel.setFishingOperation(bean);
-//
-// // update saisissuer selection
-// List<Person> saisisseur = editFishingOperationUIModel.getSaisisseur();
-// ui.getSaisisseurList().getModel().setSelected(saisisseur);
-//
-// // update model empty property
-// editFishingOperationUIModel.setEmpty(empty);
-//
-// //reset gear shooting
-// GearShootingTabUI gearShootingTab = ui.getGearShootingTabContent();
-// gearShootingTab.getHandler().reset(bean);
-//
-// //reset environment
-// EnvironmentTabUI environmentTab = ui.getEnvironmentTabContent();
-// environmentTab.getHandler().reset(bean);
-//
-// //reset hydrology
-// HydrologyTabUI hydrologyTab = ui.getHydrologyTabContent();
-// hydrologyTab.getHandler().reset(bean);
-//
-// editFishingOperationUIModel.setModify(false);
-// fishingOperationMonitor.clearModified();
-//
-// editFishingOperationUIModel.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_GEAR_SHOOTING_START_DATE, startDateListener);
-// }
-// }
-
public void uninstallStartDateListener() {
getModel().removePropertyChangeListener(EditFishingOperationUIModel.PROPERTY_GEAR_SHOOTING_START_DATE, startDateListener);
}
@@ -573,6 +492,19 @@
public TuttiBeanMonitor<EditFishingOperationUIModel> getFishingOperationMonitor() {
return fishingOperationMonitor;
}
+
+ @Override
+ public void setDate(ActionEvent event, String property) {
+ JXDatePicker field = (JXDatePicker) event.getSource();
+ Date value = field.getDate();
+ Date date = (Date) TuttiUIUtil.getProperty(getModel(), property);
+ if (value != null && date != null) {
+ Calendar cal = DateUtils.toCalendar(date);
+ value = DateUtils.setHours(value, cal.get(Calendar.HOUR_OF_DAY));
+ value = DateUtils.setMinutes(value, cal.get(Calendar.MINUTE));
+ }
+ TuttiUIUtil.setProperty(getModel(), property, value);
+ }
//------------------------------------------------------------------------//
//-- Protected methods --//
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-02-20 13:03:56 UTC (rev 450)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-02-20 17:25:51 UTC (rev 451)
@@ -43,6 +43,7 @@
import java.util.Calendar;
import java.util.Date;
import java.util.List;
+import org.apache.commons.lang3.time.DateUtils;
import static org.nuiton.i18n.I18n.n_;
@@ -91,7 +92,7 @@
public static final String PROPERTY_GEAR_SHOOTING_START_LONGITUDE_SECOND = "gearShootingStartLongitudeSecond";
public static final String PROPERTY_GEAR_SHOOTING_START_DATE = "gearShootingStartDate";
-
+
public static final String PROPERTY_GEAR_SHOOTING_END_LATITUDE = "gearShootingEndLatitude";
public static final String PROPERTY_GEAR_SHOOTING_END_LATITUDE_DEGREE = "gearShootingEndLatitudeDegree";
@@ -432,8 +433,7 @@
public void setGearShootingStartDate(Date gearShootingStartDate) {
Object oldValue = getGearShootingStartDate();
if (gearShootingStartDate != null) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(gearShootingStartDate);
+ Calendar calendar = DateUtil.getDefaultCalendar(gearShootingStartDate);
calendar.set(Calendar.SECOND, 0);
this.gearShootingStartDate = calendar.getTime();
@@ -442,6 +442,13 @@
}
firePropertyChange(PROPERTY_GEAR_SHOOTING_START_DATE, oldValue, this.gearShootingStartDate);
}
+
+ public void setGearShootingStartTime(Date gearShootingStartDate) {
+ Object oldValue = getGearShootingStartDate();
+ if (oldValue != null) {
+ setGearShootingStartDate(gearShootingStartDate);
+ }
+ }
public Float getGearShootingEndLatitude() {
return gearShootingEndLatitude;
@@ -586,8 +593,7 @@
public void setGearShootingEndDate(Date gearShootingEndDate) {
Object oldValue = getGearShootingEndDate();
if (gearShootingEndDate != null) {
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(gearShootingEndDate);
+ Calendar calendar = DateUtil.getDefaultCalendar(gearShootingEndDate);
calendar.set(Calendar.SECOND, 0);
this.gearShootingEndDate = calendar.getTime();
@@ -596,6 +602,13 @@
}
firePropertyChange(PROPERTY_GEAR_SHOOTING_END_DATE, oldValue, this.gearShootingEndDate);
}
+
+ public void setGearShootingEndTime(Date gearShootingEndDate) {
+ Object oldValue = getGearShootingEndDate();
+ if (oldValue != null) {
+ setGearShootingEndDate(gearShootingEndDate);
+ }
+ }
public boolean isFishingOperationRectiligne() {
return fishingOperationRectiligne;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-20 13:03:56 UTC (rev 450)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-20 17:25:51 UTC (rev 451)
@@ -317,7 +317,7 @@
public static String getDuration(Date startDate, Date endDate) {
String duration = "";
- if (startDate != null && endDate != null) {
+ if (startDate != null && endDate != null && !startDate.after(endDate)) {
duration = DurationFormatUtils.formatPeriod(
startDate.getTime(),
endDate.getTime(),
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/SimpleTimeEditorHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/SimpleTimeEditorHandler.java 2013-02-20 13:03:56 UTC (rev 450)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/SimpleTimeEditorHandler.java 2013-02-20 17:25:51 UTC (rev 451)
@@ -99,6 +99,9 @@
log.debug("date changed : new value " + hours + ":" + minutes);
}
model.setTimeModel(hours * 60 + minutes);
+
+ } else {
+ model.setTimeModel(null);
}
}
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-02-20 13:03:56 UTC (rev 450)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-02-20 17:25:51 UTC (rev 451)
@@ -96,7 +96,7 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingEndDate == null || gearShootingStartDate.compareTo(gearShootingEndDate) <= 0 ]]>
+ <![CDATA[ gearShootingEndDate == null || !gearShootingStartDate.after(gearShootingEndDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
@@ -107,7 +107,7 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingEndDate == null || gearShootingStartDate == null || gearShootingStartDate.compareTo(gearShootingEndDate) <= 0 ]]>
+ <![CDATA[ gearShootingEndDate == null || gearShootingStartDate == null || !gearShootingStartDate.after(gearShootingEndDate) ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
1
0
r450 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/content/operation/catches/species java/fr/ifremer/tutti/ui/swing/util resources/fr/ifremer/tutti/ui/swing/content/operation
by kmorin@users.forge.codelutin.com 20 Feb '13
by kmorin@users.forge.codelutin.com 20 Feb '13
20 Feb '13
Author: kmorin
Date: 2013-02-20 14:03:56 +0100 (Wed, 20 Feb 2013)
New Revision: 450
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/450
Log:
reset the computed weights
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.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/SaveFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-02-20 13:03:56 UTC (rev 450)
@@ -476,6 +476,7 @@
ui.getHandler().getCatchBatchMonitor();
EditCatchesUIModel catchesUIModel = ui.getModel();
+ catchesUIModel.reset();
CatchBatch batch;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel.java 2013-02-20 13:03:56 UTC (rev 450)
@@ -716,6 +716,11 @@
public boolean isDateInCruise(Date date) {
return DateUtil.between(date, cruise.getBeginDate(), cruise.getEndDate());
}
+
+ public boolean isValidDuration() {
+ int minutes = DateUtil.getDifferenceInMinutes(gearShootingStartDate, gearShootingEndDate);
+ return minutes <= 45 && minutes >= 20;
+ }
public List<FishingOperation> getExistingOperations() {
return existingOperations;
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-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-02-20 13:03:56 UTC (rev 450)
@@ -153,6 +153,8 @@
operation = null;
} else {
operation = persistenceService.getFishingOperation(newValue.getId());
+ Cruise cruise = TuttiUIUtil.getCruise(context);
+ operation.setCruise(cruise);
}
editFishingOperationAction.setFishingOperation(operation);
editFishingOperationAction.actionPerformed(null);
@@ -187,7 +189,7 @@
FishingOperation selectedOperation = null;
for (FishingOperation fishingOperation : fishingOperations) {
- if (selectedOperation == null ||
+ if (selectedOperation == null ||
fishingOperation.getGearShootingStartDate()
.after(selectedOperation.getGearShootingStartDate())
&& fishingOperation.getFishingOperationNumber()
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-02-20 13:03:56 UTC (rev 450)
@@ -150,6 +150,8 @@
getModel().setModify(false);
saveFishingOperation(toSave);
+
+ handler.getParentUi().getTabPane().setSelectedIndex(1);
}
// if (event.getSource() != null) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-02-20 13:03:56 UTC (rev 450)
@@ -62,10 +62,6 @@
protected Component errorComponent;
- protected enum Weights {
- UNSORTED, SAMPLE_SORTED, SORTED, TOTAL
- }
-
public ComputeWeightsAction(EditCatchesUIHandler handler) {
super(handler,
"computeWeights",
@@ -77,21 +73,23 @@
@Override
protected void doAction(ActionEvent event) throws Exception {
- Map<Weights, Float> speciesWeights = computeSpeciesBatches();
-
+ EditCatchesUIModel model = getModel();
+
+ computeSpeciesBatches();
+ Float speciesTotalSortedWeight = model.getSpeciesTotalSortedComputedWeight();
+ Float speciesTotalUnsortedWeight = model.getSpeciesTotalUnsortedComputedWeight();
+
EditCatchesUI ui = getUI();
- setComputedValue(ui.getCatchTotalUnsortedWeightField(),
- speciesWeights.get(Weights.UNSORTED));
- setComputedValue(ui.getCatchTotalSortedWeightField(),
- speciesWeights.get(Weights.SORTED));
- EditCatchesUIModel model = getModel();
+ model.setCatchTotalSortedComputedWeight(speciesTotalSortedWeight);
+ model.setCatchTotalUnsortedComputedWeight(speciesTotalUnsortedWeight);
+
Float totalWeight = model.getCatchTotalWeight();
Float rejectedWeight = model.getCatchTotalRejectedWeight();
if (rejectedWeight == null && totalWeight != null) {
- if (!totalWeight.equals(speciesWeights.get(Weights.UNSORTED)
- + speciesWeights.get(Weights.SORTED))) {
+ if (!totalWeight.equals(speciesTotalUnsortedWeight
+ + speciesTotalSortedWeight)) {
errorMessage = _("tutti.action.computeWeights.error.incoherentTotal");
errorTitle = _("tutti.action.computeWeights.error.incoherentTotal.title");
errorComponent = ui.getCatchTotalWeightField();
@@ -99,8 +97,8 @@
} else {
model.setCatchTotalRejectedComputedWeight(totalWeight
- - speciesWeights.get(Weights.UNSORTED)
- - speciesWeights.get(Weights.SORTED));
+ - speciesTotalUnsortedWeight
+ - speciesTotalSortedWeight);
}
} else if (totalWeight == null) {
@@ -108,12 +106,14 @@
rejectedWeight = 0f;
model.setCatchTotalRejectedComputedWeight(0f);
}
- model.setCatchTotalComputedWeight(speciesWeights.get(Weights.UNSORTED)
- + speciesWeights.get(Weights.SORTED) + rejectedWeight);
+ model.setCatchTotalComputedWeight(speciesTotalUnsortedWeight
+ + speciesTotalSortedWeight
+ + rejectedWeight);
} else if (rejectedWeight != null
- && !totalWeight.equals(speciesWeights.get(Weights.UNSORTED)
- + speciesWeights.get(Weights.SORTED) + rejectedWeight)) {
+ && !totalWeight.equals(speciesTotalUnsortedWeight
+ + speciesTotalSortedWeight
+ + rejectedWeight)) {
errorMessage = _("tutti.action.computeWeights.error.incoherentTotal");
errorTitle = _("tutti.action.computeWeights.error.incoherentTotal.title");
errorComponent = ui.getCatchTotalWeightField();
@@ -125,9 +125,7 @@
//-- Internal methods --//
//------------------------------------------------------------------------//
- protected Map<Weights, Float> computeSpeciesBatches() {
- Map<Weights, Float> result = Maps.newEnumMap(Weights.class);
-
+ protected void computeSpeciesBatches() {
PersistenceService persistenceService =
getService(PersistenceService.class);
EditCatchesUIModel model = getModel();
@@ -173,11 +171,7 @@
model.setSpeciesTotalLivingNotItemizedWeight(0f);
}
- setComputedValue(speciesUI.getSpeciesTotalSampleSortedWeightField(),
- totalSortedWeight);
- setComputedValue(ui.getSpeciesTotalSampleSortedWeightField(),
- totalSortedWeight);
- result.put(Weights.SAMPLE_SORTED, totalSortedWeight);
+ model.setSpeciesTotalSampleSortedComputedWeight(totalSortedWeight);
Float speciesTotalSortedWeight = model.getSpeciesTotalSortedWeight();
if (speciesTotalSortedWeight == null) {
@@ -196,24 +190,13 @@
// le "Poids total VRAC" est bien une valeur observée
// sinon la remplacer par le "Poids total Vrac trié"
}
- result.put(Weights.SORTED, speciesTotalSortedWeight);
- setComputedValue(speciesUI.getSpeciesTotalUnsortedWeightField(),
- totalUnsortedWeight);
- setComputedValue(ui.getSpeciesTotalUnsortedWeightField(),
- totalUnsortedWeight);
- result.put(Weights.UNSORTED, totalUnsortedWeight);
+ model.setSpeciesTotalUnsortedComputedWeight(totalUnsortedWeight);
Float totalWeight = totalUnsortedWeight + speciesTotalSortedWeight;
- setComputedValue(speciesUI.getSpeciesTotalWeightField(),
- totalWeight);
- setComputedValue(ui.getSpeciesTotalWeightField(),
- totalWeight);
- result.put(Weights.TOTAL, speciesTotalSortedWeight);
+ model.setSpeciesTotalComputedWeight(totalWeight);
speciesUI.getTable().repaint();
-
- return result;
}
protected Float computeSpeciesBatch(SpeciesBatchRowModel row) {
@@ -324,16 +307,6 @@
return result;
}
- protected void setComputedValue(JTextField textField, Float value) {
- String textValue;
- if (value != null) {
- textValue = String.format("%.3f", value);
- } else {
- textValue = JAXXUtil.getStringValue(value);
- }
- textField.setText(textValue);
- }
-
@Override
protected void releaseAction(ActionEvent event) {
if (errorMessage != null) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2013-02-20 13:03:56 UTC (rev 450)
@@ -61,6 +61,7 @@
}
#catchTotalSortedWeightField {
+ text: {getWeightStringValue(model.getCatchTotalSortedComputedWeight())};
_computed: true;
}
@@ -100,6 +101,7 @@
}
#catchTotalUnsortedWeightField {
+ text: {getWeightStringValue(model.getCatchTotalUnsortedComputedWeight())};
_computed: true;
}
@@ -123,6 +125,7 @@
}
#speciesTotalWeightField {
+ text: {getWeightStringValue(model.getSpeciesTotalComputedWeight())};
_computed: true;
}
@@ -147,6 +150,7 @@
}
#speciesTotalSampleSortedWeightField {
+ text: {getWeightStringValue(model.getSpeciesTotalSampleSortedComputedWeight())};
_computed: true;
}
@@ -156,6 +160,7 @@
}
#speciesTotalUnsortedWeightField {
+ text: {getWeightStringValue(model.getSpeciesTotalUnsortedComputedWeight())};
_computed: true;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2013-02-20 13:03:56 UTC (rev 450)
@@ -48,6 +48,7 @@
static org.nuiton.i18n.I18n._
static jaxx.runtime.SwingUtil.getStringValue
+ static fr.ifremer.tutti.ui.swing.util.TuttiUIUtil.getWeightStringValue
</import>
<script><![CDATA[
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-02-20 13:03:56 UTC (rev 450)
@@ -139,8 +139,13 @@
Set<String> result = super.getPropertiesToIgnore();
result.addAll(Sets.newHashSet(
EditCatchesUIModel.PROPERTY_CATCH_TOTAL_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_CATCH_TOTAL_SORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_CATCH_TOTAL_UNSORTED_COMPUTED_WEIGHT,
EditCatchesUIModel.PROPERTY_CATCH_TOTAL_REJECTED_COMPUTED_WEIGHT,
- EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SORTED_COMPUTED_WEIGHT
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT
));
return result;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIModel.java 2013-02-20 13:03:56 UTC (rev 450)
@@ -47,6 +47,10 @@
public static final String PROPERTY_CATCH_TOTAL_WEIGHT = "catchTotalWeight";
public static final String PROPERTY_CATCH_TOTAL_COMPUTED_WEIGHT = "catchTotalComputedWeight";
+
+ public static final String PROPERTY_CATCH_TOTAL_SORTED_COMPUTED_WEIGHT = "catchTotalSortedComputedWeight";
+
+ public static final String PROPERTY_CATCH_TOTAL_UNSORTED_COMPUTED_WEIGHT = "catchTotalUnsortedComputedWeight";
public static final String PROPERTY_CATCH_TOTAL_SORTED_TREMIS_WEIGHT = "catchTotalSortedTremisWeight";
@@ -56,9 +60,15 @@
public static final String PROPERTY_CATCH_TOTAL_REJECTED_COMPUTED_WEIGHT = "catchTotalRejectedComputedWeight";
+ public static final String PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT = "speciesTotalComputedWeight";
+
public static final String PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT = "speciesTotalSortedWeight";
public static final String PROPERTY_SPECIES_TOTAL_SORTED_COMPUTED_WEIGHT = "speciesTotalSortedComputedWeight";
+
+ public static final String PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT = "speciesTotalUnsortedComputedWeight";
+
+ public static final String PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT = "speciesTotalSampleSortedComputedWeight";
public static final String PROPERTY_SPECIES_TOTAL_INERT_WEIGHT = "speciesTotalInertWeight";
@@ -121,8 +131,14 @@
protected static final Binder<EditCatchesUIModel, CatchBatch> toBeanBinder = BinderFactory.newBinder(EditCatchesUIModel.class, CatchBatch.class);
+ protected Float speciesTotalComputedWeight;
+
protected TuttiComputedOrNotData<Float> speciesTotalSortedComputedOrNotWeight = new TuttiComputedOrNotData<Float>();
+ protected Float speciesTotalUnsortedComputedWeight;
+
+ protected Float speciesTotalSampleSortedComputedWeight;
+
protected Float speciesTotalInertWeight = 0f;
protected Float speciesTotalLivingNotItemizedWeight = 0f;
@@ -144,6 +160,10 @@
protected TuttiComputedOrNotData<Float> catchTotalComputedOrNotWeight
= new TuttiComputedOrNotData<Float>();
+ protected Float catchTotalSortedComputedWeight;
+
+ protected Float catchTotalUnsortedComputedWeight;
+
protected Float catchTotalSortedTremisWeight;
protected Float catchTotalSortedCarousselWeight;
@@ -234,7 +254,27 @@
this.catchTotalComputedOrNotWeight.setComputedData(catchTotalComputedWeight);
firePropertyChange(PROPERTY_CATCH_TOTAL_COMPUTED_WEIGHT, oldValue, catchTotalComputedWeight);
}
+
+ public Float getCatchTotalSortedComputedWeight() {
+ return catchTotalSortedComputedWeight;
+ }
+ public void setCatchTotalSortedComputedWeight(Float catchTotalSortedComputedWeight) {
+ Object oldValue = getCatchTotalSortedComputedWeight();
+ this.catchTotalSortedComputedWeight = catchTotalSortedComputedWeight;
+ firePropertyChange(PROPERTY_CATCH_TOTAL_SORTED_COMPUTED_WEIGHT, oldValue, catchTotalSortedComputedWeight);
+ }
+
+ public Float getCatchTotalUnsortedComputedWeight() {
+ return catchTotalUnsortedComputedWeight;
+ }
+
+ public void setCatchTotalUnsortedComputedWeight(Float catchTotalUnsortedComputedWeight) {
+ Object oldValue = getCatchTotalUnsortedComputedWeight();
+ this.catchTotalUnsortedComputedWeight = catchTotalUnsortedComputedWeight;
+ firePropertyChange(PROPERTY_CATCH_TOTAL_UNSORTED_COMPUTED_WEIGHT, oldValue, catchTotalUnsortedComputedWeight);
+ }
+
public Float getCatchTotalSortedTremisWeight() {
return catchTotalSortedTremisWeight;
}
@@ -279,6 +319,16 @@
firePropertyChange(PROPERTY_CATCH_TOTAL_REJECTED_COMPUTED_WEIGHT, oldValue, catchTotalRejectedComputedWeight);
}
+ public Float getSpeciesTotalComputedWeight() {
+ return speciesTotalComputedWeight;
+ }
+
+ public void setSpeciesTotalComputedWeight(Float speciesTotalComputedWeight) {
+ Object oldValue = getSpeciesTotalComputedWeight();
+ this.speciesTotalComputedWeight = speciesTotalComputedWeight;
+ firePropertyChange(PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT, oldValue, speciesTotalComputedWeight);
+ }
+
public TuttiComputedOrNotData<Float> getSpeciesTotalSortedComputedOrNotWeight() {
return speciesTotalSortedComputedOrNotWeight;
}
@@ -303,6 +353,26 @@
firePropertyChange(PROPERTY_SPECIES_TOTAL_SORTED_COMPUTED_WEIGHT, oldValue, speciesTotalSortedComputedWeight);
}
+ public Float getSpeciesTotalSampleSortedComputedWeight() {
+ return speciesTotalSampleSortedComputedWeight;
+ }
+
+ public void setSpeciesTotalSampleSortedComputedWeight(Float speciesTotalSampleSortedComputedWeight) {
+ Object oldValue = getSpeciesTotalSampleSortedComputedWeight();
+ this.speciesTotalSampleSortedComputedWeight = speciesTotalSampleSortedComputedWeight;
+ firePropertyChange(PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT, oldValue, speciesTotalSampleSortedComputedWeight);
+ }
+
+ public Float getSpeciesTotalUnsortedComputedWeight() {
+ return speciesTotalUnsortedComputedWeight;
+ }
+
+ public void setSpeciesTotalUnsortedComputedWeight(Float speciesTotalUnsortedComputedWeight) {
+ Object oldValue = getSpeciesTotalUnsortedComputedWeight();
+ this.speciesTotalUnsortedComputedWeight = speciesTotalUnsortedComputedWeight;
+ firePropertyChange(PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT, oldValue, speciesTotalUnsortedComputedWeight);
+ }
+
public Float getSpeciesTotalInertWeight() {
return speciesTotalInertWeight;
}
@@ -393,8 +463,20 @@
firePropertyChange(PROPERTY_MACRO_WASTE_TOTAL_WEIGHT, oldValue, macroWasteTotalWeight);
}
+ public void reset() {
+ setSpeciesTotalSampleSortedComputedWeight(null);
+ setSpeciesTotalSortedComputedWeight(null);
+ setSpeciesTotalUnsortedComputedWeight(null);
+ setSpeciesTotalComputedWeight(null);
+ setCatchTotalRejectedComputedWeight(null);
+ setCatchTotalSortedComputedWeight(null);
+ setCatchTotalUnsortedComputedWeight(null);
+ setCatchTotalComputedWeight(null);
+ }
+
@Override
protected CatchBatch newEntity() {
return catchBatch;
}
+
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2013-02-20 13:03:56 UTC (rev 450)
@@ -46,6 +46,7 @@
}
#speciesTotalWeightField {
+ text: {getWeightStringValue(model.getSpeciesTotalComputedWeight())};
_computed: true;
}
@@ -65,6 +66,7 @@
}
#speciesTotalSampleSortedWeightField {
+ text: {getWeightStringValue(model.getSpeciesTotalSampleSortedComputedWeight())};
_computed: true;
}
@@ -74,6 +76,7 @@
}
#speciesTotalUnsortedWeightField {
+ text: {getWeightStringValue(model.getSpeciesTotalUnsortedComputedWeight())};
_computed: true;
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2013-02-20 13:03:56 UTC (rev 450)
@@ -44,6 +44,7 @@
static org.nuiton.i18n.I18n._
static jaxx.runtime.SwingUtil.getStringValue
+ static fr.ifremer.tutti.ui.swing.util.TuttiUIUtil.getWeightStringValue
</import>
<script><![CDATA[
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIModel.java 2013-02-20 13:03:56 UTC (rev 450)
@@ -133,11 +133,22 @@
public SpeciesBatchUIModel(EditCatchesUIModel catchesUIModel) {
super(catchesUIModel,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_COMPUTED_WEIGHT,
EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SORTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_UNSORTED_COMPUTED_WEIGHT,
+ EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_SAMPLE_SORTED_COMPUTED_WEIGHT,
EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_INERT_WEIGHT,
EditCatchesUIModel.PROPERTY_SPECIES_TOTAL_LIVING_NOT_ITEMIZED_WEIGHT);
}
+ public Float getSpeciesTotalComputedWeight() {
+ return catchesUIModel.getSpeciesTotalComputedWeight();
+ }
+
+ public void setSpeciesTotalComputedWeight(Float speciesTotalComputedWeight) {
+ catchesUIModel.setSpeciesTotalComputedWeight(speciesTotalComputedWeight);
+ }
+
public TuttiComputedOrNotData<Float> getSpeciesTotalSortedComputedOrNotWeight() {
return catchesUIModel.getSpeciesTotalSortedComputedOrNotWeight();
}
@@ -158,6 +169,22 @@
catchesUIModel.setSpeciesTotalSortedComputedWeight(speciesTotalSortedComputedWeight);
}
+ public Float getSpeciesTotalUnsortedComputedWeight() {
+ return catchesUIModel.getSpeciesTotalUnsortedComputedWeight();
+ }
+
+ public void setSpeciesTotalUnsortedComputedWeight(Float speciesTotalUnsortedComputedWeight) {
+ catchesUIModel.setSpeciesTotalUnsortedComputedWeight(speciesTotalUnsortedComputedWeight);
+ }
+
+ public Float getSpeciesTotalSampleSortedComputedWeight() {
+ return catchesUIModel.getSpeciesTotalSampleSortedComputedWeight();
+ }
+
+ public void setSpeciesTotalSampleSortedComputedWeight(Float speciesTotalSampleSortedComputedWeight) {
+ catchesUIModel.setSpeciesTotalSampleSortedComputedWeight(speciesTotalSampleSortedComputedWeight);
+ }
+
public Float getSpeciesTotalInertWeight() {
return catchesUIModel.getSpeciesTotalInertWeight();
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/TuttiUIUtil.java 2013-02-20 13:03:56 UTC (rev 450)
@@ -342,4 +342,15 @@
return d.intValue();
}
+
+ public static String getWeightStringValue(Float weight) {
+ String textValue;
+ if (weight != null) {
+ textValue = String.format("%.3f", weight);
+
+ } else {
+ textValue = JAXXUtil.getStringValue(weight);
+ }
+ return textValue;
+ }
}
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml 2013-02-20 08:50:46 UTC (rev 449)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-warning-validation.xml 2013-02-20 13:03:56 UTC (rev 450)
@@ -42,8 +42,7 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
<![CDATA[ gearShootingStartDate == null || gearShootingEndDate == null
- || (org.nuiton.util.DateUtil.getDifferenceInMinutes(gearShootingStartDate, gearShootingEndDate) <= 45
- && org.nuiton.util.DateUtil.getDifferenceInMinutes(gearShootingStartDate, gearShootingEndDate) >= 20 )
+ || isValidDuration()
]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.wrongTime</message>
@@ -63,8 +62,7 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
<![CDATA[ gearShootingStartDate == null || gearShootingEndDate == null
- || (org.nuiton.util.DateUtil.getDifferenceInMinutes(gearShootingStartDate, gearShootingEndDate) <= 45
- && org.nuiton.util.DateUtil.getDifferenceInMinutes(gearShootingStartDate, gearShootingEndDate) >= 20 )
+ || isValidDuration()
]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.wrongTime</message>
1
0
r449 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing
by tchemit@users.forge.codelutin.com 20 Feb '13
by tchemit@users.forge.codelutin.com 20 Feb '13
20 Feb '13
Author: tchemit
Date: 2013-02-20 09:50:46 +0100 (Wed, 20 Feb 2013)
New Revision: 449
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/449
Log:
refs #2019: [TECH] Pas de remont?\195?\169e des exceptions dans les actions longues
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-19 10:42:52 UTC (rev 448)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-20 08:50:46 UTC (rev 449)
@@ -64,6 +64,8 @@
private static final ExecutorService executorService =
Executors.newSingleThreadExecutor();
+ private static final TuttiExceptionHandler exceptionHandler = new TuttiExceptionHandler();
+
private final H handler;
private boolean failed;
@@ -185,7 +187,7 @@
if (log.isErrorEnabled()) {
log.error("Task [" + this + "] error: " + e.getMessage(), e);
}
- throw new TuttiExceptionHandler.TuttiActionException(this, e);
+ exceptionHandler.handle(new TuttiExceptionHandler.TuttiActionException(this, e));
} finally {
if (log.isInfoEnabled()) {
log.info("Task [" + this + "] done");
1
0
r448 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/content/operation java/fr/ifremer/tutti/ui/swing/content/operation/catches java/fr/ifremer/tutti/ui/swing/content/operation/catches/species java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split resources/fr/ifremer/tutti/ui/swing/content/operation
by kmorin@users.forge.codelutin.com 19 Feb '13
by kmorin@users.forge.codelutin.com 19 Feb '13
19 Feb '13
Author: kmorin
Date: 2013-02-19 11:42:52 +0100 (Tue, 19 Feb 2013)
New Revision: 448
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/448
Log:
- fixes #1994 S?\195?\169lection automatique de bon trait lors de l'ouverture de l'?\195?\169cran trait
- debug
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.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/catches/ComputeWeightsAction.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/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-02-18 15:17:03 UTC (rev 447)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationAction.java 2013-02-19 10:42:52 UTC (rev 448)
@@ -33,6 +33,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
+import fr.ifremer.tutti.ui.swing.content.operation.catches.ComputeWeightsAction;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.SaveCatchBatchAction;
@@ -96,6 +97,13 @@
* @since 1.0
*/
protected SaveFishingOperationAction saveFishingOperationAction;
+
+ /**
+ * Delegate action to compute the weight of the catches.
+ *
+ * @since 1.1
+ */
+ protected ComputeWeightsAction computeWeightsAction;
/**
* Delgate action to save catch batch.
@@ -172,6 +180,7 @@
fishingOperation = null;
checkPreviousEdit = true;
super.releaseAction(event);
+// getComputeWeightsAction().actionPerformed(event);
}
protected SaveFishingOperationAction getSaveFishingOperationAction() {
@@ -187,6 +196,13 @@
}
return saveCatchBatchAction;
}
+
+ protected ComputeWeightsAction getComputeWeightsAction() {
+ if (computeWeightsAction == null) {
+ computeWeightsAction = new ComputeWeightsAction(getUI().getCatchesTabContent().getHandler());
+ }
+ return computeWeightsAction;
+ }
@Override
protected boolean prepareAction(ActionEvent event) {
@@ -349,6 +365,9 @@
// wait last minute to display (avoid dirty display effects)
ui.add(form, BorderLayout.CENTER);
+
+ ui.getFishingOperationTabContent().getFishingOperationTabPane().setSelectedIndex(0);
+ ui.getTabPane().setSelectedIndex(0);
}
model.addPropertyChangeListener(coordinatePropertiesListener);
@@ -526,6 +545,7 @@
}
+
}
-
+
}
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-18 15:17:03 UTC (rev 447)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/FishingOperationsUIHandler.java 2013-02-19 10:42:52 UTC (rev 448)
@@ -105,8 +105,6 @@
List<FishingOperation> fishingOperations =
persistenceService.getAllFishingOperation(cruiseId);
- //FIXME Should remove this when no more use dev persistence impl
- //TODO make sure to use selection cruise ?
for (FishingOperation fishingOperation : fishingOperations) {
fishingOperation.setCruise(cruise);
}
@@ -187,10 +185,19 @@
}
});
- if (!fishingOperations.isEmpty()) {
+ FishingOperation selectedOperation = null;
+ for (FishingOperation fishingOperation : fishingOperations) {
+ if (selectedOperation == null ||
+ fishingOperation.getGearShootingStartDate()
+ .after(selectedOperation.getGearShootingStartDate())
+ && fishingOperation.getFishingOperationNumber()
+ > selectedOperation.getFishingOperationNumber()
+ ) {
+ selectedOperation = fishingOperation;
+ }
+ }
- model.setSelectedFishingOperation(fishingOperations.get(0));
- }
+ model.setSelectedFishingOperation(selectedOperation);
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-02-18 15:17:03 UTC (rev 447)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/ComputeWeightsAction.java 2013-02-19 10:42:52 UTC (rev 448)
@@ -106,6 +106,7 @@
} else if (totalWeight == null) {
if (rejectedWeight == null) {
rejectedWeight = 0f;
+ model.setCatchTotalRejectedComputedWeight(0f);
}
model.setCatchTotalComputedWeight(speciesWeights.get(Weights.UNSORTED)
+ speciesWeights.get(Weights.SORTED) + rejectedWeight);
@@ -157,13 +158,19 @@
}
}
}
- Number inertWeight = speciesUI.getSpeciesTotalInertWeightField().getModel();
+
+ Number inertWeight = model.getSpeciesTotalInertWeight();
if (inertWeight != null) {
totalSortedWeight += inertWeight.floatValue();
+ } else {
+ model.setSpeciesTotalInertWeight(0f);
}
- Number livingNotItemizedWeight = speciesUI.getSpeciesTotalLivingNotItemizedWeightField().getModel();
+
+ Number livingNotItemizedWeight = model.getSpeciesTotalLivingNotItemizedWeight();
if (livingNotItemizedWeight != null) {
totalSortedWeight += livingNotItemizedWeight.floatValue();
+ } else {
+ model.setSpeciesTotalLivingNotItemizedWeight(0f);
}
setComputedValue(speciesUI.getSpeciesTotalSampleSortedWeightField(),
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-18 15:17:03 UTC (rev 447)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-19 10:42:52 UTC (rev 448)
@@ -479,6 +479,8 @@
// all synonyms
Collection<Species> synonyms = map.get(referenceTaxonId);
allSpecies.addAll(synonyms);
+ // TODO 20130218 kmorin: check with tchemit if we should not
+ // check that the species has the category in the protocol
for (Species species : synonyms) {
speciesSampleCategories.put(species, SampleCategoryType.sortedUnsorted);
speciesSampleCategories.put(species, SampleCategoryType.size);
@@ -487,6 +489,8 @@
speciesSampleCategories.put(species, SampleCategoryType.age);
}
}
+ //TODO 20130218 kmorin: check with Vincent what to allow on the
+ // other species which are not in the protocol
}
} else {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-18 15:17:03 UTC (rev 447)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java 2013-02-19 10:42:52 UTC (rev 448)
@@ -478,7 +478,7 @@
if (protocol != null) {
Integer taxonId = speciesBatch.getSpecies().getReferenceTaxonId();
SpeciesProtocol speciesProtocol = this.speciesProtocol.get(taxonId);
- if (speciesProtocol.getLengthStepPmfmId() == null) {
+ if (speciesProtocol == null || speciesProtocol.getLengthStepPmfmId() == null) {
mode = SpeciesFrequencyUIModel.ConfigurationMode.SIMPLE_COUNTING;
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-18 15:17:03 UTC (rev 447)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-19 10:42:52 UTC (rev 448)
@@ -228,6 +228,7 @@
}
model.setAvailableSpecies(speciesToUse);
+ ui.getSpeciesComboBox().requestFocus();
}
public void save() {
Modified: trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-02-18 15:17:03 UTC (rev 447)
+++ trunk/tutti-ui-swing/src/main/resources/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIModel-edit-error-validation.xml 2013-02-19 10:42:52 UTC (rev 448)
@@ -96,7 +96,7 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingEndDate == null || gearShootingStartDate.compareTo(gearShootingEndDate) < 0 ]]>
+ <![CDATA[ gearShootingEndDate == null || gearShootingStartDate.compareTo(gearShootingEndDate) <= 0 ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
@@ -107,7 +107,7 @@
<field-validator type="fieldexpression" short-circuit="true">
<param name="expression">
- <![CDATA[ gearShootingEndDate == null || gearShootingStartDate == null || gearShootingStartDate.compareTo(gearShootingEndDate) < 0 ]]>
+ <![CDATA[ gearShootingEndDate == null || gearShootingStartDate == null || gearShootingStartDate.compareTo(gearShootingEndDate) <= 0 ]]>
</param>
<message>tutti.validator.error.fishingOperation.dates.endBeforeStart</message>
</field-validator>
1
0
r447 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content: cruise operation
by kmorin@users.forge.codelutin.com 18 Feb '13
by kmorin@users.forge.codelutin.com 18 Feb '13
18 Feb '13
Author: kmorin
Date: 2013-02-18 16:17:03 +0100 (Mon, 18 Feb 2013)
New Revision: 447
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/447
Log:
- fixes 2010 [TRAIT] Edition - L'onglet ne se colorise plus ?\195?\160 la s?\195?\169lection de "trait valide" ou "trait invalide"
- fixes 2011 [CAMPAGNE] Trier les listes de personnes par ordre des noms de famille
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-02-18 09:57:55 UTC (rev 446)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUI.jaxx 2013-02-18 15:17:03 UTC (rev 447)
@@ -101,20 +101,20 @@
<cell anchor='west'>
<JLabel id='programLabel'/>
</cell>
- <cell weightx='0.3'>
+ <cell weightx='1'>
<BeanComboBox id='surveyComboBox' constructorParams='this'
genericType='Program'/>
</cell>
<cell anchor='west'>
<JLabel id='yearLabel'/>
</cell>
- <cell weightx='0.3'>
+ <cell weightx='1'>
<NumberEditor id='yearField' constructorParams='this'/>
</cell>
<cell>
<JLabel id='surveyPartLabel'/>
</cell>
- <cell weightx='0.3'>
+ <cell weightx='1'>
<JTextField id='surveyPartField'
onKeyReleased='handler.setText(event, "surveyPart")'/>
</cell>
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-02-18 09:57:55 UTC (rev 446)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/cruise/EditCruiseUIHandler.java 2013-02-18 15:17:03 UTC (rev 447)
@@ -44,6 +44,8 @@
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -230,6 +232,19 @@
getGearList(model.getVesselType()),
model.getGear());
+ //TODO kmorin 20130218 remove this sort when the double lists will be sortable
+ Collections.sort(users, new Comparator<Person>() {
+
+ public int compare(Person o1, Person o2) {
+ if (o1 == null) {
+ return -1;
+ }
+ if (o2 == null) {
+ return 1;
+ }
+ return o1.getFirstName().compareTo(o2.getFirstName());
+ }
+ });
initBeanList(ui.getHeadOfMissionList(),
users,
model.getHeadOfMission());
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-18 09:57:55 UTC (rev 446)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUI.css 2013-02-18 15:17:03 UTC (rev 447)
@@ -411,6 +411,7 @@
#trawlDistanceLabel {
text: "tutti.label.fishingOperation.trawlDistance";
labelFor: {trawlDistanceField};
+ toolTipText: {getStringValue(model.getTrawlDistance() != null ? model.getTrawlDistance() / 1852 : null)};
}
#trawlDistanceField {
@@ -419,6 +420,7 @@
useFloat: false;
numberPattern: {INT_6_DIGITS_PATTERN};
enabled: {!model.isFishingOperationRectiligne()};
+ toolTipText: {getStringValue(model.getTrawlDistance() != null ? model.getTrawlDistance() / 1852 : null)};
}
#durationLabel {
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-18 09:57:55 UTC (rev 446)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2013-02-18 15:17:03 UTC (rev 447)
@@ -31,6 +31,7 @@
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation;
import fr.ifremer.tutti.persistence.entities.referential.Gear;
+import fr.ifremer.tutti.persistence.entities.referential.Person;
import fr.ifremer.tutti.persistence.entities.referential.Vessel;
import fr.ifremer.tutti.persistence.entities.referential.Zone;
import fr.ifremer.tutti.service.PersistenceService;
@@ -44,6 +45,8 @@
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 java.awt.Color;
+import java.awt.Component;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.time.DateUtils;
@@ -55,6 +58,8 @@
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.Date;
import java.util.List;
@@ -199,6 +204,26 @@
}
});
+ model.addPropertyChangeListener(EditFishingOperationUIModel.PROPERTY_FISHING_OPERATION_VALID, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ Boolean valid = (Boolean) evt.getNewValue();
+ Color color = null;
+ Color fontColor = Color.BLACK;
+ if (valid == Boolean.TRUE) {
+ color = Color.GREEN;
+
+ } else if (valid == Boolean.FALSE) {
+ color = Color.RED;
+ fontColor = Color.WHITE;
+ }
+ Component tab = getTabPanel().getTabComponentAt(0);
+ tab.setForeground(fontColor);
+ tab.setBackground(color);
+ }
+ });
+
ui.setContextValue(model);
fishingOperationMonitor.setBean(model);
@@ -214,8 +239,22 @@
initUI(ui);
+ List<Person> people = persistenceService.getAllPerson();
+ //TODO kmorin 20130218 remove this sort when the double lists will be sortable
+ Collections.sort(people, new Comparator<Person>() {
+
+ public int compare(Person o1, Person o2) {
+ if (o1 == null) {
+ return -1;
+ }
+ if (o2 == null) {
+ return 1;
+ }
+ return o1.getFirstName().compareTo(o2.getFirstName());
+ }
+ });
initBeanList(ui.getSaisisseurList(),
- persistenceService.getAllPerson(),
+ people,
model.getSaisisseur());
initBeanComboBox(ui.getVesselComboBox(),
1
0