Author: fdesbois Date: 2012-08-03 12:06:20 +0200 (Fri, 03 Aug 2012) New Revision: 351 Url: http://forge.codelutin.com/repositories/revision/sammoa/351 Log: Little issue with new route index fire update : use invokeLater to ensure tableModel size to be correct at that time Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-03 10:06:05 UTC (rev 350) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-03 10:06:20 UTC (rev 351) @@ -41,12 +41,12 @@ import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider; import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.action.CircleBackAction; +import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler; +import fr.ulr.sammoa.ui.swing.flight.FlightUIModel; import fr.ulr.sammoa.ui.swing.observations.action.MoveToNextEditableCellAction; import fr.ulr.sammoa.ui.swing.observations.action.MoveToNextRowEditableAction; import fr.ulr.sammoa.ui.swing.observations.action.MoveToPreviousEditableCellAction; import fr.ulr.sammoa.ui.swing.observations.action.MoveToPreviousRowEditableAction; -import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler; -import fr.ulr.sammoa.ui.swing.flight.FlightUIModel; import fr.ulr.sammoa.ui.swing.util.AbstractRowHighlightPredicate; import fr.ulr.sammoa.ui.swing.util.SammoaUtil; import fr.ulr.sammoa.ui.swing.util.TableDataChangeListener; @@ -68,14 +68,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.AbstractCellEditor; -import javax.swing.Action; -import javax.swing.DefaultCellEditor; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JTable; -import javax.swing.JTextField; -import javax.swing.ListSelectionModel; +import javax.swing.*; import javax.swing.border.LineBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; @@ -85,9 +78,7 @@ import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; -import java.awt.Color; -import java.awt.Component; -import java.awt.Rectangle; +import java.awt.*; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; @@ -122,7 +113,6 @@ this.ui = ui; } - @Deprecated public FlightUIModel getFlightUIModel() { return SammoaUIContext.getUIContext().getFlightUIHandler().getModel(); } @@ -545,8 +535,17 @@ } // Fire on TableModel to update the row (highlighting) - int index = flightUIModel.indexOfRoutes(route); - ui.getRouteTableModel().fireTableRowsUpdated(index, index); + // invokeLater in case of new route, otherwise the size is not updated yet + // in tableModel and an IndexOutOfBounds appears + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + Route route = getFlightUIModel().getRouteEditBean(); + int index = getFlightUIModel().indexOfRoutes(route); + ui.getRouteTableModel().fireTableRowsUpdated(index, index); + } + }); } } }