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