Author: kmorin Date: 2012-12-21 18:33:19 +0100 (Fri, 21 Dec 2012) New Revision: 103 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/103 Log: refs #1812 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/environment/EnvironmentRowModel.java 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/EnvironmentTabUIModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.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/gearshooting/GearShootingTabUIModel.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/table/AbstractTuttiTableModel.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-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/EditFishingOperationUIHandler.java 2012-12-21 17:33:19 UTC (rev 103) @@ -25,11 +25,9 @@ */ 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.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.Program; -import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.FishingOperationLocation; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Zone; @@ -42,6 +40,8 @@ import fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUI; import fr.ifremer.tutti.ui.swing.content.operation.fishing.hydrology.HydrologyTabUIModel; import fr.ifremer.tutti.ui.swing.util.TuttiBeanMonitor; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListSelectionEvent; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -53,7 +53,9 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; -import java.util.Map; +import javax.swing.event.ListDataListener; +import javax.swing.event.ListSelectionListener; +import jaxx.runtime.swing.editor.bean.BeanDoubleListModel; /** @@ -105,7 +107,10 @@ EditFishingOperationUIModel.PROPERTY_FISHING_OPERATION_VALID, EditFishingOperationUIModel.PROPERTY_LOCATION, EditFishingOperationUIModel.PROPERTY_COMMENT, - EditFishingOperationUIModel.PROPERTY_SAISISSEUR); + EditFishingOperationUIModel.PROPERTY_SAISISSEUR, + EditFishingOperationUIModel.PROPERTY_GEAR_SHOOTING_CARACTERISTICS, + EditFishingOperationUIModel.PROPERTY_ENVIRONMENT_CARACTERISTICS, + EditFishingOperationUIModel.PROPERTY_HYDROLOGY_CARACTERISTICS); } @Override @@ -168,7 +173,25 @@ initBeanList(ui.getSaisisseurList(), persistenceService.getAllPerson(), model.getSaisisseur()); + final BeanDoubleListModel<Person> saisisseurModel = ui.getSaisisseurList().getModel(); + saisisseurModel.getSelectedModel().addListDataListener(new ListDataListener() { + public void intervalAdded(ListDataEvent e) { + log.info(">>>>>>>>>> intervalAdded " + saisisseurModel.getSelected()); + ui.getModel().setSaisisseur(saisisseurModel.getSelected()); + } + + public void intervalRemoved(ListDataEvent e) { + log.info(">>>>>>>>>> intervalRemoved " + saisisseurModel.getSelected()); + ui.getModel().setSaisisseur(saisisseurModel.getSelected()); + } + + public void contentsChanged(ListDataEvent e) { + log.info(">>>>>>>>>> contentsChanged " + saisisseurModel.getSelected()); + ui.getModel().setSaisisseur(saisisseurModel.getSelected()); + } + }); + String programId = context.getProgramId(); Program program = persistenceService.getProgram(programId); @@ -225,12 +248,11 @@ new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { - model.setModify(true); model.setGearShootingCaracteristics((CaracteristicMap) evt.getNewValue()); } } ); - CaracteristicMap gearShootingCaracteristics = getDefaultGearShootingCaracteristics(); + CaracteristicMap gearShootingCaracteristics = model.getGearShootingCaracteristics(); ui.getModel().setGearShootingCaracteristics(gearShootingCaracteristics); gearShootingModel.setGearShootingCaracteristics(gearShootingCaracteristics); @@ -243,12 +265,11 @@ new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { - model.setModify(true); model.setEnvironmentCaracteristics((CaracteristicMap) evt.getNewValue()); } } ); - CaracteristicMap environmentCaracteristics = ui.getModel().getEnvironmentCaracteristics(); + CaracteristicMap environmentCaracteristics = model.getEnvironmentCaracteristics(); ui.getModel().setEnvironmentCaracteristics(environmentCaracteristics); environmentModel.setEnvironmentCaracteristics(environmentCaracteristics); @@ -265,89 +286,11 @@ } } ); - CaracteristicMap hydrologyCaracteristics = getDefaultHydrologyCaracteristics(); + CaracteristicMap hydrologyCaracteristics = model.getHydrologyCaracteristics(); ui.getModel().setHydrologyCaracteristics(hydrologyCaracteristics); hydrologyModel.setHydrologyCaracteristics(hydrologyCaracteristics); } - protected CaracteristicMap getDefaultGearShootingCaracteristics() { - CaracteristicMap gearShootingCaracteristics = new CaracteristicMap(); -// gearShootingParams.put( -// _(new String("tutti.table.fishing.gearShooting.keys." + GearShootingTabUIModel.KEY_START_DEPTH)), -// null -// ); -// gearShootingParams.put( -// _(new String("tutti.table.fishing.gearShooting.keys." + GearShootingTabUIModel.KEY_END_DEPTH)), -// null -// ); -// gearShootingParams.put( -// _(new String("tutti.table.fishing.gearShooting.keys." + GearShootingTabUIModel.KEY_HORIZONTAL_APERTURE)), -// null -// ); -// gearShootingParams.put( -// _(new String("tutti.table.fishing.gearShooting.keys." + GearShootingTabUIModel.KEY_VERTICAL_APERTURE)), -// null -// ); -// gearShootingParams.put( -// _(new String("tutti.table.fishing.gearShooting.keys." + GearShootingTabUIModel.KEY_WARP_LENGTH)), -// null -// ); -// gearShootingParams.put( -// _(new String("tutti.table.fishing.gearShooting.keys." + GearShootingTabUIModel.KEY_ARM_LENGTH)), -// null -// ); -// gearShootingParams.put( -// _(new String("tutti.table.fishing.gearShooting.keys." + GearShootingTabUIModel.KEY_SYSTEME_FERMETURE_CUL)), -// null -// ); -// gearShootingParams.put( -// _(new String("tutti.table.fishing.gearShooting.keys." + GearShootingTabUIModel.KEY_MEASURED_GEOMETRY)), -// null -// ); - - return gearShootingCaracteristics; - } - - protected CaracteristicMap getDefaultEnvironmentCaracteristics() { - CaracteristicMap environmentCaracteristics = new CaracteristicMap(); - List<Caracteristic> availableCaracteristics = ui.getEnvironmentTabContent().getModel().getAvailableCaracteristics(); -// environmentCaracteristics.put(availableCaracteristics.get(0), ); -// environmentCaracteristics.put( -// _(new String("tutti.table.fishing.environment.keys." + EnvironmentTabUIModel.KEY_BEAUFORT_SCALE)), -// null -// ); -// environmentCaracteristics.put( -// _(new String("tutti.table.fishing.environment.keys." + EnvironmentTabUIModel.KEY_WIND_DIRECTION)), -// null -// ); -// environmentCaracteristics.put( -// _(new String("tutti.table.fishing.environment.keys." + EnvironmentTabUIModel.KEY_SEA_STATE)), -// null -// ); - return environmentCaracteristics; - } - - protected CaracteristicMap getDefaultHydrologyCaracteristics() { - CaracteristicMap hydrologyCaracteristics = new CaracteristicMap(); -// hydrologyCaracteristics.put( -// _(new String("tutti.table.fishing.hydrology.keys." + HydrologyTabUIModel.TEMPERATURE + "." + HydrologyTabUIModel.SURFACE)), -// null -// ); -// hydrologyCaracteristics.put( -// _(new String("tutti.table.fishing.hydrology.keys." + HydrologyTabUIModel.TEMPERATURE + "." + HydrologyTabUIModel.BOTTOM)), -// null -// ); -// hydrologyCaracteristics.put( -// _(new String("tutti.table.fishing.hydrology.keys." + HydrologyTabUIModel.SALINITY + "." + HydrologyTabUIModel.SURFACE)), -// null -// ); -// hydrologyCaracteristics.put( -// _(new String("tutti.table.fishing.hydrology.keys." + HydrologyTabUIModel.SALINITY + "." + HydrologyTabUIModel.BOTTOM)), -// null -// ); - return hydrologyCaracteristics; - } - @Override public void onCloseUI() { } @@ -358,7 +301,7 @@ } public void selectFishingOperation(FishingOperation bean) { - + if (fishingOperationMonitor.wasModified()) { // previous fishingOperation was modified, let's save it @@ -380,7 +323,8 @@ " was modified, will save it."); } - persistenceService.saveFishingOperation(toSave); + // persist current fishingOperation + parentUi.getHandler().saveFishingOperation(toSave, false); } } @@ -427,17 +371,17 @@ //reset gear shooting GearShootingTabUI gearShootingTab = ui.getGearShootingTabContent(); - gearShootingTab.getModel().setGearShootingCaracteristics(getDefaultGearShootingCaracteristics()); + gearShootingTab.getModel().setGearShootingCaracteristics(model.getGearShootingCaracteristics()); gearShootingTab.getHandler().reset(); //reset environment EnvironmentTabUI environmentTab = ui.getEnvironmentTabContent(); - environmentTab.getModel().setEnvironmentCaracteristics(getDefaultEnvironmentCaracteristics()); + environmentTab.getModel().setEnvironmentCaracteristics(model.getEnvironmentCaracteristics()); environmentTab.getHandler().reset(); //reset hydrology HydrologyTabUI hydrologyTab = ui.getHydrologyTabContent(); - hydrologyTab.getModel().setHydrologyCaracteristics(getDefaultHydrologyCaracteristics()); + hydrologyTab.getModel().setHydrologyCaracteristics(model.getHydrologyCaracteristics()); hydrologyTab.getHandler().reset(); fishingOperationMonitor.clearModified(); @@ -488,14 +432,6 @@ ui.getFishingOperationTabPane().setSelectedIndex(selectedIndex); // getModel().setModify(false); - - for (Object key : ui.getModel().getEnvironmentCaracteristics().keySet()) { - log.info(key + " : " + ui.getModel().getEnvironmentCaracteristics().get(key)); - } - - for (Object key : ui.getModel().getHydrologyCaracteristics().keySet()) { - log.info(key + " : " + ui.getModel().getHydrologyCaracteristics().get(key)); - } } public void importCasino() { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentRowModel.java 2012-12-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentRowModel.java 2012-12-21 17:33:19 UTC (rev 103) @@ -55,15 +55,20 @@ protected Caracteristic key; - protected String value; + protected Object value; public EnvironmentRowModel() { super(CaracteristicRow.class, fromBeanBinder, toBeanBinder); } public EnvironmentRowModel(Caracteristic key) { + this(key, null); + } + + public EnvironmentRowModel(Caracteristic key, Object value) { this(); this.key = key; + this.value = value; } public Caracteristic getKey() { @@ -76,11 +81,11 @@ firePropertyChange(PROPERTY_KEY, oldValue, key); } - public String getValue() { + public Object getValue() { return value; } - public void setValue(String value) { + public void setValue(Object value) { Object oldValue = getValue(); this.value = value; firePropertyChange(PROPERTY_VALUE, oldValue, value); 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-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIHandler.java 2012-12-21 17:33:19 UTC (rev 103) @@ -35,14 +35,12 @@ 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.ListDataEvent; import javax.swing.event.ListDataListener; import javax.swing.event.ListSelectionListener; import javax.swing.table.TableColumnModel; -import jaxx.runtime.swing.renderer.DecoratorTableCellRenderer; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; @@ -195,15 +193,18 @@ */ public void reset() { CaracteristicMap environmentCaracteristics = ui.getModel().getEnvironmentCaracteristics(); + if (environmentCaracteristics == null) { + environmentCaracteristics = new CaracteristicMap(); + } List<EnvironmentRowModel> rows = Lists.newArrayList(); Collection<Caracteristic> caracteristics = environmentCaracteristics.keySet(); for (Caracteristic key : environmentCaracteristics.keySet()) { - rows.add(new EnvironmentRowModel(key)); + rows.add(new EnvironmentRowModel(key, environmentCaracteristics.get(key))); } AbstractTuttiTableModel<EnvironmentRowModel> tableModel = getTableModel(); - tableModel.setRows(rows); + tableModel.setRows(rows, false); JComboBox keyCombo = ui.getNewRowKey(); DefaultComboBoxModel keyComboModel = (DefaultComboBoxModel) keyCombo.getModel(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIModel.java 2012-12-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTabUIModel.java 2012-12-21 17:33:19 UTC (rev 103) @@ -44,7 +44,7 @@ */ public class EnvironmentTabUIModel extends AbstractTuttiTableUIModel<FishingOperation, EnvironmentRowModel, EnvironmentTabUIModel> { - protected CaracteristicMap environmentCaracteristics; + protected CaracteristicMap environmentCaracteristics = new CaracteristicMap(); protected List<Caracteristic> availableCaracteristics; @@ -63,6 +63,9 @@ } public void setEnvironmentCaracteristics(CaracteristicMap environmentCaracteristics) { + if (environmentCaracteristics == null) { + environmentCaracteristics = new CaracteristicMap(); + } this.environmentCaracteristics = environmentCaracteristics; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java 2012-12-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/environment/EnvironmentTableModel.java 2012-12-21 17:33:19 UTC (rev 103) @@ -24,10 +24,14 @@ * #L% */ +import org.apache.commons.logging.Log; +import com.google.common.base.Preconditions; +import java.util.List; import fr.ifremer.tutti.ui.swing.util.table.AbstractTuttiTableModel; import fr.ifremer.tutti.ui.swing.util.table.ColumnIdentifier; import javax.swing.table.TableColumnModel; +import org.apache.commons.logging.LogFactory; import static org.nuiton.i18n.I18n.n_; /** Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java 2012-12-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingRowModel.java 2012-12-21 17:33:19 UTC (rev 103) @@ -54,15 +54,20 @@ protected Caracteristic key; - protected String value; + protected Object value; public GearShootingRowModel() { super(CaracteristicRow.class, fromBeanBinder, toBeanBinder); } public GearShootingRowModel(Caracteristic key) { + this(key, null); + } + + public GearShootingRowModel(Caracteristic key, Object value) { this(); this.key = key; + this.value = value; } public Caracteristic getKey() { @@ -75,11 +80,11 @@ firePropertyChange(PROPERTY_KEY, oldValue, key); } - public String getValue() { + public Object getValue() { return value; } - public void setValue(String value) { + public void setValue(Object value) { Object oldValue = getValue(); this.value = value; firePropertyChange(PROPERTY_VALUE, oldValue, value); 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-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIHandler.java 2012-12-21 17:33:19 UTC (rev 103) @@ -79,7 +79,7 @@ { - addColumnToModel(columnModel, GearShootingTableModel.KEY); + addColumnToModel(columnModel, null, newTableCellRender(Caracteristic.class), GearShootingTableModel.KEY); } { @@ -179,12 +179,13 @@ */ public void addRow() { JComboBox keyCombo = ui.getNewRowKey(); - Caracteristic key = (Caracteristic) keyCombo.getSelectedItem(); - GearShootingRowModel row = new GearShootingRowModel(key); + CaracteristicRow selectedItem = (CaracteristicRow) keyCombo.getSelectedItem(); + Caracteristic caracteristic = selectedItem.getCaracteristics()[0]; + GearShootingRowModel row = new GearShootingRowModel(caracteristic); getTableModel().addNewRow(getTable().getRowCount(), row); - ui.getModel().setCaracteristic(key, null); + ui.getModel().setCaracteristic(caracteristic, null); - keyCombo.removeItem(key); + keyCombo.removeItem(selectedItem); } /** @@ -192,15 +193,18 @@ */ public void reset() { CaracteristicMap gearShootingCaracteristics = ui.getModel().getGearShootingCaracteristics(); + if (gearShootingCaracteristics == null) { + gearShootingCaracteristics = new CaracteristicMap(); + } List<GearShootingRowModel> rows = Lists.newArrayList(); Collection<Caracteristic> caracteristics = gearShootingCaracteristics.keySet(); for (Caracteristic key : gearShootingCaracteristics.keySet()) { - rows.add(new GearShootingRowModel(key)); + rows.add(new GearShootingRowModel(key, gearShootingCaracteristics.get(key))); } AbstractTuttiTableModel<GearShootingRowModel> tableModel = getTableModel(); - tableModel.setRows(rows); + tableModel.setRows(rows, false); JComboBox keyCombo = ui.getNewRowKey(); DefaultComboBoxModel keyComboModel = (DefaultComboBoxModel) keyCombo.getModel(); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIModel.java 2012-12-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/gearshooting/GearShootingTabUIModel.java 2012-12-21 17:33:19 UTC (rev 103) @@ -42,7 +42,7 @@ */ public class GearShootingTabUIModel extends AbstractTuttiTableUIModel<FishingOperation, GearShootingRowModel, GearShootingTabUIModel> { - protected CaracteristicMap gearShootingCaracteristics; + protected CaracteristicMap gearShootingCaracteristics = new CaracteristicMap(); protected List<Caracteristic> availableCaracteristics; @@ -60,8 +60,11 @@ return gearShootingCaracteristics; } - public void setGearShootingCaracteristics(CaracteristicMap gearShooting) { - this.gearShootingCaracteristics = gearShooting; + public void setGearShootingCaracteristics(CaracteristicMap gearShootingCaracteristics) { + if (gearShootingCaracteristics == null) { + gearShootingCaracteristics = new CaracteristicMap(); + } + this.gearShootingCaracteristics = gearShootingCaracteristics; } public void setCaracteristic(Caracteristic caracteristic, Object value) { 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-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyRowModel.java 2012-12-21 17:33:19 UTC (rev 103) @@ -56,19 +56,27 @@ protected Caracteristic key; - protected String gearShootingStartValue; + protected Object gearShootingStartValue; - protected String gearShootingEndValue; + protected Object gearShootingEndValue; - protected String averageValue; + protected Object averageValue; public HydrologyRowModel() { super(CaracteristicRow.class, fromBeanBinder, toBeanBinder); } public HydrologyRowModel(Caracteristic key) { + this(key, null, null, null); + } + + public HydrologyRowModel(Caracteristic key, Object gearShootingStartValue, + Object gearShootingEndValue, Object averageValue) { this(); this.key = key; + this.gearShootingStartValue = gearShootingStartValue; + this.gearShootingEndValue = gearShootingEndValue; + this.averageValue = averageValue; } public Caracteristic getKey() { @@ -81,31 +89,31 @@ firePropertyChange(PROPERTY_KEY, oldValue, key); } - public String getGearShootingStartValue() { + public Object getGearShootingStartValue() { return gearShootingStartValue; } - public void setGearShootingStartValue(String gearShootingStartValue) { + public void setGearShootingStartValue(Object gearShootingStartValue) { Object oldValue = getGearShootingStartValue(); this.gearShootingStartValue = gearShootingStartValue; firePropertyChange(PROPERTY_GEAR_SHOOTING_START_VALUE, oldValue, gearShootingStartValue); } - public String getGearShootingEndValue() { + public Object getGearShootingEndValue() { return gearShootingEndValue; } - public void setGearShootingEndValue(String gearShootingEndValue) { + public void setGearShootingEndValue(Object gearShootingEndValue) { Object oldValue = getGearShootingEndValue(); this.gearShootingEndValue = gearShootingEndValue; firePropertyChange(PROPERTY_GEAR_SHOOTING_END_VALUE, oldValue, gearShootingEndValue); } - public String getAverageValue() { + public Object getAverageValue() { return averageValue; } - public void setAverageValue(String averageValue) { + public void setAverageValue(Object averageValue) { Object oldValue = getAverageValue(); this.averageValue = averageValue; firePropertyChange(PROPERTY_AVERAGE_VALUE, oldValue, averageValue); 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-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIHandler.java 2012-12-21 17:33:19 UTC (rev 103) @@ -83,7 +83,7 @@ { - addColumnToModel(columnModel, HydrologyTableModel.KEY); + addColumnToModel(columnModel, null, newTableCellRender(Caracteristic.class), HydrologyTableModel.KEY); } { @@ -218,7 +218,7 @@ } AbstractTuttiTableModel<HydrologyRowModel> tableModel = getTableModel(); - tableModel.setRows(rows); + tableModel.setRows(rows, false); JComboBox keyCombo = ui.getNewRowKey(); DefaultComboBoxModel keyComboModel = (DefaultComboBoxModel) keyCombo.getModel(); 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-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/fishing/hydrology/HydrologyTabUIModel.java 2012-12-21 17:33:19 UTC (rev 103) @@ -42,7 +42,7 @@ */ public class HydrologyTabUIModel extends AbstractTuttiTableUIModel<FishingOperation, HydrologyRowModel, HydrologyTabUIModel> { - protected CaracteristicMap hydrologyCaracteristics; + protected CaracteristicMap hydrologyCaracteristics = new CaracteristicMap(); protected List<Caracteristic> availableCaracteristics; @@ -61,6 +61,9 @@ } public void setHydrologyCaracteristics(CaracteristicMap hydrologyCaracteristics) { + if (hydrologyCaracteristics == null) { + hydrologyCaracteristics = new CaracteristicMap(); + } this.hydrologyCaracteristics = hydrologyCaracteristics; } 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 2012-12-21 17:30:56 UTC (rev 102) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableModel.java 2012-12-21 17:33:19 UTC (rev 103) @@ -97,11 +97,15 @@ } public final void setRows(List<R> data) { + setRows(data, true); + } + + public final void setRows(List<R> data, boolean checkEmpty) { // can't accept a empty data list Preconditions.checkNotNull(data, "Data list can not be null."); - if (data.isEmpty()) { + if (checkEmpty && data.isEmpty()) { // add a first edit line data.add(createNewRow());