recyclingsimulationUI.MainFrame.java Source code

Java tutorial

Introduction

Here is the source code for recyclingsimulationUI.MainFrame.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package recyclingsimulationUI;

import recyclingsimulation.*;
import java.awt.Component;
import java.awt.List;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.scene.control.CheckBox;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset;
import recyclingsimulation.DbConnect;

/**
 *
 * @author kaushiksrivatsan
 */
public class MainFrame extends javax.swing.JFrame {
    boolean show;

    /**
     * Creates new form MainFrame
     */
    public MainFrame() {
        initComponents();
        show = false;
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        leftPanel = new javax.swing.JPanel();
        rcmPanel = new javax.swing.JPanel();
        addRcm = new javax.swing.JButton();
        updateRcm = new javax.swing.JButton();
        listRcm = new javax.swing.JButton();
        jButton7 = new javax.swing.JButton();
        itemPanel = new javax.swing.JPanel();
        addItem = new javax.swing.JButton();
        updateItem = new javax.swing.JButton();
        statsPanel = new javax.swing.JPanel();
        jButton5 = new javax.swing.JButton();
        loginPanel = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        usernameInput = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        passwordInput = new javax.swing.JPasswordField();
        jButton1 = new javax.swing.JButton();
        simulationPanel = new javax.swing.JPanel();
        jButton3 = new javax.swing.JButton();
        rightPanel = new javax.swing.JPanel();
        getInfoPanel = new javax.swing.JPanel();
        showRcmInfoComboBox = new javax.swing.JComboBox<>();
        jButton8 = new javax.swing.JButton();
        jLabel23 = new javax.swing.JLabel();
        jLabel24 = new javax.swing.JLabel();
        jLabel25 = new javax.swing.JLabel();
        displayCapacity = new javax.swing.JLabel();
        displayAmount = new javax.swing.JLabel();
        displayDate = new javax.swing.JLabel();
        emptyRcmButton = new javax.swing.JButton();
        statisticsPanel = new javax.swing.JPanel();
        jLabel21 = new javax.swing.JLabel();
        jButton6 = new javax.swing.JButton();
        seeMaxCapacityChart = new javax.swing.JButton();
        recyclingSimulationPanel = new javax.swing.JPanel();
        rcmNameComboBox = new javax.swing.JComboBox<>();
        itemNameComboBox = new javax.swing.JComboBox<>();
        jButton4 = new javax.swing.JButton();
        jLabel13 = new javax.swing.JLabel();
        jLabel14 = new javax.swing.JLabel();
        weightComboBox = new javax.swing.JComboBox<>();
        jLabel26 = new javax.swing.JLabel();
        updateItemPanel = new javax.swing.JPanel();
        editItemNameInput = new javax.swing.JTextField();
        editItemPriceInput = new javax.swing.JTextField();
        updateItemSubmit = new javax.swing.JButton();
        jLabel19 = new javax.swing.JLabel();
        jLabel20 = new javax.swing.JLabel();
        addItemPanel = new javax.swing.JPanel();
        itemNameInput = new javax.swing.JTextField();
        itemPriceInput = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        addItemToDb = new javax.swing.JButton();
        listRcmPanel = new javax.swing.JPanel();
        listOfRcmComboBox = new javax.swing.JComboBox<>();
        jLabel22 = new javax.swing.JLabel();
        deleteRcm = new javax.swing.JButton();
        updateRcmPanel = new javax.swing.JPanel();
        selectRcmComboBox = new javax.swing.JComboBox<>();
        jButton2 = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        jLabel9 = new javax.swing.JLabel();
        jCheckBox6 = new javax.swing.JCheckBox();
        rcmLocationUpdate = new javax.swing.JTextField();
        jCheckBox7 = new javax.swing.JCheckBox();
        rcmCapacityUpdate = new javax.swing.JTextField();
        rcmAmountUpdate = new javax.swing.JTextField();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jCheckBox8 = new javax.swing.JCheckBox();
        jLabel12 = new javax.swing.JLabel();
        jCheckBox9 = new javax.swing.JCheckBox();
        rcmNameUpdate = new javax.swing.JTextField();
        jCheckBox10 = new javax.swing.JCheckBox();
        submitUpdateRcm = new javax.swing.JButton();
        rcmActiveUpdate = new javax.swing.JCheckBox();
        jLabel16 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        jLabel18 = new javax.swing.JLabel();
        addRcmPanel = new javax.swing.JPanel();
        jLabel3 = new javax.swing.JLabel();
        rcmNameInput = new javax.swing.JTextField();
        jLabel4 = new javax.swing.JLabel();
        rcmLocationInput = new javax.swing.JTextField();
        rcmCapacityInput = new javax.swing.JTextField();
        rcmAmountInput = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        createRcm = new javax.swing.JButton();
        jCheckBox1 = new javax.swing.JCheckBox();
        jCheckBox2 = new javax.swing.JCheckBox();
        jCheckBox3 = new javax.swing.JCheckBox();
        jCheckBox4 = new javax.swing.JCheckBox();
        jCheckBox5 = new javax.swing.JCheckBox();
        jLabel15 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Recyclying Simulation");
        setBackground(new java.awt.Color(204, 51, 0));

        leftPanel.setBackground(new java.awt.Color(255, 204, 204));

        rcmPanel.setBackground(new java.awt.Color(255, 204, 204));
        rcmPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        addRcm.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        addRcm.setText("Add RCM");
        addRcm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                addRcmActionPerformed(evt);
            }
        });

        updateRcm.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        updateRcm.setText("Update RCM");
        updateRcm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                updateRcmActionPerformed(evt);
            }
        });

        listRcm.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        listRcm.setText("Delete RCM");
        listRcm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                listRcmActionPerformed(evt);
            }
        });

        jButton7.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jButton7.setText("Get Info");
        jButton7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton7ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout rcmPanelLayout = new javax.swing.GroupLayout(rcmPanel);
        rcmPanel.setLayout(rcmPanelLayout);
        rcmPanelLayout.setHorizontalGroup(rcmPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(rcmPanelLayout.createSequentialGroup().addGroup(rcmPanelLayout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                        .addGroup(rcmPanelLayout.createSequentialGroup().addContainerGap().addComponent(jButton7,
                                javax.swing.GroupLayout.PREFERRED_SIZE, 127,
                                javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING,
                                rcmPanelLayout.createSequentialGroup().addGap(64, 64, 64)
                                        .addGroup(rcmPanelLayout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addComponent(updateRcm, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        127, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(addRcm, javax.swing.GroupLayout.PREFERRED_SIZE, 127,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(listRcm, javax.swing.GroupLayout.PREFERRED_SIZE, 127,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        rcmPanelLayout.setVerticalGroup(rcmPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(rcmPanelLayout.createSequentialGroup().addGap(17, 17, 17).addComponent(listRcm)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(addRcm)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(updateRcm)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(jButton7)
                        .addContainerGap(21, Short.MAX_VALUE)));

        itemPanel.setBackground(new java.awt.Color(255, 204, 204));
        itemPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        addItem.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        addItem.setText("Add Item");
        addItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                addItemActionPerformed(evt);
            }
        });

        updateItem.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        updateItem.setText("Update Item");
        updateItem.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                updateItemActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout itemPanelLayout = new javax.swing.GroupLayout(itemPanel);
        itemPanel.setLayout(itemPanelLayout);
        itemPanelLayout
                .setHorizontalGroup(itemPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(itemPanelLayout.createSequentialGroup().addGap(68, 68, 68)
                                .addGroup(itemPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(updateItem, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(addItem, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        itemPanelLayout
                .setVerticalGroup(itemPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(itemPanelLayout.createSequentialGroup().addContainerGap(27, Short.MAX_VALUE)
                                .addComponent(addItem).addGap(18, 18, 18).addComponent(updateItem)
                                .addGap(22, 22, 22)));

        statsPanel.setBackground(new java.awt.Color(255, 204, 204));
        statsPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jButton5.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jButton5.setText("Show Statistics");
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout statsPanelLayout = new javax.swing.GroupLayout(statsPanel);
        statsPanel.setLayout(statsPanelLayout);
        statsPanelLayout
                .setHorizontalGroup(statsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(statsPanelLayout.createSequentialGroup().addGap(72, 72, 72).addComponent(jButton5)
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        statsPanelLayout.setVerticalGroup(
                statsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                        javax.swing.GroupLayout.Alignment.TRAILING, statsPanelLayout.createSequentialGroup()
                                .addContainerGap(53, Short.MAX_VALUE).addComponent(jButton5).addGap(46, 46, 46)));

        loginPanel.setBackground(new java.awt.Color(255, 204, 204));
        loginPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jLabel1.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel1.setText("Username");

        usernameInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jLabel2.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel2.setText("Password");

        passwordInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        passwordInput.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                passwordInputActionPerformed(evt);
            }
        });

        jButton1.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jButton1.setText("Login");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout loginPanelLayout = new javax.swing.GroupLayout(loginPanel);
        loginPanel.setLayout(loginPanelLayout);
        loginPanelLayout.setHorizontalGroup(loginPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(loginPanelLayout.createSequentialGroup()
                        .addGroup(loginPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(loginPanelLayout.createSequentialGroup().addGap(110, 110, 110)
                                        .addComponent(jButton1))
                                .addGroup(loginPanelLayout.createSequentialGroup()
                                        .addGroup(loginPanelLayout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addGroup(loginPanelLayout.createSequentialGroup()
                                                        .addGap(41, 41, 41).addComponent(jLabel1))
                                                .addGroup(loginPanelLayout.createSequentialGroup()
                                                        .addGap(44, 44, 44).addComponent(jLabel2)))
                                        .addGap(35, 35, 35)
                                        .addGroup(loginPanelLayout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(passwordInput, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        130, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(usernameInput, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                        130, javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addContainerGap(44, Short.MAX_VALUE)));
        loginPanelLayout.setVerticalGroup(loginPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(loginPanelLayout.createSequentialGroup().addGap(34, 34, 34)
                        .addGroup(loginPanelLayout
                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(usernameInput, javax.swing.GroupLayout.DEFAULT_SIZE, 26,
                                        Short.MAX_VALUE)
                                .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addGap(18, 18, 18)
                        .addGroup(loginPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(loginPanelLayout.createSequentialGroup()
                                        .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addGap(103, 103, 103))
                                .addGroup(loginPanelLayout.createSequentialGroup()
                                        .addComponent(passwordInput, javax.swing.GroupLayout.PREFERRED_SIZE, 27,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18).addComponent(jButton1)
                                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))));

        simulationPanel.setBackground(new java.awt.Color(255, 204, 204));
        simulationPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jButton3.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jButton3.setText("Run Simulation");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout simulationPanelLayout = new javax.swing.GroupLayout(simulationPanel);
        simulationPanel.setLayout(simulationPanelLayout);
        simulationPanelLayout.setHorizontalGroup(
                simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(simulationPanelLayout.createSequentialGroup().addGap(76, 76, 76)
                                .addComponent(jButton3)
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        simulationPanelLayout.setVerticalGroup(
                simulationPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                        javax.swing.GroupLayout.Alignment.TRAILING, simulationPanelLayout.createSequentialGroup()
                                .addContainerGap(45, Short.MAX_VALUE).addComponent(jButton3).addGap(41, 41, 41)));

        javax.swing.GroupLayout leftPanelLayout = new javax.swing.GroupLayout(leftPanel);
        leftPanel.setLayout(leftPanelLayout);
        leftPanelLayout.setHorizontalGroup(leftPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(leftPanelLayout.createSequentialGroup().addContainerGap()
                        .addGroup(leftPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(rcmPanel, javax.swing.GroupLayout.Alignment.TRAILING,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        Short.MAX_VALUE)
                                .addComponent(loginPanel, javax.swing.GroupLayout.Alignment.TRAILING,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        Short.MAX_VALUE)
                                .addComponent(itemPanel, javax.swing.GroupLayout.Alignment.TRAILING,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        Short.MAX_VALUE)
                                .addComponent(statsPanel, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(simulationPanel, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))));
        leftPanelLayout.setVerticalGroup(leftPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(leftPanelLayout.createSequentialGroup()
                        .addComponent(loginPanel, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(rcmPanel, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(itemPanel, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(statsPanel, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(simulationPanel, javax.swing.GroupLayout.DEFAULT_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addContainerGap()));

        rightPanel.setBackground(new java.awt.Color(102, 255, 255));
        rightPanel.setPreferredSize(new java.awt.Dimension(400, 300));
        rightPanel.setLayout(new java.awt.CardLayout());

        getInfoPanel.setBackground(new java.awt.Color(255, 204, 204));

        showRcmInfoComboBox.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        showRcmInfoComboBox.setModel(
                new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        jButton8.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jButton8.setText("Get Info");
        jButton8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton8ActionPerformed(evt);
            }
        });

        jLabel23.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel23.setText("Capacity Remaining");

        jLabel24.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel24.setText("Amount Remaining");

        jLabel25.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel25.setText("Last Emptied");

        displayCapacity.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N

        displayAmount.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N

        displayDate.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N

        emptyRcmButton.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        emptyRcmButton.setText("Empty And Refill Money in RCM");
        emptyRcmButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                emptyRcmButtonActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout getInfoPanelLayout = new javax.swing.GroupLayout(getInfoPanel);
        getInfoPanel.setLayout(getInfoPanelLayout);
        getInfoPanelLayout.setHorizontalGroup(getInfoPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(getInfoPanelLayout.createSequentialGroup().addGroup(getInfoPanelLayout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(getInfoPanelLayout
                                .createSequentialGroup().addGap(91, 91, 91).addGroup(getInfoPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(showRcmInfoComboBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jLabel23).addComponent(jLabel24).addComponent(jLabel25))
                                .addGap(53, 53, 53)
                                .addGroup(getInfoPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(jButton8, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(displayCapacity, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(displayAmount, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(displayDate, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                        .addGroup(getInfoPanelLayout.createSequentialGroup().addGap(106, 106, 106)
                                .addComponent(emptyRcmButton)))
                        .addContainerGap(95, Short.MAX_VALUE)));
        getInfoPanelLayout.setVerticalGroup(getInfoPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(getInfoPanelLayout.createSequentialGroup().addGap(84, 84, 84)
                        .addGroup(getInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(showRcmInfoComboBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jButton8))
                        .addGap(27, 27, 27)
                        .addGroup(getInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jLabel23).addComponent(displayCapacity,
                                        javax.swing.GroupLayout.PREFERRED_SIZE, 25,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(35, 35, 35)
                        .addGroup(getInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jLabel24).addComponent(displayAmount,
                                        javax.swing.GroupLayout.PREFERRED_SIZE, 27,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(38, 38, 38)
                        .addGroup(getInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jLabel25).addComponent(displayDate,
                                        javax.swing.GroupLayout.PREFERRED_SIZE, 29,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(56, 56, 56).addComponent(emptyRcmButton).addContainerGap(398, Short.MAX_VALUE)));

        rightPanel.add(getInfoPanel, "card9");

        statisticsPanel.setBackground(new java.awt.Color(255, 204, 204));

        jLabel21.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel21.setText("Click button to see statistics");

        jButton6.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jButton6.setText("RCM usage chart");
        jButton6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton6ActionPerformed(evt);
            }
        });

        seeMaxCapacityChart.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        seeMaxCapacityChart.setText("RCM Capacity Chart");
        seeMaxCapacityChart.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                seeMaxCapacityChartActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout statisticsPanelLayout = new javax.swing.GroupLayout(statisticsPanel);
        statisticsPanel.setLayout(statisticsPanelLayout);
        statisticsPanelLayout.setHorizontalGroup(
                statisticsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(
                        javax.swing.GroupLayout.Alignment.TRAILING,
                        statisticsPanelLayout.createSequentialGroup().addContainerGap(173, Short.MAX_VALUE)
                                .addGroup(statisticsPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                        .addComponent(jButton6, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(jLabel21, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(seeMaxCapacityChart, javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addGap(110, 110, 110)));
        statisticsPanelLayout.setVerticalGroup(
                statisticsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(statisticsPanelLayout.createSequentialGroup().addGap(47, 47, 47)
                                .addComponent(jLabel21, javax.swing.GroupLayout.PREFERRED_SIZE, 41,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18).addComponent(jButton6).addGap(18, 18, 18)
                                .addComponent(seeMaxCapacityChart).addContainerGap(595, Short.MAX_VALUE)));

        rightPanel.add(statisticsPanel, "card8");

        recyclingSimulationPanel.setBackground(new java.awt.Color(255, 204, 204));
        recyclingSimulationPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        rcmNameComboBox.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        rcmNameComboBox.setModel(
                new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        rcmNameComboBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rcmNameComboBoxActionPerformed(evt);
            }
        });
        rcmNameComboBox.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                rcmNameComboBoxPropertyChange(evt);
            }
        });

        itemNameComboBox.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        itemNameComboBox.setModel(
                new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
        itemNameComboBox.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itemNameComboBoxActionPerformed(evt);
            }
        });

        jButton4.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jButton4.setText("Click to Recycle");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jLabel13.setFont(new java.awt.Font("Lucida Grande", 1, 15)); // NOI18N

        jLabel14.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel14.setText("Weight of recyclable item is -");

        weightComboBox.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        weightComboBox.setModel(
                new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        jLabel26.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel26.setText("Enter units for weight");
        jLabel26.setToolTipText("(default is kg)");

        javax.swing.GroupLayout recyclingSimulationPanelLayout = new javax.swing.GroupLayout(
                recyclingSimulationPanel);
        recyclingSimulationPanel.setLayout(recyclingSimulationPanelLayout);
        recyclingSimulationPanelLayout.setHorizontalGroup(recyclingSimulationPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(recyclingSimulationPanelLayout.createSequentialGroup().addGap(78, 78, 78)
                        .addGroup(recyclingSimulationPanelLayout
                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(recyclingSimulationPanelLayout.createSequentialGroup()
                                        .addGroup(recyclingSimulationPanelLayout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addComponent(jButton4).addComponent(jLabel14)
                                                .addComponent(jLabel26))
                                        .addGap(18, 18, 18)
                                        .addComponent(jLabel13, javax.swing.GroupLayout.DEFAULT_SIZE, 88,
                                                Short.MAX_VALUE)
                                        .addGap(89, 89, 89))
                                .addGroup(recyclingSimulationPanelLayout.createSequentialGroup()
                                        .addGroup(recyclingSimulationPanelLayout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addComponent(itemNameComboBox,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 239,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(rcmNameComboBox,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 239,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addGroup(recyclingSimulationPanelLayout.createSequentialGroup().addGap(163, 163, 163)
                        .addComponent(weightComboBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE)));
        recyclingSimulationPanelLayout.setVerticalGroup(recyclingSimulationPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(recyclingSimulationPanelLayout.createSequentialGroup().addGap(57, 57, 57)
                        .addComponent(rcmNameComboBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(29, 29, 29)
                        .addComponent(itemNameComboBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jLabel26, javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(weightComboBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(20, 20, 20)
                        .addGroup(recyclingSimulationPanelLayout
                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(jLabel13, javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel14, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE))
                        .addGap(18, 18, 18).addComponent(jButton4).addGap(430, 430, 430)));

        rightPanel.add(recyclingSimulationPanel, "card7");

        updateItemPanel.setBackground(new java.awt.Color(255, 204, 204));
        updateItemPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        editItemNameInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        editItemPriceInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        updateItemSubmit.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        updateItemSubmit.setText("Update");
        updateItemSubmit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                updateItemSubmitActionPerformed(evt);
            }
        });

        jLabel19.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel19.setText("Enter the Name of Item");

        jLabel20.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel20.setText("Enter the new Price for Item per kg");

        javax.swing.GroupLayout updateItemPanelLayout = new javax.swing.GroupLayout(updateItemPanel);
        updateItemPanel.setLayout(updateItemPanelLayout);
        updateItemPanelLayout.setHorizontalGroup(updateItemPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(updateItemPanelLayout.createSequentialGroup().addGap(28, 28, 28)
                        .addGroup(
                                updateItemPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jLabel19).addComponent(jLabel20))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 46, Short.MAX_VALUE)
                        .addGroup(updateItemPanelLayout
                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(editItemPriceInput, javax.swing.GroupLayout.Alignment.TRAILING,
                                        javax.swing.GroupLayout.PREFERRED_SIZE, 113,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(editItemNameInput, javax.swing.GroupLayout.Alignment.TRAILING,
                                        javax.swing.GroupLayout.PREFERRED_SIZE, 113,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(46, 46, 46))
                .addGroup(updateItemPanelLayout.createSequentialGroup().addGap(185, 185, 185)
                        .addComponent(updateItemSubmit)
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        updateItemPanelLayout.setVerticalGroup(
                updateItemPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(updateItemPanelLayout.createSequentialGroup().addGap(101, 101, 101)
                                .addGroup(updateItemPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(editItemNameInput, javax.swing.GroupLayout.PREFERRED_SIZE, 29,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jLabel19, javax.swing.GroupLayout.PREFERRED_SIZE, 29,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(33, 33, 33)
                                .addGroup(updateItemPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(jLabel20).addComponent(editItemPriceInput,
                                                javax.swing.GroupLayout.PREFERRED_SIZE, 28,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGap(42, 42, 42).addComponent(updateItemSubmit)
                                .addContainerGap(513, Short.MAX_VALUE)));

        rightPanel.add(updateItemPanel, "card5");

        addItemPanel.setBackground(new java.awt.Color(255, 204, 204));
        addItemPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        itemNameInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        itemNameInput.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                itemNameInputActionPerformed(evt);
            }
        });

        itemPriceInput.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        itemPriceInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jLabel7.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel7.setText("Enter Price for Item per lbs");

        jLabel8.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel8.setText("Enter Name for Item");

        addItemToDb.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        addItemToDb.setText("Add Item");
        addItemToDb.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                addItemToDbActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout addItemPanelLayout = new javax.swing.GroupLayout(addItemPanel);
        addItemPanel.setLayout(addItemPanelLayout);
        addItemPanelLayout.setHorizontalGroup(addItemPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(addItemPanelLayout.createSequentialGroup().addGroup(addItemPanelLayout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(addItemPanelLayout.createSequentialGroup().addGap(47, 47, 47)
                                .addGroup(addItemPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jLabel7).addComponent(jLabel8))
                                .addGap(42, 42, 42)
                                .addGroup(addItemPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(itemNameInput, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(itemPriceInput, javax.swing.GroupLayout.PREFERRED_SIZE, 125,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGroup(addItemPanelLayout.createSequentialGroup().addGap(154, 154, 154)
                                .addComponent(addItemToDb)))
                        .addContainerGap(74, Short.MAX_VALUE)));
        addItemPanelLayout.setVerticalGroup(addItemPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(addItemPanelLayout.createSequentialGroup().addGap(82, 82, 82)
                        .addGroup(addItemPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jLabel8).addComponent(itemNameInput,
                                        javax.swing.GroupLayout.PREFERRED_SIZE, 27,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(31, 31, 31)
                        .addGroup(addItemPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 26,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(itemPriceInput, javax.swing.GroupLayout.PREFERRED_SIZE, 26,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(39, 39, 39).addComponent(addItemToDb).addContainerGap(541, Short.MAX_VALUE)));

        rightPanel.add(addItemPanel, "card6");

        listRcmPanel.setBackground(new java.awt.Color(255, 204, 204));
        listRcmPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        listOfRcmComboBox.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        listOfRcmComboBox.setModel(
                new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        jLabel22.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel22.setText("Please select the Rcm you want to delete");

        deleteRcm.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        deleteRcm.setText("Delete RCM");
        deleteRcm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                deleteRcmActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout listRcmPanelLayout = new javax.swing.GroupLayout(listRcmPanel);
        listRcmPanel.setLayout(listRcmPanelLayout);
        listRcmPanelLayout.setHorizontalGroup(listRcmPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(listRcmPanelLayout.createSequentialGroup()
                        .addGroup(listRcmPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(listRcmPanelLayout.createSequentialGroup().addGap(22, 22, 22)
                                        .addComponent(jLabel22).addGap(18, 18, 18).addComponent(listOfRcmComboBox,
                                                javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(listRcmPanelLayout.createSequentialGroup().addGap(159, 159, 159)
                                        .addComponent(deleteRcm)))
                        .addContainerGap(56, Short.MAX_VALUE)));
        listRcmPanelLayout.setVerticalGroup(listRcmPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(listRcmPanelLayout.createSequentialGroup().addGap(63, 63, 63).addGroup(listRcmPanelLayout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(jLabel22)
                        .addComponent(listOfRcmComboBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(34, 34, 34).addComponent(deleteRcm).addContainerGap(622, Short.MAX_VALUE)));

        rightPanel.add(listRcmPanel, "card3");

        updateRcmPanel.setBackground(new java.awt.Color(255, 204, 204));
        updateRcmPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        selectRcmComboBox.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N

        jButton2.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jButton2.setText("Edit RCM");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jPanel1.setBackground(new java.awt.Color(255, 204, 204));

        jLabel9.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel9.setText("Location");

        jCheckBox6.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox6.setText("jCheckBox4");

        rcmLocationUpdate.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        rcmLocationUpdate.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        rcmLocationUpdate.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rcmLocationUpdateActionPerformed(evt);
            }
        });

        jCheckBox7.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox7.setText("jCheckBox5");

        rcmCapacityUpdate.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        rcmCapacityUpdate.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rcmCapacityUpdateActionPerformed(evt);
            }
        });

        rcmAmountUpdate.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        rcmAmountUpdate.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rcmAmountUpdateActionPerformed(evt);
            }
        });

        jLabel10.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel10.setText("Capacity of RCM");

        jLabel11.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel11.setText("Amount in RCM");

        jCheckBox8.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox8.setText("jCheckBox1");
        jCheckBox8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox8ActionPerformed(evt);
            }
        });

        jLabel12.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel12.setText("Rcm Name");

        jCheckBox9.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox9.setText("jCheckBox2");

        rcmNameUpdate.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jCheckBox10.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox10.setText("jCheckBox3");

        submitUpdateRcm.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        submitUpdateRcm.setText("Click to Update");
        submitUpdateRcm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                submitUpdateRcmActionPerformed(evt);
            }
        });

        rcmActiveUpdate.setText("Active");

        jLabel16.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel16.setText("RCM Status");

        jLabel17.setFont(new java.awt.Font("Lucida Grande", 2, 8)); // NOI18N
        jLabel17.setText("Note: Checkbox ticked implies the RCM is active");

        jLabel18.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel18.setText("Please customize the items the RCM can accept");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(jPanel1Layout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup().addGap(14, 14, 14).addGroup(jPanel1Layout
                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(
                                        jLabel18)
                                .addComponent(jLabel11)
                                .addGroup(jPanel1Layout.createSequentialGroup().addGroup(
                                        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(jCheckBox8).addComponent(jCheckBox10)
                                                .addComponent(jCheckBox7))
                                        .addGap(53, 53, 53)
                                        .addGroup(jPanel1Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(jCheckBox9).addComponent(jCheckBox6)))
                                .addGroup(jPanel1Layout.createSequentialGroup().addGap(156, 156, 156)
                                        .addGroup(jPanel1Layout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(rcmActiveUpdate)
                                                .addGroup(jPanel1Layout
                                                        .createParallelGroup(
                                                                javax.swing.GroupLayout.Alignment.LEADING, false)
                                                        .addComponent(rcmAmountUpdate,
                                                                javax.swing.GroupLayout.DEFAULT_SIZE, 137,
                                                                Short.MAX_VALUE)
                                                        .addComponent(rcmCapacityUpdate).addComponent(rcmNameUpdate)
                                                        .addComponent(rcmLocationUpdate))))
                                .addComponent(jLabel16).addComponent(jLabel9).addComponent(jLabel10)
                                .addComponent(jLabel17)))
                        .addGroup(jPanel1Layout.createSequentialGroup().addGap(123, 123, 123)
                                .addComponent(submitUpdateRcm)))
                        .addContainerGap(61, Short.MAX_VALUE))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup().addGap(14, 14, 14).addComponent(jLabel12)
                                .addContainerGap(282, Short.MAX_VALUE))));
        jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addComponent(rcmNameUpdate, javax.swing.GroupLayout.PREFERRED_SIZE, 24,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel9).addComponent(rcmLocationUpdate,
                                        javax.swing.GroupLayout.PREFERRED_SIZE, 22,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(11, 11, 11)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel10).addComponent(rcmCapacityUpdate,
                                        javax.swing.GroupLayout.DEFAULT_SIZE, 24, Short.MAX_VALUE))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel11).addComponent(rcmAmountUpdate,
                                        javax.swing.GroupLayout.PREFERRED_SIZE, 25,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(22, 22, 22)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel16).addComponent(rcmActiveUpdate))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel17, javax.swing.GroupLayout.PREFERRED_SIZE, 10,
                                javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 16, Short.MAX_VALUE)
                        .addComponent(jLabel18).addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jCheckBox8).addComponent(jCheckBox9))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jCheckBox10).addComponent(jCheckBox6))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox7)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(submitUpdateRcm).addGap(22, 22, 22))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(jPanel1Layout.createSequentialGroup().addGap(19, 19, 19).addComponent(jLabel12)
                                .addContainerGap(374, Short.MAX_VALUE))));

        javax.swing.GroupLayout updateRcmPanelLayout = new javax.swing.GroupLayout(updateRcmPanel);
        updateRcmPanel.setLayout(updateRcmPanelLayout);
        updateRcmPanelLayout.setHorizontalGroup(updateRcmPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(updateRcmPanelLayout.createSequentialGroup().addGap(63, 63, 63)
                        .addComponent(selectRcmComboBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jButton2).addGap(87, 87, 87))
                .addGroup(updateRcmPanelLayout.createSequentialGroup().addGap(31, 31, 31)
                        .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));
        updateRcmPanelLayout.setVerticalGroup(
                updateRcmPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(updateRcmPanelLayout.createSequentialGroup().addGap(62, 62, 62)
                                .addGroup(updateRcmPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                        .addComponent(selectRcmComboBox, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(jButton2))
                                .addGap(33, 33, 33)
                                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap(242, Short.MAX_VALUE)));

        rightPanel.add(updateRcmPanel, "card4");

        addRcmPanel.setBackground(new java.awt.Color(255, 204, 204));
        addRcmPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jLabel3.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel3.setText("Rcm Name");

        rcmNameInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jLabel4.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel4.setText("Location");

        rcmLocationInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        rcmLocationInput.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rcmLocationInputActionPerformed(evt);
            }
        });

        rcmCapacityInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        rcmAmountInput.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jLabel5.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel5.setText("Capacity of RCM");

        jLabel6.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel6.setText("Amount in RCM");

        createRcm.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        createRcm.setText("Create RCM");
        createRcm.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                createRcmActionPerformed(evt);
            }
        });

        jCheckBox1.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox1.setText("jCheckBox1");
        jCheckBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox1ActionPerformed(evt);
            }
        });

        jCheckBox2.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox2.setText("jCheckBox2");

        jCheckBox3.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox3.setText("jCheckBox3");

        jCheckBox4.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox4.setText("jCheckBox4");

        jCheckBox5.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jCheckBox5.setText("jCheckBox5");

        jLabel15.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel15.setText("Please select options the RCM should accept");

        javax.swing.GroupLayout addRcmPanelLayout = new javax.swing.GroupLayout(addRcmPanel);
        addRcmPanel.setLayout(addRcmPanelLayout);
        addRcmPanelLayout.setHorizontalGroup(addRcmPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(addRcmPanelLayout.createSequentialGroup().addGap(149, 149, 149).addComponent(createRcm)
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGroup(addRcmPanelLayout.createSequentialGroup().addGap(30, 30, 30).addGroup(addRcmPanelLayout
                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(addRcmPanelLayout.createSequentialGroup().addGroup(addRcmPanelLayout
                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(addRcmPanelLayout.createSequentialGroup()
                                        .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 109,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(rcmAmountInput, javax.swing.GroupLayout.PREFERRED_SIZE, 103,
                                                javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, addRcmPanelLayout
                                        .createSequentialGroup()
                                        .addGroup(addRcmPanelLayout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(jLabel3).addComponent(jLabel4)
                                                .addComponent(jCheckBox3).addComponent(jCheckBox1))
                                        .addGap(22, 22, 22)
                                        .addGroup(addRcmPanelLayout
                                                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addGroup(addRcmPanelLayout.createSequentialGroup()
                                                        .addGap(44, 44, 44)
                                                        .addGroup(addRcmPanelLayout
                                                                .createParallelGroup(
                                                                        javax.swing.GroupLayout.Alignment.LEADING)
                                                                .addComponent(jCheckBox2).addComponent(jCheckBox4))
                                                        .addGap(0, 0, Short.MAX_VALUE))
                                                .addComponent(rcmNameInput,
                                                        javax.swing.GroupLayout.Alignment.TRAILING,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 103,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(rcmLocationInput,
                                                        javax.swing.GroupLayout.Alignment.TRAILING,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 103,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                        addRcmPanelLayout.createSequentialGroup().addComponent(jLabel5)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
                                                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                                .addComponent(rcmCapacityInput,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE, 103,
                                                        javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(126, 126, 126))
                        .addGroup(addRcmPanelLayout.createSequentialGroup()
                                .addGroup(addRcmPanelLayout
                                        .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jLabel15).addComponent(jCheckBox5))
                                .addGap(0, 0, Short.MAX_VALUE)))));
        addRcmPanelLayout.setVerticalGroup(addRcmPanelLayout
                .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(addRcmPanelLayout.createSequentialGroup()
                        .addGroup(addRcmPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(addRcmPanelLayout.createSequentialGroup().addGap(43, 43, 43)
                                        .addComponent(jLabel3))
                                .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
                                        addRcmPanelLayout.createSequentialGroup().addContainerGap().addComponent(
                                                rcmNameInput, javax.swing.GroupLayout.PREFERRED_SIZE,
                                                javax.swing.GroupLayout.DEFAULT_SIZE,
                                                javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(20, 20, 20)
                        .addGroup(addRcmPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel4).addComponent(rcmLocationInput,
                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(16, 16, 16)
                        .addGroup(addRcmPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel5).addComponent(rcmCapacityInput,
                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(addRcmPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel6).addComponent(rcmAmountInput,
                                        javax.swing.GroupLayout.PREFERRED_SIZE,
                                        javax.swing.GroupLayout.DEFAULT_SIZE,
                                        javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(32, 32, 32).addComponent(jLabel15).addGap(27, 27, 27)
                        .addGroup(addRcmPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jCheckBox1).addComponent(jCheckBox2))
                        .addGap(18, 18, 18)
                        .addGroup(addRcmPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jCheckBox3).addComponent(jCheckBox4))
                        .addGap(18, 18, 18).addComponent(jCheckBox5).addGap(17, 17, 17).addComponent(createRcm)
                        .addContainerGap(382, Short.MAX_VALUE)));

        rightPanel.add(addRcmPanel, "card2");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                        .addComponent(leftPanel, javax.swing.GroupLayout.PREFERRED_SIZE,
                                javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(rightPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 471, Short.MAX_VALUE)));
        layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(leftPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
                        Short.MAX_VALUE)
                .addComponent(rightPanel, javax.swing.GroupLayout.DEFAULT_SIZE,
                        javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE));

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void listRcmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_listRcmActionPerformed
        // TODO add your handling code here:
        rightPanel.removeAll();
        DbConnect conn = new DbConnect();
        ArrayList<String> mylist = new ArrayList<String>();
        listOfRcmComboBox.removeAllItems();
        try {
            mylist = conn.getAllRcmNames();
            for (String name : mylist) {
                listOfRcmComboBox.addItem(name);
            }
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        rightPanel.add(listRcmPanel);
        rightPanel.repaint();
        rightPanel.revalidate();
    }//GEN-LAST:event_listRcmActionPerformed

    private void addRcmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addRcmActionPerformed
        // TODO add your handling code here:
        JCheckBox checkBox[] = { jCheckBox1, jCheckBox2, jCheckBox3, jCheckBox4, jCheckBox5 };
        DbConnect conn = new DbConnect();
        ArrayList<String> mylist = new ArrayList<String>();

        try {
            mylist = conn.fetchAllItems();
            for (int i = 0; i < 5; i++) {
                if (i >= mylist.size()) {
                    checkBox[i].setVisible(false);
                } else {
                    checkBox[i].setText(mylist.get(i));
                    checkBox[i].setVisible(true);
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        rightPanel.removeAll();
        rightPanel.add(addRcmPanel);
        rightPanel.repaint();
        rightPanel.revalidate();
    }//GEN-LAST:event_addRcmActionPerformed

    private void updateRcmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_updateRcmActionPerformed
        // TODO add your handling code here:
        rightPanel.removeAll();
        DbConnect conn = new DbConnect();
        ArrayList<String> mylist = new ArrayList<String>();
        try {
            mylist = conn.getAllRcmNames();
            selectRcmComboBox.removeAllItems();
            for (String name : mylist) {
                selectRcmComboBox.addItem(name);
            }
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        rightPanel.add(updateRcmPanel);
        jPanel1.setVisible(false);
        rightPanel.repaint();
        rightPanel.revalidate();
    }//GEN-LAST:event_updateRcmActionPerformed

    private void createRcmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_createRcmActionPerformed
        // TODO add your handling code here:
        JCheckBox checkBox[] = { jCheckBox1, jCheckBox2, jCheckBox3, jCheckBox4, jCheckBox5 };
        DbConnect conn = new DbConnect();
        ArrayList<String> mylist = new ArrayList<String>();

        try {
            mylist = conn.fetchAllItems();
            for (int i = 0; i < 5; i++) {
                if (i >= mylist.size()) {
                    checkBox[i].setVisible(false);
                } else {
                    checkBox[i].setText(mylist.get(i));
                    checkBox[i].setVisible(true);
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }

        int[] a = new int[mylist.size()];
        for (int i = 0; i < mylist.size(); i++) {
            if (checkBox[i].isSelected()) {
                try {
                    a[i] = conn.findItemId(checkBox[i].getText());
                } catch (SQLException ex) {
                    Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        int n = 0;
        for (int i = 0; i < a.length; i++) {
            if (a[i] != 0)
                n++;
        }

        int[] newArray = new int[n];
        int j = 0;

        for (int i = 0; i < a.length; i++) {
            if (a[i] != 0) {
                newArray[j] = a[i];
                j++;
            }
        }

        if (newArray.length == 0) {
            JOptionPane.showMessageDialog(null, "You have to atleast select one recyclable item");
        } else {
            String name = rcmNameInput.getText();
            String location = rcmLocationInput.getText();
            String capacity = rcmCapacityInput.getText();
            String amount = rcmAmountInput.getText();
            DbConnect conn1 = new DbConnect();
            try {
                conn1.addNewRcm(name, location, capacity, amount, newArray);
                JOptionPane.showMessageDialog(null, "New RCM created!");
                clearItemFields();

            } catch (SQLException ex) {
                Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
            clearItemFields();
            rightPanel.removeAll();
            rightPanel.add(statisticsPanel);
            rightPanel.repaint();
            rightPanel.revalidate();
            //    JOptionPane.showMessageDialog(null, "New RCM created!");
            //clearItemFields();

        }
    }//GEN-LAST:event_createRcmActionPerformed

    private void rcmLocationInputActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rcmLocationInputActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_rcmLocationInputActionPerformed

    private void addItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addItemActionPerformed
        // TODO add your handling code here:
        rightPanel.removeAll();
        rightPanel.add(addItemPanel);
        rightPanel.repaint();
        rightPanel.revalidate();

    }//GEN-LAST:event_addItemActionPerformed

    private void updateItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_updateItemActionPerformed
        // TODO add your handling code here:
        rightPanel.removeAll();
        rightPanel.add(updateItemPanel);
        rightPanel.repaint();
        rightPanel.revalidate();
    }//GEN-LAST:event_updateItemActionPerformed

    private void addItemToDbActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addItemToDbActionPerformed
        // TODO add your handling code here:
        String name = itemNameInput.getText();
        String price = itemPriceInput.getText();
        DbConnect conn = new DbConnect();
        try {
            conn.addItemToItemsTable(name, price);
            clearItemFields();
            JOptionPane.showMessageDialog(null,
                    name + " of " + price + " price/weight is added to the list of items");
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        rightPanel.removeAll();
        rightPanel.add(statisticsPanel);
        rightPanel.repaint();
        rightPanel.revalidate();

    }//GEN-LAST:event_addItemToDbActionPerformed

    private void itemNameInputActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itemNameInputActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_itemNameInputActionPerformed

    private void updateItemSubmitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_updateItemSubmitActionPerformed
        // TODO add your handling code here:
        String name = editItemNameInput.getText();
        String price = editItemPriceInput.getText();
        DbConnect conn = new DbConnect();
        if (price.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Enter a price");
        } else {
            try {
                if (conn.findItemUsingName(name) > 0) {
                    DbConnect conn1 = new DbConnect();
                    int value = conn1.updateItemPrice(name, price);
                    if (value > 0) {
                        System.out.println("test");
                        JOptionPane.showMessageDialog(null,
                                "Price/Weight of " + name + " has been changed to " + price);
                        clearUpdateItemFields();
                        rightPanel.removeAll();
                        rightPanel.add(statisticsPanel);
                        rightPanel.repaint();
                        rightPanel.revalidate();
                    }
                } else {
                    JOptionPane.showMessageDialog(null,
                            "Oops! No such item exists in the Item List. Please check if you've entered the right item name");
                }
            } catch (SQLException ex) {
                Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }//GEN-LAST:event_updateItemSubmitActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        // TODO add your handling code here:
        jPanel1.setVisible(true);
        String name = (String) selectRcmComboBox.getSelectedItem();
        DbConnect conn = new DbConnect();
        ArrayList<String> mylist = new ArrayList<String>();
        String rcmId;
        try {
            mylist = conn.fetchRcmDetails(name);
            rcmId = mylist.get(0);
            rcmNameUpdate.setText(mylist.get(1));
            rcmLocationUpdate.setText(mylist.get(2));
            if (mylist.get(3).equals("1")) {
                rcmActiveUpdate.setSelected(true);
            }
            rcmCapacityUpdate.setText(mylist.get(5));
            rcmAmountUpdate.setText(mylist.get(6));

            JCheckBox checkBox[] = { jCheckBox6, jCheckBox7, jCheckBox8, jCheckBox9, jCheckBox10 };
            DbConnect conn1 = new DbConnect();
            DbConnect conn2 = new DbConnect();
            ArrayList<String> selected_items = new ArrayList<String>();
            ArrayList<String> all_items = new ArrayList<String>();

            try {
                all_items = conn2.fetchAllItems();
                selected_items = conn1.fetchItems(mylist.get(4));
                for (int i = 0; i < 5; i++) {
                    if (i >= all_items.size()) {
                        checkBox[i].setVisible(false);
                    } else {
                        System.out.println("HERE " + i);
                        checkBox[i].setText(all_items.get(i));
                        checkBox[i].setVisible(true);
                    }
                }
                for (int i = 0; i < selected_items.size(); i++) {
                    checkBox[i].setSelected(true);
                }
            } catch (SQLException ex) {
                Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
            }

            //            int[] a = new int[selected_items.size()];
            //            for(int i = 0;i<selected_items.size();i++){
            //                if(checkBox[i].isSelected()){
            //                    try {
            //                        a[i] = conn.findItemId(checkBox[i].getText());
            //                    } catch (SQLException ex) {
            //                        Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
            //                    }
            //                }
            //            }
            //            int n = 0;
            //            for (int i = 0; i < a.length; i++) {
            //                if (a[i] != 0)
            //                    n++;
            //            }
            //
            //            int[] newArray = new int[n];
            //            int j=0;
            //
            //            for (int i = 0; i < a.length; i++) {
            //                if (a[i] != 0)
            //                   { 
            //                     newArray[j]=a[i]; 
            //                     j++;
            //                   }
            //            }
            //            
            //            String update_name = rcmNameUpdate.getText();
            //            String update_location = rcmLocationUpdate.getText();
            //            String update_capacity = rcmCapacityUpdate.getText();
            //            String update_amount = rcmAmountUpdate.getText();
            //            Boolean update_active = rcmActiveUpdate.isSelected();
            //            DbConnect conn3 = new DbConnect();
            //            try {
            //                conn3.updateRcm(update_name, update_location, update_active, update_capacity, update_amount, newArray, rcmId);
            //            } catch (SQLException ex) {
            //                Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
            //            }

        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton2ActionPerformed

    private void rcmLocationUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rcmLocationUpdateActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_rcmLocationUpdateActionPerformed

    private void submitUpdateRcmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_submitUpdateRcmActionPerformed
        // TODO add your handling code here:
        DbConnect conn = new DbConnect();
        DbConnect conn1 = new DbConnect();
        DbConnect conn2 = new DbConnect();
        String rcmId;
        ArrayList<String> mylist = new ArrayList<String>();
        ArrayList<String> selected_items = new ArrayList<String>();
        ArrayList<String> all_items = new ArrayList<String>();

        String name = (String) selectRcmComboBox.getSelectedItem();

        try {
            mylist = conn.fetchRcmDetails(name);
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            all_items = conn2.fetchAllItems();
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            selected_items = conn1.fetchItems(mylist.get(4));
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        rcmId = mylist.get(0);
        JCheckBox checkBox[] = { jCheckBox6, jCheckBox7, jCheckBox8, jCheckBox9, jCheckBox10 };
        int[] a = new int[all_items.size()];
        for (int i = 0; i < all_items.size(); i++) {
            if (checkBox[i].isSelected()) {
                try {
                    a[i] = conn.findItemId(checkBox[i].getText());
                } catch (SQLException ex) {
                    Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        int n = 0;
        for (int i = 0; i < a.length; i++) {
            if (a[i] != 0)
                n++;
        }

        int[] newArray = new int[n];
        int j = 0;

        for (int i = 0; i < a.length; i++) {
            if (a[i] != 0) {
                newArray[j] = a[i];
                j++;
            }
        }
        if (newArray.length == 0) {
            JOptionPane.showMessageDialog(null, "Please select atleast one recyclable item");
        } else {
            String update_name = rcmNameUpdate.getText();
            String update_location = rcmLocationUpdate.getText();
            String update_capacity = rcmCapacityUpdate.getText();
            String update_amount = rcmAmountUpdate.getText();
            Boolean update_active = rcmActiveUpdate.isSelected();
            DbConnect conn3 = new DbConnect();
            try {
                conn3.updateRcm(update_name, update_location, update_active, update_capacity, update_amount,
                        newArray, rcmId);
                JOptionPane.showMessageDialog(null, "RCM updated");
                clearItemFields();

            } catch (SQLException ex) {
                Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
            }
            rightPanel.removeAll();
            rightPanel.add(statisticsPanel);
            rightPanel.repaint();
            rightPanel.revalidate();
            JOptionPane.showMessageDialog(null, "RCM updated");
            clearItemFields();

        }

    }//GEN-LAST:event_submitUpdateRcmActionPerformed

    private void jCheckBox8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox8ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox8ActionPerformed

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
        // TODO add your handling code here:
        rightPanel.removeAll();
        rightPanel.add(recyclingSimulationPanel);
        rightPanel.repaint();
        rightPanel.revalidate();
        DbConnect conn = new DbConnect();
        ArrayList<String> item_names = new ArrayList<String>();
        ArrayList<String> rcm_names = new ArrayList<String>();
        Random r = new Random();
        int Low = 10;
        int High = 100;
        int weight = r.nextInt(High - Low) + Low;
        jLabel13.setText(Integer.toString(weight));
        try {
            item_names = conn.fetchAllItems();
            rcm_names = conn.getAllActiveRcmNames();
            rcmNameComboBox.removeAllItems();
            itemNameComboBox.removeAllItems();
            for (String name : rcm_names) {
                rcmNameComboBox.addItem(name);
            }
            for (String name : item_names) {
                itemNameComboBox.addItem(name);
            }
            weightComboBox.removeAllItems();
            weightComboBox.addItem("kg");
            weightComboBox.addItem("lbs");

        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton3ActionPerformed

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
        // TODO add your handling code here:
        String rcm_name = (String) rcmNameComboBox.getSelectedItem();
        String item_name = (String) itemNameComboBox.getSelectedItem();
        DbConnect conn = new DbConnect();
        String units = (String) weightComboBox.getSelectedItem();
        String weight = jLabel13.getText();
        if (!(units == "kgs")) {
            double x = Float.valueOf(weight) / 2.2046;
            weight = Double.toString(x);
            System.out.println(weight);
        }
        Object[] my_obj = new Object[10];
        try {
            my_obj = conn.checkIfRcmAcceptsItem(rcm_name, item_name);
            ArrayList<String> id_list = new ArrayList<String>();
            id_list = (ArrayList<String>) my_obj[0];
            String size = id_list.get(0);
            String name_of_rcm = (String) my_obj[1];
            String id_of_rcm = (String) my_obj[2];
            String name_of_item = (String) my_obj[3];
            String id_of_item = (String) my_obj[4];
            float price = 0;
            if (id_list.get(0).contains(id_of_item)) {
                price = conn.getPriceOfItem(name_of_item);
                price = Float.valueOf(weight) * price;
                // for weight
                if (conn.getRcmCapacityAndAmount(id_of_rcm, Float.valueOf(weight), price)[0]) {
                    // for amount
                    if (conn.getRcmCapacityAndAmount(id_of_rcm, Float.valueOf(weight), price)[1]) {
                        System.out.println("Weight" + Float.valueOf(weight));
                        System.out.println("price" + price);
                        conn.addTransaction(name_of_rcm, id_of_rcm, name_of_item, id_of_item, Float.valueOf(weight),
                                price);
                        JOptionPane.showMessageDialog(null,
                                "Your item has been accepted for recycling. Please collect the amount from the dispenser!");
                    } else {
                        JOptionPane.showMessageDialog(null, "Rcm doesn't have enough cash so here is a voucher of $"
                                + price + "! Happy Recycling");
                    }
                } else {
                    JOptionPane.showMessageDialog(null,
                            "Sorry the Recycling Machine is full. Please try again in a little while!");
                }
            } else {
                JOptionPane.showMessageDialog(null, "Rcm can't recycle items " + name_of_item);
            }
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton4ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        String username = usernameInput.getText();
        String password = passwordInput.getText();
        System.out.println(password);
        DbConnect conn = new DbConnect();
        try {
            System.out.println(conn.authorizeAdmin(username, password));
            if (conn.authorizeAdmin(username, password)) {
                rcmPanel.setVisible(true);
                itemPanel.setVisible(true);
                statsPanel.setVisible(true);
                simulationPanel.setVisible(false);
            } else {
                rcmPanel.setVisible(false);
                itemPanel.setVisible(false);
                statsPanel.setVisible(false);
                simulationPanel.setVisible(true);
            }
            ;
            //            if(!name.isEmpty()){
            //                JOptionPane.showMessageDialog(null, "Welcome back " + name);
            //            }
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton1ActionPerformed

    private void passwordInputActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_passwordInputActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_passwordInputActionPerformed

    private void rcmNameComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rcmNameComboBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_rcmNameComboBoxActionPerformed

    private void itemNameComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_itemNameComboBoxActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_itemNameComboBoxActionPerformed

    private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox1ActionPerformed

    private void rcmCapacityUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rcmCapacityUpdateActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_rcmCapacityUpdateActionPerformed

    private void rcmAmountUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rcmAmountUpdateActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_rcmAmountUpdateActionPerformed

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
        // TODO add your handling code here:
        rightPanel.removeAll();
        rightPanel.add(statisticsPanel);
        rightPanel.repaint();
        rightPanel.revalidate();
    }//GEN-LAST:event_jButton5ActionPerformed

    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
        // TODO add your handling code here:
        DbConnect conn = new DbConnect();
        ArrayList<String> name_array = new ArrayList<String>();
        ArrayList<String> count_array = new ArrayList<String>();
        try {
            String totalCount = conn.getTotalCountOfTransacations();
            Object[] name_and_count_array = new Object[10];
            name_and_count_array = conn.getTransactionDetailsCount();
            name_array = (ArrayList<String>) name_and_count_array[0];
            count_array = (ArrayList<String>) name_and_count_array[1];
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }

        for (int i = 0; i < name_array.size(); i++) {
            System.out.print(name_array.get(i));
        }
        DefaultPieDataset dp = new DefaultPieDataset();
        for (int i = 0; i < name_array.size(); i++) {
            dp.setValue(name_array.get(i), Integer.parseInt(count_array.get(i)));
        }

        JFreeChart pieChart = ChartFactory.createPieChart("Pie chart representing usage of each RCM", dp, true,
                true, false);
        PiePlot p = (PiePlot) pieChart.getPlot();

        ChartFrame cf = new ChartFrame("Pie Chart", pieChart);
        cf.setVisible(true);
        cf.setSize(750, 500);
    }//GEN-LAST:event_jButton6ActionPerformed

    private void rcmNameComboBoxPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_rcmNameComboBoxPropertyChange
        // TODO add your handling code here:
        //        DbConnect conn = new DbConnect();
        //        rcmNameComboBox.getSelectedItem();
        //        try {
        //            conn.fetchAllItemsForRcm((String) rcmNameComboBox.getSelectedItem());
        //        } catch (SQLException ex) {
        //            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        //        }
    }//GEN-LAST:event_rcmNameComboBoxPropertyChange

    private void deleteRcmActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteRcmActionPerformed
        // TODO add your handling code here:
        String name_of_rcm = (String) listOfRcmComboBox.getSelectedItem();
        DbConnect conn = new DbConnect();
        try {
            conn.deleteRcm(name_of_rcm);
            JOptionPane.showMessageDialog(null, name_of_rcm + " has been deleted!");
            rightPanel.removeAll();
            rightPanel.add(statisticsPanel);
            rightPanel.repaint();
            rightPanel.revalidate();
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_deleteRcmActionPerformed

    private void seeMaxCapacityChartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_seeMaxCapacityChartActionPerformed
        // TODO add your handling code here:
        DbConnect conn = new DbConnect();
        ArrayList<String> capacity_array = new ArrayList<String>();
        ArrayList<String> name_array = new ArrayList<String>();
        try {
            Object[] obj = new Object[2];
            obj = conn.getCapacityOfRcms();
            name_array = (ArrayList<String>) obj[0];
            capacity_array = (ArrayList<String>) obj[1];
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }

        for (int i = 0; i < name_array.size(); i++) {
            System.out.print(name_array.get(i));
        }
        DefaultPieDataset dp = new DefaultPieDataset();
        for (int i = 0; i < name_array.size(); i++) {
            dp.setValue(name_array.get(i), Integer.parseInt(capacity_array.get(i)));
        }

        JFreeChart pieChart = ChartFactory.createPieChart("Pie chart representing capacity of each RCM", dp, true,
                true, false);
        PiePlot p = (PiePlot) pieChart.getPlot();

        ChartFrame cf = new ChartFrame("Pie Chart", pieChart);
        cf.setVisible(true);
        cf.setSize(750, 500);
    }//GEN-LAST:event_seeMaxCapacityChartActionPerformed

    private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed
        // TODO add your handling code here:
        rightPanel.removeAll();
        DbConnect conn = new DbConnect();
        ArrayList<String> names = new ArrayList<String>();
        try {
            names = conn.getAllRcmNames();
            showRcmInfoComboBox.removeAllItems();
            for (String name : names) {
                showRcmInfoComboBox.addItem(name);
            }
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        rightPanel.add(getInfoPanel);
        rightPanel.repaint();
        rightPanel.revalidate();
        jLabel23.setVisible(false);
        jLabel24.setVisible(false);
        jLabel25.setVisible(false);
        emptyRcmButton.setVisible(false);
    }//GEN-LAST:event_jButton7ActionPerformed

    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton8ActionPerformed
        // TODO add your handling code here:
        jLabel23.setVisible(true);
        jLabel24.setVisible(true);
        jLabel25.setVisible(true);
        emptyRcmButton.setVisible(true);
        DbConnect conn = new DbConnect();
        String name = (String) showRcmInfoComboBox.getSelectedItem();
        Object[] obj = new Object[10];
        try {
            obj = conn.getLastEmptiedDate(name);
            String capacity = (String) obj[0];
            String amount = (String) obj[1];
            String date = (String) obj[2];
            displayCapacity.setText(capacity);
            displayAmount.setText(amount);
            displayDate.setText(date);
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton8ActionPerformed

    private void emptyRcmButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_emptyRcmButtonActionPerformed
        // TODO add your handling code here:
        String name = (String) showRcmInfoComboBox.getSelectedItem();
        DbConnect conn = new DbConnect();
        try {
            conn.refillRcm(name);
            JOptionPane.showMessageDialog(null,
                    name + " has been emptied. Capacity is set to 1000 and Amount is set to 2000");
        } catch (SQLException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
        rightPanel.removeAll();
        rightPanel.add(statisticsPanel);
        rightPanel.repaint();
        rightPanel.revalidate();
    }//GEN-LAST:event_emptyRcmButtonActionPerformed

    JCheckBox cb[] = new JCheckBox[10];

    public void clearUpdateItemFields() {
        editItemNameInput.setText("");
        editItemPriceInput.setText("");
    }

    public void clearItemFields() {
        itemNameInput.setText("");
        itemPriceInput.setText("");
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null,
                    ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null,
                    ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null,
                    ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null,
                    ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainFrame().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton addItem;
    private javax.swing.JPanel addItemPanel;
    private javax.swing.JButton addItemToDb;
    private javax.swing.JButton addRcm;
    private javax.swing.JPanel addRcmPanel;
    private javax.swing.JButton createRcm;
    private javax.swing.JButton deleteRcm;
    private javax.swing.JLabel displayAmount;
    private javax.swing.JLabel displayCapacity;
    private javax.swing.JLabel displayDate;
    private javax.swing.JTextField editItemNameInput;
    private javax.swing.JTextField editItemPriceInput;
    private javax.swing.JButton emptyRcmButton;
    private javax.swing.JPanel getInfoPanel;
    private javax.swing.JComboBox<String> itemNameComboBox;
    private javax.swing.JTextField itemNameInput;
    private javax.swing.JPanel itemPanel;
    private javax.swing.JTextField itemPriceInput;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JButton jButton7;
    private javax.swing.JButton jButton8;
    private javax.swing.JCheckBox jCheckBox1;
    private javax.swing.JCheckBox jCheckBox10;
    private javax.swing.JCheckBox jCheckBox2;
    private javax.swing.JCheckBox jCheckBox3;
    private javax.swing.JCheckBox jCheckBox4;
    private javax.swing.JCheckBox jCheckBox5;
    private javax.swing.JCheckBox jCheckBox6;
    private javax.swing.JCheckBox jCheckBox7;
    private javax.swing.JCheckBox jCheckBox8;
    private javax.swing.JCheckBox jCheckBox9;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel leftPanel;
    private javax.swing.JComboBox<String> listOfRcmComboBox;
    private javax.swing.JButton listRcm;
    private javax.swing.JPanel listRcmPanel;
    private javax.swing.JPanel loginPanel;
    private javax.swing.JPasswordField passwordInput;
    private javax.swing.JCheckBox rcmActiveUpdate;
    private javax.swing.JTextField rcmAmountInput;
    private javax.swing.JTextField rcmAmountUpdate;
    private javax.swing.JTextField rcmCapacityInput;
    private javax.swing.JTextField rcmCapacityUpdate;
    private javax.swing.JTextField rcmLocationInput;
    private javax.swing.JTextField rcmLocationUpdate;
    private javax.swing.JComboBox<String> rcmNameComboBox;
    private javax.swing.JTextField rcmNameInput;
    private javax.swing.JTextField rcmNameUpdate;
    private javax.swing.JPanel rcmPanel;
    private javax.swing.JPanel recyclingSimulationPanel;
    private javax.swing.JPanel rightPanel;
    private javax.swing.JButton seeMaxCapacityChart;
    private javax.swing.JComboBox<String> selectRcmComboBox;
    private javax.swing.JComboBox<String> showRcmInfoComboBox;
    private javax.swing.JPanel simulationPanel;
    private javax.swing.JPanel statisticsPanel;
    private javax.swing.JPanel statsPanel;
    private javax.swing.JButton submitUpdateRcm;
    private javax.swing.JButton updateItem;
    private javax.swing.JPanel updateItemPanel;
    private javax.swing.JButton updateItemSubmit;
    private javax.swing.JButton updateRcm;
    private javax.swing.JPanel updateRcmPanel;
    private javax.swing.JTextField usernameInput;
    private javax.swing.JComboBox<String> weightComboBox;
    // End of variables declaration//GEN-END:variables
}