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.gui.util.GUIUtil;
|
||||||
import net.sf.openrocket.l10n.Translator;
|
import net.sf.openrocket.l10n.Translator;
|
||||||
import net.sf.openrocket.rocketcomponent.Rocket;
|
import net.sf.openrocket.rocketcomponent.Rocket;
|
||||||
|
import net.sf.openrocket.rocketvisitors.CopyFlightConfigurationVisitor;
|
||||||
import net.sf.openrocket.startup.Application;
|
import net.sf.openrocket.startup.Application;
|
||||||
|
|
||||||
public class FlightConfigurationDialog extends JDialog {
|
public class FlightConfigurationDialog extends JDialog {
|
||||||
@ -63,7 +64,7 @@ public class FlightConfigurationDialog extends JDialog {
|
|||||||
newConfButton.addActionListener( new ActionListener() {
|
newConfButton.addActionListener( new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
FlightConfigurationDialog.this.addConfiguration();
|
addConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
@ -94,7 +95,7 @@ public class FlightConfigurationDialog extends JDialog {
|
|||||||
copyConfButton.addActionListener(new ActionListener() {
|
copyConfButton.addActionListener(new ActionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
// FIXME - !
|
copyConfiguration();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
panel.add(copyConfButton,"wrap");
|
panel.add(copyConfButton,"wrap");
|
||||||
@ -162,6 +163,17 @@ public class FlightConfigurationDialog extends JDialog {
|
|||||||
updateButtonState();
|
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 ) {
|
public void changeConfigurationName( String newName ) {
|
||||||
rocket.setFlightConfigurationName(currentID, newName);
|
rocket.setFlightConfigurationName(currentID, newName);
|
||||||
flightConfigurationModel.fireContentsUpdated();
|
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