/MyInvenotry/src/presentation/classes/FileNewPanel.java
https://bitbucket.org/spider_lock/my-invenotry · Java · 274 lines · 223 code · 23 blank · 28 comment · 24 complexity · cf2f1720420cd77c59cddfdba1647782 MD5 · raw file
- /*
- * FileNewPanel will provide the user with a way of adding new equipment to the
- * database.
- *
- * @author Slobodan Milanko
- * @version 1.0
- *
- */
- package presentation.classes;
- // imports
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import javax.swing.JButton;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JPanel;
- import javax.swing.JPopupMenu;
- import javax.swing.JTextField;
- import business.classes.EquipmentSvcMgr;
- import domain.classes.Equipment;
- import domain.classes.Logger;
- import presentation.exceptions.RequiredFieldsAreEmptyException;
- public class FileNewPanel extends JPanel {
-
- // private componenets
- private JPanel panel;
- private JButton addButton;
- private JButton cancelButton;
- private JLabel title;
- private JLabel typeLabel;
- private JLabel makeLabel;
- private JLabel modelLabel;
- private JLabel yearLabel;
- private JLabel serialLabel;
- private JLabel descriptionLabel;
- private JTextField typeField;
- private JTextField makeField;
- private JTextField modelField;
- private JTextField yearField;
- private JTextField descriptionField;
- private JTextField serialField;
-
-
- public FileNewPanel() {
-
- // add to panel
- panel = new JPanel();
-
- title = new JLabel("Add New Equipment");
- typeLabel = new JLabel("Type");
- makeLabel = new JLabel("Make");
- modelLabel = new JLabel("Model");
- yearLabel = new JLabel("Year");
- serialLabel = new JLabel("Serial");
- descriptionLabel = new JLabel("Description");
- typeField = new JTextField(20);
- makeField = new JTextField(20);
- modelField = new JTextField(20);
- yearField = new JTextField(20);
- serialField = new JTextField(20);
- descriptionField = new JTextField(20);
- addButton = new JButton("Add");
- cancelButton = new JButton("Cancel");
-
- panel = new JPanel();
-
- // we will do a manual position of components
- panel.setLayout(null);
- panel.setSize(700, 450);
-
- // setting label positions
- title.setBounds(310,0,200, 25);
- typeLabel.setBounds(150, 50, 100, 25);
- makeLabel.setBounds(150, 90, 200, 25);
- modelLabel.setBounds(150, 130, 200, 25);
- yearLabel.setBounds(150, 170, 200, 25);
- serialLabel.setBounds(150, 210, 200, 25);
- descriptionLabel.setBounds(150, 250, 200, 25);
-
- // setting Field positions
- typeField.setBounds(320, 50, 450, 25);
- makeField.setBounds(320, 90, 450, 25);
- modelField.setBounds(320, 130, 450, 25);
- yearField.setBounds(320, 170, 450, 25);
- serialField.setBounds(320, 210, 450, 25);
- descriptionField.setBounds(320, 250, 450, 25);
-
- // setting button positions
- addButton.setBounds(500, 330, 100, 30);
- cancelButton.setBounds(670, 330, 100, 30);
- // add to panel
- panel.add(title);
- panel.add(typeLabel);
- panel.add(typeField);
- panel.add(makeLabel);
- panel.add(makeField);
- panel.add(modelLabel);
- panel.add(modelField);
- panel.add(yearLabel);
- panel.add(yearField);
- panel.add(serialLabel);
- panel.add(serialField);
- panel.add(descriptionLabel);
- panel.add(descriptionField);
- panel.add(addButton);
- panel.add(cancelButton);
-
- // internal listeners
- addButton.addActionListener(new ActionListener(){
- @Override
- public void actionPerformed(ActionEvent addClicked) {
- // grab field data and place it in new eQ instance
- try {
- // if any field empty, throw new field empty exception
- if(
- (makeField.getText().isEmpty() || makeField.getText()== null)||
- (typeField.getText().isEmpty() || typeField.getText() == null)||
- (modelField.getText().isEmpty() || modelField.getText() == null)||
- (yearField.getText().isEmpty() || yearField.getText() == null)||
- (serialField.getText().isEmpty() || serialField.getText() == null)
- ) {
- throw new RequiredFieldsAreEmptyException();
- }
- else {
- // create a new equipment object
- Equipment newEquipment = new Equipment();
- // set its properties
- newEquipment.setMakeOfEq(makeField.getText());
- newEquipment.setTypeOfEq(typeField.getText());
- newEquipment.setModelOfEq(modelField.getText());
- newEquipment.setYearOfEq(Integer.parseInt(yearField.getText()));
- newEquipment.setSerialNumberOfEq(serialField.getText());
- newEquipment.setDescriptionOfEq(descriptionField.getText());
-
- // validate input
- boolean validateQ = newEquipment.validate();
-
- // if valid, call appropriate managers
- if(validateQ == true) {
- EquipmentSvcMgr addEq = new EquipmentSvcMgr();
- boolean wasAdded = addEq.addEquipment(newEquipment);
- if (wasAdded == true) {
- JOptionPane.showMessageDialog(null, "Equipment added successfully!");
- // reset all fields
- makeField.setText("");
- typeField.setText("");
- modelField.setText("");
- yearField.setText("");
- serialField.setText("");
- descriptionField.setText("");
- }
- else {
- JOptionPane.showMessageDialog(null, "Unable to add new Equipment.");
- }
- } // else tell the user something was entered in wrong. consult the help file
- else {
- JOptionPane.showMessageDialog(null, "Something was entered incorrectly. Please try again.");
- }
- }
- }
- catch (RequiredFieldsAreEmptyException emptyField) {
- JOptionPane.showMessageDialog(null, emptyField.getMessage());
- }
- catch (NumberFormatException cannotParse) {
- JOptionPane.showMessageDialog(null, "Incorrect value entered for year");
- }
- catch (Exception e) {
- Logger logger = new Logger(e.getMessage() + " FileNewPanel addButton");
- JOptionPane.showMessageDialog(null, "Unknow error occoured :: " + e.getMessage() + " FileNewPanel.add");
- }
-
- }});
-
- // listeners
- cancelButton.addActionListener(new ActionListener(){
- @Override
- public void actionPerformed(ActionEvent cancelClicked){
- // remove the panel from HomeFrame
- HomeFrame.removePanel();
- }});
-
- // create a popupmenu listener for all fields copy / paste / delete / cut
- typeField.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseReleased(MouseEvent rightClick) {
- if(rightClick.isPopupTrigger()) {
- typeField.requestFocus();
- final RightClickPopupNew pasteMenu = new RightClickPopupNew(typeField);
- JPopupMenu menu = pasteMenu.getMenu();
- menu.show(rightClick.getComponent(), rightClick.getX(), rightClick.getY());
- }
- }
- });
- typeField.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseReleased(MouseEvent rightClick) {
- if(rightClick.isPopupTrigger()) {
- typeField.requestFocus();
- final RightClickPopupNew pasteMenu = new RightClickPopupNew(typeField);
- JPopupMenu menu = pasteMenu.getMenu();
- menu.show(rightClick.getComponent(), rightClick.getX(), rightClick.getY());
- }
- }
- });
- makeField.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseReleased(MouseEvent rightClick) {
- if(rightClick.isPopupTrigger()) {
- makeField.requestFocus();
- final RightClickPopupNew pasteMenu = new RightClickPopupNew(makeField);
- JPopupMenu menu = pasteMenu.getMenu();
- menu.show(rightClick.getComponent(), rightClick.getX(), rightClick.getY());
- }
- }
- });
- modelField.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseReleased(MouseEvent rightClick) {
- if(rightClick.isPopupTrigger()) {
- modelField.requestFocus();
- final RightClickPopupNew pasteMenu = new RightClickPopupNew(modelField);
- JPopupMenu menu = pasteMenu.getMenu();
- menu.show(rightClick.getComponent(), rightClick.getX(), rightClick.getY());
- }
- }
- });
- yearField.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseReleased(MouseEvent rightClick) {
- if(rightClick.isPopupTrigger()) {
- yearField.requestFocus();
- final RightClickPopupNew pasteMenu = new RightClickPopupNew(yearField);
- JPopupMenu menu = pasteMenu.getMenu();
- menu.show(rightClick.getComponent(), rightClick.getX(), rightClick.getY());
- }
- }
- });
- serialField.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseReleased(MouseEvent rightClick) {
- if(rightClick.isPopupTrigger()) {
- serialField.requestFocus();
- final RightClickPopupNew pasteMenu = new RightClickPopupNew(serialField);
- JPopupMenu menu = pasteMenu.getMenu();
- menu.show(rightClick.getComponent(), rightClick.getX(), rightClick.getY());
- }
- }
- });
- descriptionField.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseReleased(MouseEvent rightClick) {
- if(rightClick.isPopupTrigger()) {
- descriptionField.requestFocus();
- final RightClickPopupNew pasteMenu = new RightClickPopupNew(descriptionField);
- JPopupMenu menu = pasteMenu.getMenu();
- menu.show(rightClick.getComponent(), rightClick.getX(), rightClick.getY());
- }
- }
- });
-
- }
- // getter for panel
- public JPanel getPanel() {
- return panel;
- }
- }