diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties index d257d8814..0241fc733 100644 --- a/core/resources/l10n/messages.properties +++ b/core/resources/l10n/messages.properties @@ -175,6 +175,7 @@ debuglogdlg.lbl.Stacktrace = Stack trace: MotorChooserDialog.title = Select a rocket motor ! Edit Motor configuration dialog +edtmotorconfdlg.col.configuration = Configuration edtmotorconfdlg.but.Removeconfiguration = Remove edtmotorconfdlg.but.Renameconfiguration = Rename edtmotorconfdlg.but.Newconfiguration = New diff --git a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/MotorConfigurationTableModel.java b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/MotorConfigurationTableModel.java index 90896afbb..08a079f1c 100644 --- a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/MotorConfigurationTableModel.java +++ b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/MotorConfigurationTableModel.java @@ -6,6 +6,8 @@ import java.util.List; import javax.swing.table.AbstractTableModel; import net.sf.openrocket.l10n.Translator; +import net.sf.openrocket.rocketcomponent.ComponentChangeEvent; +import net.sf.openrocket.rocketcomponent.ComponentChangeListener; import net.sf.openrocket.rocketcomponent.MotorMount; import net.sf.openrocket.rocketcomponent.Rocket; import net.sf.openrocket.rocketcomponent.RocketComponent; @@ -15,11 +17,11 @@ import net.sf.openrocket.util.Pair; /** * The table model for selecting and editing the motor configurations. */ -class MotorConfigurationTableModel extends AbstractTableModel { +class MotorConfigurationTableModel extends AbstractTableModel implements ComponentChangeListener { private static final Translator trans = Application.getTranslator(); - private static final String CONFIGURATION = "Configuration"; + private static final String CONFIGURATION = trans.get("edtmotorconfdlg.col.configuration"); private final Rocket rocket; @@ -28,11 +30,19 @@ class MotorConfigurationTableModel extends AbstractTableModel { public MotorConfigurationTableModel(Rocket rocket) { this.rocket = rocket; - + this.rocket.addComponentChangeListener(this); initializeMotorMounts(); } + @Override + public void componentChanged(ComponentChangeEvent e) { + if ( e.isMotorChange() || e.isTreeChange() ) { + initializeMotorMounts(); + fireTableStructureChanged(); + } + } + private void initializeMotorMounts() { motorMounts.clear(); for (RocketComponent c : rocket) { diff --git a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/RecoveryTableModel.java b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/RecoveryTableModel.java index acf76281f..cecac53e7 100644 --- a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/RecoveryTableModel.java +++ b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/RecoveryTableModel.java @@ -7,13 +7,15 @@ import java.util.List; import javax.swing.table.AbstractTableModel; import net.sf.openrocket.l10n.Translator; +import net.sf.openrocket.rocketcomponent.ComponentChangeEvent; +import net.sf.openrocket.rocketcomponent.ComponentChangeListener; import net.sf.openrocket.rocketcomponent.RecoveryDevice; import net.sf.openrocket.rocketcomponent.Rocket; import net.sf.openrocket.rocketcomponent.RocketComponent; import net.sf.openrocket.startup.Application; import net.sf.openrocket.util.Pair; -class RecoveryTableModel extends AbstractTableModel { +class RecoveryTableModel extends AbstractTableModel implements ComponentChangeListener { private static final Translator trans = Application.getTranslator(); @@ -21,7 +23,7 @@ class RecoveryTableModel extends AbstractTableModel { private final List recoveryDevices = new ArrayList(); - private static final String CONFIGURATION = "Configuration"; + private static final String CONFIGURATION = trans.get("edtmotorconfdlg.col.configuration"); /** @@ -29,10 +31,19 @@ class RecoveryTableModel extends AbstractTableModel { */ RecoveryTableModel(Rocket rocket) { this.rocket = rocket; - + this.rocket.addComponentChangeListener(this); initialize(); } + @Override + public void componentChanged(ComponentChangeEvent e) { + if ( e.isTreeChange() ) { + initialize(); + fireTableStructureChanged(); + } + } + + private void initialize() { recoveryDevices.clear(); Iterator it = rocket.iterator(); diff --git a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/SeparationTableModel.java b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/SeparationTableModel.java index 07333d0b5..10115a18f 100644 --- a/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/SeparationTableModel.java +++ b/swing/src/net/sf/openrocket/gui/main/flightconfigpanel/SeparationTableModel.java @@ -7,16 +7,15 @@ import java.util.List; import javax.swing.table.AbstractTableModel; import net.sf.openrocket.l10n.Translator; -import net.sf.openrocket.rocketcomponent.RecoveryDevice; +import net.sf.openrocket.rocketcomponent.ComponentChangeEvent; +import net.sf.openrocket.rocketcomponent.ComponentChangeListener; import net.sf.openrocket.rocketcomponent.Rocket; import net.sf.openrocket.rocketcomponent.RocketComponent; import net.sf.openrocket.rocketcomponent.Stage; -import net.sf.openrocket.rocketcomponent.StageSeparationConfiguration; import net.sf.openrocket.startup.Application; -import net.sf.openrocket.unit.UnitGroup; import net.sf.openrocket.util.Pair; -class SeparationTableModel extends AbstractTableModel { +class SeparationTableModel extends AbstractTableModel implements ComponentChangeListener { private static final Translator trans = Application.getTranslator(); @@ -24,14 +23,22 @@ class SeparationTableModel extends AbstractTableModel { private final List stages = new ArrayList(); - private static final String CONFIGURATION = "Configuration"; + private static final String CONFIGURATION = trans.get("edtmotorconfdlg.col.configuration"); SeparationTableModel(Rocket rocket ) { this.rocket = rocket; - + this.rocket.addComponentChangeListener(this); initialize(); } + @Override + public void componentChanged(ComponentChangeEvent e) { + if ( e.isTreeChange() ) { + initialize(); + fireTableStructureChanged(); + } + } + private void initialize() { stages.clear(); Iterator it = rocket.iterator();