1 package net.sf.openrocket.gui.adaptors;
5 import javax.swing.AbstractListModel;
6 import javax.swing.ComboBoxModel;
7 import javax.swing.event.ListDataListener;
9 import net.sf.openrocket.preset.ComponentPreset;
10 import net.sf.openrocket.rocketcomponent.ComponentChangeEvent;
11 import net.sf.openrocket.rocketcomponent.ComponentChangeListener;
12 import net.sf.openrocket.rocketcomponent.RocketComponent;
13 import net.sf.openrocket.startup.Application;
15 public class BodyTubePresetModel extends AbstractListModel implements
16 ComboBoxModel, ComponentChangeListener {
18 private final RocketComponent component;
20 private List<ComponentPreset> presets;
22 public BodyTubePresetModel(RocketComponent component) {
23 presets = Application.getDaos().getBodyTubePresetDao().listAll();
24 this.component = component;
27 public static class BodyTubePresetAdapter {
28 private ComponentPreset bt;
29 private BodyTubePresetAdapter( ComponentPreset bt ) {
33 public String toString() {
34 return bt.getManufacturer() + " " + bt.getPartNo();
37 public int hashCode() {
40 result = prime * result + ((bt == null) ? 0 : bt.hashCode());
44 public boolean equals(Object obj) {
49 if (getClass() != obj.getClass())
51 BodyTubePresetAdapter other = (BodyTubePresetAdapter) obj;
55 } else if (!bt.equals(other.bt))
62 public int getSize() {
63 return presets.size();
67 public Object getElementAt(int index) {
68 return new BodyTubePresetAdapter(presets.get(index));
72 public void addListDataListener(ListDataListener l) {
73 // TODO Auto-generated method stub
78 public void removeListDataListener(ListDataListener l) {
79 // TODO Auto-generated method stub
84 public void componentChanged(ComponentChangeEvent e) {
85 // TODO Auto-generated method stub
90 public void setSelectedItem(Object anItem) {
91 BodyTubePresetAdapter selected = (BodyTubePresetAdapter) anItem;
92 component.loadPreset(selected.bt);
96 public Object getSelectedItem() {
97 ComponentPreset preset = (ComponentPreset) component.getPresetComponent();
98 if ( preset == null ) {
101 return new BodyTubePresetAdapter(preset);