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
December 2012
- 2 participants
- 109 discussions
r124 - in trunk/tutti-service/src/main: java/fr/ifremer/tutti/service resources/i18n
by tchemit@users.forge.codelutin.com 29 Dec '12
by tchemit@users.forge.codelutin.com 29 Dec '12
29 Dec '12
Author: tchemit
Date: 2012-12-29 15:50:59 +0100 (Sat, 29 Dec 2012)
New Revision: 124
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/124
Log:
add LabelAware decorator contract + missing i18n key
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
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 2012-12-29 11:32:20 UTC (rev 123)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java 2012-12-29 14:50:59 UTC (rev 124)
@@ -42,6 +42,8 @@
import org.nuiton.util.decorator.Decorator;
import org.nuiton.util.decorator.DecoratorProvider;
+import java.io.Serializable;
+
import static org.nuiton.i18n.I18n.n_;
/**
@@ -52,6 +54,16 @@
*/
public class DecoratorService extends AbstractTuttiService {
+ /**
+ * A contract to decorate some objects
+ * (not known at this level but with a label property to display them).
+ *
+ * @since 0.3
+ */
+ public interface LabelAware extends Serializable {
+ String getLabel();
+ }
+
public static final String SPECIES_BY_CODE = "byCode";
public static final String SPECIES_BY_GENUS = "byGenus";
@@ -104,6 +116,7 @@
registerMultiJXPathDecorator(Species.class, SPECIES_BY_GENUS, "${genusSpecies}$s", SEPARATOR, " - ");
registerMultiJXPathDecorator(SpeciesProtocol.class, "${speciesId}", SEPARATOR, " - ");
registerMultiJXPathDecorator(Attachment.class, "${name}$s", SEPARATOR, " - ");
+ registerMultiJXPathDecorator(LabelAware.class, "${label}$s", SEPARATOR, " - ");
registerDecorator(new Decorator<Float>(Float.class) {
private static final long serialVersionUID = 1L;
@@ -133,6 +146,7 @@
n_("tutti.property.user");
n_("tutti.property.strata");
n_("tutti.property.codeMemo");
+ n_("tutti.property.species");
n_("tutti.property.genusSpecies");
n_("tutti.property.sortedUnsortedCategory");
n_("tutti.property.macroWasteCategory");
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 2012-12-29 11:32:20 UTC (rev 123)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2012-12-29 14:50:59 UTC (rev 124)
@@ -20,6 +20,7 @@
tutti.property.protocol=Protocol de saisie
tutti.property.seaState=État de la mer
tutti.property.sortedUnsortedCategory=Vrac / Hors Vrac
+tutti.property.species=Espèce
tutti.property.stationNumber=Numéro de station
tutti.property.strata=Strate d'association
tutti.property.user=Utilisateur
1
0
Author: tchemit
Date: 2012-12-29 12:32:20 +0100 (Sat, 29 Dec 2012)
New Revision: 123
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/123
Log:
up to mavenpom 3.4.7 + use snapshot of jaxx
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-12-28 16:41:38 UTC (rev 122)
+++ trunk/pom.xml 2012-12-29 11:32:20 UTC (rev 123)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>3.4.6</version>
+ <version>3.4.7</version>
</parent>
<groupId>fr.ifremer</groupId>
@@ -81,9 +81,6 @@
<platform>forge.codelutin.com</platform>
<projectId>tutti</projectId>
- <!-- Remove this when using mavenpom 3.4.7 -->
- <compilerPluginVersion>2.5.1</compilerPluginVersion>
-
<!-- libraries version -->
<nuitonUtilsVersion>2.6.5</nuitonUtilsVersion>
@@ -94,7 +91,7 @@
<h2Version>1.3.168</h2Version>
<postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion>
- <jaxxVersion>2.5.8</jaxxVersion>
+ <jaxxVersion>2.5.9-SNAPSHOT</jaxxVersion>
<swingXVersion>1.6.4</swingXVersion>
<xworkVersion>2.3.7</xworkVersion>
1
0
r122 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: content/protocol util/table
by kmorin@users.forge.codelutin.com 28 Dec '12
by kmorin@users.forge.codelutin.com 28 Dec '12
28 Dec '12
Author: kmorin
Date: 2012-12-28 17:41:38 +0100 (Fri, 28 Dec 2012)
New Revision: 122
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/122
Log:
refs ##1810: [PROTOCOLE] Ecran de saisie
colonnes des esp?\195?\168ces ordonnables
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesColumnIdentifier.java
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/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/util/table/ColumnIdentifier.java
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesColumnIdentifier.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesColumnIdentifier.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesColumnIdentifier.java 2012-12-28 16:41:38 UTC (rev 122)
@@ -0,0 +1,35 @@
+
+package fr.ifremer.tutti.ui.swing.content.protocol;
+
+import fr.ifremer.tutti.persistence.entities.protocol.SampleCategoryEnum;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
+
+/**
+ * Column identifier containing the SampleCategoryEnum associated to the column
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 0.3
+ */
+public class EditProtocolSpeciesColumnIdentifier extends ColumnIdentifier<EditProtocolSpeciesRowModel> {
+
+ /** SampleCategoryEnum associated to the column. It is used to retain order of the columns */
+ protected SampleCategoryEnum sampleCategory;
+
+ protected EditProtocolSpeciesColumnIdentifier(String propertyName, String headerI18nKey, String headerTipI18nKey, SampleCategoryEnum sampleCategory) {
+ super(propertyName, headerI18nKey, headerTipI18nKey);
+ this.sampleCategory = sampleCategory;
+ }
+
+ public static EditProtocolSpeciesColumnIdentifier newId(String propertyName, String headerI18nKey, String headerTipI18nKey, SampleCategoryEnum sampleCategory) {
+ return new EditProtocolSpeciesColumnIdentifier(propertyName, headerI18nKey, headerTipI18nKey, sampleCategory);
+ }
+
+ public SampleCategoryEnum getSampleCategory() {
+ return sampleCategory;
+ }
+
+ public void setSampleCategory(SampleCategoryEnum sampleCategory) {
+ this.sampleCategory = sampleCategory;
+ }
+
+}
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 2012-12-28 16:35:52 UTC (rev 121)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java 2012-12-28 16:41:38 UTC (rev 122)
@@ -24,6 +24,7 @@
* #L%
*/
+import fr.ifremer.tutti.persistence.entities.protocol.SampleCategoryEnum;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import javax.swing.table.TableColumnModel;
@@ -37,35 +38,41 @@
*/
public class EditProtocolSpeciesTableModel extends AbstractTuttiTableModel<EditProtocolSpeciesRowModel> {
- public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SPECIES_ID = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SPECIES_ID = EditProtocolSpeciesColumnIdentifier.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"),
+ SampleCategoryEnum.speciesId);
- public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SORTED_UNSORTED_ENABLED = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SORTED_UNSORTED_ENABLED = EditProtocolSpeciesColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_SORTED_UNSORTED_ENABLED,
n_("tutti.table.protocol.species.header.sortedUnsorted"),
- n_("tutti.table.protocol.species.header.sortedUnsorted"));
+ n_("tutti.table.protocol.species.header.sortedUnsorted"),
+ SampleCategoryEnum.sortedUnsorted);
- public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SIZE_CATEGORY_ENABLED = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SIZE_CATEGORY_ENABLED = EditProtocolSpeciesColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_SIZE_CATEGORY_ENABLED,
n_("tutti.table.protocol.species.header.sizeCategory"),
- n_("tutti.table.protocol.species.header.sizeCategory"));
+ n_("tutti.table.protocol.species.header.sizeCategory"),
+ SampleCategoryEnum.size);
- public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SEX_ENABLED = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SEX_ENABLED = EditProtocolSpeciesColumnIdentifier.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"),
+ SampleCategoryEnum.sex);
- public static final ColumnIdentifier<EditProtocolSpeciesRowModel> MATURITY_ENABLED = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<EditProtocolSpeciesRowModel> MATURITY_ENABLED = EditProtocolSpeciesColumnIdentifier.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"),
+ SampleCategoryEnum.maturity);
- public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SIZE_FRENQUENCY_PMFM_ID = ColumnIdentifier.newId(
+ public static final ColumnIdentifier<EditProtocolSpeciesRowModel> SIZE_FRENQUENCY_PMFM_ID = EditProtocolSpeciesColumnIdentifier.newId(
EditProtocolSpeciesRowModel.PROPERTY_SIZE_FRENQUENCY_PMFM,
n_("tutti.table.protocol.species.header.sizeFrequency"),
- n_("tutti.table.protocol.species.header.sizeFrequency"));
+ n_("tutti.table.protocol.species.header.sizeFrequency"),
+ SampleCategoryEnum.age);
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 2012-12-28 16:35:52 UTC (rev 121)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2012-12-28 16:41:38 UTC (rev 122)
@@ -29,6 +29,7 @@
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
+import fr.ifremer.tutti.persistence.entities.protocol.SampleCategoryEnum;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
@@ -37,20 +38,27 @@
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import fr.ifremer.tutti.ui.swing.content.protocol.EditProtocolSpeciesColumnIdentifier;
import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import fr.ifremer.tutti.ui.swing.util.table.TableRowModificationListener;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
+import javax.swing.event.ChangeEvent;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
+import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableColumnModelEvent;
+import javax.swing.event.TableColumnModelListener;
import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import jaxx.runtime.swing.editor.bean.BeanDoubleList;
import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer;
@@ -139,51 +147,50 @@
(JXPathDecorator<Caracteristic>) decoratorService.getDecoratorByType(Caracteristic.class);
DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt();
- {
+ EditProtocolUIModel model = ui.getModel();
+ List<SampleCategoryEnum> sampleOrders = model.getSampleCategoryOrder();
+ for (SampleCategoryEnum sampleOrder : sampleOrders) {
+ switch (sampleOrder) {
+ case speciesId:
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(Species.class),
+ EditProtocolSpeciesTableModel.SPECIES_ID);
+ break;
+
+ case sortedUnsorted:
+ addBooleanColumnToModel(columnModel,
+ EditProtocolSpeciesTableModel.SORTED_UNSORTED_ENABLED,
+ table);
+ break;
+
+ case size:
+ addBooleanColumnToModel(columnModel,
+ EditProtocolSpeciesTableModel.SIZE_CATEGORY_ENABLED,
+ table);
+ break;
- addColumnToModel(columnModel,
- null,
- newTableCellRender(Species.class),
- EditProtocolSpeciesTableModel.SPECIES_ID);
- }
-
- {
+ case sex:
+ addBooleanColumnToModel(columnModel,
+ EditProtocolSpeciesTableModel.SEX_ENABLED,
+ table);
+ break;
+
+ case maturity:
+ addBooleanColumnToModel(columnModel,
+ EditProtocolSpeciesTableModel.MATURITY_ENABLED,
+ table);
+ break;
- addBooleanColumnToModel(columnModel,
- EditProtocolSpeciesTableModel.SORTED_UNSORTED_ENABLED,
- table);
+ case age:
+ addComboDataColumnToModel(columnModel,
+ EditProtocolSpeciesTableModel.SIZE_FRENQUENCY_PMFM_ID,
+ decorator,
+ Lists.newArrayList(allLengthStepPmfm.values()));
+
+ }
}
-
- {
- addBooleanColumnToModel(columnModel,
- EditProtocolSpeciesTableModel.SIZE_CATEGORY_ENABLED,
- table);
- }
-
- {
-
- addBooleanColumnToModel(columnModel,
- EditProtocolSpeciesTableModel.SEX_ENABLED,
- table);
- }
-
- {
-
- addBooleanColumnToModel(columnModel,
- EditProtocolSpeciesTableModel.MATURITY_ENABLED,
- table);
- }
-
- {
-
- addComboDataColumnToModel(columnModel,
- EditProtocolSpeciesTableModel.SIZE_FRENQUENCY_PMFM_ID,
- decorator,
- Lists.newArrayList(allLengthStepPmfm.values()));
- }
-
-
return columnModel;
}
@@ -196,7 +203,7 @@
if (protocolId == null) {
// create new protocol
-
+
if (log.isDebugEnabled()) {
log.debug("Will create a new protocol");
}
@@ -211,6 +218,7 @@
log.debug("Will edit protocol: " + protocolId);
}
}
+
listModelIsModify(model);
ui.setContextValue(model);
@@ -275,8 +283,31 @@
});
JXTable table = ui.getSpeciesTable();
- TableColumnModel columnModel = createTableColumnModel(
+ final TableColumnModel columnModel = createTableColumnModel(
table.getDefaultRenderer(Object.class));
+ columnModel.addColumnModelListener(new TableColumnModelListener() {
+
+ public void columnAdded(TableColumnModelEvent e) {
+ }
+
+ public void columnRemoved(TableColumnModelEvent e) {
+ }
+
+ public void columnMoved(TableColumnModelEvent e) {
+ if (e.getFromIndex() != e.getToIndex()) {
+ List<SampleCategoryEnum> sampleOrders = getModel().getSampleCategoryOrder();
+ SampleCategoryEnum sampleOrder = sampleOrders.remove(e.getFromIndex());
+ sampleOrders.add(e.getToIndex(), sampleOrder);
+ }
+ }
+
+ public void columnMarginChanged(ChangeEvent e) {
+ }
+
+ public void columnSelectionChanged(ListSelectionEvent e) {
+ }
+ });
+
EditProtocolSpeciesTableModel tableModel =
new EditProtocolSpeciesTableModel(columnModel);
@@ -395,8 +426,10 @@
// split the hydro grouped pmfm
List<String> hydroPmfm = bean.getHydrologyPmfmId();
List<String> allIds = Lists.newArrayList();
- for (String id : hydroPmfm) {
- allIds.addAll(hydroCaracteristics.get(id));
+ if (hydroPmfm != null) {
+ for (String id : hydroPmfm) {
+ allIds.addAll(hydroCaracteristics.get(id));
+ }
}
bean.setHydrologyPmfmId(allIds);
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 2012-12-28 16:35:52 UTC (rev 121)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIModel.java 2012-12-28 16:41:38 UTC (rev 122)
@@ -25,6 +25,7 @@
*/
import com.google.common.collect.Lists;
+import fr.ifremer.tutti.persistence.entities.protocol.SampleCategoryEnum;
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
@@ -52,6 +53,8 @@
public static final String PROPERTY_HYDROLOGY_PMFM_ID = "hydrologyPmfmId";
public static final String PROPERTY_SPECIES = "species";
+
+ public static final String PROPERTY_SAMPLE_CATEGORY_ORDER = "sampleCategoryOrder";
protected String name;
@@ -65,6 +68,14 @@
protected List<SpeciesProtocol> species;
+ protected List<SampleCategoryEnum> sampleCategoryOrder = Lists.newArrayList(
+ SampleCategoryEnum.speciesId,
+ SampleCategoryEnum.sortedUnsorted,
+ SampleCategoryEnum.size,
+ SampleCategoryEnum.sex,
+ SampleCategoryEnum.maturity,
+ SampleCategoryEnum.age);
+
protected static Binder<EditProtocolUIModel, TuttiProtocol> toBeanBinder =
BinderFactory.newBinder(EditProtocolUIModel.class,
TuttiProtocol.class);
@@ -160,4 +171,14 @@
this.species = species;
firePropertyChange(PROPERTY_SPECIES, oldValue, species);
}
+
+ public List<SampleCategoryEnum> getSampleCategoryOrder() {
+ return sampleCategoryOrder;
+ }
+
+ public void setSampleCategoryOrder(List<SampleCategoryEnum> sampleCategoryOrder) {
+ Object oldValue = getSampleCategoryOrder();
+ this.sampleCategoryOrder = sampleCategoryOrder;
+ firePropertyChange(PROPERTY_SAMPLE_CATEGORY_ORDER, oldValue, sampleCategoryOrder);
+ }
}
\ No newline at end of file
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/ColumnIdentifier.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/ColumnIdentifier.java 2012-12-28 16:35:52 UTC (rev 121)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/ColumnIdentifier.java 2012-12-28 16:41:38 UTC (rev 122)
@@ -50,7 +50,7 @@
headerTipI18nKey);
}
- ColumnIdentifier(String propertyName,
+ protected ColumnIdentifier(String propertyName,
String headerI18nKey,
String headerTipI18nKey) {
this.propertyName = propertyName;
1
0
28 Dec '12
Author: kmorin
Date: 2012-12-28 17:35:52 +0100 (Fri, 28 Dec 2012)
New Revision: 121
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/121
Log:
refs ##1810: [PROTOCOLE] Ecran de saisie
ajout d'une entree dans l'enum des colonnes des especes
Modified:
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
===================================================================
(Binary files differ)
1
0
r120 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: content/operation/fishing/environment content/operation/fishing/gearshooting content/operation/fishing/hydrology content/protocol util util/editor
by kmorin@users.forge.codelutin.com 28 Dec '12
by kmorin@users.forge.codelutin.com 28 Dec '12
28 Dec '12
Author: kmorin
Date: 2012-12-28 16:10:31 +0100 (Fri, 28 Dec 2012)
New Revision: 120
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/120
Log:
refs #1812: [Ecran Trait] Tableaux de pmfm
editeurs en fonction du type de valeur des caract?\195?\169ristiques
Added:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.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/util/HydrologicCaracteristicUtil.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2012-12-28 11:52:41 UTC (rev 119)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2012-12-28 15:10:31 UTC (rev 120)
@@ -27,8 +27,11 @@
import com.google.common.collect.Lists;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import fr.ifremer.tutti.ui.swing.util.table.CaracteristicRow;
@@ -75,17 +78,22 @@
@Override
protected TableColumnModel createTableColumnModel(TableCellRenderer defaultRenderer) {
- DefaultTableColumnModelExt columnModel =
- new DefaultTableColumnModelExt();
-
+ DefaultTableColumnModelExt columnModel = new DefaultTableColumnModelExt();
+
{
- addColumnToModel(columnModel, null, newTableCellRender(Caracteristic.class), EnvironmentTableModel.KEY);
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(Caracteristic.class),
+ EnvironmentTableModel.KEY);
}
{
- addColumnToModel(columnModel, EnvironmentTableModel.VALUE);
+ addColumnToModel(columnModel,
+ new CaracteristicValueEditor(context),
+ new CaracteristicValueRenderer(context),
+ EnvironmentTableModel.VALUE);
}
@@ -221,6 +229,7 @@
keyComboModel.addElement(row);
}
}
+ keyCombo.setEnabled(keyCombo.getItemCount() > 0);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2012-12-28 11:52:41 UTC (rev 119)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2012-12-28 15:10:31 UTC (rev 120)
@@ -29,6 +29,8 @@
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import fr.ifremer.tutti.ui.swing.util.table.CaracteristicRow;
@@ -80,12 +82,18 @@
{
- addColumnToModel(columnModel, null, newTableCellRender(Caracteristic.class), GearShootingTableModel.KEY);
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(Caracteristic.class),
+ GearShootingTableModel.KEY);
}
{
- addColumnToModel(columnModel, GearShootingTableModel.VALUE);
+ addColumnToModel(columnModel,
+ new CaracteristicValueEditor(context),
+ new CaracteristicValueRenderer(context),
+ GearShootingTableModel.VALUE);
}
@@ -221,6 +229,7 @@
keyComboModel.addElement(row);
}
}
+ keyCombo.setEnabled(keyCombo.getItemCount() > 0);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2012-12-28 11:52:41 UTC (rev 119)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2012-12-28 15:10:31 UTC (rev 120)
@@ -37,7 +37,7 @@
* @author kmorin
* @since 0.3
*/
-public class HydrologyRowModel extends AbstractTuttiBeanUIModel<CaracteristicRow, HydrologyRowModel> {
+public class HydrologyRowModel extends AbstractTuttiBeanUIModel<Caracteristic, HydrologyRowModel> {
private static final Log log = LogFactory.getLog(HydrologyRowModel.class);
@@ -46,15 +46,15 @@
public static final String PROPERTY_GEAR_SHOOTING_END_VALUE = "gearShootingEndValue";
public static final String PROPERTY_AVERAGE_VALUE = "averageValue";
- protected static final Binder<CaracteristicRow, HydrologyRowModel> fromBeanBinder =
- BinderFactory.newBinder(CaracteristicRow.class,
+ protected static final Binder<Caracteristic, HydrologyRowModel> fromBeanBinder =
+ BinderFactory.newBinder(Caracteristic.class,
HydrologyRowModel.class);
- protected static final Binder<HydrologyRowModel, CaracteristicRow> toBeanBinder =
+ protected static final Binder<HydrologyRowModel, Caracteristic> toBeanBinder =
BinderFactory.newBinder(HydrologyRowModel.class,
- CaracteristicRow.class);
+ Caracteristic.class);
- protected String key;
+ protected Caracteristic key;
protected Object gearShootingStartValue;
@@ -63,14 +63,14 @@
protected Object averageValue;
public HydrologyRowModel() {
- super(CaracteristicRow.class, fromBeanBinder, toBeanBinder);
+ super(Caracteristic.class, fromBeanBinder, toBeanBinder);
}
- public HydrologyRowModel(String key) {
+ public HydrologyRowModel(Caracteristic key) {
this(key, null, null, null);
}
- public HydrologyRowModel(String key, Object gearShootingStartValue,
+ public HydrologyRowModel(Caracteristic key, Object gearShootingStartValue,
Object gearShootingEndValue, Object averageValue) {
this();
this.key = key;
@@ -79,11 +79,11 @@
this.averageValue = averageValue;
}
- public String getKey() {
+ public Caracteristic getKey() {
return key;
}
- public void setKey(String key) {
+ public void setKey(Caracteristic key) {
Object oldValue = getKey();
this.key = key;
firePropertyChange(PROPERTY_KEY, oldValue, key);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2012-12-28 11:52:41 UTC (rev 119)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2012-12-28 15:10:31 UTC (rev 120)
@@ -32,6 +32,8 @@
import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil;
import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil.Type;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueEditor;
+import fr.ifremer.tutti.ui.swing.util.editor.CaracteristicValueRenderer;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import fr.ifremer.tutti.ui.swing.util.table.CaracteristicRow;
@@ -65,7 +67,7 @@
protected HydrologyTabUI ui;
- protected Map<String, Map<Type, Caracteristic>> availableCaracteristics;
+ protected Map<Caracteristic, Map<Type, Caracteristic>> availableCaracteristics;
public HydrologyTabUIHandler(EditFishingOperationUI parentUi, HydrologyTabUI ui) {
super(parentUi.getHandler().getContext(),
@@ -93,22 +95,34 @@
{
- addColumnToModel(columnModel, HydrologyTableModel.KEY);
+ addColumnToModel(columnModel,
+ null,
+ newTableCellRender(Caracteristic.class),
+ HydrologyTableModel.KEY);
}
{
- addColumnToModel(columnModel, HydrologyTableModel.GEAR_SHOOTING_START_VALUE);
+ addColumnToModel(columnModel,
+ new CaracteristicValueEditor(context),
+ new CaracteristicValueRenderer(context),
+ HydrologyTableModel.GEAR_SHOOTING_START_VALUE);
}
{
- addColumnToModel(columnModel, HydrologyTableModel.GEAR_SHOOTING_END_VALUE);
+ addColumnToModel(columnModel,
+ new CaracteristicValueEditor(context),
+ new CaracteristicValueRenderer(context),
+ HydrologyTableModel.GEAR_SHOOTING_END_VALUE);
}
{
- addColumnToModel(columnModel, HydrologyTableModel.AVERAGE_VALUE);
+ addColumnToModel(columnModel,
+ new CaracteristicValueEditor(context),
+ new CaracteristicValueRenderer(context),
+ HydrologyTableModel.AVERAGE_VALUE);
}
@@ -140,10 +154,11 @@
if (hydrologyPmfm != null) {
for (Caracteristic caracteristic : hydrologyPmfm) {
String name = HydrologicCaracteristicUtil.getGlobalName(caracteristic.getName());
- Map<Type, Caracteristic> values = availableCaracteristics.get(name);
+ Caracteristic globalCaracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name, caracteristic);
+ Map<Type, Caracteristic> values = availableCaracteristics.get(globalCaracteristic);
if (values == null) {
values = Maps.newHashMap();
- availableCaracteristics.put(name, values);
+ availableCaracteristics.put(globalCaracteristic, values);
}
Type type = HydrologicCaracteristicUtil.getTypeOfCaracteristic(caracteristic);
values.put(type, caracteristic);
@@ -171,7 +186,7 @@
final JComboBox keyCombo = ui.getNewRowKey();
keyCombo.setModel(new DefaultComboBoxModel());
-
+ keyCombo.setRenderer(newListCellRender(Caracteristic.class));
keyCombo.getModel().addListDataListener(new ListDataListener() {
public void intervalAdded(ListDataEvent e) {
@@ -241,11 +256,11 @@
*/
public void addRow() {
JComboBox keyCombo = ui.getNewRowKey();
- CaracteristicRow key = (CaracteristicRow) keyCombo.getSelectedItem();
- HydrologyRowModel row = new HydrologyRowModel(key.getName());
+ Caracteristic key = (Caracteristic) keyCombo.getSelectedItem();
+ HydrologyRowModel row = new HydrologyRowModel(key);
getTableModel().addNewRow(getTable().getRowCount(), row);
- Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(key.getName());
+ Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(key);
CaracteristicMap map = new CaracteristicMap();
for (Caracteristic caracteristic : caracteristics.values()) {
map.put(caracteristic, null);
@@ -266,33 +281,36 @@
List<HydrologyRowModel> rows = Lists.newArrayList();
Collection<Caracteristic> selectedCaracteristics = hydrologyCaracteristics.keySet();
- Set<String> availableCaracteristicIds = availableCaracteristics.keySet();
+ Set<Caracteristic> globalCaracteristics = availableCaracteristics.keySet();
- for (String caracteristicId : availableCaracteristicIds) {
- Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(caracteristicId);
+ for (Caracteristic availableCaracteristic : globalCaracteristics) {
+ Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(availableCaracteristic);
//should add the global caracteristic to the combo or to the table?
boolean selectedCaracteristic = false;
+ Caracteristic sample = null;
for (Caracteristic caracteristic : caracteristics.values()) {
selectedCaracteristic = selectedCaracteristic || selectedCaracteristics.contains(caracteristic);
+ sample = caracteristic;
}
if (selectedCaracteristic) {
- HydrologyRowModel row = new HydrologyRowModel(caracteristicId,
+ HydrologyRowModel row = new HydrologyRowModel(availableCaracteristic,
hydrologyCaracteristics.get(caracteristics.get(Type.START)),
hydrologyCaracteristics.get(caracteristics.get(Type.END)),
hydrologyCaracteristics.get(caracteristics.get(Type.AVERAGE)));
rows.add(row);
} else {
- Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(caracteristicId);
- CaracteristicRow row = new CaracteristicRow(caracteristic.getName(), caracteristic);
- keyComboModel.addElement(row);
+ keyComboModel.addElement(availableCaracteristic);
}
}
+ keyCombo.setEnabled(keyCombo.getItemCount() > 0);
+
AbstractTuttiTableModel<HydrologyRowModel> tableModel = getTableModel();
tableModel.setRows(rows, false);
+
}
}
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 2012-12-28 11:52:41 UTC (rev 119)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2012-12-28 15:10:31 UTC (rev 120)
@@ -321,7 +321,7 @@
Collection<String> availableCaracteristicNames = hydroCaracteristics.keySet();
List<Caracteristic> availableCaracteristics = Lists.newArrayList();
for (String name : availableCaracteristicNames) {
- Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name);
+ Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(name, null);
availableCaracteristics.add(caracteristic);
}
List<String> hydrologyPmfm = model.getHydrologyPmfmId();
@@ -330,7 +330,7 @@
Collection<String> ids = hydroCaracteristics.get(caracteristicName);
for (String caracteristicId : hydrologyPmfm) {
if (ids.contains(caracteristicId)) {
- Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(caracteristicName);
+ Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(caracteristicName, null);
selection.add(caracteristic);
break;
}
@@ -345,6 +345,8 @@
// if new protocol can already cancel his creation
model.setModify(model.isCreate());
+
+ table.getTableHeader().setReorderingAllowed(true);
}
protected void initDoubleList(BeanDoubleList<Caracteristic> widget,
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java 2012-12-28 11:52:41 UTC (rev 119)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java 2012-12-28 15:10:31 UTC (rev 120)
@@ -46,10 +46,19 @@
return name;
}
- public static Caracteristic createGlobalCaracteristic(String name) {
+ public static Caracteristic createGlobalCaracteristic(String name, Caracteristic toClone) {
Caracteristic caracteristic = new Caracteristic();
caracteristic.setName(name);
caracteristic.setId(name);
+ if (toClone != null) {
+ caracteristic.setCategory(toClone.getCategory());
+ caracteristic.setBooleanType(toClone.isBooleanType());
+ caracteristic.setNumberType(toClone.isNumberType());
+ caracteristic.setQualitativeType(toClone.isQualitativeType());
+ caracteristic.setQualitativeValue(toClone.getQualitativeValue());
+ caracteristic.setTextType(toClone.isTextType());
+ caracteristic.setUnit(toClone.getUnit());
+ }
return caracteristic;
}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueEditor.java 2012-12-28 15:10:31 UTC (rev 120)
@@ -0,0 +1,94 @@
+
+package fr.ifremer.tutti.ui.swing.util.editor;
+
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import java.awt.Color;
+import java.awt.Component;
+import java.util.List;
+import javax.swing.AbstractCellEditor;
+import javax.swing.JComboBox;
+import javax.swing.JTable;
+import javax.swing.border.LineBorder;
+import javax.swing.table.TableCellEditor;
+import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.JAXXWidgetUtil;
+import jaxx.runtime.swing.editor.bean.BeanUIUtil;
+import jaxx.runtime.swing.editor.cell.NumberCellEditor;
+import jaxx.runtime.swing.renderer.DecoratorListCellRenderer;
+import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor;
+import org.jdesktop.swingx.autocomplete.ObjectToStringConverter;
+import org.nuiton.util.decorator.Decorator;
+
+/**
+ * Editor for the values of the caracteristics of the fishing operations.
+ * The editor depends on the caracteristic value type.
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 0.3
+ */
+public class CaracteristicValueEditor extends AbstractCellEditor implements TableCellEditor {
+
+ protected int caracteristicColumn;
+
+ protected TableCellEditor editor;
+
+ protected Decorator<CaracteristicQualitativeValue> decorator;
+
+ public CaracteristicValueEditor(TuttiUIContext context) {
+ this(0, context);
+ }
+
+ public CaracteristicValueEditor(int caracteristicColumn, TuttiUIContext context) {
+ super();
+ this.caracteristicColumn = caracteristicColumn;
+ DecoratorService decoratorService = context.getService(DecoratorService.class);
+ decorator = decoratorService.getDecoratorByType(CaracteristicQualitativeValue.class);
+ }
+
+ @Override
+ public Object getCellEditorValue() {
+ return editor.getCellEditorValue();
+ }
+
+ @Override
+ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+ editor = table.getDefaultEditor(Object.class);
+
+ Caracteristic caracteristic = (Caracteristic) table.getModel().getValueAt(row, caracteristicColumn);
+ if (caracteristic != null) {
+ if (caracteristic.isBooleanType()) {
+ editor = table.getDefaultEditor(Boolean.class);
+
+ } else if (caracteristic.isNumberType()) {
+ NumberCellEditor<Float> editor =
+ JAXXWidgetUtil.newNumberTableCellEditor(Float.class, false);
+ editor.getNumberEditor().setSelectAllTextOnError(true);
+ editor.getNumberEditor().getTextField().setBorder(new LineBorder(Color.GRAY, 2));
+ this.editor = editor;
+
+ } else if (caracteristic.isQualitativeType()) {
+ JComboBox comboBox = new JComboBox();
+ comboBox.setRenderer(new DecoratorListCellRenderer(decorator));
+
+ List<CaracteristicQualitativeValue> data = caracteristic.getQualitativeValue();
+ // add a null value at first position
+ if (!data.isEmpty() && data.get(0) != null) {
+ data.add(0, null);
+ }
+ SwingUtil.fillComboBox(comboBox, data, null);
+
+
+ ObjectToStringConverter converter = BeanUIUtil.newDecoratedObjectToStringConverter(decorator);
+ BeanUIUtil.decorate(comboBox, converter);
+ editor = new ComboBoxCellEditor(comboBox);
+ }
+ }
+
+ Component result = editor.getTableCellEditorComponent(table, value, isSelected, row, column);
+ return result;
+ }
+
+}
Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java (rev 0)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/editor/CaracteristicValueRenderer.java 2012-12-28 15:10:31 UTC (rev 120)
@@ -0,0 +1,58 @@
+
+package fr.ifremer.tutti.ui.swing.util.editor;
+
+import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.ui.swing.TuttiUIContext;
+import java.awt.Component;
+import javax.swing.JComboBox;
+import javax.swing.JTable;
+import javax.swing.table.TableCellRenderer;
+import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.editor.bean.BeanUIUtil;
+import jaxx.runtime.swing.renderer.DecoratorTableCellRenderer;
+import org.jdesktop.swingx.autocomplete.ComboBoxCellEditor;
+import org.jdesktop.swingx.autocomplete.ObjectToStringConverter;
+import org.nuiton.util.decorator.Decorator;
+
+/**
+ * Renderer for the values of the caracteristics of the fishing operations.
+ * The renderer depends on the caracteristic value type.
+ *
+ * @author kmorin <kmorin(a)codelutin.com>
+ * @since 0.3
+ */
+public class CaracteristicValueRenderer implements TableCellRenderer {
+
+ protected int caracteristicColumn;
+
+ protected Decorator<CaracteristicQualitativeValue> decorator;
+
+ public CaracteristicValueRenderer(TuttiUIContext context) {
+ this(0, context);
+ }
+
+ public CaracteristicValueRenderer(int caracteristicColumn, TuttiUIContext context) {
+ super();
+ this.caracteristicColumn = caracteristicColumn;
+ DecoratorService decoratorService = context.getService(DecoratorService.class);
+ decorator = decoratorService.getDecoratorByType(CaracteristicQualitativeValue.class);
+ }
+
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+ TableCellRenderer renderer = table.getDefaultRenderer(Object.class);
+ Caracteristic caracteristic = (Caracteristic) table.getModel().getValueAt(row, caracteristicColumn);
+ if (caracteristic != null) {
+ if (caracteristic.isBooleanType()) {
+ renderer = table.getDefaultRenderer(Boolean.class);
+
+ } else if (caracteristic.isQualitativeType()) {
+ renderer = new DecoratorTableCellRenderer(decorator);
+ }
+ }
+ Component result = renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+ return result;
+ }
+
+}
1
0
r119 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: content/operation content/operation/fishing/hydrology util
by kmorin@users.forge.codelutin.com 28 Dec '12
by kmorin@users.forge.codelutin.com 28 Dec '12
28 Dec '12
Author: kmorin
Date: 2012-12-28 12:52:41 +0100 (Fri, 28 Dec 2012)
New Revision: 119
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/119
Log:
group the caracteritics by type
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2012-12-28 09:17:49 UTC (rev 118)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2012-12-28 11:52:41 UTC (rev 119)
@@ -270,20 +270,18 @@
environmentModel.setEnvironmentCaracteristics(environmentCaracteristics);
//init hydrology
- HydrologyTabUIModel hydrologyModel =
- ui.getHydrologyTabContent().getModel();
+ HydrologyTabUIModel hydrologyModel = ui.getHydrologyTabContent().getModel();
hydrologyModel.setAvailableCaracteristics(persistenceService.getAllFishingOperationHydrologicCaracteristic());
hydrologyModel.addPropertyChangeListener(
EditFishingOperationUIModel.PROPERTY_HYDROLOGY_CARACTERISTICS,
new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
- model.setModify(true);
+ model.setHydrologyCaracteristics((CaracteristicMap) evt.getNewValue());
}
}
);
CaracteristicMap hydrologyCaracteristics = model.getHydrologyCaracteristics();
- ui.getModel().setHydrologyCaracteristics(hydrologyCaracteristics);
hydrologyModel.setHydrologyCaracteristics(hydrologyCaracteristics);
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2012-12-28 09:17:49 UTC (rev 118)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2012-12-28 11:52:41 UTC (rev 119)
@@ -54,7 +54,7 @@
BinderFactory.newBinder(HydrologyRowModel.class,
CaracteristicRow.class);
- protected Caracteristic key;
+ protected String key;
protected Object gearShootingStartValue;
@@ -66,11 +66,11 @@
super(CaracteristicRow.class, fromBeanBinder, toBeanBinder);
}
- public HydrologyRowModel(Caracteristic key) {
+ public HydrologyRowModel(String key) {
this(key, null, null, null);
}
- public HydrologyRowModel(Caracteristic key, Object gearShootingStartValue,
+ public HydrologyRowModel(String key, Object gearShootingStartValue,
Object gearShootingEndValue, Object averageValue) {
this();
this.key = key;
@@ -79,11 +79,11 @@
this.averageValue = averageValue;
}
- public Caracteristic getKey() {
+ public String getKey() {
return key;
}
- public void setKey(Caracteristic key) {
+ public void setKey(String key) {
Object oldValue = getKey();
this.key = key;
firePropertyChange(PROPERTY_KEY, oldValue, key);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2012-12-28 09:17:49 UTC (rev 118)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2012-12-28 11:52:41 UTC (rev 119)
@@ -25,16 +25,23 @@
*/
import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.ui.swing.content.operation.EditFishingOperationUI;
+import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil;
+import fr.ifremer.tutti.ui.swing.util.HydrologicCaracteristicUtil.Type;
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableUIHandler;
import fr.ifremer.tutti.ui.swing.util.table.CaracteristicRow;
import fr.ifremer.tutti.ui.swing.util.table.TableRowModificationListener;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.Collection;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.event.ListDataEvent;
@@ -58,6 +65,8 @@
protected HydrologyTabUI ui;
+ protected Map<String, Map<Type, Caracteristic>> availableCaracteristics;
+
public HydrologyTabUIHandler(EditFishingOperationUI parentUi, HydrologyTabUI ui) {
super(parentUi.getHandler().getContext(),
HydrologyRowModel.PROPERTY_GEAR_SHOOTING_START_VALUE,
@@ -84,7 +93,7 @@
{
- addColumnToModel(columnModel, null, newTableCellRender(Caracteristic.class), HydrologyTableModel.KEY);
+ addColumnToModel(columnModel, HydrologyTableModel.KEY);
}
{
@@ -122,6 +131,26 @@
public void beforeInitUI() {
HydrologyTabUIModel model = new HydrologyTabUIModel();
ui.setContextValue(model);
+
+ model.addPropertyChangeListener(HydrologyTabUIModel.PROPERTY_AVAILABLE_CARACTERISTICS, new PropertyChangeListener() {
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ List<Caracteristic> hydrologyPmfm = (List<Caracteristic>) evt.getNewValue();
+ availableCaracteristics = Maps.newHashMap();
+ if (hydrologyPmfm != null) {
+ for (Caracteristic caracteristic : hydrologyPmfm) {
+ String name = HydrologicCaracteristicUtil.getGlobalName(caracteristic.getName());
+ Map<Type, Caracteristic> values = availableCaracteristics.get(name);
+ if (values == null) {
+ values = Maps.newHashMap();
+ availableCaracteristics.put(name, values);
+ }
+ Type type = HydrologicCaracteristicUtil.getTypeOfCaracteristic(caracteristic);
+ values.put(type, caracteristic);
+ }
+ }
+ }
+ });
}
@Override
@@ -172,11 +201,23 @@
TuttiBeanMonitor<HydrologyRowModel> monitor = getRowMonitor();
HydrologyRowModel row = monitor.getBean();
if (row != null) {
- ui.getModel().setCaracteristic(row.getKey(),
- row.getGearShootingStartValue(),
- row.getGearShootingEndValue(),
- row.getAverageValue()
- );
+ Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(row.getKey());
+ CaracteristicMap map = new CaracteristicMap();
+ for (Type type : caracteristics.keySet()) {
+ Object value = null;
+ switch (type) {
+ case START:
+ value = row.getGearShootingStartValue();
+ break;
+ case END:
+ value = row.getGearShootingEndValue();
+ break;
+ case AVERAGE:
+ value = row.getAverageValue();
+ }
+ map.put(caracteristics.get(type), value);
+ }
+ ui.getModel().addCaracteristics(map);
}
}
};
@@ -199,13 +240,19 @@
* Adds a row with the parameter selected in the combo box
*/
public void addRow() {
-// JComboBox keyCombo = ui.getNewRowKey();
-// CaracteristicRow key = (CaracteristicRow) keyCombo.getSelectedItem();
-// HydrologyRowModel row = new HydrologyRowModel(key);
-// getTableModel().addNewRow(getTable().getRowCount(), row);
-// ui.getModel().setCaracteristic(row.getKey(), null, null, null);
-//
-// keyCombo.removeItem(key);
+ JComboBox keyCombo = ui.getNewRowKey();
+ CaracteristicRow key = (CaracteristicRow) keyCombo.getSelectedItem();
+ HydrologyRowModel row = new HydrologyRowModel(key.getName());
+ getTableModel().addNewRow(getTable().getRowCount(), row);
+
+ Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(key.getName());
+ CaracteristicMap map = new CaracteristicMap();
+ for (Caracteristic caracteristic : caracteristics.values()) {
+ map.put(caracteristic, null);
+ }
+ ui.getModel().addCaracteristics(map);
+
+ keyCombo.removeItem(key);
}
/**
@@ -213,28 +260,39 @@
*/
public void reset() {
CaracteristicMap hydrologyCaracteristics = ui.getModel().getHydrologyCaracteristics();
-
- List<HydrologyRowModel> rows = Lists.newArrayList();
- Collection<Caracteristic> caracteristics = hydrologyCaracteristics.keySet();
- for (Caracteristic key : hydrologyCaracteristics.keySet()) {
- rows.add(new HydrologyRowModel(key));
- }
-
- AbstractTuttiTableModel<HydrologyRowModel> tableModel = getTableModel();
- tableModel.setRows(rows, false);
-
JComboBox keyCombo = ui.getNewRowKey();
DefaultComboBoxModel keyComboModel = (DefaultComboBoxModel) keyCombo.getModel();
keyComboModel.removeAllElements();
- List<Caracteristic> availableCaracteristics = ui.getModel().getAvailableCaracteristics();
- log.info(availableCaracteristics);
- for (Caracteristic caracteristic : availableCaracteristics) {
- if (!caracteristics.contains(caracteristic)) {
+ List<HydrologyRowModel> rows = Lists.newArrayList();
+ Collection<Caracteristic> selectedCaracteristics = hydrologyCaracteristics.keySet();
+ Set<String> availableCaracteristicIds = availableCaracteristics.keySet();
+
+ for (String caracteristicId : availableCaracteristicIds) {
+ Map<Type, Caracteristic> caracteristics = availableCaracteristics.get(caracteristicId);
+
+ //should add the global caracteristic to the combo or to the table?
+ boolean selectedCaracteristic = false;
+ for (Caracteristic caracteristic : caracteristics.values()) {
+ selectedCaracteristic = selectedCaracteristic || selectedCaracteristics.contains(caracteristic);
+ }
+
+ if (selectedCaracteristic) {
+ HydrologyRowModel row = new HydrologyRowModel(caracteristicId,
+ hydrologyCaracteristics.get(caracteristics.get(Type.START)),
+ hydrologyCaracteristics.get(caracteristics.get(Type.END)),
+ hydrologyCaracteristics.get(caracteristics.get(Type.AVERAGE)));
+ rows.add(row);
+
+ } else {
+ Caracteristic caracteristic = HydrologicCaracteristicUtil.createGlobalCaracteristic(caracteristicId);
CaracteristicRow row = new CaracteristicRow(caracteristic.getName(), caracteristic);
keyComboModel.addElement(row);
}
}
+
+ AbstractTuttiTableModel<HydrologyRowModel> tableModel = getTableModel();
+ tableModel.setRows(rows, false);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java 2012-12-28 09:17:49 UTC (rev 118)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java 2012-12-28 11:52:41 UTC (rev 119)
@@ -42,6 +42,8 @@
*/
public class HydrologyTabUIModel extends AbstractTuttiTableUIModel<FishingOperation, HydrologyRowModel, HydrologyTabUIModel> {
+ public static final String PROPERTY_AVAILABLE_CARACTERISTICS = "availableCaracteristics";
+
protected CaracteristicMap hydrologyCaracteristics = new CaracteristicMap();
protected List<Caracteristic> availableCaracteristics;
@@ -67,13 +69,9 @@
this.hydrologyCaracteristics = hydrologyCaracteristics;
}
- public void setCaracteristic(Caracteristic param, Object gearShootingStartValue,
- Object gearShootingEndValue, Object averageValue) {
-
+ public void addCaracteristics(CaracteristicMap caracteristics) {
Object oldValue = Maps.newLinkedHashMap(hydrologyCaracteristics);
-// hydrologyCaracteristics.put(param + "." + GEAR_SHOOTING_START, gearShootingStartValue);
-// hydrologyCaracteristics.put(param + "." + GEAR_SHOOTING_END, gearShootingEndValue);
-// hydrologyCaracteristics.put(param + "." + AVERAGE, averageValue);
+ hydrologyCaracteristics.putAll(caracteristics);
firePropertyChange(EditFishingOperationUIModel.PROPERTY_HYDROLOGY_CARACTERISTICS, oldValue, hydrologyCaracteristics);
}
@@ -82,7 +80,9 @@
}
public void setAvailableCaracteristics(List<Caracteristic> availableCaracteristics) {
+ Object oldValue = getAvailableCaracteristics();
this.availableCaracteristics = availableCaracteristics;
+ firePropertyChange(PROPERTY_AVAILABLE_CARACTERISTICS, oldValue, availableCaracteristics);
}
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java 2012-12-28 09:17:49 UTC (rev 118)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java 2012-12-28 11:52:41 UTC (rev 119)
@@ -33,6 +33,12 @@
*/
public class HydrologicCaracteristicUtil {
+ public enum Type {
+ START,
+ END,
+ AVERAGE
+ }
+
public static String getGlobalName(String name) {
if (name.charAt(name.length() - 2) == '_') {
name = name.substring(0, name.length() - 2);
@@ -46,4 +52,23 @@
caracteristic.setId(name);
return caracteristic;
}
+
+ public static Type getTypeOfCaracteristic(Caracteristic caracteristic) {
+ String name = caracteristic.getName();
+ Type result = null;
+ if (name.charAt(name.length() - 2) == '_') {
+ char lastChar = name.charAt(name.length() - 1);
+ switch (lastChar) {
+ case 'S':
+ result = Type.START;
+ break;
+ case 'E':
+ result = Type.END;
+ break;
+ case 'A':
+ result = Type.AVERAGE;
+ }
+ }
+ return result;
+ }
}
1
0
28 Dec '12
Author: tchemit
Date: 2012-12-28 10:17:49 +0100 (Fri, 28 Dec 2012)
New Revision: 118
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/118
Log:
refs #1810: [PROTOCOLE] Ecran de saisie (add sampleCategoryOrder)
refs #1805: [Onglet Poisson] Assistance ?\195?\160 la saisie des lots de poissons (add isRowValid)
fix other batch table NPE
Modified:
trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties
trunk/tutti-persistence/src/main/xmi/tutti-persistence.zargo
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchTableModel.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SampleCategory.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.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/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/util/HydrologicCaracteristicUtil.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties
===================================================================
--- trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-persistence/src/main/xmi/tutti-persistence.properties 2012-12-28 09:17:49 UTC (rev 118)
@@ -40,5 +40,6 @@
fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.environmentPmfmId.stereotype=ordered
fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.hydrologyPmfmId.stereotype=ordered
fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.species.stereotype=ordered
+fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol.attribute.sampleCategoryOrder.stereotype=ordered
fr.ifremer.tutti.persistence.entities.referential.Caracteristic.attribute.qualitativeValue.stereotype=ordered
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/operation/catches/benthos/BenthosBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchTableModel.java 2012-12-28 09:17:49 UTC (rev 118)
@@ -84,6 +84,7 @@
public BenthosBatchTableModel(TableColumnModel columnModel) {
super(columnModel);
+ setNoneEditableCols();
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchTableModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchTableModel.java 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/plankton/PlanktonBatchTableModel.java 2012-12-28 09:17:49 UTC (rev 118)
@@ -76,6 +76,7 @@
public PlanktonBatchTableModel(TableColumnModel columnModel) {
super(columnModel);
+ setNoneEditableCols();
}
@Override
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SampleCategory.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SampleCategory.java 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SampleCategory.java 2012-12-28 09:17:49 UTC (rev 118)
@@ -65,4 +65,8 @@
public void setCategoryWeight(Float categoryWeight) {
this.categoryWeight = categoryWeight;
}
+
+ public boolean isValid() {
+ return categoryValue != null && categoryWeight != null;
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2012-12-28 09:17:49 UTC (rev 118)
@@ -456,7 +456,21 @@
return ageSampleCategory;
}
- // public int getRowCount() {
-// return frequency == null ? 0 : frequency.size();
-// }
+ public boolean isRowValid() {
+ boolean result = species != null;
+ if (result) {
+ result = weight != null;
+
+ if (!result) {
+
+ // No weight filled, so at least one sample category must be valid
+ result = sortedUnsortedSampleCategory.isValid() ||
+ sizeSampleCategory.isValid() ||
+ sexSampleCategory.isValid() ||
+ maturitySampleCategory.isValid() ||
+ ageSampleCategory.isValid();
+ }
+ }
+ return result;
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUIHandler.java 2012-12-28 09:17:49 UTC (rev 118)
@@ -45,6 +45,7 @@
import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor;
import fr.ifremer.tutti.ui.swing.util.editor.AttachmentCellComponent;
import fr.ifremer.tutti.ui.swing.util.editor.LongTextCellComponent;
+import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
@@ -53,6 +54,7 @@
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
+import java.io.Serializable;
import java.util.List;
import java.util.Set;
@@ -138,8 +140,9 @@
protected void onModelRowsChanged(List<SpeciesBatchRowModel> rows) {
super.onModelRowsChanged(rows);
+ // compute row valid
for (SpeciesBatchRowModel row : rows) {
- boolean rowValid = row.getSpecies() != null;
+ boolean rowValid = row.isRowValid();
row.setValid(rowValid);
}
// build the new sampling tree from the new rows to edit
@@ -186,86 +189,42 @@
{ // SortedUnsortedCategory column
- addColumnToModel(columnModel,
- SampleCategoryComponent.newEditor(caracteristicDecorator),
- SampleCategoryComponent.newRender(defaultRenderer, caracteristicDecorator),
- SpeciesBatchTableModel.SORTED_UNSORTED_CATEGORY);
-
-// Caracteristic data =
-// persistenceService.getSortedUnsortedCaracteristic();
-//
-// addComboDataColumnToModel(columnModel,
-// SpeciesBatchTableModel.SORTED_UNSORTED_CATEGORY,
-// caracteristicDecorator,
-// data.getQualitativeValue());
+ addSampleCategoryColumnToModel(columnModel,
+ SpeciesBatchTableModel.SORTED_UNSORTED_CATEGORY,
+ caracteristicDecorator,
+ defaultRenderer);
}
{ // SizeCategory column
- addColumnToModel(columnModel,
- SampleCategoryComponent.newEditor(caracteristicDecorator),
- SampleCategoryComponent.newRender(defaultRenderer, caracteristicDecorator),
- SpeciesBatchTableModel.SIZE_CATEGORY);
-
-// Caracteristic data =
-// persistenceService.getSizeCategoryCaracteristic();
-//
-// addComboDataColumnToModel(columnModel,
-// SpeciesBatchTableModel.SIZE_CATEGORY,
-// caracteristicDecorator,
-// data.getQualitativeValue());
+ addSampleCategoryColumnToModel(columnModel,
+ SpeciesBatchTableModel.SIZE_CATEGORY,
+ caracteristicDecorator,
+ defaultRenderer);
}
{ // SexCategory column
- addColumnToModel(columnModel,
- SampleCategoryComponent.newEditor(caracteristicDecorator),
- SampleCategoryComponent.newRender(defaultRenderer, caracteristicDecorator),
- SpeciesBatchTableModel.SEX_CATEGORY);
-
-// Caracteristic data = persistenceService.getSexCaracteristic();
-//
-// addComboDataColumnToModel(columnModel,
-// SpeciesBatchTableModel.SEX_CATEGORY,
-// caracteristicDecorator,
-// data.getQualitativeValue());
+ addSampleCategoryColumnToModel(columnModel,
+ SpeciesBatchTableModel.SEX_CATEGORY,
+ caracteristicDecorator,
+ defaultRenderer);
}
{ // MaturityCategory column
- addColumnToModel(columnModel,
- SampleCategoryComponent.newEditor(caracteristicDecorator),
- SampleCategoryComponent.newRender(defaultRenderer, caracteristicDecorator),
- SpeciesBatchTableModel.MATURITY_CATEGORY);
-
-// Caracteristic data =
-// persistenceService.getMaturityCaracteristic();
-//
-//
-// addComboDataColumnToModel(columnModel,
-// SpeciesBatchTableModel.MATURITY_CATEGORY,
-// caracteristicDecorator,
-// data.getQualitativeValue());
+ addSampleCategoryColumnToModel(columnModel,
+ SpeciesBatchTableModel.MATURITY_CATEGORY,
+ caracteristicDecorator,
+ defaultRenderer);
}
{ // AgeCategory column
- Decorator<Float> floatDecorator = new Decorator<Float>(Float.class) {
- private static final long serialVersionUID = 1L;
-
- @Override
- public String toString(Object bean) {
- return String.valueOf(bean);
- }
- };
- addColumnToModel(columnModel,
- SampleCategoryComponent.newEditor(floatDecorator),
- SampleCategoryComponent.newRender(defaultRenderer, floatDecorator),
- SpeciesBatchTableModel.AGE_CATEGORY);
-
-// addFloatColumnToModel(columnModel,
-// SpeciesBatchTableModel.AGE_CATEGORY,
-// TuttiUI.DECIMAL3_PATTERN);
+ addSampleCategoryColumnToModel(columnModel,
+ SpeciesBatchTableModel.AGE_CATEGORY,
+ getDecorator(Float.class, null),
+ defaultRenderer);
}
{ // Weight column
@@ -333,13 +292,20 @@
recomputeTotalHorsVrac();
}
- if (SpeciesBatchRowModel.PROPERTY_SPECIES.equals(propertyName)) {
+ if (SAMPLING_PROPERTIES.contains(propertyName)) {
// species has changed, recompute valid property
- boolean rowValid = newValue != null;
+ boolean rowValid = row.isRowValid();
row.setValid(rowValid);
}
+ if (SpeciesBatchRowModel.PROPERTY_WEIGHT.equals(propertyName)) {
+
+ // weight has changed, recompute valid property
+ boolean rowValid = row.isRowValid();
+ row.setValid(rowValid);
+ }
+
// SpeciesBatchUIModel model = getModel();
//
// SpeciesBatchTreeModel samplingTreeModel = model.getSamplingTreeModel();
@@ -715,4 +681,14 @@
//TODO Should we also set the total vrac weight ?
// getModel().setTotalVracWeight(totalVrac);
}
+
+ protected <C extends Serializable> void addSampleCategoryColumnToModel(TableColumnModel columnModel,
+ ColumnIdentifier<SpeciesBatchRowModel> columnIdentifier,
+ Decorator<C> decorator,
+ TableCellRenderer defaultRenderer) {
+ addColumnToModel(columnModel,
+ SampleCategoryComponent.newEditor(decorator),
+ SampleCategoryComponent.newRender(defaultRenderer, decorator),
+ columnIdentifier);
+ }
}
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 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesRowModel.java 2012-12-28 09:17:49 UTC (rev 118)
@@ -1,5 +1,29 @@
package fr.ifremer.tutti.ui.swing.content.protocol;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
import fr.ifremer.tutti.persistence.entities.referential.Species;
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 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolSpeciesTableModel.java 2012-12-28 09:17:49 UTC (rev 118)
@@ -1,6 +1,29 @@
package fr.ifremer.tutti.ui.swing.content.protocol;
-import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel;
import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier;
import javax.swing.table.TableColumnModel;
@@ -43,7 +66,9 @@
EditProtocolSpeciesRowModel.PROPERTY_SIZE_FRENQUENCY_PMFM,
n_("tutti.table.protocol.species.header.sizeFrequency"),
n_("tutti.table.protocol.species.header.sizeFrequency"));
-
+
+ private static final long serialVersionUID = 1L;
+
public EditProtocolSpeciesTableModel(TableColumnModel columnModel) {
super(columnModel);
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 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2012-12-28 09:17:49 UTC (rev 118)
@@ -275,7 +275,8 @@
});
JXTable table = ui.getSpeciesTable();
- TableColumnModel columnModel = createTableColumnModel(null);
+ TableColumnModel columnModel = createTableColumnModel(
+ table.getDefaultRenderer(Object.class));
EditProtocolSpeciesTableModel tableModel =
new EditProtocolSpeciesTableModel(columnModel);
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java 2012-12-28 09:17:49 UTC (rev 118)
@@ -1,6 +1,30 @@
package fr.ifremer.tutti.ui.swing.util;
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
/**
Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/HydrologicCaracteristicUtil.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
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 2012-12-28 08:53:06 UTC (rev 117)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2012-12-28 09:17:49 UTC (rev 118)
@@ -180,7 +180,6 @@
tutti.table.plankton.batch.header.speciesByGenusCode=Espèce
tutti.table.plankton.batch.header.toConfirm=A Confirmer
tutti.table.plankton.batch.header.weight=Poids
-tutti.table.species.batch.header.ageCategory=Age
tutti.table.protocol.species.header.maturity=Maturité
tutti.table.protocol.species.header.sex=Sexe
tutti.table.protocol.species.header.sizeCategory=Catégorie Taille
@@ -188,6 +187,7 @@
tutti.table.protocol.species.header.sortedUnsorted=Vrac / Hors Vrac
tutti.table.protocol.species.header.speciesId=Espèce
tutti.table.species.batch.header.age=Age
+tutti.table.species.batch.header.ageCategory=Age
tutti.table.species.batch.header.comment=Commentaire
tutti.table.species.batch.header.computedNumber=Nombre calculé
tutti.table.species.batch.header.computedWeight=Poids calculé
1
0
r117 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol
by kmorin@users.forge.codelutin.com 28 Dec '12
by kmorin@users.forge.codelutin.com 28 Dec '12
28 Dec '12
Author: kmorin
Date: 2012-12-28 09:53:06 +0100 (Fri, 28 Dec 2012)
New Revision: 117
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/117
Log:
debug
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
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 2012-12-28 08:38:23 UTC (rev 116)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2012-12-28 08:53:06 UTC (rev 117)
@@ -50,6 +50,7 @@
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import javax.swing.event.ListSelectionListener;
+import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumnModel;
import jaxx.runtime.swing.editor.bean.BeanDoubleList;
import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer;
@@ -131,7 +132,7 @@
}
@Override
- protected TableColumnModel createTableColumnModel() {
+ protected TableColumnModel createTableColumnModel(TableCellRenderer renderer) {
JXTable table = ui.getSpeciesTable();
DecoratorService decoratorService = context.getService(DecoratorService.class);
JXPathDecorator<Caracteristic> decorator =
@@ -274,7 +275,7 @@
});
JXTable table = ui.getSpeciesTable();
- TableColumnModel columnModel = createTableColumnModel();
+ TableColumnModel columnModel = createTableColumnModel(null);
EditProtocolSpeciesTableModel tableModel =
new EditProtocolSpeciesTableModel(columnModel);
1
0
r116 - trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content
by tchemit@users.forge.codelutin.com 28 Dec '12
by tchemit@users.forge.codelutin.com 28 Dec '12
28 Dec '12
Author: tchemit
Date: 2012-12-28 09:38:23 +0100 (Fri, 28 Dec 2012)
New Revision: 116
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/116
Log:
remove obsolete package
Removed:
trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/catches/
1
0
r115 - in trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content: catches operation operation/catches operation/catches/species operation/catches/species/frequency
by tchemit@users.forge.codelutin.com 28 Dec '12
by tchemit@users.forge.codelutin.com 28 Dec '12
28 Dec '12
Author: tchemit
Date: 2012-12-28 09:35:21 +0100 (Fri, 28 Dec 2012)
New Revision: 115
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/115
Log:
move test
Added:
trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/
trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/
trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/
trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModelTest.java
Removed:
trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/catches/species/
trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/species/
Copied: trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModelTest.java (from rev 114, trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/species/SpeciesFrequencyRowModelTest.java)
===================================================================
--- trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModelTest.java (rev 0)
+++ trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModelTest.java 2012-12-28 08:35:21 UTC (rev 115)
@@ -0,0 +1,66 @@
+package fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency;
+
+/*
+ * #%L
+ * Tutti :: UI
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.2
+ */
+public class SpeciesFrequencyRowModelTest {
+
+ @Test
+ public void compareTo() throws Exception {
+
+ SpeciesFrequencyRowModel s0 = new SpeciesFrequencyRowModel();
+ SpeciesFrequencyRowModel s1 = new SpeciesFrequencyRowModel();
+
+ // s0=null, s1=null
+ Assert.assertTrue(s0.compareTo(s1) == 0);
+
+ // s0=1, s1=null
+ s0.setLengthStep(1f);
+ Assert.assertTrue(s0.compareTo(s1) > 0);
+
+ // s0=null, s1=1
+ s0.setLengthStep(null);
+ s1.setLengthStep(1f);
+ Assert.assertTrue(s0.compareTo(s1) < 0);
+
+ // s0=2, s1=1
+ s0.setLengthStep(2f);
+ Assert.assertTrue(s0.compareTo(s1) > 0);
+
+ // s0=2, s1=2
+ s1.setLengthStep(2f);
+ Assert.assertTrue(s0.compareTo(s1) == 0);
+
+ // s0=2, s1=3
+ s1.setLengthStep(3f);
+ Assert.assertTrue(s0.compareTo(s1) < 0);
+ }
+}
Property changes on: trunk/tutti-ui-swing/src/test/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyRowModelTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
1
0