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
r321 - in trunk: tutti-persistence/src/main/xmi tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol tutti-ui-swing/src/main/resources/i18n
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 01:42:26 +0100 (Mon, 04 Feb 2013)
New Revision: 321
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/321
Log:
refs #1817: [PROTOCOLE] - Import / Export du protocole (caracteristics + species are ok)
refs #1824: [PROTOCOLE] - Gestion des param?\195?\168tres suivis par esp?\195?\168ces (add cruiseCode)
Modified:
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java
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/ExportAllCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.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/SaveProtocolAction.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-02-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ExportProtocolAction.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -72,7 +72,7 @@
_("tutti.title.choose.protocolExportFile"),
_("tutti.action.chooseProtocolFile"),
null,
- "^.*\\*.tuttiProtocol$", _("tutti.file.protocol")
+ "^.+\\.tuttiProtocol$", _("tutti.file.protocol")
);
boolean doAction = file != null;
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-02-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/ImportProtocolAction.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -75,7 +75,7 @@
_("tutti.title.choose.protocolImportFile"),
_("tutti.action.chooseProtocolFile"),
null,
- "^.*\\.tuttiProtocol$", _("tutti.file.protocol")
+ "^.+\\.tuttiProtocol$", _("tutti.file.protocol")
);
boolean doAction = file != null;
if (doAction) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java 2013-02-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -39,7 +39,7 @@
private static final long serialVersionUID = 1L;
- public static final String PROPERTY_SPECIES_CRUISE_CODE = "speciesCruiseCode";
+ public static final String PROPERTY_CRUISE_CODE = "cruiseCode";
public static final String PROPERTY_SPECIES = "species";
@@ -61,7 +61,7 @@
protected Species species;
- protected String speciesCruiseCode;
+ protected String cruiseCode;
protected boolean sizeEnabled;
@@ -105,14 +105,14 @@
firePropertyChange(PROPERTY_SPECIES, oldValue, species);
}
- public String getSpeciesCruiseCode() {
- return speciesCruiseCode;
+ public String getCruiseCode() {
+ return cruiseCode;
}
- public void setSpeciesCruiseCode(String speciesCruiseCode) {
- Object oldValue = getSpeciesCruiseCode();
- this.speciesCruiseCode = speciesCruiseCode;
- firePropertyChange(PROPERTY_SPECIES_CRUISE_CODE, oldValue, speciesCruiseCode);
+ public void setCruiseCode(String cruiseCode) {
+ Object oldValue = getCruiseCode();
+ this.cruiseCode = cruiseCode;
+ firePropertyChange(PROPERTY_CRUISE_CODE, oldValue, cruiseCode);
}
public boolean isSizeEnabled() {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java 2013-02-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -40,47 +40,53 @@
public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SPECIES_ID = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_SPECIES,
n_("tutti.table.protocol.species.header.speciesId"),
- n_("tutti.table.protocol.species.header.speciesId"));
+ n_("tutti.table.protocol.species.header.speciesId.tip"));
+ public static final ColumnIdentifier<EditProtocolSpeciesRowModel> CRUISE_CODE_ID = ColumnIdentifier.newId(
+ EditProtocolSpeciesRowModel.PROPERTY_CRUISE_CODE,
+ n_("tutti.table.protocol.species.header.cruiseCode"),
+ n_("tutti.table.protocol.species.header.cruiseCode.tip"));
+
+
public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SIZE_ENABLED = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_SIZE_ENABLED,
n_("tutti.table.protocol.species.header.size"),
- n_("tutti.table.protocol.species.header.size"));
+ n_("tutti.table.protocol.species.header.size.tip"));
public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SEX_ENABLED = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_SEX_ENABLED,
n_("tutti.table.protocol.species.header.sex"),
- n_("tutti.table.protocol.species.header.sex"));
+ n_("tutti.table.protocol.species.header.sex.tip"));
public static final ColumnIdentifier<EditProtocolSpeciesRowModel> MATURITY_ENABLED = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_MATURITY_ENABLED,
n_("tutti.table.protocol.species.header.maturity"),
- n_("tutti.table.protocol.species.header.maturity"));
+ n_("tutti.table.protocol.species.header.maturity.tip"));
public static final ColumnIdentifier<EditProtocolSpeciesRowModel> AGE_ENABLED = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_AGE_ENABLED,
n_("tutti.table.protocol.species.header.age"),
- n_("tutti.table.protocol.species.header.age"));
+ n_("tutti.table.protocol.species.header.age.tip"));
- public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SIZE_FRENQUENCY_PMFM_ID = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<EditProtocolSpeciesRowModel> LENGTH_STEP_PMFM_ID = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_LENGTH_STEP_PMFM,
n_("tutti.table.protocol.species.header.lengthStep"),
- n_("tutti.table.protocol.species.header.lengthStep"));
+ n_("tutti.table.protocol.species.header.lengthStep.tip"));
public static final ColumnIdentifier<EditProtocolSpeciesRowModel> WEIGHT_ENABLED = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_WEIGHT_ENABLED,
n_("tutti.table.protocol.species.header.weight"),
- n_("tutti.table.protocol.species.header.weight"));
+ n_("tutti.table.protocol.species.header.weight.tip"));
public static final ColumnIdentifier<EditProtocolSpeciesRowModel> COUNT_IF_NO_FREQUENCY_ENABLED = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_COUNT_IF_NO_FREQUENCY_ENABLED,
n_("tutti.table.protocol.species.header.countIfNoFrequency"),
- n_("tutti.table.protocol.species.header.countIfNoFrequency"));
+ n_("tutti.table.protocol.species.header.countIfNoFrequency.tip"));
public static final ColumnIdentifier<EditProtocolSpeciesRowModel> CALCIFY_SAMPLE_ENABLED = ColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_CALCIFY_SAMPLE_ENABLED,
n_("tutti.table.protocol.species.header.calcifySample"),
- n_("tutti.table.protocol.species.header.calcifySample"));
+ n_("tutti.table.protocol.species.header.calcifySample.tip"));
private static final long serialVersionUID = 1L;
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-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -38,16 +38,27 @@
import fr.ifremer.tutti.ui.swing.content.home.ImportProtocolAction;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
+import jaxx.runtime.SwingUtil;
import jaxx.runtime.swing.editor.bean.BeanDoubleList;
+import jaxx.runtime.swing.editor.bean.BeanDoubleListModel;
+import jaxx.runtime.swing.editor.bean.BeanUIUtil;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor;
+import org.jdesktop.swingx.autocomplete.ObjectToStringConverter;
import org.jdesktop.swingx.table.DefaultTableColumnModelExt;
+import org.nuiton.util.decorator.Decorator;
+import javax.swing.JComboBox;
import javax.swing.JOptionPane;
+import javax.swing.table.TableColumnModel;
import java.awt.event.ActionEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.List;
import java.util.Map;
@@ -71,9 +82,9 @@
protected Map<String, Species> allSpecies;
- protected Map<String, Caracteristic> allLengthStepPmfm;
+ protected List<Caracteristic> caracteristics;
- protected List<Caracteristic> allCaracteristic;
+ protected Map<String, Caracteristic> allCaracteristic;
// protected Multimap<String, String> hydroCaracteristics;
@@ -162,20 +173,16 @@
listModelIsModify(model);
ui.setContextValue(model);
- allSpecies = TuttiEntities.splitById(
- persistenceService.getAllSpecies());
+ allSpecies = TuttiEntities.splitById(persistenceService.getAllSpecies());
List<String> protocolNames = persistenceService.getAllProtocolNames();
model.setProtocolNames(protocolNames);
- allLengthStepPmfm = TuttiEntities.splitById(
- persistenceService.getAllCaracteristic());
-
- allCaracteristic = persistenceService.getAllCaracteristic();
-
+ caracteristics = persistenceService.getAllCaracteristic();
+ allCaracteristic = TuttiEntities.splitById(caracteristics);
}
- public List<Caracteristic> getAllCaracteristic() {
+ public Map<String, Caracteristic> getAllCaracteristic() {
return allCaracteristic;
}
@@ -183,10 +190,6 @@
return allSpecies;
}
- public Map<String, Caracteristic> getAllLengthStepPmfm() {
- return allLengthStepPmfm;
- }
-
@Override
public void afterInitUI() {
@@ -256,11 +259,13 @@
newTableCellRender(Species.class),
EditProtocolSpeciesTableModel.SPECIES_ID);
- addComboDataColumnToModel(columnModel,
- EditProtocolSpeciesTableModel.SIZE_FRENQUENCY_PMFM_ID,
- getDecorator(Caracteristic.class, null),
- Lists.newArrayList(allLengthStepPmfm.values()));
+ addColumnToModel(columnModel,
+ null,
+ null,
+ EditProtocolSpeciesTableModel.CRUISE_CODE_ID);
+ addLengthClassesColumnToModel(columnModel, model.getLengthClassesPmfmId());
+
addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.WEIGHT_ENABLED, table);
addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.COUNT_IF_NO_FREQUENCY_ENABLED, table);
addBooleanColumnToModel(columnModel, EditProtocolSpeciesTableModel.CALCIFY_SAMPLE_ENABLED, table);
@@ -279,22 +284,15 @@
List<Species> speciesList = Lists.newArrayList(allSpecies.values());
- List<EditProtocolSpeciesRowModel> rows = Lists.newArrayList();
+ List<EditProtocolSpeciesRowModel> rows;
// build speciesProtocol rows
- if (protocol != null) {
- List<SpeciesProtocol> speciesProtocols = protocol.getSpecies();
- if (CollectionUtils.isNotEmpty(speciesProtocols)) {
- for (SpeciesProtocol speciesProtocol : speciesProtocols) {
- Species species = allSpecies.get(speciesProtocol.getSpeciesId());
- speciesList.remove(species);
- EditProtocolSpeciesRowModel row = tableModel.createNewRow();
- row.setSpecies(species);
- row.setLengthStepPmfm(allLengthStepPmfm.get(speciesProtocol.getLengthStepPmfmId()));
- row.fromBean(speciesProtocol);
- rows.add(row);
- }
- }
+ if (protocol == null) {
+ rows = Lists.newArrayList();
+ } else {
+
+ rows = toRows(speciesList, protocol.getSpecies());
+
if (log.isDebugEnabled()) {
log.debug("Will edit protocol with " +
rows.size() + " species declared.");
@@ -307,26 +305,57 @@
initBeanComboBox(ui.getSpeciesComboBox(), speciesList, null);
selectFirstInCombo(ui.getSpeciesComboBox());
- initDoubleList(ui.getLengthClassesList(),
- Lists.newArrayList(allCaracteristic),
+ initDoubleList(EditProtocolUIModel.PROPERTY_LENGTH_CLASSES_PMFM_ID,
+ ui.getLengthClassesList(),
+ Lists.newArrayList(caracteristics),
model.getLengthClassesPmfmId());
- initDoubleList(ui.getGearList(),
- Lists.newArrayList(allCaracteristic),
+ initDoubleList(EditProtocolUIModel.PROPERTY_GEAR_PMFM_ID,
+ ui.getGearList(),
+ Lists.newArrayList(caracteristics),
model.getGearPmfmId());
- initDoubleList(ui.getEnvironmentList(),
- Lists.newArrayList(allCaracteristic),
+ initDoubleList(EditProtocolUIModel.PROPERTY_ENVIRONMENT_PMFM_ID,
+ ui.getEnvironmentList(),
+ Lists.newArrayList(caracteristics),
model.getEnvironmentPmfmId());
- initDoubleList(ui.getHydrologyList(),
- Lists.newArrayList(allCaracteristic),
+ initDoubleList(EditProtocolUIModel.PROPERTY_HYDROLOGY_PMFM_ID,
+ ui.getHydrologyList(),
+ Lists.newArrayList(caracteristics),
model.getHydrologyPmfmId());
// if new protocol can already cancel his creation
model.setModify(model.isCreate());
}
+ public List<EditProtocolSpeciesRowModel> toRows(List<Species> speciesList,
+ List<SpeciesProtocol> speciesProtocols) {
+
+ boolean useComboData = speciesList == null;
+
+ if (useComboData) {
+ speciesList = ui.getSpeciesComboBox().getData();
+ }
+ List<EditProtocolSpeciesRowModel> result = Lists.newArrayList();
+ if (CollectionUtils.isNotEmpty(speciesProtocols)) {
+ for (SpeciesProtocol speciesProtocol : speciesProtocols) {
+ Species species = allSpecies.get(speciesProtocol.getSpeciesId());
+ speciesList.remove(species);
+ EditProtocolSpeciesRowModel row = getTableModel().createNewRow();
+ row.setSpecies(species);
+ row.setLengthStepPmfm(allCaracteristic.get(speciesProtocol.getLengthStepPmfmId()));
+ row.fromBean(speciesProtocol);
+ result.add(row);
+ }
+ }
+
+ if (useComboData) {
+ selectFirstInCombo(ui.getSpeciesComboBox());
+ }
+ return result;
+ }
+
@Override
public void onCloseUI() {
if (log.isInfoEnabled()) {
@@ -369,7 +398,7 @@
EditProtocolSpeciesRowModel protocol = getTableModel().createNewRow();
protocol.setSpecies(species);
getTableModel().addNewRow(protocol);
- ui.getSpeciesComboBox().removeItem(species);
+ ui.getSpeciesComboBox().getData().remove(species);
selectFirstInCombo(ui.getSpeciesComboBox());
getModel().setModify(true);
@@ -389,21 +418,162 @@
getTableModel().fireTableRowsDeleted(rowIndex, rowIndex);
}
+ public void addDoubleListListeners() {
+ String id;
+ UpdateSelectedList updateListener;
+ EditProtocolUIModel model = getModel();
+
+ id = (String) ui.getLengthClassesList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getLengthClassesList().getClientProperty("_updateListener");
+ model.addPropertyChangeListener(id, updateListener);
+
+ id = (String) ui.getEnvironmentList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getEnvironmentList().getClientProperty("_updateListener");
+ model.addPropertyChangeListener(id, updateListener);
+
+ id = (String) ui.getGearList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getGearList().getClientProperty("_updateListener");
+ model.addPropertyChangeListener(id, updateListener);
+
+ id = (String) ui.getHydrologyList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getHydrologyList().getClientProperty("_updateListener");
+ model.addPropertyChangeListener(id, updateListener);
+ }
+
+ public void removeDoubleListListeners() {
+ String id;
+ UpdateSelectedList updateListener;
+ EditProtocolUIModel model = getModel();
+
+ id = (String) ui.getLengthClassesList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getLengthClassesList().getClientProperty("_updateListener");
+
+ model.removePropertyChangeListener(id, updateListener);
+
+ id = (String) ui.getEnvironmentList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getEnvironmentList().getClientProperty("_updateListener");
+ model.removePropertyChangeListener(id, updateListener);
+
+ id = (String) ui.getGearList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getGearList().getClientProperty("_updateListener");
+ model.removePropertyChangeListener(id, updateListener);
+
+ id = (String) ui.getHydrologyList().getClientProperty("_updateListenerId");
+ updateListener = (UpdateSelectedList) ui.getHydrologyList().getClientProperty("_updateListener");
+ model.removePropertyChangeListener(id, updateListener);
+ }
+
//------------------------------------------------------------------------//
//-- Internal methods --//
//------------------------------------------------------------------------//
- protected void initDoubleList(BeanDoubleList<Caracteristic> widget,
+ protected void initDoubleList(String propertyId,
+ BeanDoubleList<Caracteristic> widget,
List<Caracteristic> availableCaracteristics,
List<String> selectedCaracteristics) {
+
+ initBeanList(widget, availableCaracteristics,
+ Lists.<Caracteristic>newArrayList());
+
+ UpdateSelectedList listener = new UpdateSelectedList(widget, allCaracteristic);
+ widget.putClientProperty("_updateListener", listener);
+ widget.putClientProperty("_updateListenerId", propertyId);
+ listener.select(selectedCaracteristics);
+ }
+
+ protected void selectLengthClasses(List<String> ids, JComboBox comboBox) {
+
List<Caracteristic> selection = Lists.newArrayList();
- if (selectedCaracteristics != null) {
- for (Caracteristic caracteristic : availableCaracteristics) {
- if (selectedCaracteristics.contains(caracteristic.getId())) {
- selection.add(caracteristic);
+ if (CollectionUtils.isNotEmpty(ids)) {
+ for (String id : ids) {
+ selection.add(allCaracteristic.get(id));
+ }
+ }
+
+ List<Caracteristic> dataToList = Lists.newArrayList(selection);
+
+ // add a null value at first position
+ if (!dataToList.isEmpty() && dataToList.get(0) != null) {
+ dataToList.add(0, null);
+ }
+ SwingUtil.fillComboBox(comboBox, dataToList, null);
+ }
+
+ protected void addLengthClassesColumnToModel(TableColumnModel model, List<String> selectedIds) {
+
+ ColumnIdentifier<EditProtocolSpeciesRowModel> identifier =
+ EditProtocolSpeciesTableModel.LENGTH_STEP_PMFM_ID;
+
+ Decorator<Caracteristic> decorator =
+ getDecorator(Caracteristic.class, null);
+
+ final JComboBox comboBox = new JComboBox();
+
+ getModel().addPropertyChangeListener(EditProtocolUIModel.PROPERTY_LENGTH_CLASSES_PMFM_ID, new PropertyChangeListener() {
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ List<String> ids = (List<String>) evt.getNewValue();
+ selectLengthClasses(ids, comboBox);
+ }
+ });
+ comboBox.setRenderer(newListCellRender(decorator));
+
+ selectLengthClasses(selectedIds, comboBox);
+ ObjectToStringConverter converter = BeanUIUtil.newDecoratedObjectToStringConverter(decorator);
+ BeanUIUtil.decorate(comboBox, converter);
+ ComboBoxCellEditor editor = new ComboBoxCellEditor(comboBox);
+
+
+ addColumnToModel(model,
+ editor,
+ newTableCellRender(decorator),
+ EditProtocolSpeciesTableModel.LENGTH_STEP_PMFM_ID);
+ }
+
+ protected static class UpdateSelectedList implements PropertyChangeListener {
+
+ private final BeanDoubleListModel<Caracteristic> model;
+
+ private final Map<String, Caracteristic> caracteristicMap;
+
+ public UpdateSelectedList(BeanDoubleList<Caracteristic> doubleList,
+ Map<String, Caracteristic> caracteristicMap) {
+ this.model = doubleList.getModel();
+ this.caracteristicMap = caracteristicMap;
+ }
+
+ private boolean valueIsAdjusting;
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+
+ if (!valueIsAdjusting) {
+
+ valueIsAdjusting = true;
+
+ try {
+ List<String> selectedIds = (List<String>) evt.getNewValue();
+ if (log.isInfoEnabled()) {
+ log.info("[" + evt.getPropertyName() + "] selected ids: " + selectedIds);
+ }
+
+ select(selectedIds);
+ } finally {
+ valueIsAdjusting = false;
}
}
+
}
- initBeanList(widget, availableCaracteristics, selection);
+
+ public void select(List<String> selectedIds) {
+
+ List<Caracteristic> selection = Lists.newArrayList();
+ if (CollectionUtils.isNotEmpty(selectedIds)) {
+ for (String selectedId : selectedIds) {
+ selection.add(caracteristicMap.get(selectedId));
+ }
+ }
+ model.setSelected(selection);
+ }
}
}
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-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -116,9 +116,9 @@
}
public void setLengthClassesPmfmId(List<String> lengthClassesPmfmId) {
- Object oldValue = getLengthClassesPmfmId();
this.lengthClassesPmfmId = lengthClassesPmfmId;
- firePropertyChange(PROPERTY_LENGTH_CLASSES_PMFM_ID, oldValue, lengthClassesPmfmId);
+ // force to always propagates (need to recompte data of combobox in species table)
+ firePropertyChange(PROPERTY_LENGTH_CLASSES_PMFM_ID, null, lengthClassesPmfmId);
}
public void setLengthClassesPmfm(List<Caracteristic> lengthClassesPmfm) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-02-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportAllCaracteristicAction.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -24,8 +24,6 @@
* #L%
*/
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -34,8 +32,6 @@
import java.awt.event.ActionEvent;
import java.io.File;
-import java.util.List;
-import java.util.Map;
import static org.nuiton.i18n.I18n._;
@@ -100,11 +96,10 @@
TuttiProtocolImportExportService service =
getContext().getService(TuttiProtocolImportExportService.class);
- List<Caracteristic> allCaracteristic = getHandler().getAllCaracteristic();
- Map<String, Caracteristic> caracteristicMap = TuttiEntities.splitById(allCaracteristic);
+ service.exportAllCaracteristic(file,
+ getHandler().getAllCaracteristic());
- service.exportAllCaracteristic(file, caracteristicMap);
-
- sendMessage("Caractéristiques exportées dans le fichier.");
+ sendMessage("Toutes les caractéristiques exportées dans le fichier "
+ + file + ".");
}
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-02-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolCaracteristicAction.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -24,9 +24,7 @@
* #L%
*/
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -35,8 +33,6 @@
import java.awt.event.ActionEvent;
import java.io.File;
-import java.util.List;
-import java.util.Map;
import static org.nuiton.i18n.I18n._;
@@ -104,11 +100,11 @@
TuttiProtocolImportExportService service =
getContext().getService(TuttiProtocolImportExportService.class);
- List<Caracteristic> allCaracteristic = getHandler().getAllCaracteristic();
- Map<String, Caracteristic> caracteristicMap = TuttiEntities.splitById(allCaracteristic);
+ service.exportProtocolCaracteristic(file,
+ protocol,
+ getHandler().getAllCaracteristic());
- service.exportProtocolCaracteristic(file, protocol, caracteristicMap);
-
- sendMessage("Caractéristiques du Protocole [" + protocol.getName() + "] exportées dans le fichier.");
+ sendMessage("Caractéristiques du Protocole exportées dans le fichier "
+ + file + ".");
}
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-02-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ExportProtocolSpeciesAction.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -24,6 +24,8 @@
* #L%
*/
+import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
@@ -33,6 +35,7 @@
import java.awt.event.ActionEvent;
import java.io.File;
+import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -96,14 +99,21 @@
// bind to a protocol
TuttiProtocol protocol = getModel().toBean();
+ List<SpeciesProtocol> protocols = Lists.newArrayList();
+ for (EditProtocolSpeciesRowModel row : getModel().getRows()) {
+ if (row.isValid()) {
+ protocols.add(row.toBean());
+ }
+ }
+
// import
TuttiProtocolImportExportService service =
getContext().getService(TuttiProtocolImportExportService.class);
service.exportProtocolSpecies(file,
- protocol,
- getHandler().getAllLengthStepPmfm(),
+ protocols,
+ getHandler().getAllCaracteristic(),
getHandler().getAllSpecies());
sendMessage("Espèces du Protocole exportés dans le fichier " + file + ".");
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java 2013-02-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolCaracteristicAction.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -24,9 +24,7 @@
* #L%
*/
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.service.protocol.TuttiProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.AbstractTuttiAction;
import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil;
@@ -35,8 +33,6 @@
import java.awt.event.ActionEvent;
import java.io.File;
-import java.util.List;
-import java.util.Map;
import static org.nuiton.i18n.I18n._;
@@ -97,21 +93,27 @@
log.info("Will import protocol caracteristic file: " + file);
}
+ EditProtocolUIModel model = getModel();
+
// bind to a protocol
- TuttiProtocol protocol = getModel().toBean();
+ TuttiProtocol protocol = model.toBean();
- // import protocol caracteristics
TuttiProtocolImportExportService service =
getContext().getService(TuttiProtocolImportExportService.class);
- List<Caracteristic> allCaracteristic = getHandler().getAllCaracteristic();
- Map<String, Caracteristic> caracteristicMap = TuttiEntities.splitById(allCaracteristic);
+ service.importProtocolCaracteristic(file,
+ protocol,
+ getHandler().getAllCaracteristic());
- service.importProtocolCaracteristic(file, protocol, caracteristicMap);
+ getHandler().addDoubleListListeners();
- // rebind to model
- getModel().fromBean(protocol);
+ try {
+ // rebind to model
+ model.fromBean(protocol);
+ } finally {
+ getHandler().removeDoubleListListeners();
+ }
- sendMessage("Caractéristiques importées depuis le fichier ");
+ sendMessage("Caractéristiques importées depuis le fichier " + file);
}
}
\ No newline at end of file
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-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/ImportProtocolSpeciesAction.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -33,6 +33,7 @@
import java.awt.event.ActionEvent;
import java.io.File;
+import java.util.List;
import static org.nuiton.i18n.I18n._;
@@ -58,7 +59,7 @@
"import",
_("tutti.action.importProtocolSpecies"),
_("tutti.action.importProtocolSpecies.tip"),
- true
+ false
);
}
@@ -93,8 +94,10 @@
log.info("Will import protocol species file: " + file);
}
+ EditProtocolUIModel model = getModel();
+
// bind to a protocol
- TuttiProtocol protocol = getModel().toBean();
+ TuttiProtocol protocol = model.toBean();
// import
TuttiProtocolImportExportService service =
@@ -102,11 +105,12 @@
service.importProtocolSpecies(file,
protocol,
- getHandler().getAllLengthStepPmfm(),
+ getHandler().getAllCaracteristic(),
getHandler().getAllSpecies());
- // rebind to model
- getModel().fromBean(protocol);
+ List<EditProtocolSpeciesRowModel> rows =
+ getHandler().toRows(null, protocol.getSpecies());
+ model.setRows(rows);
sendMessage("Espèces importées depuis le fichier " + file + ".");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-02-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/SaveProtocolAction.java 2013-02-04 00:42:26 UTC (rev 321)
@@ -91,8 +91,12 @@
}
bean.setSpecies(protocols);
+ if (log.isDebugEnabled()) {
+ log.debug("protocol id to save: " + bean.getId());
+ }
+
TuttiProtocol saved;
- log.info("bean id : " + bean.getId());
+
if (TuttiEntities.isNew(bean)) {
saved = persistenceService.createProtocol(bean);
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-04 00:40:32 UTC (rev 320)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-04 00:42:26 UTC (rev 321)
@@ -315,14 +315,25 @@
tutti.table.plankton.batch.header.toConfirm=A Confirmer
tutti.table.plankton.batch.header.weight=Poids
tutti.table.protocol.species.header.age=Age
+tutti.table.protocol.species.header.age.tip=Catégorisation sur l'age ?
tutti.table.protocol.species.header.calcifySample=Prélèvement de pièces calcifiées
+tutti.table.protocol.species.header.calcifySample.tip=Prélèvement de pièces calcifiées
tutti.table.protocol.species.header.countIfNoFrequency=Dénombrement
+tutti.table.protocol.species.header.countIfNoFrequency.tip=Dénombrement
+tutti.table.protocol.species.header.cruiseCode=Code
+tutti.table.protocol.species.header.cruiseCode.tip=Code campagne (non synchronisable)
tutti.table.protocol.species.header.lengthStep=Classe de Taille
+tutti.table.protocol.species.header.lengthStep.tip=Comment mesurer les classes de taille (si vide alors pas de mesure)
tutti.table.protocol.species.header.maturity=Maturité
+tutti.table.protocol.species.header.maturity.tip=Catégorisation sur la maturité ?
tutti.table.protocol.species.header.sex=Sexe
+tutti.table.protocol.species.header.sex.tip=Catégorisation sur le sexe ?
tutti.table.protocol.species.header.size=Catégorie Tri
+tutti.table.protocol.species.header.size.tip=Catégorisation sur la catégorie de tri ?
tutti.table.protocol.species.header.speciesId=Espèce
+tutti.table.protocol.species.header.speciesId.tip=Espèce (code permanent - nom scientifique)
tutti.table.protocol.species.header.weight=Pesée
+tutti.table.protocol.species.header.weight.tip=Pesée
tutti.table.species.batch.header.ageCategory=Age
tutti.table.species.batch.header.comment=Commentaire
tutti.table.species.batch.header.computedNumber=Nombre
@@ -344,12 +355,12 @@
tutti.table.species.sampleCategory.header.weight=Poids (kg)
tutti.timeeditor.H=H
tutti.title.about=À propos de Tutti
-tutti.title.choose.protocolCaracteristicExportFile=Choisir le fichier où exporter les caractéristiques
-tutti.title.choose.protocolCaracteristicImportFile=Choisir le fichier des caractéristiques à importer
-tutti.title.choose.protocolExportFile=Choisir le fichier où exporter le protocole
-tutti.title.choose.protocolImportFile=Choisir le fichier du protocole à importer
-tutti.title.choose.protocolSpeciesExportFile=Choisir le fichier où expoerter les espèces de protocole
-tutti.title.choose.protocolSpeciesImportFile=Choisir le fichier des espèces de protocole à importer
+tutti.title.choose.protocolCaracteristicExportFile=Exporter les caractéristiques
+tutti.title.choose.protocolCaracteristicImportFile=Importer les caractéristiques
+tutti.title.choose.protocolExportFile=Exporter le protocole
+tutti.title.choose.protocolImportFile=Importer le protocole
+tutti.title.choose.protocolSpeciesExportFile=Exporter les espèces
+tutti.title.choose.protocolSpeciesImportFile=Importer les espèces
tutti.title.create.cruise=Créer une nouvelle campagne
tutti.title.create.program=Créer une nouvelle série de campagne
tutti.title.create.protocol=Créer un nouveau protocol de saisie
1
0
r320 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 01:40:32 +0100 (Mon, 04 Feb 2013)
New Revision: 320
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/320
Log:
use protocol in Species screen (for lengthClass + species)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
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-04 00:39:54 UTC (rev 319)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-04 00:40:32 UTC (rev 320)
@@ -425,7 +425,8 @@
} else {
// use all caracteristics
- lengthCaracterics = Lists.newArrayList(persistenceService.getAllCaracteristic());
+ lengthCaracterics = Lists.newArrayList(
+ persistenceService.getAllCaracteristic());
}
List<Species> speciesList = persistenceService.getAllSpecies(protocol);
@@ -450,46 +451,20 @@
List<Species> allSpecies;
- TuttiProtocol protocol = null;
+ Multimap<Species, SampleCategoryType> speciesSampleCategories =
+ HashMultimap.create();
+
if (context.isProtocolFilled()) {
// get loaded protocol
- protocol = TuttiUIUtil.getProtocol(ui);
+ TuttiProtocol protocol = TuttiUIUtil.getProtocol(ui);
Preconditions.checkNotNull(protocol,
"Could not find protocol in ui context");
- }
- Multimap<Species, SampleCategoryType> speciesSampleCategories =
- HashMultimap.create();
-
- if (protocol == null) {
-
- // no protocol, use default values
-
- samplingOrder = Lists.newArrayList(
- SampleCategoryType.sortedUnsorted,
- SampleCategoryType.size,
- SampleCategoryType.sex,
- SampleCategoryType.maturity,
- SampleCategoryType.age);
-
- allSpecies = Lists.newArrayList(speciesUniverse);
-
- // each species can use any category
- for (Species species : allSpecies) {
- 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);
- }
- } else {
-
// fill sampling order from protocol
-
samplingOrder = Lists.newArrayList(
SampleCategoryType.sortedUnsorted,
SampleCategoryType.size,
@@ -512,6 +487,27 @@
speciesSampleCategories.put(species, SampleCategoryType.age);
}
}
+ } else {
+
+ // no protocol, use default values
+
+ samplingOrder = Lists.newArrayList(
+ SampleCategoryType.sortedUnsorted,
+ SampleCategoryType.size,
+ SampleCategoryType.sex,
+ SampleCategoryType.maturity,
+ SampleCategoryType.age);
+
+ allSpecies = Lists.newArrayList(speciesUniverse);
+
+ // each species can use any category
+ for (Species species : allSpecies) {
+ 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);
+ }
}
if (log.isInfoEnabled()) {
1
0
r319 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 01:39:54 +0100 (Mon, 04 Feb 2013)
New Revision: 319
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/319
Log:
improve log (do not log sets with a lot of data + prevent their usage by a if (log.isXXX)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableModel.java 2013-02-04 00:39:02 UTC (rev 318)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableModel.java 2013-02-04 00:39:54 UTC (rev 319)
@@ -227,7 +227,9 @@
@Override
public final void setValueAt(Object aValue, int rowIndex, int columnIndex) {
- log.info("setValueAt " + aValue);
+ if (log.isDebugEnabled()) {
+ log.debug("setValueAt " + aValue);
+ }
R entry = getEntry(rowIndex);
ColumnIdentifier<R> propertyName = getPropertyName(columnIndex);
setValueAt(aValue, rowIndex, columnIndex, propertyName, entry);
@@ -253,7 +255,9 @@
int columnIndex,
ColumnIdentifier<R> propertyName,
R entry) {
- log.info("setValueAt " + aValue);
+ if (log.isDebugEnabled()) {
+ log.debug("setValueAt " + aValue);
+ }
propertyName.setValue(entry, aValue);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java 2013-02-04 00:39:02 UTC (rev 318)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIModel.java 2013-02-04 00:39:54 UTC (rev 319)
@@ -28,13 +28,13 @@
import com.google.common.collect.Sets;
import fr.ifremer.tutti.ui.swing.AbstractTuttiBeanUIModel;
import fr.ifremer.tutti.ui.swing.content.operation.fishing.environment.EnvironmentRowModel;
+import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.beans.Binder;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -68,11 +68,13 @@
@Override
public void propertyChange(PropertyChangeEvent evt) {
Set<EnvironmentRowModel> rowsInErorr = (Set<EnvironmentRowModel>) evt.getNewValue();
- log.info(PROPERTY_ROWS_IN_ERROR + " changed " + rowsInErorr);
- setValid(rowsInErorr == null || rowsInErorr.isEmpty());
+ if (log.isDebugEnabled()) {
+ log.debug(PROPERTY_ROWS_IN_ERROR + " changed " + rowsInErorr.size());
+ }
+ setValid(CollectionUtils.isEmpty(rowsInErorr));
}
});
- setRowsInError(new HashSet<R>());
+ setRowsInError(Sets.<R>newHashSet());
}
public List<R> getRows() {
@@ -88,7 +90,7 @@
// always propagates (since empty list will not fire and we want it)
firePropertyChange(PROPERTY_ROWS, null, rows);
- Set<R> rowsInError = Sets.newHashSet();
+ rowsInError.clear();
for (R row : rows) {
if (!row.isValid()) {
rowsInError.add(row);
1
0
r318 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: . config
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 01:39:02 +0100 (Mon, 04 Feb 2013)
New Revision: 318
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/318
Log:
reload i18n execpt when using full mode launch + improve configuration code
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-02-04 00:37:59 UTC (rev 317)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-02-04 00:39:02 UTC (rev 318)
@@ -59,10 +59,8 @@
// prepare context (mainly init configs, i18n)
context.init();
- String launchMode = config.getTuttiLaunchMode();
+ if (config.isFullLaunchMode()) {
- if ("full".equals(launchMode)) {
-
if (log.isInfoEnabled()) {
log.info("Full launch mode, try to update jre / application.");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-02-04 00:37:59 UTC (rev 317)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-02-04 00:39:02 UTC (rev 318)
@@ -35,6 +35,7 @@
import fr.ifremer.tutti.service.TuttiServiceContext;
import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig;
import fr.ifremer.tutti.ui.swing.util.UIMessageNotifier;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@@ -312,11 +313,20 @@
config.getServiceConfig().getPersistenceConfig().initConfig(getResourceLoader());
} catch (IOException e) {
- throw new RuntimeException("Could not init adagio configuration", e);
+ throw new RuntimeException("Could not init persistence configuration", e);
}
// Initialize i18n
File i18nDirectory = config.getI18nDirectory();
+ if (!config.isFullLaunchMode()) {
+
+ // clean i18n cache
+ try {
+ FileUtils.cleanDirectory(i18nDirectory);
+ } catch (IOException e) {
+ throw new RuntimeException("Could not delete i18n cache at " + i18nDirectory, e);
+ }
+ }
Locale i18nLocale = config.getI18nLocale();
if (log.isInfoEnabled()) {
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-02-04 00:37:59 UTC (rev 317)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfig.java 2013-02-04 00:39:02 UTC (rev 318)
@@ -148,6 +148,10 @@
return ReflectionToStringBuilder.toString(this);
}
+ public boolean isFullLaunchMode() {
+ return "full".equals(getTuttiLaunchMode());
+ }
+
public String getTuttiLaunchMode() {
return applicationConfig.getOption(TuttiApplicationConfigOption.TUTTI_LAUNCH_MODE.getKey());
}
1
0
r317 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 01:37:59 +0100 (Mon, 04 Feb 2013)
New Revision: 317
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/317
Log:
do not show body when saving or cancel editing fishingoperation
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-02-04 00:37:29 UTC (rev 316)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/CancelEditFishingOperationAction.java 2013-02-04 00:37:59 UTC (rev 317)
@@ -52,7 +52,7 @@
"cancel",
_("tutti.action.cancel.editFishingOperation"),
_("tutti.action.cancel.editFishingOperation.tip"),
- false
+ true
);
}
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-04 00:37:29 UTC (rev 316)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/SaveFishingOperationAction.java 2013-02-04 00:37:59 UTC (rev 317)
@@ -61,7 +61,7 @@
"save",
_("tutti.action.saveFishingOperation"),
_("tutti.action.saveFishingOperation.tip"),
- false
+ true
);
}
1
0
r316 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 01:37:29 +0100 (Mon, 04 Feb 2013)
New Revision: 316
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/316
Log:
fix action loading deadlock
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-04 00:36:29 UTC (rev 315)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-04 00:37:29 UTC (rev 316)
@@ -134,7 +134,6 @@
if (e instanceof Exception) {
ErrorDialogUI.showError((Exception) e);
}
- timer.cancel();
} finally {
if (log.isInfoEnabled()) {
log.info("After action: " + this);
@@ -166,6 +165,10 @@
protected class ActionTimerTask extends TimerTask {
+ private final Object lock = new Object();
+
+ protected boolean canceled;
+
private final String actionName;
private final String actionDescription;
@@ -180,48 +183,70 @@
@Override
public void run() {
- MainUI ui = getContext().getMainUI();
+ if (canceled) {
+ if (log.isInfoEnabled()) {
+ log.info("Task [" + AbstractTuttiAction.this + "] was already canceled, do nothing");
+ }
+ } else {
- updateBusyState(ui, true);
+ MainUI ui = getContext().getMainUI();
- if (log.isDebugEnabled()) {
- log.debug("Task [" + AbstractTuttiAction.this + "] is started, show waiting dialog");
- }
- JPanel panel = new JPanel(new BorderLayout());
- panel.setBorder(new TitledBorder((String) null));
- JLabel label = new JLabel();
- EmptyBorder border = new EmptyBorder(5, 5, 5, 5);
- label.setBorder(border);
- label.setText(_("tutti.message.action.running", actionDescription));
- panel.add(label, BorderLayout.CENTER);
- JProgressBar progressBar = new JProgressBar();
- progressBar.setBorder(border);
- progressBar.setIndeterminate(true);
- panel.add(progressBar, BorderLayout.SOUTH);
- d = new JDialog(ui, true);
- d.setUndecorated(true);
+ if (log.isDebugEnabled()) {
+ log.debug("Task [" + AbstractTuttiAction.this + "] is started, show waiting dialog");
+ }
+
+ JPanel panel = new JPanel(new BorderLayout());
+ panel.setBorder(new TitledBorder((String) null));
+ JLabel label = new JLabel();
+ EmptyBorder border = new EmptyBorder(5, 5, 5, 5);
+ label.setBorder(border);
+ label.setText(_("tutti.message.action.running", actionDescription));
+ panel.add(label, BorderLayout.CENTER);
+ JProgressBar progressBar = new JProgressBar();
+ progressBar.setBorder(border);
+ progressBar.setIndeterminate(true);
+ panel.add(progressBar, BorderLayout.SOUTH);
+
+
+ d = new JDialog(ui, true);
+ d.setUndecorated(true);
// d.setSize(300, 200);
- d.add(panel);
- d.pack();
- SwingUtil.center(ui, d);
- d.setVisible(true);
+ d.add(panel);
+ d.pack();
+ SwingUtil.center(ui, d);
+
+ if (log.isInfoEnabled()) {
+ log.info("Try to open dialog (was canceled ? " + canceled + ")");
+ }
+ if (!canceled) {
+
+ updateBusyState(ui, true);
+
+ d.setVisible(true);
+ }
+ }
}
+
@Override
public boolean cancel() {
- if (log.isDebugEnabled()) {
- log.debug("Task [" + AbstractTuttiAction.this + "] canceled.");
- }
- updateBusyState(getContext().getMainUI(), false);
+ synchronized (lock) {
+ canceled = true;
+ if (log.isInfoEnabled()) {
+ log.info("Task [" + AbstractTuttiAction.this + "] canceled.");
+ }
+ boolean cancel = super.cancel();
- if (d != null) {
- d.setVisible(false);
+ updateBusyState(getContext().getMainUI(), false);
+
+ if (d != null) {
+ d.setVisible(false);
+ }
+ return cancel;
}
- boolean cancel = super.cancel();
- return cancel;
}
protected void updateBusyState(MainUI ui, boolean busy) {
1
0
r315 - in trunk/tutti-service/src: main/java/fr/ifremer/tutti/service main/java/fr/ifremer/tutti/service/protocol test/java/fr/ifremer/tutti/service/protocol
by tchemit@users.forge.codelutin.com 04 Feb '13
by tchemit@users.forge.codelutin.com 04 Feb '13
04 Feb '13
Author: tchemit
Date: 2013-02-04 01:36:29 +0100 (Mon, 04 Feb 2013)
New Revision: 315
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/315
Log:
refs #1824: [PROTOCOLE] - Gestion des param?\195?\168tres suivis par esp?\195?\168ces (import / export des esp?\195?\168ces)
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-02-03 22:03:03 UTC (rev 314)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2013-02-04 00:36:29 UTC (rev 315)
@@ -26,6 +26,7 @@
import fr.ifremer.tutti.persistence.entities.IdAware;
import org.apache.commons.lang3.StringUtils;
+import org.nuiton.util.csv.Common;
import org.nuiton.util.csv.ValueParserFormatter;
import org.nuiton.util.csv.ext.AbstractImportExportModel;
@@ -59,6 +60,28 @@
}
}
+
+ public static class StringParserFormatter extends Common.NullableParserFormatter<String> {
+
+ public StringParserFormatter(String defaultValue, boolean nullAllowed) {
+ super(defaultValue, nullAllowed);
+ }
+
+ @Override
+ public String format(String value) {
+ String str = "";
+ if (value != null) {
+ str = String.valueOf(value);
+ }
+ return str;
+ }
+
+ @Override
+ protected String parseNoneEmptyValue(String value) {
+ return value;
+ }
+ }
+
/**
* @param <E>
* @author tchemit <chemit(a)codelutin.com>
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java 2013-02-03 22:03:03 UTC (rev 314)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java 2013-02-04 00:36:29 UTC (rev 315)
@@ -42,6 +42,8 @@
public static final String PROPERTY_ID = "id";
+ public static final String PROPERTY_CRUISE_CODE = "cruiseCode";
+
public static final String PROPERTY_SPECIES = "species";
public static final String PROPERTY_SIZE_ENABLED = "sizeEnabled";
@@ -52,10 +54,18 @@
public static final String PROPERTY_AGE_ENABLED = "ageEnabled";
- public static final String PROPERTY_LENGTH_CLASS = "lengthClass";
+ public static final String PROPERTY_LENGTH_STEP = "lengthStep";
- public static final String PROPERTY_LENGTH_CLASS_ID = "lengthClassId";
+ public static final String PROPERTY_LENGTH_STEP_PARAMETER_NAME = "lengthStepParameterName";
+ public static final String PROPERTY_LENGTH_STEP_MATRIX_NAME = "lengthStepMatrixName";
+
+ public static final String PROPERTY_LENGTH_STEP_FRACTION_NAME = "lengthStepFractionName";
+
+ public static final String PROPERTY_LENGTH_STEP_METHOD_NAME = "lengthStepMethodName";
+
+ public static final String PROPERTY_LENGTH_STEP_PMFM_ID = "lengthStepPmfmId";
+
public static final String PROPERTY_WEIGHT_ENABLED = "weightEnabled";
public static final String PROPERTY_COUNT_IF_NO_FREQUENCY_ENABLED = "countIfNoFrequencyEnabled";
@@ -66,7 +76,7 @@
protected Species species;
- protected Caracteristic lengthClass;
+ protected Caracteristic lengthStep;
public SpeciesRow() {
delegate = new SpeciesProtocol();
@@ -76,19 +86,35 @@
return species;
}
- public Caracteristic getLengthClass() {
- return lengthClass;
+ public Caracteristic getLengthStep() {
+ return lengthStep;
}
- public void setLengthClass(Caracteristic lengthClass) {
- this.lengthClass = lengthClass;
- delegate.setLengthStepPmfmId(lengthClass == null ? null : lengthClass.getId());
+ public void setLengthStep(Caracteristic lengthStep) {
+ this.lengthStep = lengthStep;
+ delegate.setLengthStepPmfmId(lengthStep == null ? null : lengthStep.getId());
}
- public String getLengthClassId() {
+ public String getLengthStepPmfmId() {
return delegate.getLengthStepPmfmId();
}
+ public String getLengthStepParameterName() {
+ return lengthStep == null ? null : lengthStep.getParameterName();
+ }
+
+ public String getLengthStepMethodName() {
+ return lengthStep == null ? null : lengthStep.getMethodName();
+ }
+
+ public String getLengthStepMatrixName() {
+ return lengthStep == null ? null : lengthStep.getMatrixName();
+ }
+
+ public String getLengthStepFractionName() {
+ return lengthStep == null ? null : lengthStep.getFractionName();
+ }
+
public void setSpecies(Species species) {
this.species = species;
delegate.setSpeciesId(species == null ? null : species.getId());
@@ -158,4 +184,11 @@
return delegate.getSpeciesId();
}
+ public String getCruiseCode() {
+ return delegate.getCruiseCode();
+ }
+
+ public void setCruiseCode(String cruiseCode) {
+ delegate.setCruiseCode(cruiseCode);
+ }
}
\ No newline at end of file
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java 2013-02-03 22:03:03 UTC (rev 314)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java 2013-02-04 00:36:29 UTC (rev 315)
@@ -52,12 +52,18 @@
Species.PROPERTY_ID,
speciesMap);
- newForeignKeyColumn(SpeciesRow.PROPERTY_LENGTH_CLASS,
- SpeciesRow.PROPERTY_LENGTH_CLASS,
+ newForeignKeyColumn(SpeciesRow.PROPERTY_LENGTH_STEP,
+ SpeciesRow.PROPERTY_LENGTH_STEP,
Caracteristic.class,
Caracteristic.PROPERTY_ID,
caracteristicMap);
+ newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PARAMETER_NAME);
+ newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_MATRIX_NAME);
+ newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_FRACTION_NAME);
+ newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_METHOD_NAME);
+
+ newMandatoryColumn(SpeciesRow.PROPERTY_CRUISE_CODE, new TuttiCsvUtil.StringParserFormatter(null,true));
newMandatoryColumn(SpeciesRow.PROPERTY_SIZE_ENABLED, Common.PRIMITIVE_BOOLEAN);
newMandatoryColumn(SpeciesRow.PROPERTY_SEX_ENABLED, Common.PRIMITIVE_BOOLEAN);
newMandatoryColumn(SpeciesRow.PROPERTY_MATURITY_ENABLED, Common.PRIMITIVE_BOOLEAN);
@@ -69,7 +75,13 @@
// export definition
newColumnForExport(SpeciesRow.PROPERTY_ID);
- newColumnForExport(SpeciesRow.PROPERTY_LENGTH_CLASS, SpeciesRow.PROPERTY_LENGTH_CLASS_ID);
+ newColumnForExport(SpeciesRow.PROPERTY_CRUISE_CODE);
+ newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP, SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_ID);
+ newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PARAMETER_NAME);
+ newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_MATRIX_NAME);
+ newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_FRACTION_NAME);
+ newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_METHOD_NAME);
+
newColumnForExport(SpeciesRow.PROPERTY_SIZE_ENABLED, Common.PRIMITIVE_BOOLEAN);
newColumnForExport(SpeciesRow.PROPERTY_SEX_ENABLED, Common.PRIMITIVE_BOOLEAN);
newColumnForExport(SpeciesRow.PROPERTY_MATURITY_ENABLED, Common.PRIMITIVE_BOOLEAN);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java 2013-02-03 22:03:03 UTC (rev 314)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportService.java 2013-02-04 00:36:29 UTC (rev 315)
@@ -45,8 +45,7 @@
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
import org.nuiton.util.csv.Export;
-import org.nuiton.util.csv.Import2;
-import org.nuiton.util.csv.ImportRow;
+import org.nuiton.util.csv.Import;
import java.io.BufferedWriter;
import java.io.File;
@@ -81,7 +80,7 @@
TuttiProtocol protocol,
Map<String, Caracteristic> caracteristicMap) throws IOException {
if (log.isInfoEnabled()) {
- log.info("Will import protocol [" + protocol.getName() + "] caracteristic from file: " + file);
+ log.info("Will import protocol caracteristic from file: " + file);
}
Multimap<CaracteristicType, String> ids = TreeMultimap.create();
@@ -93,30 +92,17 @@
Reader reader = Files.newReader(file, Charsets.UTF_8);
try {
- Import2<CaracteristicRow> importer =
- Import2.newImport(csvModel, reader);
+ Import<CaracteristicRow> importer =
+ Import.newImport(csvModel, reader);
try {
- for (ImportRow<CaracteristicRow> row : importer) {
+ for (CaracteristicRow bean : importer) {
- if (!row.isValid()) {
-
- //TODO deal with line error
- if (log.isErrorEnabled()) {
- log.error("there is some error on line " + row.getLineNumber() + ":\n" + row.getErrors());
- }
- } else {
-
- // treat row
- CaracteristicRow bean = row.getBean();
-
- CaracteristicType caracteristicType = bean.getType();
-
- Caracteristic caracteristic = bean.getCaracteristic();
- String id = caracteristic.getId();
- ids.put(caracteristicType, id);
- }
+ CaracteristicType caracteristicType = bean.getType();
+ Caracteristic caracteristic = bean.getCaracteristic();
+ String id = caracteristic.getId();
+ ids.put(caracteristicType, id);
}
importer.close();
} finally {
@@ -230,7 +216,6 @@
"] species from file: " + file);
}
-
Map<String, SpeciesProtocol> ids = Maps.newLinkedHashMap();
if (!protocol.isSpeciesEmpty()) {
@@ -250,8 +235,7 @@
Reader reader = Files.newReader(file, Charsets.UTF_8);
try {
- Import2<SpeciesRow> importer =
- Import2.newImport(csvModel, reader);
+ Import<SpeciesRow> importer = Import.newImport(csvModel, reader);
try {
@@ -259,28 +243,16 @@
BinderFactory.newBinder(SpeciesRow.class,
SpeciesProtocol.class);
- for (ImportRow<SpeciesRow> row : importer) {
+ for (SpeciesRow bean : importer) {
- if (!row.isValid()) {
+ Species species = bean.getSpecies();
+ String id = species.getId();
- //TODO deal with line error
- if (log.isErrorEnabled()) {
- log.error("there is some error on line " + row.getLineNumber() + ":\n" + row.getErrors());
- }
- } else {
+ SpeciesProtocol sp = new SpeciesProtocol();
+ binder.copy(bean, sp);
+ sp.setId(id);
- // treat row
- SpeciesRow bean = row.getBean();
-
- Species species = bean.getSpecies();
- String id = species.getId();
-
- SpeciesProtocol sp = new SpeciesProtocol();
- binder.copy(bean, sp);
- sp.setId(id);
-
- ids.put(id, sp);
- }
+ ids.put(id, sp);
}
importer.close();
} finally {
@@ -298,7 +270,7 @@
}
public void exportProtocolSpecies(File file,
- TuttiProtocol protocol,
+ List<SpeciesProtocol> protocol,
Map<String, Caracteristic> caracteristicMap,
Map<String, Species> speciesMap) throws Exception {
if (log.isInfoEnabled()) {
@@ -307,8 +279,8 @@
List<SpeciesRow> rows = Lists.newArrayList();
- if (!protocol.isSpeciesEmpty()) {
- rows = Lists.transform(protocol.getSpecies(), new SpeciesProtocolToSpeciesRowFunction(
+ if (CollectionUtils.isNotEmpty(protocol)) {
+ rows = Lists.transform(protocol, new SpeciesProtocolToSpeciesRowFunction(
caracteristicMap,
speciesMap));
}
@@ -389,7 +361,8 @@
Map<String, Species> speciesMap) {
this.speciesMap = speciesMap;
this.caracteristicMap = caracteristicMap;
- this.binder = BinderFactory.newBinder(SpeciesProtocol.class, SpeciesRow.class);
+ this.binder = BinderFactory.newBinder(SpeciesProtocol.class,
+ SpeciesRow.class);
}
@Override
@@ -401,7 +374,7 @@
String pmfmId = input.getLengthStepPmfmId();
if (pmfmId != null) {
Caracteristic caracteristic = caracteristicMap.get(pmfmId);
- result.setLengthClass(caracteristic);
+ result.setLengthStep(caracteristic);
}
result.setSpecies(species);
return result;
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java 2013-02-03 22:03:03 UTC (rev 314)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/TuttiProtocolImportExportServiceTest.java 2013-02-04 00:36:29 UTC (rev 315)
@@ -82,6 +82,7 @@
"species: \n" +
"- !SpeciesProtocol\n" +
" calcifySampleEnabled: true\n" +
+ " cruiseCode: cruiseCode1\n" +
" lengthStepPmfmId: 1394\n" +
" maturityEnabled: true\n" +
" sexEnabled: true\n" +
@@ -115,9 +116,9 @@
"5;;parameterName5;matrixName5;fractionName5;methodName5;";
public static final String PROTOCOL_SPECIES_FILE_CONTENT =
- "id;lengthClass;sizeEnabled;sexEnabled;maturityEnabled;ageEnabled;weightEnabled;countIfNoFrequencyEnabled;calcifySampleEnabled\n" +
- "1;1;Y;Y;Y;Y;Y;Y;Y;\n" +
- "2;;N;Y;N;Y;Y;Y;Y;";
+ "id;cruiseCode;lengthStep;lengthStepParameterName;lengthStepMatrixName;lengthStepFractionName;lengthStepMethodName;sizeEnabled;sexEnabled;maturityEnabled;ageEnabled;weightEnabled;countIfNoFrequencyEnabled;calcifySampleEnabled\n" +
+ "1;cruiseCode1;2;parameterName2;matrixName2;fractionName2;methodName2;Y;Y;Y;Y;Y;Y;Y;\n" +
+ "2;;;;;;;N;Y;N;Y;Y;Y;Y;";
@Before
public void setUp() throws Exception {
@@ -154,6 +155,7 @@
protocol.setSpecies(Lists.<SpeciesProtocol>newArrayList());
SpeciesProtocol sp1 = new SpeciesProtocol();
sp1.setSpeciesId("11242");
+ sp1.setCruiseCode("cruiseCode1");
sp1.setLengthStepPmfmId("1394");
sp1.setCalcifySampleEnabled(true);
sp1.setMaturityEnabled(true);
@@ -204,6 +206,7 @@
SpeciesProtocol sp1 = protocol.getSpecies().get(0);
Assert.assertNotNull(sp1);
Assert.assertEquals("11242", sp1.getSpeciesId());
+ Assert.assertEquals("cruiseCode1", sp1.getCruiseCode());
Assert.assertEquals("1394", sp1.getLengthStepPmfmId());
Assert.assertFalse(sp1.isAgeEnabled());
Assert.assertTrue(sp1.isCalcifySampleEnabled());
@@ -315,6 +318,32 @@
speciesMap);
Assert.assertEquals(2, protocol.sizeSpecies());
+
+ SpeciesProtocol sp1 = protocol.getSpecies().get(0);
+ Assert.assertNotNull(sp1);
+ Assert.assertEquals("1", sp1.getSpeciesId());
+ Assert.assertEquals("cruiseCode1", sp1.getCruiseCode());
+ Assert.assertEquals("2", sp1.getLengthStepPmfmId());
+ Assert.assertTrue(sp1.isAgeEnabled());
+ Assert.assertTrue(sp1.isCalcifySampleEnabled());
+ Assert.assertTrue(sp1.isCountIfNoFrequencyEnabled());
+ Assert.assertTrue(sp1.isMaturityEnabled());
+ Assert.assertTrue(sp1.isSexEnabled());
+ Assert.assertTrue(sp1.isSizeEnabled());
+ Assert.assertTrue(sp1.isWeightEnabled());
+
+ SpeciesProtocol sp2 = protocol.getSpecies().get(1);
+ Assert.assertNotNull(sp2);
+ Assert.assertEquals("2", sp2.getSpeciesId());
+ Assert.assertNull(sp2.getCruiseCode());
+ Assert.assertNull(sp2.getLengthStepPmfmId());
+ Assert.assertTrue(sp2.isAgeEnabled());
+ Assert.assertTrue(sp2.isCalcifySampleEnabled());
+ Assert.assertTrue(sp2.isCountIfNoFrequencyEnabled());
+ Assert.assertFalse(sp2.isMaturityEnabled());
+ Assert.assertTrue(sp2.isSexEnabled());
+ Assert.assertFalse(sp2.isSizeEnabled());
+ Assert.assertTrue(sp2.isWeightEnabled());
}
@Test
@@ -331,6 +360,7 @@
SpeciesProtocol sp1 = new SpeciesProtocol();
sp1.setSpeciesId("1");
+ sp1.setCruiseCode("cruiseCode1");
sp1.setAgeEnabled(true);
sp1.setSizeEnabled(true);
sp1.setMaturityEnabled(true);
@@ -338,7 +368,7 @@
sp1.setWeightEnabled(true);
sp1.setCountIfNoFrequencyEnabled(true);
sp1.setCalcifySampleEnabled(true);
- sp1.setLengthStepPmfmId("1");
+ sp1.setLengthStepPmfmId("2");
protocol.addSpecies(sp1);
@@ -357,7 +387,7 @@
Assert.assertFalse(file.exists());
service.exportProtocolSpecies(file,
- protocol,
+ protocol.getSpecies(),
createCaracteristics(),
speciesMap);
1
0
r314 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches: . species
by kmorin@users.forge.codelutin.com 03 Feb '13
by kmorin@users.forge.codelutin.com 03 Feb '13
03 Feb '13
Author: kmorin
Date: 2013-02-03 23:03:03 +0100 (Sun, 03 Feb 2013)
New Revision: 314
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/314
Log:
disable weight if not a leaf
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/species/SpeciesBatchTableModel.java
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-03 17:12:00 UTC (rev 313)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2013-02-03 22:03:03 UTC (rev 314)
@@ -159,12 +159,16 @@
@Override
public boolean onHideTab(int currentIndex, int newIndex) {
- AbstractTuttiBeanUIModel model = getModel();
- boolean result = model.isValid();
- if (result && model.isModify()) {
- save();
- }
- return result;
+ //FIXME 20130203 kmorin: cannot change tab if model is modified
+ // (I do not even know why it is set to modified and have no time
+ // before the demo)
+// AbstractTuttiBeanUIModel model = getModel();
+// boolean result = model.isValid();
+// if (result && model.isModify()) {
+// save();
+// }
+// return result;
+ return true;
}
@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-03 17:12:00 UTC (rev 313)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchTableModel.java 2013-02-03 22:03:03 UTC (rev 314)
@@ -249,7 +249,7 @@
propertyName);
if (result) {
- if (frequencyCols.contains(propertyName)) {
+ if (frequencyCols.contains(propertyName) || WEIGHT.equals(propertyName)) {
// must have filled a species to edit this column
SpeciesBatchRowModel entry = getEntry(rowIndex);
1
0
03 Feb '13
Author: tchemit
Date: 2013-02-03 18:12:00 +0100 (Sun, 03 Feb 2013)
New Revision: 313
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/313
Log:
rename memocode to refTaxCode for Species
- add cruiseCode in Species
- add method to load as well cruiseCode from protocol
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.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/CreateSpeciesBatchUIHandler.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistence.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -101,7 +101,8 @@
* @return the list of localite with given zone id as location parent / or strata
* @since 1.0
*/
- List<FishingOperationLocation> getAllFishingOperationSubStrata(String zoneId, String strataId);
+ List<FishingOperationLocation> getAllFishingOperationSubStrata(String zoneId,
+ String strataId);
/**
* Get the list of location of type substra that match the given zone id or
@@ -114,7 +115,9 @@
* @return the list of localite with given zone id as location parent / or strata or substrata
* @since 1.0
*/
- List<FishingOperationLocation> getAllFishingOperationLocation(String zoneId, String strataId, String subStrataId);
+ List<FishingOperationLocation> getAllFishingOperationLocation(String zoneId,
+ String strataId,
+ String subStrataId);
/**
* @return all scientific vessels (used by a {@link Cruise}).
@@ -132,9 +135,22 @@
*/
List<Vessel> getAllFishingVessel();
+ /**
+ * Get all species with no {@link Species#cruiseCode} filled.
+ *
+ * @return all species with no {@code cruiseCode} filled at all.
+ * @since 0.1
+ */
List<Species> getAllSpecies();
- Species getSpecies(String speciesId);
+ /**
+ * Get all species with {@link Species#cruiseCode} filled by optional protocol.
+ *
+ * @param protocol optional protocol to fill some species cruisecode.
+ * @return all species with {@code cruiseCode} filled for species definied in protocol.
+ * @since 1.0
+ */
+ List<Species> getAllSpecies(TuttiProtocol protocol);
/**
* @return all caracteristics of the system.
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceDevImpl.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -48,6 +48,7 @@
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
+import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
@@ -251,8 +252,14 @@
}
@Override
- public Species getSpecies(String id) {
- Species result = getBean(Species.class.getName(), id);
+ public List<Species> getAllSpecies(TuttiProtocol protocol) {
+ List<Species> result = getAllSpecies();
+ if (protocol!=null && !protocol.isSpeciesEmpty()) {
+ Map<String, Species> map =TuttiEntities.splitById(result);
+ for (SpeciesProtocol speciesProtocol : protocol.getSpecies()) {
+ map.get(speciesProtocol.getSpeciesId()).setCruiseCode(speciesProtocol.getCruiseCode());
+ }
+ }
return result;
}
@@ -1325,26 +1332,26 @@
sp = new Species();
sp.setId(UUID.randomUUID().toString());
- sp.setCodeMemo("BAR");
- sp.setGenusSpecies("Bar");
+ sp.setRefTaxCode("BAR");
+ sp.setName("Bar");
putInCache(Species.class, sp);
sp = new Species();
sp.setId(UUID.randomUUID().toString());
- sp.setCodeMemo("CHIN");
- sp.setGenusSpecies("Chinchard");
+ sp.setRefTaxCode("CHIN");
+ sp.setName("Chinchard");
putInCache(Species.class, sp);
sp = new Species();
sp.setId(UUID.randomUUID().toString());
- sp.setCodeMemo("FLE");
- sp.setGenusSpecies("Flet");
+ sp.setRefTaxCode("FLE");
+ sp.setName("Flet");
putInCache(Species.class, sp);
sp = new Species();
sp.setId(UUID.randomUUID().toString());
- sp.setCodeMemo("LIM");
- sp.setGenusSpecies("Limande");
+ sp.setRefTaxCode("LIM");
+ sp.setName("Limande");
putInCache(Species.class, sp);
ca = createQualitativeCaracteristic("MacroWaste", CaracteristicEnum.MacroWasteCategory.name());
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -24,6 +24,7 @@
* #L%
*/
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch;
import fr.ifremer.tutti.persistence.entities.data.BenthosBatch;
import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
@@ -34,6 +35,7 @@
import fr.ifremer.tutti.persistence.entities.data.Program;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency;
+import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
@@ -62,6 +64,7 @@
import java.io.IOException;
import java.util.List;
+import java.util.Map;
/**
* @author tchemit <chemit(a)codelutin.com>
@@ -202,8 +205,15 @@
}
@Override
- public Species getSpecies(String speciesId) {
- return referentialService.getSpecies(speciesId);
+ public List<Species> getAllSpecies(TuttiProtocol protocol) {
+ List<Species> result = referentialService.getAllSpecies();
+ if (protocol != null && !protocol.isSpeciesEmpty()) {
+ Map<String, Species> map = TuttiEntities.splitById(result);
+ for (SpeciesProtocol speciesProtocol : protocol.getSpecies()) {
+ map.get(speciesProtocol.getSpeciesId()).setCruiseCode(speciesProtocol.getCruiseCode());
+ }
+ }
+ return result;
}
@Override
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -557,7 +557,7 @@
Species target = new Species();
target.setId(String.valueOf(source.getReferenceTaxonId()));
target.setName(source.getName());
- target.setCodeMemo(source.getRefTaxCode());
+ target.setRefTaxCode(source.getRefTaxCode());
fr.ifremer.adagio.core.dao.referential.Status status = statusDao.load(source.getStatus().getValue());
setStatus(status, target);
return target;
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocolsTest.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -69,6 +69,8 @@
"- !SpeciesProtocol\n" +
" id: 1\n" +
" calcifySampleEnabled: true\n" +
+ " cruiseCode: BAR\n" +
+ " genusSpecies: bar\n" +
" lengthStepPmfmId: 1394\n" +
" maturityEnabled: true\n" +
" sexEnabled: true\n" +
@@ -79,6 +81,8 @@
" ageEnabled: true\n" +
" calcifySampleEnabled: true\n" +
" countIfNoFrequencyEnabled: true\n" +
+ " cruiseCode: CHIN\n" +
+ " genusSpecies: chinchard\n" +
" lengthStepPmfmId: 323\n" +
" maturityEnabled: true\n" +
" sexEnabled: true\n" +
@@ -144,6 +148,8 @@
Assert.assertNotNull(sp1);
Assert.assertEquals("1", sp1.getId());
Assert.assertEquals("11242", sp1.getSpeciesId());
+ Assert.assertEquals("BAR", sp1.getCruiseCode());
+ Assert.assertEquals("bar", sp1.getGenusSpecies());
Assert.assertEquals("1394", sp1.getLengthStepPmfmId());
Assert.assertFalse(sp1.isAgeEnabled());
Assert.assertTrue(sp1.isCalcifySampleEnabled());
@@ -157,6 +163,8 @@
Assert.assertNotNull(sp2);
Assert.assertEquals("2", sp2.getId());
Assert.assertEquals("3835", sp2.getSpeciesId());
+ Assert.assertEquals("CHIN", sp2.getCruiseCode());
+ Assert.assertEquals("chinchard", sp2.getGenusSpecies());
Assert.assertEquals("323", sp2.getLengthStepPmfmId());
Assert.assertTrue(sp2.isAgeEnabled());
Assert.assertTrue(sp2.isCalcifySampleEnabled());
@@ -181,6 +189,8 @@
SpeciesProtocol sp1 = new SpeciesProtocol();
sp1.setId("1");
sp1.setSpeciesId("11242");
+ sp1.setCruiseCode("BAR");
+ sp1.setGenusSpecies("bar");
sp1.setLengthStepPmfmId("1394");
sp1.setCalcifySampleEnabled(true);
sp1.setMaturityEnabled(true);
@@ -191,6 +201,8 @@
SpeciesProtocol sp2 = new SpeciesProtocol();
sp2.setId("2");
sp2.setSpeciesId("3835");
+ sp2.setCruiseCode("CHIN");
+ sp2.setGenusSpecies("chinchard");
sp2.setLengthStepPmfmId("323");
sp2.setAgeEnabled(true);
sp2.setCalcifySampleEnabled(true);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -64,8 +64,10 @@
String getLabel();
}
- public static final String SPECIES_BY_CODE = "byCode";
+ public static final String SPECIES_BY_CRUISE_CODE= "byCruiseCode";
+ public static final String SPECIES_BY_REF_TAX_CODE = "byRefTaxCode";
+
public static final String SPECIES_BY_GENUS = "byGenus";
public static final String CARACTERISTIC_WITH_UNIT = "withUnit";
@@ -114,8 +116,9 @@
registerMultiJXPathDecorator(Caracteristic.class, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(Caracteristic.class, CARACTERISTIC_WITH_UNIT, "${parameterName}$s#${matrixName}$s#${fractionName}$s#${methodName}$s (${unit}$s)", SEPARATOR, " - ");
registerMultiJXPathDecorator(CaracteristicQualitativeValue.class, "${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Species.class, "${codeMemo}$s#${name}$s", SEPARATOR, " - ");
- registerMultiJXPathDecorator(Species.class, SPECIES_BY_CODE, "${codeMemo}$s", SEPARATOR, " - ");
+ registerMultiJXPathDecorator(Species.class, "${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
+ registerMultiJXPathDecorator(Species.class, SPECIES_BY_CRUISE_CODE, "${cruiseCode}$s#${refTaxCode}$s#${name}$s", SEPARATOR, " - ");
+ registerMultiJXPathDecorator(Species.class, SPECIES_BY_REF_TAX_CODE, "${refTaxCode}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(Species.class, SPECIES_BY_GENUS, "${name}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(SpeciesProtocol.class, "${speciesId}", SEPARATOR, " - ");
registerMultiJXPathDecorator(Attachment.class, "${name}$s", SEPARATOR, " - ");
@@ -149,13 +152,15 @@
n_("tutti.property.methodName");
n_("tutti.property.cruise");
n_("tutti.property.fishingOperation");
+ n_("tutti.property.fishingOperationLocation");
n_("tutti.property.zone");
n_("tutti.property.vessel");
n_("tutti.property.country");
n_("tutti.property.gear");
n_("tutti.property.user");
n_("tutti.property.strata");
- n_("tutti.property.codeMemo");
+ n_("tutti.property.refTaxCode");
+ n_("tutti.property.cruiseCode");
n_("tutti.property.species");
n_("tutti.property.genusSpecies");
n_("tutti.property.sortedUnsortedCategory");
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -213,8 +213,8 @@
}
@Override
- public Species getSpecies(String speciesId) {
- return driver.getSpecies(speciesId);
+ public List<Species> getAllSpecies(TuttiProtocol protocol) {
+ return driver.getAllSpecies(protocol);
}
@Override
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2013-02-03 17:12:00 UTC (rev 313)
@@ -8,13 +8,14 @@
tutti.option.version.description=Version courante de l'application
tutti.property.attachment=Pièce jointe
tutti.property.caracteristic=Caractéristique
-tutti.property.codeMemo=Code Memo
tutti.property.country=Pays
tutti.property.cruise=Campagne
+tutti.property.cruiseCode=Code campagne
tutti.property.date=Date
tutti.property.department=Département
tutti.property.firstName=Prénom
tutti.property.fishingOperation=Trait
+tutti.property.fishingOperationLocation=Lieu
tutti.property.fractionName=Fraction
tutti.property.gear=Engin
tutti.property.genusSpecies=Nom scientifique
@@ -29,6 +30,7 @@
tutti.property.parameterName=Paramètre
tutti.property.program=Série de campagne
tutti.property.protocol=Protocol de saisie
+tutti.property.refTaxCode=Code permanent
tutti.property.sortedUnsortedCategory=Vrac / Hors Vrac
tutti.property.species=Espèce
tutti.property.stationNumber=Numéro de station
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/accidental/AccidentalBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -221,7 +221,7 @@
// Species (by code) column
Decorator<Species> decorator = getDecorator(
- Species.class, DecoratorService.SPECIES_BY_CODE);
+ Species.class, DecoratorService.SPECIES_BY_REF_TAX_CODE);
addComboDataColumnToModel(columnModel,
AccidentalBatchTableModel.SPECIES_BY_CODE,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -225,7 +225,7 @@
// Species (by code) column
Decorator<Species> decorator = getDecorator(
- Species.class, DecoratorService.SPECIES_BY_CODE);
+ Species.class, DecoratorService.SPECIES_BY_REF_TAX_CODE);
addComboDataColumnToModel(columnModel,
BenthosBatchTableModel.SPECIES_BY_CODE,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-02-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -221,7 +221,7 @@
{ // Species (by code) column
Decorator<Species> decorator = getDecorator(
- Species.class, DecoratorService.SPECIES_BY_CODE);
+ Species.class, DecoratorService.SPECIES_BY_REF_TAX_CODE);
addComboDataColumnToModel(columnModel,
PlanktonBatchTableModel.SPECIES_BY_CODE,
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-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -40,7 +40,6 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiUI;
import fr.ifremer.tutti.ui.swing.content.operation.AbstractTuttiBatchTableUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
@@ -78,6 +77,7 @@
import java.io.Serializable;
import java.util.EnumMap;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import static org.nuiton.i18n.I18n._;
@@ -96,6 +96,9 @@
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 final Set<String> SAMPLING_PROPERTIES = Sets.newHashSet(
SpeciesBatchRowModel.PROPERTY_SAMPLE_CATEGORY,
SpeciesBatchRowModel.PROPERTY_SPECIES,
@@ -394,10 +397,40 @@
model.setTableViewMode(TableViewMode.ALL);
ui.setContextValue(model);
- //TODO Use protocol values if exists ?
- PersistenceService service =
- context.getService(PersistenceService.class);
- List<Caracteristic> lengthCaracterics = service.getAllCaracteristic();
+ List<Caracteristic> lengthCaracterics;
+
+ TuttiProtocol protocol = null;
+
+ if (context.isProtocolFilled()) {
+
+ // get loaded protocol
+
+ protocol = TuttiUIUtil.getProtocol(ui);
+ Preconditions.checkNotNull(
+ protocol,
+ "Could not find protocol in ui context");
+
+ lengthCaracterics = Lists.newArrayListWithCapacity(
+ protocol.sizeLengthClassesPmfmId());
+
+ Map<String, Caracteristic> allCaractericsById =
+ TuttiEntities.splitById(persistenceService.getAllCaracteristic());
+
+ if (!protocol.isLengthClassesPmfmIdEmpty()) {
+ for (String id : protocol.getLengthClassesPmfmId()) {
+ lengthCaracterics.add(allCaractericsById.get(id));
+ }
+ }
+
+ } else {
+
+ // use all caracteristics
+ lengthCaracterics = Lists.newArrayList(persistenceService.getAllCaracteristic());
+ }
+
+ List<Species> speciesList = persistenceService.getAllSpecies(protocol);
+
+ SPECIES_UNIVERSE_CONTEXT_ENTRY.setContextValue(ui, speciesList);
FREQUENCY_LENGTH_CONTEXT_ENTRY.setContextValue(ui, lengthCaracterics);
}
@@ -412,6 +445,9 @@
List<SampleCategoryType> samplingOrder;
+ List<Species> speciesUniverse =
+ SPECIES_UNIVERSE_CONTEXT_ENTRY.getContextValue(ui);
+
List<Species> allSpecies;
TuttiProtocol protocol = null;
@@ -439,8 +475,7 @@
SampleCategoryType.maturity,
SampleCategoryType.age);
- allSpecies = Lists.newArrayList(
- persistenceService.getAllSpecies());
+ allSpecies = Lists.newArrayList(speciesUniverse);
// each species can use any category
for (Species species : allSpecies) {
@@ -464,17 +499,18 @@
// fill available species from protocol
- allSpecies = Lists.newArrayList();
- List<SpeciesProtocol> protocolSpecies = protocol.getSpecies();
- for (SpeciesProtocol protocolSpecy : protocolSpecies) {
- Species species = persistenceService.getSpecies(
- protocolSpecy.getSpeciesId());
- 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);
+ allSpecies = Lists.newArrayListWithCapacity(protocol.sizeSpecies());
+ if (!protocol.isSpeciesEmpty()) {
+ Map<String, Species> map = TuttiEntities.splitById(speciesUniverse);
+ for (SpeciesProtocol protocolSpecy : protocol.getSpecies()) {
+ Species species = map.get(protocolSpecy.getSpeciesId());
+ 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);
+ }
}
}
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-03 17:11:07 UTC (rev 312)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/split/CreateSpeciesBatchUIHandler.java 2013-02-03 17:12:00 UTC (rev 313)
@@ -126,7 +126,7 @@
Species newValue = (Species) evt.getNewValue();
if (log.isInfoEnabled()) {
- log.info("New Selected species " + (newValue == null ? null : newValue.getCodeMemo()));
+ log.info("New Selected species " + (newValue == null ? null : newValue.getRefTaxCode()));
}
if (newValue == null || source.getSpeciesUsed() == null) {
1
0
r312 - trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence
by tchemit@users.forge.codelutin.com 03 Feb '13
by tchemit@users.forge.codelutin.com 03 Feb '13
03 Feb '13
Author: tchemit
Date: 2013-02-03 18:11:07 +0100 (Sun, 03 Feb 2013)
New Revision: 312
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/312
Log:
fix persistence test config using new config layout
Modified:
trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java
Modified: trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java
===================================================================
--- trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-02-03 17:10:42 UTC (rev 311)
+++ trunk/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/DatabaseResource.java 2013-02-03 17:11:07 UTC (rev 312)
@@ -148,7 +148,9 @@
applicationConfig.loadDefaultOptions(
TuttiPersistenceConfigOption.values());
applicationConfig.setDefaultOption("tutti.data.directory",
- resourceDirectory.getAbsolutePath());
+ new File(resourceDirectory,"data").getAbsolutePath());
+ applicationConfig.setDefaultOption("tutti.config.directory",
+ new File(resourceDirectory,"config").getAbsolutePath());
applicationConfig.parse();
config = new TuttiPersistenceConfig(applicationConfig);
1
0