create changelog entry
[debian/openrocket] / core / src / net / sf / openrocket / gui / components / DoubleCellEditor.java
1 package net.sf.openrocket.gui.components;
2
3 import java.awt.Component;
4 import java.text.ParseException;
5
6 import javax.swing.AbstractCellEditor;
7 import javax.swing.JSpinner;
8 import javax.swing.JTable;
9 import javax.swing.table.TableCellEditor;
10
11 import net.sf.openrocket.gui.SpinnerEditor;
12 import net.sf.openrocket.gui.adaptors.DoubleModel;
13
14 public class DoubleCellEditor extends AbstractCellEditor implements TableCellEditor {
15         
16         private final JSpinner editor;
17         private final DoubleModel model;
18         
19         public DoubleCellEditor() {
20                 model = new DoubleModel(0);
21                 editor = new JSpinner(model.getSpinnerModel());
22                 editor.setEditor(new SpinnerEditor(editor));
23                 //              editor.addChangeListener(this);
24         }
25         
26         
27         @Override
28         public Component getTableCellEditorComponent(JTable table, Object value,
29                         boolean isSelected, int row, int column) {
30                 
31                 double val = (Double) value;
32                 model.setValue(val);
33                 
34                 return editor;
35         }
36         
37         
38         @Override
39         public boolean stopCellEditing() {
40                 try {
41                         editor.commitEdit();
42                 } catch (ParseException e) {
43                         // Ignore
44                 }
45                 return super.stopCellEditing();
46         }
47         
48         
49         @Override
50         public Object getCellEditorValue() {
51                 return model.getValue();
52         }
53         
54 }