Flight config dialog refactoring
This commit is contained in:
parent
170ce13c05
commit
d27a394813
@ -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();
|
||||
|
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user