1 package net.sf.openrocket.gui.dialogs.preset;
4 import java.awt.Dialog;
5 import java.awt.Window;
6 import java.awt.event.ActionEvent;
7 import java.awt.event.ActionListener;
10 import javax.swing.JButton;
11 import javax.swing.JDialog;
12 import javax.swing.JPanel;
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;
22 public class ComponentPresetChooserDialog extends JDialog {
24 private static final Translator trans = Application.getTranslator();
26 // private final ThrustCurveMotorSelectionPanel selectionPanel;
28 private final RocketComponent component;
29 private final List<ComponentPreset> presets;
31 private boolean okClicked = false;
34 public ComponentPresetChooserDialog(Window owner, RocketComponent component, TypedKey<?>... columnKeys) {
35 super(owner, trans.get("title"), Dialog.ModalityType.APPLICATION_MODAL);
37 this.component = component;
39 // FIXME: Make generic for component type
40 presets = Application.getDaos().getBodyTubePresetDao().listAll();
45 JPanel panel = new JPanel(new MigLayout("fill"));
48 Column[] columns = new Column[columnKeys.length];
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())) {
54 public Object getValueAt(int row) {
55 if (key.getType() == Double.class && key.getUnitGroup() != null) {
56 return new Value(, null);
60 // TODO Auto-generated method stub
66 ColumnTableModel tableModel = new ColumnTableModel(columns) {
68 public int getRowCount() {
69 // FIXME Auto-generated method stub
78 // OK / Cancel buttons
79 JButton okButton = new JButton(trans.get("dlg.but.ok"));
80 okButton.addActionListener(new ActionListener() {
82 public void actionPerformed(ActionEvent e) {
86 panel.add(okButton, "tag ok, spanx, split");
89 JButton cancelButton = new JButton(trans.get("dlg.but.cancel"));
90 cancelButton.addActionListener(new ActionListener() {
92 public void actionPerformed(ActionEvent e) {
96 panel.add(cancelButton, "tag cancel");
102 this.setLocationByPlatform(true);
103 GUIUtil.setDisposableDialogOptions(this, okButton);
105 //JComponent focus = selectionPanel.getDefaultFocus();
106 //if (focus != null) {
107 // focus.grabFocus();
110 // Set the closeable dialog after all initialization
111 //selectionPanel.setCloseableDialog(this);
115 * Return the motor selected by this chooser dialog, or <code>null</code> if the selection has been aborted.
117 * @return the selected motor, or <code>null</code> if no motor has been selected or the selection was canceled.
119 public ComponentPreset getSelectedComponentPreset() {
122 //return selectionPanel.getSelectedMotor();
126 public void close(boolean ok) {
128 this.setVisible(false);
130 ComponentPreset preset = getSelectedComponentPreset();
131 if (okClicked && preset != null) {
132 //selectionPanel.selectedMotor(selected);