/*
 * AddItem.java
 */

package grader.UI.gradebook;

import javax.swing.*;

/**
 *
 * @author  tyler
 */
public class AddItem extends javax.swing.JDialog {

    private JButton jButton1;
    private JButton jButton2;
    private JCheckBox jCheckBox1;
    private JCheckBox jCheckBox2;
    private JCheckBox jCheckBox3;
    private JComboBox jComboBox1;
    private JComboBox jComboBox2;
    private JLabel jLabel1;
    private JLabel jLabel2;
    private JLabel jLabel3;
    private JLabel jLabel4;
    private JLabel jLabel5;
    private JLabel jLabel6;
    private JLabel jLabel7;
    private JLabel jLabel8;
    private JLabel jLabel9;
    private JPanel jPanel1;
    private JPanel jPanel2;
    private JPanel jPanel3;
    private JRadioButton jRadioButton1;
    private JRadioButton jRadioButton2;
    private JRadioButton jRadioButton3;
    private JScrollPane jScrollPane1;
    private JTextArea jTextArea1;
    private JTextField jTextField1;
    private JTextField jTextField2;
    private JTextField jTextField3;
    private JTextField jTextField4;
    private JTextField jTextField5;
    
    //Create the Add Item GUI
    public AddItem(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        setTitle("Add Item");
        setResizable(false);

        jLabel1 = new JLabel();
        jLabel1.setText("Name:");
        jLabel1.setName("jLabel1"); // NOI18N

        jTextField1 = new JTextField();
        jTextField1.setName("jTextField1"); // NOI18N

        jScrollPane1 = new JScrollPane();
        jScrollPane1.setName("jScrollPane1"); // NOI18N

        jTextArea1 = new JTextArea();
        jTextArea1.setColumns(16);
        jTextArea1.setLineWrap(true);
        jTextArea1.setRows(3);
        jTextArea1.setName("jTextArea1"); // NOI18N
        jScrollPane1.setViewportView(jTextArea1);

        jTextField4 = new JTextField();
        jTextField4.setText("mm/dd/yy");
        jTextField4.setName("jTextField4"); // NOI18N

        jTextField5 = new JTextField();
        jTextField5.setText("hh:mm");
        jTextField5.setName("jTextField5"); // NOI18N

        jLabel9 = new JLabel();
        jLabel9.setText("Due Date:");
        jLabel9.setName("jLabel9"); // NOI18N

        jLabel2 = new JLabel();
        jLabel2.setText("Description:");
        jLabel2.setName("jLabel2"); // NOI18N

        jCheckBox3 = new JCheckBox();
        jCheckBox3.setFont(new java.awt.Font("Dialog", 0, 12));
        jCheckBox3.setText("Override Category Defaults");
        jCheckBox3.setName("jCheckBox3"); // NOI18N
        jCheckBox3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jOverrideActionPerformed(evt);
            }
        });

        jPanel1 = new JPanel();
        jPanel1.setBorder(BorderFactory.createTitledBorder("Item Defaults"));
        jPanel1.setName("jPanel1"); // NOI18N

        jPanel2 = new JPanel();
        jPanel2.setBorder(BorderFactory.createTitledBorder("Grading Style"));
        jPanel2.setName("jPanel2"); // NOI18N

        jLabel3 = new JLabel();
        jLabel3.setText("Grade By:");
        jLabel3.setName("jLabel3"); // NOI18N

        jRadioButton1 = new JRadioButton();
        jRadioButton1.setFont(new java.awt.Font("Dialog 12", 0, 12));
        jRadioButton1.setSelected(true);
        jRadioButton1.setLabel("Points");
        jRadioButton1.setName("jRadioButton1"); // NOI18N
        jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton1jRadioPointsActionPerformed(evt);
            }
        });

        jRadioButton2 = new JRadioButton();
        jRadioButton2.setFont(new java.awt.Font("Dialog 12 12", 0, 12));
        jRadioButton2.setText("Mark");
        jRadioButton2.setName("jRadioButton2"); // NOI18N
        jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton2jRadioMarkActionPerformed(evt);
            }
        });

        jRadioButton3 = new JRadioButton();
        jRadioButton3.setFont(new java.awt.Font("Dialog 12 12 12", 0, 12));
        jRadioButton3.setText("Completion");
        jRadioButton3.setName("jRadioButton3"); // NOI18N
        jRadioButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton3jRadioCompletion3ActionPerformed(evt);
            }
        });

        jLabel4 = new JLabel();
        jLabel4.setText("Points Possible:");
        jLabel4.setName("jLabel4"); // NOI18N

        jTextField2 = new JTextField();
        jTextField2.setName("jTextField2"); // NOI18N

        jLabel5 = new JLabel();
        jLabel5.setText("Mark Set:");
        jLabel5.setEnabled(false);
        jLabel5.setName("jLabel5"); // NOI18N

        jComboBox1 = new JComboBox();
        jComboBox1.setFont(new java.awt.Font("Dialog 12", 0, 12));
        jComboBox1.setModel(new DefaultComboBoxModel(new String[] { "Style 1", "Style 2", "Style 3" }));
        jComboBox1.setEnabled(false);
        jComboBox1.setName("jComboBox1"); // NOI18N

        GroupLayout jPanel2Layout = new GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jLabel3)
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jRadioButton1)
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jRadioButton2)
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jRadioButton3))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(28, 28, 28)
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel4)
                            .addComponent(jLabel5))
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                            .addComponent(jComboBox1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField2, GroupLayout.PREFERRED_SIZE, 115, GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.CENTER)
                    .addComponent(jLabel3)
                    .addComponent(jRadioButton1)
                    .addComponent(jRadioButton2)
                    .addComponent(jRadioButton3))
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel4)
                    .addComponent(jTextField2, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(jComboBox1, GroupLayout.PREFERRED_SIZE, 27, GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel5))
                .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel3 = new JPanel();
        jPanel3.setBorder(BorderFactory.createTitledBorder("Late Penalty"));
        jPanel3.setName("jPanel3"); // NOI18N

        jCheckBox1 = new JCheckBox();
        jCheckBox1.setText("Use Late Penalties");
        jCheckBox1.setName("jCheckBox1"); // NOI18N
        jCheckBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox1jUsePenaltiesActionPerformed(evt);
            }
        });

        jLabel6 = new JLabel();
        jLabel6.setText("Decay:");
        jLabel6.setEnabled(false);
        jLabel6.setName("jLabel6"); // NOI18N

        jTextField3 = new JTextField();
        jTextField3.setEnabled(false);
        jTextField3.setName("jTextField3"); // NOI18N

        jLabel7 = new JLabel();
        jLabel7.setFont(new java.awt.Font("Dialog 12", 0, 12));
        jLabel7.setText("%");
        jLabel7.setEnabled(false);
        jLabel7.setName("jLabel7"); // NOI18N

        jLabel8 = new JLabel();
        jLabel8.setText("per");
        jLabel8.setEnabled(false);
        jLabel8.setName("jLabel8"); // NOI18N

        jComboBox2 = new JComboBox();
        jComboBox2.setFont(new java.awt.Font("Dialog 12 12", 0, 12));
        jComboBox2.setModel(new DefaultComboBoxModel(new String[] { "-Period-", "Hour", "Day", "Week" }));
        jComboBox2.setEnabled(false);
        jComboBox2.setName("jComboBox2"); // NOI18N

        jCheckBox2 = new JCheckBox();
        jCheckBox2.setText("Calculate Continuously");
        jCheckBox2.setEnabled(false);
        jCheckBox2.setName("jCheckBox2"); // NOI18N

        GroupLayout jPanel3Layout = new GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.CENTER)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jLabel6)
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, 72, GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel7)
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel8)
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jComboBox2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                    .addComponent(jCheckBox1)
                    .addComponent(jCheckBox2))
                .addContainerGap(26, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addComponent(jCheckBox1)
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(GroupLayout.Alignment.CENTER)
                    .addComponent(jLabel6)
                    .addComponent(jTextField3, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7)
                    .addComponent(jLabel8)
                    .addComponent(jComboBox2, GroupLayout.PREFERRED_SIZE, 27, GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jCheckBox2))
        );

        GroupLayout jPanel1Layout = new GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jPanel3, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel2, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jPanel2, GroupLayout.PREFERRED_SIZE, 150, GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jButton2 = new JButton();
        jButton2.setText("Cancel");
        jButton2.setName("jButton2"); // NOI18N
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCancelActionPerformed(evt);
            }
        });

        jButton1 = new JButton();
        jButton1.setText("Create");
        jButton1.setName("jButton1"); // NOI18N
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCreateActionPerformed(evt);
            }
        });

        GroupLayout layout = new GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel1, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel1)
                            .addComponent(jLabel2)
                            .addComponent(jLabel9))
                        .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jTextField4, GroupLayout.PREFERRED_SIZE, 93, GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jTextField5, GroupLayout.PREFERRED_SIZE, 67, GroupLayout.PREFERRED_SIZE))
                            .addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
                            .addComponent(jTextField1, GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)))
                    .addComponent(jCheckBox3)
                    .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(jButton1)
                        .addGap(30, 30, 30)
                        .addComponent(jButton2)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jTextField1, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2)
                    .addComponent(jScrollPane1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel9)
                    .addComponent(jTextField4, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField5, GroupLayout.PREFERRED_SIZE, 25, GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jCheckBox3)
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton2)
                    .addComponent(jButton1))
                .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
        
        setSize(408,626);
        ButtonGroup btnG = new ButtonGroup();
        btnG.add(jRadioButton1);
        btnG.add(jRadioButton2);
        btnG.add(jRadioButton3);
    }

    private void jRadioButton1jRadioPointsActionPerformed(java.awt.event.ActionEvent evt) {                                                          
        jTextField2.setEnabled(true);
        jLabel4.setEnabled(true);
        jComboBox1.setEnabled(false);
        jLabel5.setEnabled(false);
    }                                                         

    private void jRadioButton2jRadioMarkActionPerformed(java.awt.event.ActionEvent evt) {                                                        
        jTextField2.setEnabled(false);
        jLabel4.setEnabled(false);
        jComboBox1.setEnabled(true);
        jLabel5.setEnabled(true);
    }                                                       

    private void jRadioButton3jRadioCompletion3ActionPerformed(java.awt.event.ActionEvent evt) {                                                               
        jTextField2.setEnabled(false);
        jLabel4.setEnabled(false);
        jComboBox1.setEnabled(false);
        jLabel5.setEnabled(false);
    }                                                              

    private void jCheckBox1jUsePenaltiesActionPerformed(java.awt.event.ActionEvent evt) {                                                        
        if(jCheckBox1.isSelected() == true) {
            jTextField3.setEnabled(true);
            jComboBox2.setEnabled(true);
            jCheckBox2.setEnabled(true);
            jLabel6.setEnabled(true);
            jLabel7.setEnabled(true);
            jLabel8.setEnabled(true);
        }
        else {
            jTextField3.setEnabled(false);
            jComboBox2.setEnabled(false);
            jCheckBox2.setEnabled(false);
            jLabel6.setEnabled(false);
            jLabel7.setEnabled(false);
            jLabel8.setEnabled(false);
        }
    }                                                       

    private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {                                                
        this.hide();
        this.dispose();
    }

    private void jButtonCreateActionPerformed(java.awt.event.ActionEvent evt) {                                                
        System.out.println("Created a new item");
        this.hide();
        this.dispose();
    }

    private void jOverrideActionPerformed(java.awt.event.ActionEvent evt) {                                          
        if(jCheckBox3.isSelected() == true) {
            SetEnableValues(true);
        } else {
            SetEnableValues(false);
        }
    }                                         
    private void SetEnableValues(boolean value) {
        jLabel3.setEnabled(value);
        jLabel4.setEnabled(value);
        jLabel5.setEnabled(value);
        jLabel6.setEnabled(value);
        jLabel7.setEnabled(value);
        jLabel8.setEnabled(value);

        jRadioButton1.setEnabled(value);
        jRadioButton2.setEnabled(value);
        jRadioButton3.setEnabled(value);

        jTextField2.setEnabled(value);
        jComboBox1.setEnabled(value);

        jCheckBox1.setEnabled(value);
        jTextField3.setEnabled(value);
        jComboBox2.setEnabled(value);
        jCheckBox2.setEnabled(value);

        if(value == true) {
            if(jCheckBox1.isSelected() == true) {
                jTextField3.setEnabled(true);
                jComboBox2.setEnabled(true);
                jCheckBox2.setEnabled(true);
                jLabel6.setEnabled(true);
                jLabel7.setEnabled(true);
                jLabel8.setEnabled(true);
            }
            else {
                jTextField3.setEnabled(false);
                jComboBox2.setEnabled(false);
                jCheckBox2.setEnabled(false);
                jLabel6.setEnabled(false);
                jLabel7.setEnabled(false);
                jLabel8.setEnabled(false);
            }

            if(jRadioButton1.isSelected() == true) {
                jTextField2.setEnabled(true);
                jLabel4.setEnabled(true);
                jComboBox1.setEnabled(false);
                jLabel5.setEnabled(false);
            }
            else if(jRadioButton2.isSelected() == true) {
                jTextField2.setEnabled(false);
                jLabel4.setEnabled(false);
                jComboBox1.setEnabled(true);
                jLabel5.setEnabled(true);
            }
            else if(jRadioButton3.isSelected() == true) {
                jTextField2.setEnabled(false);
                jLabel4.setEnabled(false);
                jComboBox1.setEnabled(false);
                jLabel5.setEnabled(false);
            }
        }
    }
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
//                new AddItem().setVisible(true);
            }
        });
    }
}