1 package net.sf.openrocket.gui.dialogs.preset;
3 import javax.swing.table.TableCellEditor;
4 import javax.swing.table.TableColumn;
6 import net.sf.openrocket.l10n.Translator;
7 import net.sf.openrocket.preset.ComponentPreset;
8 import net.sf.openrocket.preset.TypedKey;
9 import net.sf.openrocket.startup.Application;
10 import net.sf.openrocket.unit.Unit;
11 import net.sf.openrocket.unit.UnitGroup;
12 import net.sf.openrocket.unit.Value;
14 public abstract class ComponentPresetTableColumn extends TableColumn {
16 private static final Translator trans = Application.getTranslator();
18 protected ComponentPresetTableColumn( String header, int modelIndex ) {
19 this.setHeaderValue(header);
20 this.setModelIndex(modelIndex);
24 public abstract Object getValueFromPreset( ComponentPreset preset );
26 public static class Favorite extends ComponentPresetTableColumn {
28 public Favorite(int modelIndex) {
29 super(trans.get("table.column.Favorite"), modelIndex);
33 public Object getValueFromPreset( ComponentPreset preset ) {
34 return Boolean.valueOf(preset.isFavorite());
39 public static class Parameter extends ComponentPresetTableColumn {
41 protected final TypedKey<?> key;
43 public Parameter( TypedKey<?> key, int modelIndex ) {
44 super( trans.get("table.column." + key.getName()), modelIndex );
49 public Object getValueFromPreset(ComponentPreset preset) {
50 return preset.has(key) ? preset.get(key) : null;
56 public static class DoubleWithUnit extends Parameter {
61 public DoubleWithUnit( TypedKey<Double> key, int modelIndex ) {
62 super(key,modelIndex);
63 this.unitGroup = key.getUnitGroup();
64 this.selectedUnit = unitGroup.getDefaultUnit();
68 public Object getValueFromPreset(ComponentPreset preset) {
69 Double value = (Double) super.getValueFromPreset(preset);
70 if ( value != null ) {
71 return new Value((Double)super.getValueFromPreset(preset),selectedUnit);