package edu.pdx.cs410J.grader; import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JPanel; /** * This dialog is used to create a new <code>Assignment</code> */ @SuppressWarnings("serial") public class NewAssignmentDialog extends JDialog { private Assignment assignment; // GUI components we care about private AssignmentPanel assignmentPanel; /** * Creates a new <code>NewAssignmentDialog</code> and populates with * GUI components. */ public NewAssignmentDialog(JFrame owner) { super(owner, "New Assignment", true /* modal */); Container pane = this.getContentPane(); pane.setLayout(new BorderLayout()); this.assignmentPanel = new AssignmentPanel(true); pane.add(this.assignmentPanel, BorderLayout.CENTER); JPanel buttons = new JPanel(); buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS)); buttons.add(Box.createHorizontalGlue()); JButton ok = new JButton("OK"); ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Create a new Assignment from the contents of assignment // panel assignment = assignmentPanel.createAssignment(); if (assignment != null) { // Assignment is okay NewAssignmentDialog.this.dispose(); } } }); buttons.add(ok); buttons.add(Box.createHorizontalGlue()); JButton cancel = new JButton("Cancel"); cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Do not create a new assignment assignment = null; NewAssignmentDialog.this.dispose(); } }); buttons.add(cancel); buttons.add(Box.createHorizontalGlue()); pane.add(buttons, BorderLayout.SOUTH); } /** * Returns the <code>Assignment</code> created by this dialog. If * no assignment was created, <code>null</code> is returned. */ public Assignment getAssignment() { return this.assignment; } }