Fix refresh bug which sometimes happens when the plot configuration is changed. ...
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 31 Jul 2012 18:03:52 +0000 (18:03 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 31 Jul 2012 18:03:52 +0000 (18:03 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@945 180e2498-e6e9-4542-8430-84ac67f01cd8

core/src/net/sf/openrocket/gui/plot/SimulationPlotPanel.java

index 06544f52676938211927e56925044e36a4995b9e..515ad0c8344e744a0a231846a40212f93aa2e1c4 100644 (file)
@@ -119,8 +119,16 @@ public class SimulationPlotPanel extends JPanel {
                }
                
                configurationSelector.addItemListener(new ItemListener() {
+                       
                        @Override
                        public void itemStateChanged(ItemEvent e) {
+                               // We are only concerned with ItemEvent.SELECTED to update
+                               // the UI when the selected item changes.
+                               // TODO - this should probably be implemented as an ActionListener instead
+                               // of ItemStateListener.
+                               if ( e.getStateChange() == ItemEvent.DESELECTED) {
+                                       return;
+                               }
                                if (modifying > 0)
                                        return;
                                PlotConfiguration conf = (PlotConfiguration) configurationSelector.getSelectedItem();
@@ -357,7 +365,9 @@ public class SimulationPlotPanel extends JPanel {
                        typeSelectorPanel.add(new PlotTypeSelector(i, type, unit, axis), "wrap");
                }
                
-               typeSelectorPanel.repaint();
+               // In order to consistantly update the ui, we need to validate before repaint.
+               typeSelectorPanel.validate();
+               typeSelectorPanel.repaint();    
                
                eventTableModel.fireTableDataChanged();
        }