Author: tchemit Date: 2013-09-26 13:07:00 +0200 (Thu, 26 Sep 2013) New Revision: 1231 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1231 Log: fixes #3340: [CAPTURE] Mauvais enregistrement de la valeur "A Confirmer" dans les onglets Esp?\195?\169ces et Benthos Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-09-26 07:38:06 UTC (rev 1230) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/table/AbstractTuttiTableUIHandler.java 2013-09-26 11:07:00 UTC (rev 1231) @@ -347,37 +347,46 @@ @Override public void valueChanged(ListSelectionEvent e) { - if (!e.getValueIsAdjusting()) { - ListSelectionModel source = (ListSelectionModel) e.getSource(); + if (log.isDebugEnabled()) { + log.debug("Selection changed: " + e); + } + // need this for the first modification when no selection, + // otherwise monitor is set after the first alter, so won't be + // save directly... + //if (!e.getValueIsAdjusting()) { + ListSelectionModel source = (ListSelectionModel) e.getSource(); - int oldRowIndex = selectedRowIndex; - R oldRow = rowMonitor.getBean(); + int oldRowIndex = selectedRowIndex; + int newRowIndex = source.getLeadSelectionIndex(); + if (oldRowIndex == newRowIndex) { + return; + } + R oldRow = rowMonitor.getBean(); - int newRowIndex = source.getLeadSelectionIndex(); - R newRow; + R newRow; - if (source.isSelectionEmpty()) { + if (source.isSelectionEmpty()) { - newRow = null; - } else { - newRow = getTableModel().getEntry(newRowIndex); - } + newRow = null; + } else { + newRow = getTableModel().getEntry(newRowIndex); + } - // save selected entry if required + // save selected entry if required // saveSelectedRowIfNeeded(); - if (log.isDebugEnabled()) { - log.debug("Will monitor entry: " + newRow); - } - rowMonitor.setBean(newRow); + if (log.isDebugEnabled()) { + log.debug("Will monitor entry: " + newRow); + } + rowMonitor.setBean(newRow); - selectedRowIndex = newRowIndex; + selectedRowIndex = newRowIndex; - onAfterSelectedRowChanged(oldRowIndex, - oldRow, - selectedRowIndex, - rowMonitor.getBean()); - } + onAfterSelectedRowChanged(oldRowIndex, + oldRow, + selectedRowIndex, + rowMonitor.getBean()); + //} } };