Component preset updates
[debian/openrocket] / core / src / net / sf / openrocket / gui / adaptors / PresetModel.java
index 9f148063a7a027a57c31dcf28bcca633480ec5a3..4dca6f568e40bf9a0e2aa5c61da83d17c3e7805b 100644 (file)
@@ -17,21 +17,22 @@ import net.sf.openrocket.rocketcomponent.ComponentChangeEvent;
 import net.sf.openrocket.rocketcomponent.ComponentChangeListener;
 import net.sf.openrocket.rocketcomponent.RocketComponent;
 import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.util.BugException;
 
 public class PresetModel extends AbstractListModel implements ComboBoxModel, ComponentChangeListener, DatabaseListener<ComponentPreset> {
-
+       
        private static final LogHelper log = Application.getLogger();
        private static final Translator trans = Application.getTranslator();
-
-       private static final String NONE_SELECTED = "";
+       
+       private static final String NONE_SELECTED = trans.get("lbl.select");
        private static final String SELECT_DATABASE = trans.get("lbl.database");
-
+       
        private final Component parent;
        private final RocketComponent component;
        private ComponentPreset previousPreset;
-
+       
        private List<ComponentPreset> presets;
-
+       
        public PresetModel(Component parent, RocketComponent component) {
                this.parent = parent;
                presets = Application.getComponentPresetDao().listForType(component.getPresetType(), true);
@@ -39,12 +40,12 @@ public class PresetModel extends AbstractListModel implements ComboBoxModel, Com
                previousPreset = component.getPresetComponent();
                component.addComponentChangeListener(this);
        }
-
+       
        @Override
        public int getSize() {
                return presets.size() + 2;
        }
-
+       
        @Override
        public Object getElementAt(int index) {
                if (index == 0) {
@@ -55,26 +56,27 @@ public class PresetModel extends AbstractListModel implements ComboBoxModel, Com
                }
                return presets.get(index - 1);
        }
-
+       
        @Override
        public void setSelectedItem(Object item) {
                log.user("User selected preset item '" + item + "' for component " + component);
-
+               
                if (item == null) {
                        // FIXME:  What to do?
+                       throw new BugException("item is null");
                } else if (item.equals(NONE_SELECTED)) {
                        component.clearPreset();
                } else if (item.equals(SELECT_DATABASE)) {
-                       SwingUtilities.invokeLater( new Runnable() {
+                       SwingUtilities.invokeLater(new Runnable() {
                                @Override
                                public void run() {
-                                       ComponentPresetChooserDialog dialog = 
-                                                       new ComponentPresetChooserDialog( SwingUtilities.getWindowAncestor(PresetModel.this.parent),
-                                                                       PresetModel.this.component);
+                                       ComponentPresetChooserDialog dialog =
+                                                       new ComponentPresetChooserDialog(SwingUtilities.getWindowAncestor(parent), component);
                                        dialog.setVisible(true);
                                        ComponentPreset preset = dialog.getSelectedComponentPreset();
-                                       setSelectedItem(preset);
-
+                                       if (preset != null) {
+                                               setSelectedItem(preset);
+                                       }
                                }
                        });
                } else {
@@ -82,7 +84,7 @@ public class PresetModel extends AbstractListModel implements ComboBoxModel, Com
                        component.loadPreset((ComponentPreset) item);
                }
        }
-
+       
        @Override
        public Object getSelectedItem() {
                ComponentPreset preset = component.getPresetComponent();
@@ -92,7 +94,7 @@ public class PresetModel extends AbstractListModel implements ComboBoxModel, Com
                        return preset;
                }
        }
-
+       
        @Override
        public void componentChanged(ComponentChangeEvent e) {
                if (previousPreset != component.getPresetComponent()) {
@@ -100,17 +102,17 @@ public class PresetModel extends AbstractListModel implements ComboBoxModel, Com
                        fireContentsChanged(this, 0, getSize());
                }
        }
-
+       
        @Override
        public void elementAdded(ComponentPreset element, Database<ComponentPreset> source) {
                presets = Application.getComponentPresetDao().listForType(component.getPresetType(), true);
                this.fireContentsChanged(this, 0, getSize());
        }
-
+       
        @Override
        public void elementRemoved(ComponentPreset element, Database<ComponentPreset> source) {
                presets = Application.getComponentPresetDao().listForType(component.getPresetType(), true);
                this.fireContentsChanged(this, 0, getSize());
        }
-
+       
 }