]> git.gag.com Git - debian/openrocket/commitdiff
Added table contents to ComponentPresetChooserDialog.
authorkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 3 Apr 2012 03:39:11 +0000 (03:39 +0000)
committerkruland2607 <kruland2607@180e2498-e6e9-4542-8430-84ac67f01cd8>
Tue, 3 Apr 2012 03:39:11 +0000 (03:39 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@508 180e2498-e6e9-4542-8430-84ac67f01cd8

core/resources/l10n/messages.properties
core/src/net/sf/openrocket/gui/configdialog/BodyTubeConfig.java
core/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java

index 2923181e98e451b23d0e25556508b44ad4d9d0b9..876dcdbbcabafe55dcef33a6399850cf2d8beaa1 100644 (file)
@@ -1590,3 +1590,9 @@ PresetModel.lbl.database = From database...
 
 ! Component Preset Chooser Dialog
 ComponentPresetChooserDialog.title = Choose component preset
+table.column.Manufacturer = Manufacturer
+table.column.PartNo = Part Number
+table.column.OuterDiameter = Outer Diameter
+table.column.InnerDiameter = Inner Diameter
+table.column.Length = Length
+
index ccd5624e902c9ee8be1b9c11b2a790a14d86a495..320b30847bb006e514e70d0881edec563d7dde73 100644 (file)
@@ -1,11 +1,16 @@
 package net.sf.openrocket.gui.configdialog;
 
 
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
 import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JSpinner;
+import javax.swing.SwingUtilities;
 
 import net.miginfocom.swing.MigLayout;
 import net.sf.openrocket.document.OpenRocketDocument;
@@ -15,8 +20,10 @@ import net.sf.openrocket.gui.adaptors.DoubleModel;
 import net.sf.openrocket.gui.adaptors.PresetModel;
 import net.sf.openrocket.gui.components.BasicSlider;
 import net.sf.openrocket.gui.components.UnitSelector;
+import net.sf.openrocket.gui.dialogs.preset.ComponentPresetChooserDialog;
 import net.sf.openrocket.l10n.Translator;
 import net.sf.openrocket.material.Material;
+import net.sf.openrocket.preset.ComponentPreset;
 import net.sf.openrocket.rocketcomponent.BodyTube;
 import net.sf.openrocket.rocketcomponent.RocketComponent;
 import net.sf.openrocket.startup.Application;
@@ -42,8 +49,29 @@ public class BodyTubeConfig extends RocketComponentConfig {
                presetComboBox = new JComboBox(new PresetModel(component));
                presetComboBox.setEditable(false);
                panel.add(presetComboBox, "wrap para");
-               
-               
+               //FIXME: temporarily put the select from table button in the config dialog.
+               {
+                       JButton opendialog = new JButton("o");
+                       opendialog.addActionListener(
+                                       new ActionListener() {
+
+                                               @Override
+                                               public void actionPerformed(ActionEvent e) {
+                                                       ComponentPresetChooserDialog dialog = 
+                                                                       new ComponentPresetChooserDialog( SwingUtilities.getWindowAncestor(BodyTubeConfig.this),
+                                                                                       BodyTubeConfig.this.component,
+                                                                                       ComponentPreset.MANUFACTURER,
+                                                                                       ComponentPreset.PARTNO,
+                                                                                       ComponentPreset.OUTER_DIAMETER,
+                                                                                       ComponentPreset.INNER_DIAMETER,
+                                                                                       ComponentPreset.LENGTH);
+                                                       dialog.setVisible(true);
+                                                       ComponentPreset preset = dialog.getSelectedComponentPreset();
+                                               }
+                                       });
+                       panel.add( opendialog, "wrap" );
+               }
+
                
                ////  Body tube length
                panel.add(new JLabel(trans.get("BodyTubecfg.lbl.Bodytubelength")));
index 52912439c71538b2807731264e200272550322cb..8b7b4235ccb0b76a2a13bc902fe2d0cdd628e7ec 100644 (file)
@@ -10,14 +10,22 @@ import java.util.List;
 import javax.swing.JButton;
 import javax.swing.JDialog;
 import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.ListSelectionModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
 
 import net.miginfocom.swing.MigLayout;
+import net.sf.openrocket.gui.adaptors.Column;
+import net.sf.openrocket.gui.adaptors.ColumnTableModel;
 import net.sf.openrocket.gui.util.GUIUtil;
 import net.sf.openrocket.l10n.Translator;
 import net.sf.openrocket.preset.ComponentPreset;
 import net.sf.openrocket.preset.TypedKey;
 import net.sf.openrocket.rocketcomponent.RocketComponent;
 import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.unit.Value;
 
 public class ComponentPresetChooserDialog extends JDialog {
        
@@ -31,21 +39,16 @@ public class ComponentPresetChooserDialog extends JDialog {
        private boolean okClicked = false;
        
        
-       public ComponentPresetChooserDialog(Window owner, RocketComponent component, TypedKey<?>... columnKeys) {
+       public ComponentPresetChooserDialog(Window owner, RocketComponent component, final TypedKey<?>... columnKeys) {
                super(owner, trans.get("title"), Dialog.ModalityType.APPLICATION_MODAL);
                
                this.component = component;
                
-               // FIXME: Make generic for component type
                presets = Application.getComponentPresetDao().listAll();
                
-               
-               
-               
                JPanel panel = new JPanel(new MigLayout("fill"));
                
-               /*
-               Column[] columns = new Column[columnKeys.length];
+               final Column[] columns = new Column[columnKeys.length];
                
                for (int i = 0; i < columnKeys.length; i++) {
                        final TypedKey<?> key = columnKeys[i];
@@ -53,12 +56,11 @@ public class ComponentPresetChooserDialog extends JDialog {
                                @Override
                                public Object getValueAt(int row) {
                                        if (key.getType() == Double.class && key.getUnitGroup() != null) {
-                                               return new Value(, null);
+                                               double v = (Double) ComponentPresetChooserDialog.this.presets.get(row).get(key);
+                                               return new Value( v, key.getUnitGroup() );
+                                       } else {
+                                               return ComponentPresetChooserDialog.this.presets.get(row);
                                        }
-                                       
-                                       
-                                       // TODO Auto-generated method stub
-                                       return null;
                                }
                        };
                }
@@ -66,14 +68,25 @@ public class ComponentPresetChooserDialog extends JDialog {
                ColumnTableModel tableModel = new ColumnTableModel(columns) {
                        @Override
                        public int getRowCount() {
-                               // FIXME Auto-generated method stub
-                               return 0;
+                               return ComponentPresetChooserDialog.this.presets.size();
                        }
-               }
-               */
-               
-               
+               };
                
+               final JTable table = new JTable( tableModel );
+               table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+
+               final TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tableModel);
+               // FIXME we might need some custom sorters.
+               /*for (int i = 0; i < columnKeys.length; i++) {
+                       TypedKey<?> column = columnKeys[i];
+                       sorter.setComparator(i, column.getComparator());
+               }*/
+               table.setRowSorter(sorter);
+
+               JScrollPane scrollpane = new JScrollPane();
+               scrollpane.setViewportView(table);
+               panel.add(scrollpane, "grow, width :500:, height :300:, spanx, wrap para");
+
                
                // OK / Cancel buttons
                JButton okButton = new JButton(trans.get("dlg.but.ok"));