Preset dialog
[debian/openrocket] / core / src / net / sf / openrocket / gui / dialogs / preset / ComponentPresetChooserDialog.java
1 package net.sf.openrocket.gui.dialogs.preset;
2
3
4 import java.awt.Dialog;
5 import java.awt.Window;
6 import java.awt.event.ActionEvent;
7 import java.awt.event.ActionListener;
8 import java.util.List;
9
10 import javax.swing.JButton;
11 import javax.swing.JDialog;
12 import javax.swing.JPanel;
13
14 import net.miginfocom.swing.MigLayout;
15 import net.sf.openrocket.gui.util.GUIUtil;
16 import net.sf.openrocket.l10n.Translator;
17 import net.sf.openrocket.preset.ComponentPreset;
18 import net.sf.openrocket.preset.TypedKey;
19 import net.sf.openrocket.rocketcomponent.RocketComponent;
20 import net.sf.openrocket.startup.Application;
21
22 public class ComponentPresetChooserDialog extends JDialog {
23         
24         private static final Translator trans = Application.getTranslator();
25         
26         //      private final ThrustCurveMotorSelectionPanel selectionPanel;
27         
28         private final RocketComponent component;
29         private final List<ComponentPreset> presets;
30         
31         private boolean okClicked = false;
32         
33         
34         public ComponentPresetChooserDialog(Window owner, RocketComponent component, TypedKey<?>... columnKeys) {
35                 super(owner, trans.get("title"), Dialog.ModalityType.APPLICATION_MODAL);
36                 
37                 this.component = component;
38                 
39                 // FIXME: Make generic for component type
40                 presets = Application.getDaos().getBodyTubePresetDao().listAll();
41                 
42                 
43                 
44                 
45                 JPanel panel = new JPanel(new MigLayout("fill"));
46                 
47                 /*
48                 Column[] columns = new Column[columnKeys.length];
49                 
50                 for (int i = 0; i < columnKeys.length; i++) {
51                         final TypedKey<?> key = columnKeys[i];
52                         columns[i] = new Column(trans.get("table.column." + columnKeys[i].getName())) {
53                                 @Override
54                                 public Object getValueAt(int row) {
55                                         if (key.getType() == Double.class && key.getUnitGroup() != null) {
56                                                 return new Value(, null);
57                                         }
58                                         
59                                         
60                                         // TODO Auto-generated method stub
61                                         return null;
62                                 }
63                         };
64                 }
65                 
66                 ColumnTableModel tableModel = new ColumnTableModel(columns) {
67                         @Override
68                         public int getRowCount() {
69                                 // FIXME Auto-generated method stub
70                                 return 0;
71                         }
72                 }
73                 */
74                 
75                 
76                 
77                 
78                 // OK / Cancel buttons
79                 JButton okButton = new JButton(trans.get("dlg.but.ok"));
80                 okButton.addActionListener(new ActionListener() {
81                         @Override
82                         public void actionPerformed(ActionEvent e) {
83                                 close(true);
84                         }
85                 });
86                 panel.add(okButton, "tag ok, spanx, split");
87                 
88                 //// Cancel button
89                 JButton cancelButton = new JButton(trans.get("dlg.but.cancel"));
90                 cancelButton.addActionListener(new ActionListener() {
91                         @Override
92                         public void actionPerformed(ActionEvent e) {
93                                 close(false);
94                         }
95                 });
96                 panel.add(cancelButton, "tag cancel");
97                 
98                 this.add(panel);
99                 
100                 this.setModal(true);
101                 this.pack();
102                 this.setLocationByPlatform(true);
103                 GUIUtil.setDisposableDialogOptions(this, okButton);
104                 
105                 //JComponent focus = selectionPanel.getDefaultFocus();
106                 //if (focus != null) {
107                 //      focus.grabFocus();
108                 //}
109                 
110                 // Set the closeable dialog after all initialization
111                 //selectionPanel.setCloseableDialog(this);
112         }
113         
114         /**
115          * Return the motor selected by this chooser dialog, or <code>null</code> if the selection has been aborted.
116          * 
117          * @return      the selected motor, or <code>null</code> if no motor has been selected or the selection was canceled.
118          */
119         public ComponentPreset getSelectedComponentPreset() {
120                 if (!okClicked)
121                         return null;
122                 //return selectionPanel.getSelectedMotor();
123                 return null;
124         }
125         
126         public void close(boolean ok) {
127                 okClicked = ok;
128                 this.setVisible(false);
129                 
130                 ComponentPreset preset = getSelectedComponentPreset();
131                 if (okClicked && preset != null) {
132                         //selectionPanel.selectedMotor(selected);
133                 }
134         }
135         
136 }