1 package net.sf.openrocket.gui.adaptors;
5 import javax.swing.AbstractListModel;
6 import javax.swing.ComboBoxModel;
8 import net.sf.openrocket.preset.ComponentPreset;
9 import net.sf.openrocket.rocketcomponent.RocketComponent;
10 import net.sf.openrocket.startup.Application;
12 public class BodyTubePresetModel extends AbstractListModel implements ComboBoxModel {
14 private final RocketComponent component;
16 private List<ComponentPreset> presets;
18 public BodyTubePresetModel(RocketComponent component) {
19 presets = Application.getDaos().getBodyTubePresetDao().listAll();
20 this.component = component;
23 public static class BodyTubePresetAdapter {
24 // If the ComponentPreset bt is null, then no preset is selected.
25 private ComponentPreset bt;
26 private BodyTubePresetAdapter( ComponentPreset bt ) {
30 public String toString() {
32 return bt.getManufacturer() + " " + bt.getPartNo();
38 public int hashCode() {
41 result = prime * result + ((bt == null) ? 0 : bt.hashCode());
45 public boolean equals(Object obj) {
50 if (getClass() != obj.getClass())
52 BodyTubePresetAdapter other = (BodyTubePresetAdapter) obj;
56 } else if (!bt.equals(other.bt))
63 public int getSize() {
64 return presets.size();
68 public Object getElementAt(int index) {
72 return new BodyTubePresetAdapter(presets.get(index));
76 public void setSelectedItem(Object anItem) {
77 BodyTubePresetAdapter selected = (BodyTubePresetAdapter) anItem;
78 if ( selected == null ) {
79 component.loadPreset(null);
81 component.loadPreset(selected.bt);
86 public Object getSelectedItem() {
87 ComponentPreset preset = (ComponentPreset) component.getPresetComponent();
88 if ( preset == null ) {
91 return new BodyTubePresetAdapter(preset);