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