Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cqupestgui;
- import java.awt.event.ActionListener;
- import java.awt.event.ActionEvent;
- import javax.swing.table.DefaultTableModel;
- import javax.swing.*;
- import java.io.*;
- import java.io.BufferedWriter;
- import java.io.BufferedReader;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.lang.String;
- public class CQUPestGUI extends javax.swing.JFrame {
- final double GENERALPEST = 190, INSPECTIONPRICE = 200, CONTROLFILL = 350;
- double total = 0;
- String jobTypes = "";
- protected int generateNumber(){
- /* This method should optimally include
- a constraint to ensure that Math.random
- always generates a unique number as an identifier.
- (For the purpose of this assignment I have
- decided against attempting this complication)*/
- double randomNumber= Math.random() * 99999;
- int id;
- id = (int)randomNumber;
- return id;
- }
- protected class Contractor {
- int id =(generateNumber());
- int phoneNumber;
- String firstName, lastName, email;
- }
- /*It is not considered good policy
- to allow users to view or edit unique
- identifiers in SQL database.
- However, as per the Assignment specifications
- I have included Contract id to be displayed
- (but not edited) in the Jtable*/
- protected class Contract{
- int id =(generateNumber());
- String date = txtContractDate.getText(),
- customerName = txtCustomerName.getText(),
- location = formatxtJobLocation.getText(),
- jobTypes , contractorName;
- double totalCharges;
- }
- protected class Customer{
- int id;
- int phoneNumber;
- String firstName, lastName, email, address;
- }
- public CQUPestGUI() {
- initComponents();
- //The below section enables/disables checking TermiteInspection with TermiteControlFill
- checkboxTermiteControlFill.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- if (checkboxTermiteControlFill.isSelected())
- {
- checkboxTermiteInspection.setSelected(true);
- }
- else if (!checkboxTermiteControlFill.isSelected())
- {
- checkboxTermiteInspection.setSelected(false);
- }
- }
- });
- }
- @SuppressWarnings("unchecked")
- // <editor-fold defaultstate="collapsed" desc="Generated Code">
- private void initComponents() {
- panelMainGUI = new javax.swing.JPanel();
- tabMain = new javax.swing.JTabbedPane();
- panelNewContractBackground = new javax.swing.JPanel();
- panelNewContract = new javax.swing.JPanel();
- txtCustomerName = new javax.swing.JTextField();
- txtContractDate = new javax.swing.JTextField();
- labelContractDate = new javax.swing.JLabel();
- labelContractorName = new javax.swing.JLabel();
- labelJobLocation = new javax.swing.JLabel();
- labelJobDetails = new javax.swing.JLabel();
- labelCustomerName = new javax.swing.JLabel();
- checkboxTermiteControlFill = new javax.swing.JCheckBox();
- checkboxGeneralPestInspection = new javax.swing.JCheckBox();
- checkboxTermiteInspection = new javax.swing.JCheckBox();
- panelTotalCharges = new javax.swing.JPanel();
- txtTotalCharges = new javax.swing.JTextField();
- buttonCalculate = new javax.swing.JButton();
- formatxtJobLocation = new javax.swing.JFormattedTextField();
- spinnerRooms = new javax.swing.JSpinner();
- jLabel1 = new javax.swing.JLabel();
- jLabel2 = new javax.swing.JLabel();
- spinnerHalls = new javax.swing.JSpinner();
- buttonSave = new javax.swing.JButton();
- buttonReset = new javax.swing.JButton();
- jLabel3 = new javax.swing.JLabel();
- scrollStoredContracts = new javax.swing.JScrollPane();
- tableStoredContracts = new javax.swing.JTable();
- combolistChooseContractor = new javax.swing.JComboBox<>();
- panelStoredContracts = new javax.swing.JPanel();
- buttonSearchContractors = new javax.swing.JButton();
- combolistContractors = new javax.swing.JComboBox<>();
- buttonClearSearchResults = new javax.swing.JButton();
- jLabel4 = new javax.swing.JLabel();
- jLabel5 = new javax.swing.JLabel();
- jScrollPane5 = new javax.swing.JScrollPane();
- txtAreaSearchResults = new javax.swing.JTextArea();
- jScrollPane4 = new javax.swing.JScrollPane();
- txtAreaSavedContracts = new javax.swing.JTextArea();
- buttonLoadStoredContracts = new javax.swing.JButton();
- labelCQUPestGUI = new javax.swing.JLabel();
- labelStudent = new javax.swing.JLabel();
- buttonExit = new javax.swing.JButton();
- setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
- setTitle("CQUPestGUI");
- labelContractDate.setText("Contract Date");
- labelContractorName.setText("Contractor");
- labelJobLocation.setText("Job Location");
- labelJobDetails.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
- labelJobDetails.setText("New Job Details");
- labelCustomerName.setText("Customer Name");
- checkboxTermiteControlFill.setText("Termite Control Fill");
- checkboxGeneralPestInspection.setText("General Pest Inspection");
- checkboxGeneralPestInspection.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- checkboxGeneralPestInspectionActionPerformed(evt);
- }
- });
- checkboxTermiteInspection.setText("Termite Inspection");
- panelTotalCharges.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Total Charges", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11))); // NOI18N
- txtTotalCharges.setEditable(false);
- txtTotalCharges.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
- txtTotalCharges.setText("Total Charges");
- txtTotalCharges.setFocusable(false);
- txtTotalCharges.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- txtTotalChargesActionPerformed(evt);
- }
- });
- buttonCalculate.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
- buttonCalculate.setText("Calculate");
- buttonCalculate.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- buttonCalculateActionPerformed(evt);
- }
- });
- javax.swing.GroupLayout panelTotalChargesLayout = new javax.swing.GroupLayout(panelTotalCharges);
- panelTotalCharges.setLayout(panelTotalChargesLayout);
- panelTotalChargesLayout.setHorizontalGroup(
- panelTotalChargesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelTotalChargesLayout.createSequentialGroup()
- .addContainerGap()
- .addComponent(buttonCalculate, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(30, 30, 30)
- .addComponent(txtTotalCharges, javax.swing.GroupLayout.DEFAULT_SIZE, 178, Short.MAX_VALUE)
- .addContainerGap())
- );
- panelTotalChargesLayout.setVerticalGroup(
- panelTotalChargesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelTotalChargesLayout.createSequentialGroup()
- .addContainerGap()
- .addGroup(panelTotalChargesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(buttonCalculate, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(txtTotalCharges, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(24, 24, 24))
- );
- formatxtJobLocation.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- formatxtJobLocationActionPerformed(evt);
- }
- });
- spinnerRooms.setModel(new javax.swing.SpinnerNumberModel(0, 0, null, 1));
- jLabel1.setText("Number of Rooms");
- jLabel2.setText("Number of Halls");
- spinnerHalls.setModel(new javax.swing.SpinnerNumberModel(0, 0, null, 1));
- buttonSave.setText("Save and Reset");
- buttonSave.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- buttonSaveActionPerformed(evt);
- }
- });
- buttonReset.setText("Reset");
- buttonReset.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- buttonResetActionPerformed(evt);
- }
- });
- jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
- jLabel3.setText("Contract");
- tableStoredContracts.setModel(new javax.swing.table.DefaultTableModel(
- new Object [][] {
- },
- new String [] {
- "ID", "Date", "Location", "Customer", "Job Type(s)", "Contractor", "Total Charges"
- }
- ) {
- boolean[] canEdit = new boolean [] {
- false, false, false, false, false, false, false
- };
- public boolean isCellEditable(int rowIndex, int columnIndex) {
- return canEdit [columnIndex];
- }
- });
- tableStoredContracts.getTableHeader().setReorderingAllowed(false);
- scrollStoredContracts.setViewportView(tableStoredContracts);
- combolistChooseContractor.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "John Smith", "Mary Eastman", "Dennis Mitchell", "Susan Hobbs" }));
- combolistChooseContractor.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- combolistChooseContractorActionPerformed(evt);
- }
- });
- javax.swing.GroupLayout panelNewContractLayout = new javax.swing.GroupLayout(panelNewContract);
- panelNewContract.setLayout(panelNewContractLayout);
- panelNewContractLayout.setHorizontalGroup(
- panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelNewContractLayout.createSequentialGroup()
- .addComponent(buttonSave, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(buttonReset)
- .addGap(16, 16, 16))
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addContainerGap()
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(checkboxGeneralPestInspection)
- .addComponent(checkboxTermiteInspection)
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel1)
- .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addComponent(spinnerHalls)
- .addGap(2, 2, 2))
- .addComponent(spinnerRooms, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addComponent(labelJobDetails)
- .addComponent(checkboxTermiteControlFill))
- .addGap(34, 34, 34)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(labelContractDate)
- .addComponent(labelContractorName)
- .addComponent(labelCustomerName))
- .addGap(18, 18, 18)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addComponent(combolistChooseContractor, 0, 176, Short.MAX_VALUE)
- .addComponent(txtCustomerName))
- .addComponent(txtContractDate, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 117, Short.MAX_VALUE)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel3)
- .addComponent(scrollStoredContracts, javax.swing.GroupLayout.PREFERRED_SIZE, 603, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addComponent(labelJobLocation)
- .addGap(0, 0, Short.MAX_VALUE))
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addComponent(formatxtJobLocation, javax.swing.GroupLayout.PREFERRED_SIZE, 343, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(panelTotalCharges, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(221, 221, 221)))))
- .addContainerGap())
- );
- panelNewContractLayout.setVerticalGroup(
- panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelNewContractLayout.createSequentialGroup()
- .addComponent(labelJobDetails)
- .addGap(8, 8, 8)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(labelContractDate)
- .addComponent(txtContractDate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(28, 28, 28)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(combolistChooseContractor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(labelContractorName))
- .addGap(31, 31, 31)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(labelCustomerName)
- .addComponent(txtCustomerName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addComponent(checkboxGeneralPestInspection)
- .addGap(10, 10, 10)
- .addComponent(checkboxTermiteInspection)
- .addGap(18, 18, 18)
- .addComponent(checkboxTermiteControlFill)
- .addGap(33, 33, 33)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel1)
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addComponent(spinnerRooms, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addComponent(spinnerHalls, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(jLabel2))))))
- .addGap(37, 37, 37)
- .addComponent(labelJobLocation)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(formatxtJobLocation, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(52, 52, 52))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelNewContractLayout.createSequentialGroup()
- .addComponent(jLabel3)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(scrollStoredContracts, javax.swing.GroupLayout.PREFERRED_SIZE, 224, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addGap(153, 153, 153)
- .addGroup(panelNewContractLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(buttonSave)
- .addComponent(buttonReset)))
- .addGroup(panelNewContractLayout.createSequentialGroup()
- .addGap(30, 30, 30)
- .addComponent(panelTotalCharges, javax.swing.GroupLayout.PREFERRED_SIZE, 94, javax.swing.GroupLayout.PREFERRED_SIZE)))))
- .addGap(32, 32, 32))
- );
- javax.swing.GroupLayout panelNewContractBackgroundLayout = new javax.swing.GroupLayout(panelNewContractBackground);
- panelNewContractBackground.setLayout(panelNewContractBackgroundLayout);
- panelNewContractBackgroundLayout.setHorizontalGroup(
- panelNewContractBackgroundLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(panelNewContract, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- );
- panelNewContractBackgroundLayout.setVerticalGroup(
- panelNewContractBackgroundLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelNewContractBackgroundLayout.createSequentialGroup()
- .addComponent(panelNewContract, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(0, 0, Short.MAX_VALUE))
- );
- tabMain.addTab("Enter Details", panelNewContractBackground);
- buttonSearchContractors.setText("Search By Contractor");
- buttonSearchContractors.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- buttonSearchContractorsActionPerformed(evt);
- }
- });
- combolistContractors.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "John Smith", "Mary Eastman", "Dennis Mitchell", "Susan Hobbs" }));
- combolistContractors.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- combolistContractorsActionPerformed(evt);
- }
- });
- buttonClearSearchResults.setText("Clear Results");
- buttonClearSearchResults.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- buttonClearSearchResultsActionPerformed(evt);
- }
- });
- jLabel4.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
- jLabel4.setText("Search Results for Contractor");
- jLabel5.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
- jLabel5.setText("Saved Contracts");
- txtAreaSearchResults.setEditable(false);
- txtAreaSearchResults.setColumns(20);
- txtAreaSearchResults.setRows(5);
- jScrollPane5.setViewportView(txtAreaSearchResults);
- txtAreaSavedContracts.setEditable(false);
- txtAreaSavedContracts.setColumns(20);
- txtAreaSavedContracts.setRows(5);
- txtAreaSavedContracts.setFocusable(false);
- jScrollPane4.setViewportView(txtAreaSavedContracts);
- buttonLoadStoredContracts.setText("Load");
- buttonLoadStoredContracts.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- buttonLoadStoredContractsActionPerformed(evt);
- }
- });
- javax.swing.GroupLayout panelStoredContractsLayout = new javax.swing.GroupLayout(panelStoredContracts);
- panelStoredContracts.setLayout(panelStoredContractsLayout);
- panelStoredContractsLayout.setHorizontalGroup(
- panelStoredContractsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelStoredContractsLayout.createSequentialGroup()
- .addContainerGap()
- .addGroup(panelStoredContractsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jScrollPane4)
- .addGroup(panelStoredContractsLayout.createSequentialGroup()
- .addGroup(panelStoredContractsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelStoredContractsLayout.createSequentialGroup()
- .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(buttonLoadStoredContracts))
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelStoredContractsLayout.createSequentialGroup()
- .addComponent(combolistContractors, javax.swing.GroupLayout.PREFERRED_SIZE, 176, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(buttonSearchContractors, javax.swing.GroupLayout.PREFERRED_SIZE, 147, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(buttonClearSearchResults, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, panelStoredContractsLayout.createSequentialGroup()
- .addComponent(jLabel4)
- .addGap(18, 18, 18)
- .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 1014, javax.swing.GroupLayout.PREFERRED_SIZE)))
- .addGap(0, 0, Short.MAX_VALUE)))
- .addContainerGap())
- );
- panelStoredContractsLayout.setVerticalGroup(
- panelStoredContractsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelStoredContractsLayout.createSequentialGroup()
- .addContainerGap()
- .addGroup(panelStoredContractsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel5)
- .addComponent(buttonLoadStoredContracts))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 260, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(panelStoredContractsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(combolistContractors, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(buttonSearchContractors, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(buttonClearSearchResults, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(panelStoredContractsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jLabel4)
- .addComponent(jScrollPane5, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(19, 19, 19))
- );
- tabMain.addTab("Saved Contracts", panelStoredContracts);
- labelCQUPestGUI.setFont(new java.awt.Font("Monotype Corsiva", 0, 36)); // NOI18N
- labelCQUPestGUI.setText("CQUPestGUI");
- labelStudent.setText("Laura West- Student Number: 10033418");
- labelStudent.setFocusable(false);
- javax.swing.GroupLayout panelMainGUILayout = new javax.swing.GroupLayout(panelMainGUI);
- panelMainGUI.setLayout(panelMainGUILayout);
- panelMainGUILayout.setHorizontalGroup(
- panelMainGUILayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelMainGUILayout.createSequentialGroup()
- .addContainerGap()
- .addGroup(panelMainGUILayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(panelMainGUILayout.createSequentialGroup()
- .addComponent(labelCQUPestGUI, javax.swing.GroupLayout.PREFERRED_SIZE, 370, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(labelStudent, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addComponent(tabMain))
- .addContainerGap())
- );
- panelMainGUILayout.setVerticalGroup(
- panelMainGUILayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelMainGUILayout.createSequentialGroup()
- .addGroup(panelMainGUILayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(labelStudent)
- .addComponent(labelCQUPestGUI))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(tabMain, javax.swing.GroupLayout.PREFERRED_SIZE, 517, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- );
- buttonExit.setText("Exit ");
- buttonExit.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- buttonExitActionPerformed(evt);
- }
- });
- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
- getContentPane().setLayout(layout);
- layout.setHorizontalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(panelMainGUI, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addGap(0, 0, Short.MAX_VALUE)
- .addComponent(buttonExit)))
- .addContainerGap())
- );
- layout.setVerticalGroup(
- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(panelMainGUI, javax.swing.GroupLayout.PREFERRED_SIZE, 571, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(buttonExit)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- );
- setSize(new java.awt.Dimension(1269, 657));
- setLocationRelativeTo(null);
- }// </editor-fold>
- private void buttonExitActionPerformed(java.awt.event.ActionEvent evt) {
- System.exit(0);
- }
- private void buttonLoadStoredContractsActionPerformed(java.awt.event.ActionEvent evt) {
- readFile();
- }
- private void buttonClearSearchResultsActionPerformed(java.awt.event.ActionEvent evt) {
- txtAreaSearchResults.setText("");
- }
- private void combolistContractorsActionPerformed(java.awt.event.ActionEvent evt) {
- // TODO add your handling code here:
- }
- private void buttonSearchContractorsActionPerformed(java.awt.event.ActionEvent evt) {
- txtAreaSearchResults.setText(combolistContractors.getSelectedItem().toString());
- }
- private void combolistChooseContractorActionPerformed(java.awt.event.ActionEvent evt) {
- // TODO add your handling code here:
- }
- private void buttonResetActionPerformed(java.awt.event.ActionEvent evt) {
- resetMethod();
- }
- private void buttonSaveActionPerformed(java.awt.event.ActionEvent evt) {
- /*the below method fixes a problem where the jtable
- would not recieve data when the user selected the 'save' button but not the 'calculate' button*/
- if (!buttonCalculate.isSelected())
- {
- calculateTotal();
- }
- int contractId =(generateNumber());
- // the below ensures that necessary details to save a contract are entered by the user before populating the jtables or saving data to file
- if (!txtContractDate.getText().trim().equals("") || !formatxtJobLocation.getText().trim().equals("") || !txtCustomerName.getText().trim().equals(""))
- {
- //populates the jtable with the user input
- DefaultTableModel contractDetails = (DefaultTableModel) tableStoredContracts.getModel();
- contractDetails.addRow(new Object[]{contractId, txtContractDate.getText(), formatxtJobLocation.getText(), txtCustomerName.getText(), jobTypes, combolistChooseContractor.getSelectedItem().toString(), "$" + total});
- ArrayList<String> lst = getTableData(tableStoredContracts);
- writeFile(lst,"Pest.txt");
- }
- else
- {
- JOptionPane.showMessageDialog(null, "To save a contract, please enter all contract details.");
- }
- //ensures that data is not added on to the next row input
- resetMethod();
- }
- private void formatxtJobLocationActionPerformed(java.awt.event.ActionEvent evt) {
- }
- //triggers checkbox calculation and shows total
- private void buttonCalculateActionPerformed(java.awt.event.ActionEvent evt) {
- calculateTotal();
- txtTotalCharges.setText("$" + Double.toString(total));
- }
- private void txtTotalChargesActionPerformed(java.awt.event.ActionEvent evt) {
- // TODO add your handling code here:
- }
- private void checkboxGeneralPestInspectionActionPerformed(java.awt.event.ActionEvent evt) {
- }
- //creates an array to store contract details
- ArrayList <String> getTableData(JTable contractDetails)
- {
- int rowCount = contractDetails.getModel().getRowCount();
- int columnCount = contractDetails.getModel().getColumnCount();
- String [][] storedContracts = new String[rowCount][columnCount];
- for (int row = 0; row < rowCount; row++)
- {
- for (int column = 0; column < columnCount; column++)
- { storedContracts [row][column] = contractDetails.getModel().getValueAt(row, column).toString();
- }
- }
- ArrayList<String> listContractors = new ArrayList<>();
- StringBuilder s = new StringBuilder(200);
- for( int i = 0; i<rowCount; i++){
- for(int j =0; j<columnCount; j++){
- s.append(storedContracts [i][j]);
- s.append("-");
- }
- listContractors.add(s.toString());
- }
- return listContractors;
- }
- protected void writeFile(ArrayList<String> listContractors, String toFile )
- {
- writeTxt(listContractors, toFile);
- }
- protected void writeTxt(ArrayList<String> listContractors, String toFile)
- {
- try
- {
- FileOutputStream fileOut = new FileOutputStream(toFile, false);
- BufferedWriter bufferedW = new BufferedWriter(new OutputStreamWriter(fileOut));
- bufferedW.append("");
- bufferedW.append('\n');
- for (int row = 0; row < listContractors.size(); row++)
- {
- bufferedW.append(listContractors.get(row).toString());
- bufferedW.append('\n');
- }
- bufferedW.close();
- }
- catch (Exception e)
- {
- e.getStackTrace();
- }
- }
- //clears the fields
- protected void resetMethod(){
- checkboxGeneralPestInspection.setSelected(false); checkboxTermiteInspection.setSelected(false); checkboxTermiteControlFill.setSelected(false);
- txtContractDate.setText(""); txtCustomerName.setText(""); formatxtJobLocation.setText("");
- spinnerRooms.setValue(0); spinnerHalls.setValue(0);
- txtTotalCharges.setText(""); total = 0;
- jobTypes = "";
- }
- protected void readFile(ArrayList<String> listContractors)
- {
- BufferedReader reader = null;
- //ArrayList showContract = new ArrayList();
- try
- {
- reader = new BufferedReader(new FileReader("Pest.txt"));
- String nLine = reader.readLine();
- while (nLine != null)
- {
- listContractors.add(nLine);
- String [] rows = nLine.split("-");
- for (String s: rows)
- {
- System.out.println(s);
- }
- nLine = reader.readLine();
- }
- }
- catch (FileNotFoundException e)
- {
- e.printStackTrace();
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- displayStoredContracts(listContractors);
- }
- protected void displayStoredContracts(ArrayList<String> listContractors)
- {
- for (int i = 0; i < listContractors.size(); i++)
- {
- txtAreaSavedContracts.append((String) listContractors.get(i));
- }
- }
- /*initializes 'total' and 'jobTypes' with calculated
- results from the checkboxes*/
- private void calculateTotal (){
- total = 0;
- jobTypes = "";
- if (checkboxGeneralPestInspection.isSelected())
- {
- total = GENERALPEST;
- jobTypes = "General Pest Inspection: Price $190 ";
- }
- if (checkboxTermiteInspection.isSelected()&& !checkboxTermiteControlFill.isSelected())
- {
- total = total + INSPECTIONPRICE;
- jobTypes = jobTypes + "Termite Inspection: Price $200 ";
- }
- else if (checkboxTermiteInspection.isSelected() && checkboxTermiteControlFill.isSelected())
- {
- total = total + INSPECTIONPRICE + CONTROLFILL;
- jobTypes = jobTypes + "Termite Inspection: Price $200 " + "Control Fill: Price $350 ";
- }
- int r = (Integer) spinnerRooms.getValue();
- total= total + r * 10;
- int h = (Integer) spinnerHalls.getValue();
- total = total + h * 15;
- }
- private void txtAreaSearchResultsActionPerformed(java.awt.event.ActionEvent evt){
- }
- /* I left most of the
- automatically generated code alone because
- the amount of research required to manipulate
- it correctly without causing serious compilation
- or runtime errors was prohibative to getting the
- assignment completed on time
- */
- public static void main(String args[]) {
- 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(CQUPestGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (InstantiationException ex) {
- java.util.logging.Logger.getLogger(CQUPestGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (IllegalAccessException ex) {
- java.util.logging.Logger.getLogger(CQUPestGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- } catch (javax.swing.UnsupportedLookAndFeelException ex) {
- java.util.logging.Logger.getLogger(CQUPestGUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- }
- java.awt.EventQueue.invokeLater(() -> {
- new CQUPestGUI().setVisible(true);
- });
- }
- // Variables declaration - do not modify
- private javax.swing.JButton buttonCalculate;
- private javax.swing.JButton buttonClearSearchResults;
- private javax.swing.JButton buttonExit;
- protected javax.swing.JButton buttonLoadStoredContracts;
- private javax.swing.JButton buttonReset;
- private javax.swing.JButton buttonSave;
- private javax.swing.JButton buttonSearchContractors;
- private javax.swing.JCheckBox checkboxGeneralPestInspection;
- private javax.swing.JCheckBox checkboxTermiteControlFill;
- private javax.swing.JCheckBox checkboxTermiteInspection;
- private javax.swing.JComboBox<String> combolistChooseContractor;
- private javax.swing.JComboBox<String> combolistContractors;
- private javax.swing.JFormattedTextField formatxtJobLocation;
- private javax.swing.JLabel jLabel1;
- private javax.swing.JLabel jLabel2;
- private javax.swing.JLabel jLabel3;
- private javax.swing.JLabel jLabel4;
- private javax.swing.JLabel jLabel5;
- private javax.swing.JScrollPane jScrollPane4;
- private javax.swing.JScrollPane jScrollPane5;
- private javax.swing.JLabel labelCQUPestGUI;
- private javax.swing.JLabel labelContractDate;
- private javax.swing.JLabel labelContractorName;
- private javax.swing.JLabel labelCustomerName;
- private javax.swing.JLabel labelJobDetails;
- private javax.swing.JLabel labelJobLocation;
- private javax.swing.JLabel labelStudent;
- private javax.swing.JPanel panelMainGUI;
- private javax.swing.JPanel panelNewContract;
- private javax.swing.JPanel panelNewContractBackground;
- private javax.swing.JPanel panelStoredContracts;
- private javax.swing.JPanel panelTotalCharges;
- private javax.swing.JScrollPane scrollStoredContracts;
- private javax.swing.JSpinner spinnerHalls;
- private javax.swing.JSpinner spinnerRooms;
- private javax.swing.JTabbedPane tabMain;
- private javax.swing.JTable tableStoredContracts;
- private javax.swing.JTextArea txtAreaSavedContracts;
- private javax.swing.JTextArea txtAreaSearchResults;
- private javax.swing.JTextField txtContractDate;
- private javax.swing.JTextField txtCustomerName;
- private javax.swing.JTextField txtTotalCharges;
- // End of variables declaration
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement