create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / gui / dialogs / preset / ComponentPresetTableColumn.java
1 package net.sf.openrocket.gui.dialogs.preset;
2
3 import java.util.Set;
4
5 import javax.swing.table.TableColumn;
6
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;
14
15 public abstract class ComponentPresetTableColumn extends TableColumn {
16
17         private static final Translator trans = Application.getTranslator();
18
19         protected ComponentPresetTableColumn( String header, int modelIndex ) {
20                 this.setHeaderValue(header);
21                 this.setModelIndex(modelIndex);
22         
23         }
24         
25         public abstract Object getValueFromPreset( Set<String> favorites, ComponentPreset preset );
26         
27         public static class Favorite extends ComponentPresetTableColumn {
28
29                 public Favorite(int modelIndex) {
30                         super(trans.get("table.column.Favorite"), modelIndex);
31                 }
32                 
33                 @Override
34                 public Object getValueFromPreset( Set<String> favorites, ComponentPreset preset ) {
35                         return Boolean.valueOf(favorites.contains(preset.preferenceKey()));
36                 }
37
38         }
39
40         public static class Parameter extends ComponentPresetTableColumn {
41
42                 protected final TypedKey<?> key;
43                 
44                 public Parameter( TypedKey<?> key, int modelIndex ) {
45                         super( trans.get("table.column." + key.getName()), modelIndex );
46                         this.key = key;
47                 }
48
49                 @Override
50                 public Object getValueFromPreset(Set<String> favorites, ComponentPreset preset) {
51                         return preset.has(key) ? preset.get(key) : null;
52                 }
53                 
54         }
55
56
57         public static class DoubleWithUnit extends Parameter {
58
59                 UnitGroup unitGroup;
60                 Unit selectedUnit;
61                 
62                 public DoubleWithUnit( TypedKey<Double> key, int modelIndex ) {
63                         super(key,modelIndex);
64                         this.unitGroup = key.getUnitGroup();
65                         this.selectedUnit = unitGroup.getDefaultUnit();
66                 }
67
68                 @Override
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);
73                         } else {
74                                 return null;
75                         }
76                 }
77                 
78                 
79         }
80
81 }
82
83
84