// Slightly modified version of program in Liang text (p. 1013)
// **Multiple controllers and view windows may be produced for a single
// circle model (with radius and "filled" attributes).
//
// -R. Zanibbi
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MVCDemo extends JFrame  {
  private JButton jbtController = new JButton("Show Controller");
  private JButton jbtView = new JButton("Show View");
  private CircleModel model = new CircleModel();

  public MVCDemo() {
    // Set layout, add buttons, set attributes.
    setTitle("MVCDemo");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new FlowLayout());
    add(jbtView);
    add(jbtController);
    pack();

    // Add listener for controller button
    jbtController.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // Pass in the model.
        CircleController controller = new CircleController(model);
        controller.setVisible(true);
      }
    });

    // Listener for view button.
    jbtView.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // Pass in the model.
        CircleView view = new CircleView(model);
        view.setVisible(true);
      }
    });
    
  }

  public static void main(String[] args) {
    MVCDemo window = new MVCDemo();
    window.setVisible(true);
  }
}

