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.l10n.Translator;
8 import net.sf.openrocket.motor.DesignationComparator;
9 import net.sf.openrocket.motor.ThrustCurveMotor;
10 import net.sf.openrocket.startup.Application;
11 import net.sf.openrocket.unit.UnitGroup;
12 import net.sf.openrocket.unit.Value;
13 import net.sf.openrocket.unit.ValueComparator;
17 * Enum defining the table columns.
20 enum ThrustCurveMotorColumns {
21 MANUFACTURER("Manufacturer", 100) {
23 public String getValue(ThrustCurveMotorSet m) {
24 return m.getManufacturer().getDisplayName();
28 public Comparator<?> getComparator() {
29 return Collator.getInstance();
32 DESIGNATION("Designation") {
34 public String getValue(ThrustCurveMotorSet m) {
35 return m.getDesignation();
39 public Comparator<?> getComparator() {
40 return new DesignationComparator();
45 public String getValue(ThrustCurveMotorSet m) {
46 return m.getType().getName();
50 public Comparator<?> getComparator() {
51 return Collator.getInstance();
54 DIAMETER("Diameter") {
56 public Object getValue(ThrustCurveMotorSet m) {
57 return new Value(m.getDiameter(), UnitGroup.UNITS_MOTOR_DIMENSIONS);
61 public Comparator<?> getComparator() {
62 return ValueComparator.INSTANCE;
67 public Object getValue(ThrustCurveMotorSet m) {
68 return new Value(m.getLength(), UnitGroup.UNITS_MOTOR_DIMENSIONS);
72 public Comparator<?> getComparator() {
73 return ValueComparator.INSTANCE;
78 private final String title;
79 private final int width;
80 private static final Translator trans = Application.getTranslator();
82 ThrustCurveMotorColumns(String title) {
86 ThrustCurveMotorColumns(String title, int width) {
92 public abstract Object getValue(ThrustCurveMotorSet m);
94 public abstract Comparator<?> getComparator();
96 public String getTitle() {
100 public int getWidth() {
104 public String getToolTipText(ThrustCurveMotor m) {
105 String tip = "<html>";
106 tip += "<b>" + m.toString() + "</b>";
107 tip += " (" + m.getMotorType().getDescription() + ")<br><hr>";
109 String desc = m.getDescription().trim();
110 if (desc.length() > 0) {
111 tip += "<i>" + desc.replace("\n", "<br>") + "</i><br><hr>";
114 tip += ("Diameter: " +
115 UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getDiameter()) +
118 UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getLength()) +
120 tip += ("Maximum thrust: " +
121 UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getMaxThrustEstimate()) +
123 tip += ("Average thrust: " +
124 UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getAverageThrustEstimate()) +
126 tip += ("Burn time: " +
127 UnitGroup.UNITS_SHORT_TIME.getDefaultUnit()
128 .toStringUnit(m.getBurnTimeEstimate()) + "<br>");
129 tip += ("Total impulse: " +
130 UnitGroup.UNITS_IMPULSE.getDefaultUnit()
131 .toStringUnit(m.getTotalImpulseEstimate()) + "<br>");
132 tip += ("Launch mass: " +
133 UnitGroup.UNITS_MASS.getDefaultUnit().toStringUnit(m.getLaunchCG().weight) +
135 tip += ("Empty mass: " +
136 UnitGroup.UNITS_MASS.getDefaultUnit()
137 .toStringUnit(m.getEmptyCG().weight));