Preset dialog
authorplaa <plaa@180e2498-e6e9-4542-8430-84ac67f01cd8>
Mon, 2 Apr 2012 14:23:39 +0000 (14:23 +0000)
committerplaa <plaa@180e2498-e6e9-4542-8430-84ac67f01cd8>
Mon, 2 Apr 2012 14:23:39 +0000 (14:23 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@501 180e2498-e6e9-4542-8430-84ac67f01cd8

core/resources/l10n/messages.properties
core/src/net/sf/openrocket/gui/adaptors/PresetModel.java
core/src/net/sf/openrocket/gui/dialogs/preset/ComponentPresetChooserDialog.java
core/src/net/sf/openrocket/preset/TypedKey.java

index dc6b273dfd571710df6ef7d2cd912860f45d735a..2923181e98e451b23d0e25556508b44ad4d9d0b9 100644 (file)
@@ -124,9 +124,6 @@ PrintDialog.error.preview.title = Unable to open preview
 PrintDialog.error.preview.desc1 = Unable to open PDF preview.
 PrintDialog.error.preview.desc2 = Please use the "Save as PDF" option instead.
 
-! Component Preset Chooser Dialog
-CompPresetChooser.title = Choose component preset
-
 !PrintSettingsDialog
 PrintSettingsDialog.title = Print settings
 PrintSettingsDialog.lbl.Templatefillcolor = Template fill color:
@@ -1590,3 +1587,6 @@ CustomFinImport.description = The image will be converted internally to black an
 PresetModel.lbl.select = Select preset:
 PresetModel.lbl.database = From database...
 
+
+! Component Preset Chooser Dialog
+ComponentPresetChooserDialog.title = Choose component preset
index 63a0ef75ba88666ab5faca4e41da9c6706f66371..d8d23a3fa20884f762567245f01fca6cebd4f44b 100644 (file)
@@ -55,7 +55,6 @@ public class PresetModel extends AbstractListModel implements ComboBoxModel, Com
        @Override
        public void setSelectedItem(Object item) {
                log.user("User selected preset item '" + item + "' for component " + component);
-               System.err.println("**** Setting item: " + item);
                
                if (item == null) {
                        // FIXME:  What to do?
@@ -83,7 +82,6 @@ public class PresetModel extends AbstractListModel implements ComboBoxModel, Com
        public void componentChanged(ComponentChangeEvent e) {
                if (previousPreset != component.getPresetComponent()) {
                        previousPreset = component.getPresetComponent();
-                       System.err.println("Firing event");
                        fireContentsChanged(this, 0, getSize());
                }
        }
index 23640217d042168fb22718f501928ffffa53f68f..027e1c29bb292041d45a32f5504e01cac9012375 100644 (file)
@@ -5,6 +5,7 @@ import java.awt.Dialog;
 import java.awt.Window;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.util.List;
 
 import javax.swing.JButton;
 import javax.swing.JDialog;
@@ -14,26 +15,66 @@ import net.miginfocom.swing.MigLayout;
 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;
 
 public class ComponentPresetChooserDialog extends JDialog {
        
-//     private final ThrustCurveMotorSelectionPanel selectionPanel;
+       private static final Translator trans = Application.getTranslator();
+       
+       //      private final ThrustCurveMotorSelectionPanel selectionPanel;
+       
+       private final RocketComponent component;
+       private final List<ComponentPreset> presets;
        
        private boolean okClicked = false;
-       private static final Translator trans = Application.getTranslator();
-
        
-       public ComponentPresetChooserDialog(Window owner) {
-               super(owner, trans.get("CompPresetChooser.title"), Dialog.ModalityType.APPLICATION_MODAL);
+       
+       public ComponentPresetChooserDialog(Window owner, RocketComponent component, TypedKey<?>... columnKeys) {
+               super(owner, trans.get("title"), Dialog.ModalityType.APPLICATION_MODAL);
+               
+               this.component = component;
+               
+               // FIXME: Make generic for component type
+               presets = Application.getDaos().getBodyTubePresetDao().listAll();
+               
+               
+               
                
                JPanel panel = new JPanel(new MigLayout("fill"));
                
-               //selectionPanel = new ThrustCurveMotorSelectionPanel((ThrustCurveMotor) current, delay, diameter);
+               /*
+               Column[] columns = new Column[columnKeys.length];
+               
+               for (int i = 0; i < columnKeys.length; i++) {
+                       final TypedKey<?> key = columnKeys[i];
+                       columns[i] = new Column(trans.get("table.column." + columnKeys[i].getName())) {
+                               @Override
+                               public Object getValueAt(int row) {
+                                       if (key.getType() == Double.class && key.getUnitGroup() != null) {
+                                               return new Value(, null);
+                                       }
+                                       
+                                       
+                                       // TODO Auto-generated method stub
+                                       return null;
+                               }
+                       };
+               }
+               
+               ColumnTableModel tableModel = new ColumnTableModel(columns) {
+                       @Override
+                       public int getRowCount() {
+                               // FIXME Auto-generated method stub
+                               return 0;
+                       }
+               }
+               */
+               
+               
                
-               //panel.add(selectionPanel, "grow, wrap para");
                
-
                // OK / Cancel buttons
                JButton okButton = new JButton(trans.get("dlg.but.ok"));
                okButton.addActionListener(new ActionListener() {
@@ -70,7 +111,6 @@ public class ComponentPresetChooserDialog extends JDialog {
                //selectionPanel.setCloseableDialog(this);
        }
        
-       
        /**
         * Return the motor selected by this chooser dialog, or <code>null</code> if the selection has been aborted.
         * 
index 0d558944042a4274014276074a89b493ddaccebc..935b2314adf73d3b367cca21ad9dba457219fb59 100644 (file)
@@ -4,59 +4,70 @@ import net.sf.openrocket.database.Databases;
 import net.sf.openrocket.material.Material;
 import net.sf.openrocket.rocketcomponent.ExternalComponent.Finish;
 import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.unit.UnitGroup;
 
 public class TypedKey<T> {
-
+       
        private final String name;
        private final Class<T> type;
+       private final UnitGroup unitGroup;
        
        public TypedKey(String name, Class<T> type) {
+               this(name, type, null);
+       }
+       
+       public TypedKey(String name, Class<T> type, UnitGroup unitGroup) {
                this.name = name;
                this.type = type;
+               this.unitGroup = unitGroup;
        }
-
+       
        public String getName() {
                return name;
        }
-
+       
        public Class<T> getType() {
                return type;
        }
-
-       public Object parseFromString( String value ) {
-               if ( type.equals(Boolean.class) ) {
+       
+       public UnitGroup getUnitGroup() {
+               return unitGroup;
+       }
+       
+       public Object parseFromString(String value) {
+               if (type.equals(Boolean.class)) {
                        return Boolean.parseBoolean(value);
                }
-               if ( type.isAssignableFrom(Double.class) ) {
+               if (type.isAssignableFrom(Double.class)) {
                        return Double.parseDouble(value);
                }
-               if ( type.equals(String.class ) ) {
+               if (type.equals(String.class)) {
                        return value;
                }
-               if ( type.equals(Finish.class) ) {
+               if (type.equals(Finish.class)) {
                        return Finish.valueOf(value);
                }
-               if ( type.equals(Material.class) ) {
+               if (type.equals(Material.class)) {
                        // need to translate the value first!
                        String translated_value = Application.getTranslator().get(value);
                        Material material;
                        material = Databases.findMaterial(Material.Type.BULK, translated_value);
-                       if ( material != null ) {
+                       if (material != null) {
                                return material;
                        }
                        material = Databases.findMaterial(Material.Type.LINE, translated_value);
-                       if ( material != null ) {
+                       if (material != null) {
                                return material;
                        }
                        material = Databases.findMaterial(Material.Type.SURFACE, translated_value);
-                       if ( material != null ) {
+                       if (material != null) {
                                return material;
                        }
                        throw new IllegalArgumentException("Invalid material " + value + " in component preset.");
                }
                throw new IllegalArgumentException("Inavlid type " + type.getName() + " for component preset parameter " + name);
        }
-
+       
        @Override
        public int hashCode() {
                final int prime = 31;
@@ -65,7 +76,7 @@ public class TypedKey<T> {
                result = prime * result + ((type == null) ? 0 : type.hashCode());
                return result;
        }
-
+       
        @Override
        public boolean equals(Object obj) {
                if (this == obj)