import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class CircleController extends JFrame {
  private CircleModel model;
  private JTextField jtfRadius = new JTextField();
  private JComboBox jcboFilled = new JComboBox(new Boolean[]{
    new Boolean(false), new Boolean(true)});

  /** Creates new form CircleController */
  public CircleController(CircleModel theModel) {
    // Set the model.
    model = theModel;

    setTitle("Controller");
    setSize(200, 200);
    setLocation(200, 200);

    // Panel to group labels
    JPanel panel1 = new JPanel();
    panel1.setLayout(new GridLayout(2, 1));
    panel1.add(new JLabel("Radius"));
    panel1.add(new JLabel("Filled"));

    // Panel to group text field, combo box, and another panel
    JPanel panel2 = new JPanel();
    panel2.setLayout(new GridLayout(2, 1));
    panel2.add(jtfRadius);
    panel2.add(jcboFilled);

    setLayout(new BorderLayout());
    add(panel1, BorderLayout.WEST);
    add(panel2, BorderLayout.CENTER);

    // Register listeners
    jtfRadius.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (model == null) return; // No model associated yet. Do nothing
        model.setRadius(new Double(jtfRadius.getText()).doubleValue());
      }
    });

    jcboFilled.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        if (model == null) return; // No model associated yet. Do nothing
        model.setFilled(
          ((Boolean)jcboFilled.getSelectedItem()).booleanValue());
      }
    });
  }
}
