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 4cc28bdeb..5e9817e97 100644 --- a/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/FlightConfigurationDialog.java +++ b/core/src/net/sf/openrocket/gui/dialogs/flightconfiguration/FlightConfigurationDialog.java @@ -1,6 +1,5 @@ package net.sf.openrocket.gui.dialogs.flightconfiguration; -import java.awt.Dialog; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -42,13 +41,10 @@ public class FlightConfigurationDialog extends JDialog { private final RecoveryConfigurationPanel recoveryConfigurationPanel; private final SeparationConfigurationPanel separationConfigurationPanel; - private String currentID = null; public FlightConfigurationDialog(final Rocket rocket, Window parent) { //// Edit motor configurations - super(parent, trans.get("edtmotorconfdlg.title.Editmotorconf"), Dialog.ModalityType.APPLICATION_MODAL); - - currentID = rocket.getDefaultConfiguration().getFlightConfigurationID(); + super(parent, trans.get("edtmotorconfdlg.title.Editmotorconf"), ModalityType.APPLICATION_MODAL); if (parent != null) this.setModalityType(ModalityType.DOCUMENT_MODAL); @@ -60,13 +56,19 @@ public class FlightConfigurationDialog extends JDialog { JPanel panel = new JPanel(new MigLayout("fill")); // FIXME: Localize - JLabel label = new JLabel("Selected Configuration:"); - panel.add(label); + JLabel label = new JLabel("Selected flight configuration:"); + panel.add(label, "span, split"); flightConfigurationModel = new FlightConfigurationModel(rocket.getDefaultConfiguration()); JComboBox configSelector = new JComboBox(flightConfigurationModel); + configSelector.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + + } + }); - panel.add(configSelector, "gapright para"); + panel.add(configSelector, "growx, gapright para"); JButton newConfButton = new JButton(trans.get("edtmotorconfdlg.but.Newconfiguration")); newConfButton.addActionListener(new ActionListener() { @@ -88,7 +90,6 @@ public class FlightConfigurationDialog extends JDialog { }); panel.add(renameConfButton); - //// Remove configuration removeConfButton = new JButton(trans.get("edtmotorconfdlg.but.Removeconfiguration")); removeConfButton.addActionListener(new ActionListener() { @Override @@ -98,7 +99,6 @@ public class FlightConfigurationDialog extends JDialog { }); panel.add(removeConfButton); - //// Copy configuration copyConfButton = new JButton(trans.get("edtmotorconfdlg.but.Copyconfiguration")); copyConfButton.addActionListener(new ActionListener() { @Override @@ -106,7 +106,7 @@ public class FlightConfigurationDialog extends JDialog { copyConfiguration(); } }); - panel.add(copyConfButton, "wrap"); + panel.add(copyConfButton, "wrap para"); //// Tabs for advanced view. @@ -160,9 +160,7 @@ public class FlightConfigurationDialog extends JDialog { } } - public void selectConfiguration(String id) { - currentID = id; - rocket.getDefaultConfiguration().setFlightConfigurationID(currentID); + private void configurationChanged() { motorConfigurationPanel.fireTableDataChanged(); recoveryConfigurationPanel.fireTableDataChanged(); separationConfigurationPanel.fireTableDataChanged(); @@ -170,8 +168,8 @@ public class FlightConfigurationDialog extends JDialog { } public void addConfiguration() { - currentID = rocket.newFlightConfigurationID(); - rocket.getDefaultConfiguration().setFlightConfigurationID(currentID); + String id = rocket.newFlightConfigurationID(); + rocket.getDefaultConfiguration().setFlightConfigurationID(id); motorConfigurationPanel.fireTableDataChanged(); recoveryConfigurationPanel.fireTableDataChanged(); separationConfigurationPanel.fireTableDataChanged(); @@ -179,13 +177,16 @@ public class FlightConfigurationDialog extends JDialog { } public void copyConfiguration() { + String currentId = rocket.getDefaultConfiguration().getFlightConfigurationID(); + // currentID is the currently selected configuration. String newConfigId = rocket.newFlightConfigurationID(); - String oldName = rocket.getFlightConfigurationName(currentID); - CopyFlightConfigurationVisitor v = new CopyFlightConfigurationVisitor(currentID, newConfigId); + String oldName = rocket.getFlightConfigurationName(currentId); + CopyFlightConfigurationVisitor v = new CopyFlightConfigurationVisitor(currentId, newConfigId); v.visit(rocket); // Select the new configuration - this.selectConfiguration(newConfigId); + rocket.getDefaultConfiguration().setFlightConfigurationID(newConfigId); + // Copy the name. this.changeConfigurationName(oldName); motorConfigurationPanel.fireTableDataChanged(); @@ -195,13 +196,15 @@ public class FlightConfigurationDialog extends JDialog { } public void changeConfigurationName(String newName) { - rocket.setFlightConfigurationName(currentID, newName); + String currentId = rocket.getDefaultConfiguration().getFlightConfigurationID(); + rocket.setFlightConfigurationName(currentId, newName); } - public void removeConfiguration() { - if (currentID == null) + private void removeConfiguration() { + String currentId = rocket.getDefaultConfiguration().getFlightConfigurationID(); + if (currentId == null) return; - rocket.removeFlightConfigurationID(currentID); + rocket.removeFlightConfigurationID(currentId); rocket.getDefaultConfiguration().setFlightConfigurationID(null); motorConfigurationPanel.fireTableDataChanged(); recoveryConfigurationPanel.fireTableDataChanged(); @@ -216,8 +219,9 @@ public class FlightConfigurationDialog extends JDialog { } private void updateButtonState() { - removeConfButton.setEnabled(currentID != null); - renameConfButton.setEnabled(currentID != null); + String currentId = rocket.getDefaultConfiguration().getFlightConfigurationID(); + removeConfButton.setEnabled(currentId != null); + renameConfButton.setEnabled(currentId != null); motorConfigurationPanel.updateButtonState(); recoveryConfigurationPanel.updateButtonState(); separationConfigurationPanel.updateButtonState(); diff --git a/core/src/net/sf/openrocket/rocketcomponent/Rocket.java b/core/src/net/sf/openrocket/rocketcomponent/Rocket.java index f17ead876..ad20ade6a 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/Rocket.java +++ b/core/src/net/sf/openrocket/rocketcomponent/Rocket.java @@ -641,6 +641,8 @@ public class Rocket extends RocketComponent { return getFlightConfigurationDescription(id); } + + // FIXME: Change to private /** * Return a description for the flight configuration, generated from the motor * designations of the components.