1 package net.sf.openrocket.gui.dialogs.motor.thrustcurve;
3 import java.text.Collator;
4 import java.util.Comparator;
6 import net.sf.openrocket.database.ThrustCurveMotorSet;
7 import net.sf.openrocket.motor.DesignationComparator;
8 import net.sf.openrocket.motor.ThrustCurveMotor;
9 import net.sf.openrocket.unit.UnitGroup;
10 import net.sf.openrocket.unit.Value;
11 import net.sf.openrocket.unit.ValueComparator;
14 * Enum defining the table columns.
16 enum ThrustCurveMotorColumns {
17 MANUFACTURER("Manufacturer", 100) {
19 public String getValue(ThrustCurveMotorSet m) {
20 return m.getManufacturer().getDisplayName();
24 public Comparator<?> getComparator() {
25 return Collator.getInstance();
28 DESIGNATION("Designation") {
30 public String getValue(ThrustCurveMotorSet m) {
31 return m.getDesignation();
35 public Comparator<?> getComparator() {
36 return new DesignationComparator();
41 public String getValue(ThrustCurveMotorSet m) {
42 return m.getType().getName();
46 public Comparator<?> getComparator() {
47 return Collator.getInstance();
50 DIAMETER("Diameter") {
52 public Object getValue(ThrustCurveMotorSet m) {
53 return new Value(m.getDiameter(), UnitGroup.UNITS_MOTOR_DIMENSIONS);
57 public Comparator<?> getComparator() {
58 return ValueComparator.INSTANCE;
63 public Object getValue(ThrustCurveMotorSet m) {
64 return new Value(m.getLength(), UnitGroup.UNITS_MOTOR_DIMENSIONS);
68 public Comparator<?> getComparator() {
69 return ValueComparator.INSTANCE;
74 private final String title;
75 private final int width;
77 ThrustCurveMotorColumns(String title) {
81 ThrustCurveMotorColumns(String title, int width) {
87 public abstract Object getValue(ThrustCurveMotorSet m);
89 public abstract Comparator<?> getComparator();
91 public String getTitle() {
95 public int getWidth() {
99 public String getToolTipText(ThrustCurveMotor m) {
100 String tip = "<html>";
101 tip += "<b>" + m.toString() + "</b>";
102 tip += " (" + m.getMotorType().getDescription() + ")<br><hr>";
104 String desc = m.getDescription().trim();
105 if (desc.length() > 0) {
106 tip += "<i>" + desc.replace("\n", "<br>") + "</i><br><hr>";
109 tip += ("Diameter: " +
110 UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getDiameter()) +
113 UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getLength()) +
115 tip += ("Maximum thrust: " +
116 UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getMaxThrustEstimate()) +
118 tip += ("Average thrust: " +
119 UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getAverageThrustEstimate()) +
121 tip += ("Burn time: " +
122 UnitGroup.UNITS_SHORT_TIME.getDefaultUnit()
123 .toStringUnit(m.getBurnTimeEstimate()) + "<br>");
124 tip += ("Total impulse: " +
125 UnitGroup.UNITS_IMPULSE.getDefaultUnit()
126 .toStringUnit(m.getTotalImpulseEstimate()) + "<br>");
127 tip += ("Launch mass: " +
128 UnitGroup.UNITS_MASS.getDefaultUnit().toStringUnit(m.getLaunchCG().weight) +
130 tip += ("Empty mass: " +
131 UnitGroup.UNITS_MASS.getDefaultUnit()
132 .toStringUnit(m.getEmptyCG().weight));