import javax.swing.*;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
-public class OriginView extends JPanel {
+public class OriginView extends JPanel implements ItemListener {
private Origin originObj;
private JLabel label;
private JComboBox<String> comboBox;
- //FIXME: this label should be refreshed on country selection.
private JLabel continentLabel;
OriginView(Origin originObj) {
this.label.setText("Origin");
this.comboBox = new JComboBox<>(this.getOriginObj().getCountriesArray());
this.comboBox.setSelectedItem(this.getOriginObj().getCountry());
+ this.comboBox.addItemListener(this);
this.continentLabel = new JLabel();
this.continentLabel.setText("(" + this.getOriginObj().getContinent() + ")");
add(label);
public void setOriginObj(Origin originObj) {
this.originObj = originObj;
}
+
+ public JComboBox<String> getComboBox() {
+ return comboBox;
+ }
+
+ @Override
+ public void itemStateChanged(ItemEvent event) {
+ if (event.getStateChange() == ItemEvent.SELECTED) {
+ Object item = event.getItem();
+ getOriginObj().setContinent(getOriginObj().getContinentFromCountry(item.toString()));
+ this.continentLabel.setText("(" + this.getOriginObj().getContinent() + ")");
+ }
+ }
}