import java.beans.PropertyChangeEvent;\r
import java.beans.PropertyChangeListener;\r
import java.beans.PropertyVetoException;\r
-import java.util.Collection;\r
import java.util.List;\r
import java.util.Vector;\r
\r
import com.billkuker.rocketry.motorsim.Nozzle;\r
import com.billkuker.rocketry.motorsim.cases.Schedule40;\r
import com.billkuker.rocketry.motorsim.cases.Schedule80;\r
+import com.billkuker.rocketry.motorsim.fuel.FuelResolver;\r
import com.billkuker.rocketry.motorsim.fuel.KNDX;\r
import com.billkuker.rocketry.motorsim.fuel.KNSU;\r
import com.billkuker.rocketry.motorsim.grain.CSlot;\r
import com.billkuker.rocketry.motorsim.visual.HardwarePanel;\r
import com.billkuker.rocketry.motorsim.visual.SummaryPanel;\r
\r
-public class MotorEditor extends JPanel implements PropertyChangeListener {\r
+public class MotorEditor extends JPanel implements PropertyChangeListener, FuelResolver.FuelsChangeListener{\r
private static final long serialVersionUID = 1L;\r
private static Logger log = Logger.getLogger(MotorEditor.class);\r
Motor motor;\r
private Vector<BurnWatcher> burnWatchers = new Vector<BurnWatcher>();\r
private DefaultComboBoxModel availableFuels = new DefaultComboBoxModel();\r
\r
- public void addFuel(Fuel f){\r
- availableFuels.addElement(f);\r
+ public MotorEditor(Motor m) {\r
+ setLayout( new BorderLayout());\r
+ tabs = new JTabbedPane(JTabbedPane.TOP);\r
+ add(tabs, BorderLayout.CENTER);\r
+ setMotor(m);\r
+ fuelsChanged();\r
+ }\r
+\r
+ @Override\r
+ public void fuelsChanged() {\r
+ availableFuels.removeAllElements();\r
+ availableFuels.addElement(motor.getFuel());\r
+ for ( Fuel f : FuelResolver.getFuelMap().values() ){\r
+ availableFuels.addElement(f);\r
+ }\r
}\r
\r
//private static final int XML_TAB = 0;\r
}\r
\r
\r
- public MotorEditor(Motor m, Collection<Fuel> fuels) {\r
- \r
- setLayout( new BorderLayout());\r
- tabs = new JTabbedPane(JTabbedPane.TOP);\r
- add(tabs, BorderLayout.CENTER);\r
\r
- for ( Fuel f : fuels )\r
- addFuel(f);\r
- setMotor(m);\r
- }\r
\r
public Motor getMotor() {\r
return motor;\r
}\r
}\r
\r
+\r
}\r
import javax.swing.WindowConstants;\r
\r
import com.billkuker.rocketry.motorsim.Burn;\r
-import com.billkuker.rocketry.motorsim.Fuel;\r
import com.billkuker.rocketry.motorsim.Motor;\r
import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference;\r
-import com.billkuker.rocketry.motorsim.fuel.FuelResolver;\r
import com.billkuker.rocketry.motorsim.fuel.FuelsEditor;\r
import com.billkuker.rocketry.motorsim.io.ENGExporter;\r
import com.billkuker.rocketry.motorsim.io.MotorIO;\r
motors = new JTabbedPane();\r
\r
top.add(motors, BorderLayout.CENTER);\r
- \r
- for ( Fuel f : FuelResolver.getFuelMap().values() ){\r
- addFuel(f);\r
- }\r
\r
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);\r
setVisible(true);\r
}\r
});\r
}\r
- \r
- private void addFuel(Fuel f){\r
- for ( MotorEditor e : m2e.values() )\r
- e.addFuel(f);\r
- }\r
+\r
\r
\r
private void save(Motor m, File f) {\r
}\r
\r
public void addMotor(Motor m, File f) {\r
- MotorEditor e = new MotorEditor(m, FuelResolver.getFuelMap().values());\r
+ MotorEditor e = new MotorEditor(m);\r
e.addBurnWatcher(mb);\r
String title;\r
if (f == null) {\r