import java.util.List;\r
import java.util.Vector;\r
\r
+import javax.measure.quantity.Duration;\r
import javax.measure.unit.SI;\r
import javax.swing.Box;\r
import javax.swing.BoxLayout;\r
});\r
\r
\r
+ \r
+ \r
+ l = new JLabel("Delay:");\r
+ l.setAlignmentX(LEFT_ALIGNMENT);\r
+ nameAndFuel.add(l);\r
+ nameAndFuel.add(new JTextField(Double.toString(motor.getEjectionDelay().doubleValue(SI.SECOND))) {\r
+ private static final long serialVersionUID = 1L;\r
+ {\r
+ setAlignmentX(LEFT_ALIGNMENT);\r
+ setMinimumSize(new Dimension(200, 20));\r
+ setMaximumSize(new Dimension(Short.MAX_VALUE, 20));\r
+ final JTextField t = this;\r
+ addFocusListener(new FocusListener() {\r
+\r
+ @Override\r
+ public void focusLost(FocusEvent e) {\r
+ try {\r
+ String n = t.getText();\r
+ double d = Double.parseDouble(n);\r
+ Amount<Duration> delay = Amount.valueOf(d, SI.SECOND);\r
+ if ( delay != motor.getEjectionDelay() ){\r
+ motor.setEjectionDelay(delay);\r
+ }\r
+ } catch ( Exception ex ){\r
+ log.warn(e);\r
+ setText(Double.toString(motor.getEjectionDelay().doubleValue(SI.SECOND)));\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void focusGained(FocusEvent e) {\r
+\r
+ }\r
+ });\r
+\r
+ }\r
+ });\r
+ \r
+ \r
+ \r
nameAndFuel.add(Box.createVerticalGlue());\r
parts.add(nameAndFuel);\r
\r
package com.billkuker.rocketry.motorsim;\r
\r
+import javax.measure.quantity.Duration;\r
import javax.measure.unit.SI;\r
\r
import org.jscience.physics.amount.Amount;\r
private Nozzle nozzle;\r
private Fuel fuel;\r
private String name;\r
+ private Amount<Duration> ejectionDelay = Amount.valueOf(5, SI.SECOND);\r
\r
public void validate() throws ValidationException {\r
if ( chamber.chamberVolume().isLessThan(grain.volume(Amount.valueOf(0, SI.MILLIMETER)))){\r
public void setName(String name) {\r
this.name = name;\r
}\r
+\r
+ public Amount<Duration> getEjectionDelay() {\r
+ return ejectionDelay;\r
+ }\r
+\r
+ public void setEjectionDelay(Amount<Duration> ejectionDelay) {\r
+ this.ejectionDelay = ejectionDelay;\r
+ }\r
}\r
b.getMotor().getFuel().getDensityRatio())).to(
SI.KILOGRAM);
double wt = prop.doubleValue(SI.KILOGRAM);
+
+ double delay = b.getMotor().getEjectionDelay().doubleValue(SI.SECOND);
+ String delayString = Integer.toString((int)delay);
- out.append(nf.format(dia) + " " + nf.format(len) + " 0-0-0 "
+ out.append(nf.format(dia) + " " + nf.format(len) + " " + delayString + "-0-0 "
+ nf.format(wt) + " " + nf.format(wt + 0.1) + " MF\n");
GraphSimplifier<Duration, Force> gs = null;