/*
 * "Grundkurs Programmieren in Java (7. Auflage, 2014)"
 * 2003-2014, Carl Hanser Verlag
 * Loesungsvorschlag zu Aufgabe 15.6 (Version 2.0)
 * (c) 2003-2014 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
 *
 */

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class EuroFrame extends JFrame {
  private Container c;
  private JLabel euroLabel;
  private JTextField euroWert, andererWert;
  private JComboBox waehrung;
  
  public EuroFrame() {
    c = getContentPane();
    c.setFont(new Font("SansSerif", Font.BOLD, 25));
    c.setLayout(new GridLayout(0,1));
    
    c.add(euroLabel = new JLabel("Euro"));
    c.add(euroWert = new JTextField(""));
    c.add(waehrung = new JComboBox());
    c.add(andererWert = new JTextField(""));
    
    euroWert.setBackground(Color.yellow);
    andererWert.setBackground(Color.yellow);
    
    for (int i = EuroConverter.DEM; i <= EuroConverter.GDR; i++)
      waehrung.addItem(EuroConverter.getBezeichnung(i));
    
    euroWert.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent event) {
        double wert = Double.parseDouble(euroWert.getText());
        wert = EuroConverter.convertFromEuro(wert,waehrung.getSelectedIndex());
        andererWert.setText(""+wert);
      }
    });
    
    andererWert.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent event) {
        double wert = Double.parseDouble(andererWert.getText());
        wert = EuroConverter.convertToEuro(wert,waehrung.getSelectedIndex());
        euroWert.setText(""+wert);
      }
    });
    
    waehrung.addItemListener(new ItemListener() {
      public void itemStateChanged(ItemEvent event) {
        double wert = Double.parseDouble(euroWert.getText());
        wert = EuroConverter.convertFromEuro(wert,waehrung.getSelectedIndex());
        andererWert.setText(""+wert);
      }
    });
  }
 
  // main-Methode
  public static void main(String[] args) {
    EuroFrame fenster = new EuroFrame();
    fenster.setTitle("EuroFrame");
    fenster.setSize(190,100);
    fenster.setVisible(true);
    fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
