package com.sleazyweasel.applescriptifier;
import javax.swing.*;
import java.util.List;
import java.util.Vector;
public class StationComboBoxModel extends DefaultComboBoxModel {
private final MusicPlayer musicPlayer;
public StationComboBoxModel(MusicPlayer musicPlayer) {
super(new Vector<StationChoice>(musicPlayer.getState().getStationChoices()));
this.musicPlayer = musicPlayer;
}
public StationChoice getSelectedStation() {
return (StationChoice) super.getSelectedItem();
}
public void refreshContents() {
List<StationChoice> stationChoices = musicPlayer.getState().getStationChoices();
Object selectedItem = getSelectedItem();
for (StationChoice stationChoice : stationChoices) {
Object existingItem = getElementAt(stationChoice.key());
if (existingItem == null) {
insertElementAt(stationChoice, stationChoice.key());
} else if (!existingItem.equals(stationChoice)) {
removeElementAt(stationChoice.key());
insertElementAt(stationChoice, stationChoice.key());
}
}
setSelectedItem(selectedItem);
}
}