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

public class AddNewQuestionDiag extends JFrame {
   /* Debug main */
   public static void main(String[] argv) {
      new AddNewQuestionDiag().setVisible(true);
   }

   private JPanel pane;

   private JLabel mTypeLabel;
   private JLabel mChoiceLabel;
   private JLabel mCodeLabel;

   private ButtonGroup mQuests;
   private JRadioButton mFillIn;
   private JRadioButton mTrueFalse;
   private JRadioButton mSingle;
   private JRadioButton mMulti;
   private JRadioButton mOutput;
   private JRadioButton mCode;

   private JButton mCancel;
   private JButton mNext;

   public AddNewQuestionDiag() {
      super("Add New Question");
      pane = new JPanel();

      mQuests = new ButtonGroup();
      mQuests.add(mFillIn = new JRadioButton("Fill in the Blank"));
      mQuests.add(mTrueFalse = new JRadioButton("True/False"));
      mQuests.add(mSingle = new JRadioButton("Single Answer"));
      mQuests.add(mMulti = new JRadioButton("Multi Answer"));
      mQuests.add(mOutput = new JRadioButton("Grade by output"));
      mQuests.add(mCode = new JRadioButton("Grade by code"));

      mTypeLabel = new JLabel("Question Type:");
      mChoiceLabel = new JLabel("Multiple Choice");
      mCodeLabel = new JLabel("Code");

      mCancel = new JButton(new AbstractAction("Cancel") {
         public void actionPerformed(ActionEvent evt) {
            dispose();
         }
      });

      mNext = new JButton(new AbstractAction("Next...Question Setup") {
         public void actionPerformed(ActionEvent evt) {
            new QuestionSetup().setVisible(true);
            dispose();
         }
      });

      setupLayout();
      pack();
   }

   private void setupLayout() {
      pane.setLayout(new GridBagLayout());
      GridBagConstraints cons = new GridBagConstraints();

      cons.anchor = GridBagConstraints.WEST;
      cons.gridwidth = 2;
      cons.gridx = 0;
      cons.gridy = 0;
      pane.add(mTypeLabel, cons);

      cons.gridy++;
      cons.insets = new Insets(0, 10, 0, 0);
      pane.add(mFillIn, cons);

      cons.gridy++;
      pane.add(mTrueFalse, cons);

      cons.gridy++;
      pane.add(mChoiceLabel, cons);

      cons.gridy++;
      cons.insets = new Insets(0, 20, 0, 0);
      pane.add(mSingle, cons);
      
      cons.gridy++;
      pane.add(mMulti, cons);

      cons.gridy++;
      cons.insets = new Insets(0, 10, 0, 0);
      pane.add(mCodeLabel, cons);

      cons.gridy++;
      cons.insets = new Insets(0, 20, 0, 0);
      pane.add(mOutput, cons);

      cons.gridy++;
      pane.add(mCode, cons);

      cons.gridy++;
      cons.insets = new Insets(0, 0, 0, 0);
      cons.gridwidth = 1;
      pane.add(mCancel, cons);

      cons.gridx++;
      pane.add(mNext, cons);

      getContentPane().add(pane);
   }
}