2a9ca060ab3f0b3fc9c061a6f35880d8401455a8
[sw/motorsim] / gui / com / billkuker / rocketry / motorsim / visual / FuelPanel.java
1 package com.billkuker.rocketry.motorsim.visual;
2
3 import javax.measure.quantity.Pressure;
4 import javax.measure.quantity.Velocity;
5 import javax.measure.unit.SI;
6 import javax.swing.BoxLayout;
7 import javax.swing.JPanel;
8 import javax.swing.JSplitPane;
9
10 import org.jscience.physics.amount.Amount;
11
12 import com.billkuker.rocketry.motorsim.Fuel;
13
14 public class FuelPanel extends JSplitPane {
15         private static final long serialVersionUID = 1L;
16
17         public FuelPanel(Fuel f) {
18                 super(JSplitPane.HORIZONTAL_SPLIT);
19                 setName("Fuel");
20                 Chart<Pressure, Velocity> burnRate;
21                 try {
22                         burnRate = new Chart<Pressure, Velocity>(SI.MEGA(SI.PASCAL),
23                                         SI.METERS_PER_SECOND, f, "burnRate");
24                 } catch (NoSuchMethodException e) {
25                         throw new Error(e);
26                 }
27                 burnRate.setDomain(burnRate.new IntervalDomain(Amount.valueOf(0, SI
28                                 .MEGA(SI.PASCAL)), Amount.valueOf(11, SI.MEGA(SI.PASCAL)), 20));
29
30                 final JPanel p = new JPanel();
31                 p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
32
33                 p.add(new Editor(f));
34                 try {
35                         p.add(new Editor(f.getCombustionProduct()));
36                 } catch (Exception e) {
37
38                 }
39
40                 setLeftComponent(p);
41                 setRightComponent(burnRate);
42         }
43 }