Wire in copy configuration button using CopyFlightConfigurationVisitor.
This commit is contained in:
parent
4625ca94b6
commit
2d6f3ba8a1
@ -19,6 +19,7 @@ import net.sf.openrocket.gui.main.BasicFrame;
|
||||
import net.sf.openrocket.gui.util.GUIUtil;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.rocketcomponent.Rocket;
|
||||
import net.sf.openrocket.rocketvisitors.CopyFlightConfigurationVisitor;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
|
||||
public class FlightConfigurationDialog extends JDialog {
|
||||
@ -63,7 +64,7 @@ public class FlightConfigurationDialog extends JDialog {
|
||||
newConfButton.addActionListener( new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
FlightConfigurationDialog.this.addConfiguration();
|
||||
addConfiguration();
|
||||
}
|
||||
|
||||
});
|
||||
@ -94,7 +95,7 @@ public class FlightConfigurationDialog extends JDialog {
|
||||
copyConfButton.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// FIXME - !
|
||||
copyConfiguration();
|
||||
}
|
||||
});
|
||||
panel.add(copyConfButton,"wrap");
|
||||
@ -162,6 +163,17 @@ public class FlightConfigurationDialog extends JDialog {
|
||||
updateButtonState();
|
||||
}
|
||||
|
||||
public void copyConfiguration() {
|
||||
// currentID is the currently selected configuration.
|
||||
String newConfigId = rocket.newFlightConfigurationID();
|
||||
CopyFlightConfigurationVisitor v = new CopyFlightConfigurationVisitor(currentID, newConfigId);
|
||||
v.visit(rocket);
|
||||
motorConfigurationPanel.fireTableDataChanged();
|
||||
flightConfigurationModel.fireContentsUpdated();
|
||||
recoveryConfigurationPanel.fireTableDataChanged();
|
||||
updateButtonState();
|
||||
}
|
||||
|
||||
public void changeConfigurationName( String newName ) {
|
||||
rocket.setFlightConfigurationName(currentID, newName);
|
||||
flightConfigurationModel.fireContentsUpdated();
|
||||
|
@ -0,0 +1,26 @@
|
||||
package net.sf.openrocket.rocketvisitors;
|
||||
|
||||
import net.sf.openrocket.rocketcomponent.RocketComponent;
|
||||
import net.sf.openrocket.rocketcomponent.SupportsFlightConfiguration;
|
||||
|
||||
public class CopyFlightConfigurationVisitor extends DepthFirstRecusiveVisitor {
|
||||
|
||||
private final String oldConfigId;
|
||||
private final String newConfigId;
|
||||
|
||||
public CopyFlightConfigurationVisitor(String oldConfigId, String newConfigId) {
|
||||
super();
|
||||
this.oldConfigId = oldConfigId;
|
||||
this.newConfigId = newConfigId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doAction(RocketComponent visitable) {
|
||||
|
||||
if ( visitable instanceof SupportsFlightConfiguration ) {
|
||||
((SupportsFlightConfiguration)visitable).cloneFlightConfiguration(oldConfigId, newConfigId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user