// A class providing a controller for the PersonQueue.
// Barry Cornelius, 19 June 2000
import java.awt.event. ActionEvent;
import java.awt.event. ActionListener;
import java.awt.       BorderLayout;
import java.awt.       Container;
import javax.swing.    JButton;
import javax.swing.    JFrame; //BJCHEREFIRST
public class PersonQueueController implements ActionListener
{
   private Queue iPersonQueue;
   private JFrame iJFrame;
   private int iJFrameX;
   private int iJFrameY;
   public PersonQueueController(final Queue pPersonQueue,
                                final int pJFrameX, final int pJFrameY)
   {
      iPersonQueue = pPersonQueue;
      iJFrameX = pJFrameX;
      iJFrameY = pJFrameY;
      iJFrame = new JFrame("PersonQueueController");
      final JButton tAddJButton = new JButton("Add");
      final JButton tRemoveJButton = new JButton("Remove");
      tAddJButton.addActionListener(this);
      tRemoveJButton.addActionListener(this);
      final Container tContentPane = iJFrame.getContentPane();
      tContentPane.add(tAddJButton,    BorderLayout.NORTH);
      tContentPane.add(tRemoveJButton, BorderLayout.SOUTH);
      final ExitWindowListener tExitWindowListener = 
                                          new ExitWindowListener();
      iJFrame.addWindowListener(tExitWindowListener);
      iJFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
      iJFrame.setLocation(iJFrameX, iJFrameY);
      iJFrame.setSize(300,100);
      iJFrame.setVisible(true);
   }
   public void actionPerformed(final ActionEvent pActionEvent)
   {
      final String tJButtonString = pActionEvent.getActionCommand();
      if (tJButtonString.equals("Add"))
      {
          final PersonInputDialog tPersonInputDialog =
                new PersonInputDialog(iJFrame, iJFrameX + 20, iJFrameY + 20);
          final Person tPerson = tPersonInputDialog.getPerson();
          iPersonQueue.add(tPerson);
      }
      else
      {
          final Object tObject = iPersonQueue.remove();
      }
   }
}
