import com.billkuker.rocketry.motorsim.grain.Finocyl;\r
import com.billkuker.rocketry.motorsim.grain.Moonburner;\r
import com.billkuker.rocketry.motorsim.grain.MultiGrain;\r
+import com.billkuker.rocketry.motorsim.grain.MultiPort;\r
import com.billkuker.rocketry.motorsim.grain.RodAndTubeGrain;\r
import com.billkuker.rocketry.motorsim.grain.Star;\r
import com.billkuker.rocketry.motorsim.visual.BurnPanel;\r
setLayout( new BorderLayout());\r
tabs = new JTabbedPane(JTabbedPane.TOP);\r
add(tabs, BorderLayout.CENTER);\r
- setMotor(m);\r
+ availableFuels.addElement(m.getFuel());\r
+ availableFuels.setSelectedItem(m.getFuel());\r
+ FuelResolver.addFuelsChangeListener(this);\r
fuelsChanged();\r
+ setMotor(m);\r
+ \r
+ Burn.getBurnSettings().addPropertyChangeListener(this);\r
}\r
\r
@Override\r
public void fuelsChanged() {\r
- availableFuels.removeAllElements();\r
- availableFuels.addElement(motor.getFuel());\r
+ while ( availableFuels.getSize() > 0 && availableFuels.getIndexOf(availableFuels.getSelectedItem()) != 0 )\r
+ availableFuels.removeElementAt(0);\r
+ while ( availableFuels.getSize() > 1 )\r
+ availableFuels.removeElementAt(1);\r
for ( Fuel f : FuelResolver.getFuelMap().values() ){\r
- availableFuels.addElement(f);\r
+ if ( f != availableFuels.getSelectedItem() )\r
+ availableFuels.addElement(f);\r
}\r
}\r
\r
grainTypes.add(RodAndTubeGrain.class);\r
grainTypes.add(CSlot.class);\r
grainTypes.add(EndBurner.class);\r
+ grainTypes.add(MultiPort.class);\r
}\r
\r
private List<Class<? extends Chamber>> chamberTypes = new Vector<Class<? extends Chamber>>();\r
sp = null;\r
}\r
currentThread = new Thread() {\r
+ {\r
+ setName("Burn " + motor.getName());\r
+ setDaemon(true);\r
+ }\r
public void run() {\r
final Thread me = this;\r
try { \r
((ChangeListening.Subject) motor.getChamber())\r
.addPropertyChangeListener(MotorEditor.this);\r
}\r
+ if (motor.getFuel() instanceof ChangeListening.Subject ){\r
+ ((ChangeListening.Subject) motor.getFuel())\r
+ .addPropertyChangeListener(MotorEditor.this);\r
+ }\r
}\r
\r
public CaseEditor() {\r
}\r
return motor.getChamber();\r
} catch (InstantiationException e) {\r
- // TODO Auto-generated catch block\r
- e.printStackTrace();\r
+ log.error(e);\r
} catch (IllegalAccessException e) {\r
- // TODO Auto-generated catch block\r
- e.printStackTrace();\r
+ log.error(e);\r
}\r
return null;\r
}\r