added svn:ignores
[debian/openrocket] / src / net / sf / openrocket / gui / dialogs / motor / thrustcurve / ThrustCurveMotorColumns.java
1 package net.sf.openrocket.gui.dialogs.motor.thrustcurve;
2
3 import java.text.Collator;
4 import java.util.Comparator;
5
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;
12
13 /**
14  * Enum defining the table columns.
15  */
16 enum ThrustCurveMotorColumns {
17         MANUFACTURER("Manufacturer", 100) {
18                 @Override
19                 public String getValue(ThrustCurveMotorSet m) {
20                         return m.getManufacturer().getDisplayName();
21                 }
22                 
23                 @Override
24                 public Comparator<?> getComparator() {
25                         return Collator.getInstance();
26                 }
27         },
28         DESIGNATION("Designation") {
29                 @Override
30                 public String getValue(ThrustCurveMotorSet m) {
31                         return m.getDesignation();
32                 }
33                 
34                 @Override
35                 public Comparator<?> getComparator() {
36                         return new DesignationComparator();
37                 }
38         },
39         TYPE("Type") {
40                 @Override
41                 public String getValue(ThrustCurveMotorSet m) {
42                         return m.getType().getName();
43                 }
44                 
45                 @Override
46                 public Comparator<?> getComparator() {
47                         return Collator.getInstance();
48                 }
49         },
50         DIAMETER("Diameter") {
51                 @Override
52                 public Object getValue(ThrustCurveMotorSet m) {
53                         return new Value(m.getDiameter(), UnitGroup.UNITS_MOTOR_DIMENSIONS);
54                 }
55                 
56                 @Override
57                 public Comparator<?> getComparator() {
58                         return ValueComparator.INSTANCE;
59                 }
60         },
61         LENGTH("Length") {
62                 @Override
63                 public Object getValue(ThrustCurveMotorSet m) {
64                         return new Value(m.getLength(), UnitGroup.UNITS_MOTOR_DIMENSIONS);
65                 }
66                 
67                 @Override
68                 public Comparator<?> getComparator() {
69                         return ValueComparator.INSTANCE;
70                 }
71         };
72         
73
74         private final String title;
75         private final int width;
76         
77         ThrustCurveMotorColumns(String title) {
78                 this(title, 50);
79         }
80         
81         ThrustCurveMotorColumns(String title, int width) {
82                 this.title = title;
83                 this.width = width;
84         }
85         
86         
87         public abstract Object getValue(ThrustCurveMotorSet m);
88         
89         public abstract Comparator<?> getComparator();
90         
91         public String getTitle() {
92                 return title;
93         }
94         
95         public int getWidth() {
96                 return width;
97         }
98         
99         public String getToolTipText(ThrustCurveMotor m) {
100                 String tip = "<html>";
101                 tip += "<b>" + m.toString() + "</b>";
102                 tip += " (" + m.getMotorType().getDescription() + ")<br><hr>";
103                 
104                 String desc = m.getDescription().trim();
105                 if (desc.length() > 0) {
106                         tip += "<i>" + desc.replace("\n", "<br>") + "</i><br><hr>";
107                 }
108                 
109                 tip += ("Diameter: " +
110                                 UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getDiameter()) +
111                                 "<br>");
112                 tip += ("Length: " +
113                                 UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getLength()) +
114                                 "<br>");
115                 tip += ("Maximum thrust: " +
116                                 UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getMaxThrustEstimate()) +
117                                 "<br>");
118                 tip += ("Average thrust: " +
119                                 UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getAverageThrustEstimate()) +
120                                 "<br>");
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) +
129                                 "<br>");
130                 tip += ("Empty mass: " +
131                                 UnitGroup.UNITS_MASS.getDefaultUnit()
132                                                 .toStringUnit(m.getEmptyCG().weight));
133                 return tip;
134         }
135         
136 }