1 package net.sf.openrocket.gui.dialogs.preset;
5 import javax.swing.table.TableColumn;
7 import net.sf.openrocket.l10n.Translator;
8 import net.sf.openrocket.preset.ComponentPreset;
9 import net.sf.openrocket.preset.TypedKey;
10 import net.sf.openrocket.startup.Application;
11 import net.sf.openrocket.unit.Unit;
12 import net.sf.openrocket.unit.UnitGroup;
13 import net.sf.openrocket.unit.Value;
15 public abstract class ComponentPresetTableColumn extends TableColumn {
17 private static final Translator trans = Application.getTranslator();
19 protected ComponentPresetTableColumn( String header, int modelIndex ) {
20 this.setHeaderValue(header);
21 this.setModelIndex(modelIndex);
25 public abstract Object getValueFromPreset( Set<String> favorites, ComponentPreset preset );
27 public static class Favorite extends ComponentPresetTableColumn {
29 public Favorite(int modelIndex) {
30 super(trans.get("table.column.Favorite"), modelIndex);
34 public Object getValueFromPreset( Set<String> favorites, ComponentPreset preset ) {
35 return Boolean.valueOf(favorites.contains(preset.preferenceKey()));
40 public static class Parameter extends ComponentPresetTableColumn {
42 protected final TypedKey<?> key;
44 public Parameter( TypedKey<?> key, int modelIndex ) {
45 super( trans.get("table.column." + key.getName()), modelIndex );
50 public Object getValueFromPreset(Set<String> favorites, ComponentPreset preset) {
51 return preset.has(key) ? preset.get(key) : null;
57 public static class DoubleWithUnit extends Parameter {
62 public DoubleWithUnit( TypedKey<Double> key, int modelIndex ) {
63 super(key,modelIndex);
64 this.unitGroup = key.getUnitGroup();
65 this.selectedUnit = unitGroup.getDefaultUnit();
69 public Object getValueFromPreset(Set<String> favorites, ComponentPreset preset) {
70 Double value = (Double) super.getValueFromPreset(favorites, preset);
71 if ( value != null ) {
72 return new Value((Double)super.getValueFromPreset(favorites, preset),selectedUnit);