From a0b3ccae08734c082898148489a6ef1c8e4116dc Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Wed, 17 Oct 2012 20:22:58 -0500 Subject: [PATCH] Fix some ui update and data entry issues. --- .../FlightConfigurationDialog.java | 14 +++++------ .../MotorConfigurationPanel.java | 6 +++-- .../RecoveryConfigurationPanel.java | 25 +++++++++++++++---- .../SelectDeploymentConfigDialog.java | 2 +- 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/FlightConfigurationDialog.java b/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/FlightConfigurationDialog.java index c555b5cb6..4b66e7b9b 100644 --- a/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/FlightConfigurationDialog.java +++ b/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/FlightConfigurationDialog.java @@ -32,6 +32,7 @@ public class FlightConfigurationDialog extends JDialog { private final JButton renameConfButton, removeConfButton, copyConfButton; private final MotorConfigurationPanel motorConfigurationPanel; + private final RecoveryConfigurationPanel recoveryConfigurationPanel; private String currentID = null; @@ -108,7 +109,8 @@ public class FlightConfigurationDialog extends JDialog { tabs.add(trans.get("edtmotorconfdlg.lbl.Motortab"), motorConfigurationPanel); //// Recovery tab - tabs.add(trans.get("edtmotorconfdlg.lbl.Recoverytab"), new RecoveryConfigurationPanel(this,rocket)); + recoveryConfigurationPanel = new RecoveryConfigurationPanel(this,rocket); + tabs.add(trans.get("edtmotorconfdlg.lbl.Recoverytab"), recoveryConfigurationPanel ); //// Close button JButton close = new JButton(trans.get("dlg.but.close")); @@ -147,7 +149,7 @@ public class FlightConfigurationDialog extends JDialog { currentID = id; rocket.getDefaultConfiguration().setFlightConfigurationID(currentID); motorConfigurationPanel.fireTableDataChanged(); - // FIXME - update data in recovery configuration panel + recoveryConfigurationPanel.fireTableDataChanged(); updateButtonState(); } @@ -155,15 +157,13 @@ public class FlightConfigurationDialog extends JDialog { currentID = rocket.newFlightConfigurationID(); rocket.getDefaultConfiguration().setFlightConfigurationID(currentID); motorConfigurationPanel.fireTableDataChanged(); - // FIXME - update data in recovery configuration panel flightConfigurationModel.fireContentsUpdated(); + recoveryConfigurationPanel.fireTableDataChanged(); updateButtonState(); } public void changeConfigurationName( String newName ) { rocket.setFlightConfigurationName(currentID, newName); - motorConfigurationPanel.fireTableDataChanged(); - // FIXME - update data in recovery configuration panel flightConfigurationModel.fireContentsUpdated(); } @@ -173,8 +173,8 @@ public class FlightConfigurationDialog extends JDialog { rocket.removeFlightConfigurationID(currentID); rocket.getDefaultConfiguration().setFlightConfigurationID(null); motorConfigurationPanel.fireTableDataChanged(); - // FIXME - update data in recovery configuration panel flightConfigurationModel.fireContentsUpdated(); + recoveryConfigurationPanel.fireTableDataChanged(); updateButtonState(); } @@ -189,7 +189,7 @@ public class FlightConfigurationDialog extends JDialog { removeConfButton.setEnabled(currentID != null); renameConfButton.setEnabled(currentID != null); motorConfigurationPanel.updateButtonState(); - // FIXME - update button state in recovery configuration panel + recoveryConfigurationPanel.updateButtonState(); } diff --git a/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/MotorConfigurationPanel.java b/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/MotorConfigurationPanel.java index 256b2ed2e..067df33b4 100644 --- a/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/MotorConfigurationPanel.java +++ b/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/MotorConfigurationPanel.java @@ -20,10 +20,10 @@ import net.miginfocom.swing.MigLayout; import net.sf.openrocket.gui.dialogs.motor.MotorChooserDialog; import net.sf.openrocket.gui.util.GUIUtil; import net.sf.openrocket.motor.Motor; +import net.sf.openrocket.rocketcomponent.MotorConfiguration; import net.sf.openrocket.rocketcomponent.MotorMount; import net.sf.openrocket.rocketcomponent.Rocket; import net.sf.openrocket.rocketcomponent.RocketComponent; -import net.sf.openrocket.rocketcomponent.MotorMount.IgnitionEvent; import net.sf.openrocket.util.Chars; public class MotorConfigurationPanel extends JPanel { @@ -135,7 +135,9 @@ public class MotorConfigurationPanel extends JPanel { } public void fireTableDataChanged() { + currentMount = null; configurationTableModel.fireTableDataChanged(); + updateButtonState(); } public void updateButtonState() { @@ -238,7 +240,7 @@ public class MotorConfigurationPanel extends JPanel { if (motor == null) //// None return null; - IgnitionEvent ignition = mount.getIgnitionEvent(); + MotorConfiguration.IgnitionEvent ignition = mount.getIgnitionEvent(); return ignition.toString(); } diff --git a/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/RecoveryConfigurationPanel.java b/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/RecoveryConfigurationPanel.java index 67cf19e10..75f550b8b 100644 --- a/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/RecoveryConfigurationPanel.java +++ b/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/RecoveryConfigurationPanel.java @@ -24,6 +24,8 @@ public class RecoveryConfigurationPanel extends JPanel { private final FlightConfigurationDialog flightConfigurationDialog; private final Rocket rocket; + + private final RecoveryTableModel recoveryTableModel; private final JButton selectDeploymentButton; private final JButton resetDeploymentButton; @@ -35,7 +37,8 @@ public class RecoveryConfigurationPanel extends JPanel { this.rocket = rocket; //// Recovery selection - JTable table = new JTable( new RecoveryTableModel() ); + recoveryTableModel = new RecoveryTableModel(); + JTable table = new JTable( recoveryTableModel ); table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); table.setCellSelectionEnabled(true); table.addMouseListener(new MouseAdapter() { @@ -89,19 +92,31 @@ public class RecoveryConfigurationPanel extends JPanel { } + public void fireTableDataChanged() { + selectedComponent = null; + recoveryTableModel.fireTableDataChanged(); + updateButtonState(); + } + private void selectDeployment() { JDialog d = new SelectDeploymentConfigDialog( flightConfigurationDialog, rocket, selectedComponent ); d.setVisible(true); + fireTableDataChanged(); } private void resetDeployment() { selectedComponent.setFlightConfiguration(rocket.getDefaultConfiguration().getFlightConfigurationID(), null); + fireTableDataChanged(); } - private void updateButtonState() { - boolean buttonsEnabled = selectedComponent != null; - selectDeploymentButton.setEnabled(buttonsEnabled); - resetDeploymentButton.setEnabled(buttonsEnabled); + public void updateButtonState() { + boolean componentSelected = selectedComponent != null; + boolean isDefaulted = true; + if ( componentSelected ) { + isDefaulted = selectedComponent.getFlightConfiguration(rocket.getDefaultConfiguration().getFlightConfigurationID()) == null; + } + selectDeploymentButton.setEnabled(componentSelected); + resetDeploymentButton.setEnabled(componentSelected & ! isDefaulted); } private RecoveryDevice findRecoveryDevice( int count ) { diff --git a/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/SelectDeploymentConfigDialog.java b/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/SelectDeploymentConfigDialog.java index 5e58b3834..f3409385e 100644 --- a/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/SelectDeploymentConfigDialog.java +++ b/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/SelectDeploymentConfigDialog.java @@ -110,7 +110,7 @@ public class SelectDeploymentConfigDialog extends JDialog { newConfiguration.setDeployDelay(deployDelay); //// extract altitude; - double deployAltitude = alt.getCurrentUnit().fromUnit( alt.getValue() ); + double deployAltitude = alt.getValue(); newConfiguration.setDeployAltitude(deployAltitude); component.setFlightConfiguration(configId, newConfiguration);