ppp.ui.Receptionist1.java Source code

Java tutorial

Introduction

Here is the source code for ppp.ui.Receptionist1.java

Source

/*
 * Created by JFormDesigner on Tue Oct 21 12:08:39 NZDT 2014
 */

package ppp.ui;

import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import com.jgoodies.forms.factories.*;
import com.jgoodies.forms.layout.*;
import ppp.model.*;

/**
 * @author David Park
 */
public class Receptionist1 extends JFrame {

    private User currentEntry;
    private RegisteringUserClassToDB personQueries;
    private List<User> results;
    private int numberOfEntriesUser = 0;
    private int currentEntryIndexUser;

    private Book currentEntry1;
    private RegisteringUserClassToDB bookQueries;
    private List<Book> results1;
    private int numberOfEntriesBook = 0;
    private int currentEntryIndexBook;
    private static int activeUserID;
    private String activeUserEmail;
    private String userTypeName;

    Report report = new Report();
    private int logoutCounter = 0;

    public Receptionist1(int activeUserID, String activeUserEmail, String userTypeName) {
        initComponents();

        personQueries = new RegisteringUserClassToDB();
        bookQueries = new RegisteringUserClassToDB();
        this.activeUserID = activeUserID;
        this.activeUserEmail = activeUserEmail;
        this.userTypeName = userTypeName;
        label2.setText("Welcome :" + activeUserEmail);
        label3.setText("User Type: " + userTypeName);
    }

    // logout button closes current window and re-opens the login window
    private void logOutbuttonActionPerformed(ActionEvent e) {
        // TODO add your code here
        personQueries.close();
        bookQueries.close();
        Login newLogin = new Login();

        LoginTime ex = new LoginTime(activeUserID);
        try {
            ex.setLogOUTTime();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }

        this.dispose();

        newLogin.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        newLogin.setSize(700, 600);
        newLogin.setVisible(true);

        this.logoutCounter = 1;
    }

    //adds user to db
    private void addUserButtonActionPerformed(ActionEvent e) {
        // TODO add your code here

        String sql = "SELECT COUNT(*) as userNumber FROM USERS WHERE EMAIL = ?";
        int userNumber;

        try {
            Connection conn = DBConnection.getConnection();
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1, userEntryEmailText.getText());

            ResultSet rs = ps.executeQuery();
            rs.next();
            userNumber = rs.getInt("userNumber");
            System.out.print(userNumber);
            // checks for duplicate entries
            if (userNumber == 0) {

                int results = personQueries.addUser(userEntryfNameText.getText(), userEntrylNameText.getText(),
                        String.valueOf(passwordField1.getPassword()), userEntryEmailText.getText(),
                        userEntryAdressText.getText(), userEntryPhoneText.getText(), "Customer");

                JOptionPane.showMessageDialog(this, "New User (" + userEntryEmailText.getText() + ") added!",
                        "Person added", JOptionPane.PLAIN_MESSAGE);

            } else {
                JOptionPane.showMessageDialog(this,
                        "Email " + userEntryEmailText.getText() + " is already used. Try different Email!", "Error",
                        JOptionPane.ERROR_MESSAGE);
            }

        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

    //gets input to search book by title
    private void searchTitleButtonActionPerformed(ActionEvent e) {
        // TODO add your code here
        results1 = bookQueries.getBookByTitle(searchTitleField.getText());
        numberOfEntriesBook = results1.size();

        if (numberOfEntriesBook != 0) {
            currentEntryIndexBook = 0;
            currentEntry1 = results1.get(currentEntryIndexBook);
            bookEntryTitleText.setText(currentEntry1.getTitle());
            bookEntryAuthorText.setText(currentEntry1.getAuthor());
            bookEntryISBNText.setText(currentEntry1.getIsbn());
            bookEntryPublicText.setText(currentEntry1.getPublication());
            bookEntryGenreCom.setSelectedIndex(currentEntry1.getGenreID() - 1);
            bookEntrySubjectCom.setSelectedIndex(currentEntry1.getSubjectId() - 2);
            bookEntryPdateText.setText(String.valueOf(currentEntry1.getPurchaseDate()));
            bookEntryShopnameText.setText(currentEntry1.getShopName());
            bookEntryPriceText.setText(String.valueOf(currentEntry1.getPrice()));
            bookEntryDetailText.setText(currentEntry1.getDetail());
            bookEntryStatusCom.setSelectedItem(currentEntry1.getStatus());
            currentBookIndex.setText("" + (currentEntryIndexBook + 1));
            nextBookButton.setEnabled(true);
            previousBookButton.setEnabled(true);
        } else {
            JOptionPane.showMessageDialog(this, "Sorry, No Book has been searched by using keyword", "No Book",
                    JOptionPane.PLAIN_MESSAGE);

        }
    }

    //gets input to search author by keyword
    private void searchAuthorButtonActionPerformed(ActionEvent e) {
        // TODO add your code here
        results1 = bookQueries.getBookByAuthor(searchAuthorField.getText());
        numberOfEntriesBook = results1.size();

        if (numberOfEntriesBook != 0) {
            currentEntryIndexBook = 0;
            currentEntry1 = results1.get(currentEntryIndexBook);
            bookEntryTitleText.setText(currentEntry1.getTitle());
            bookEntryAuthorText.setText(currentEntry1.getAuthor());
            bookEntryISBNText.setText(currentEntry1.getIsbn());
            bookEntryPublicText.setText(currentEntry1.getPublication());
            bookEntryGenreCom.setSelectedIndex(currentEntry1.getGenreID() - 1);
            bookEntrySubjectCom.setSelectedIndex(currentEntry1.getSubjectId() - 2);
            bookEntryPdateText.setText(String.valueOf(currentEntry1.getPurchaseDate()));
            bookEntryShopnameText.setText(currentEntry1.getShopName());
            bookEntryPriceText.setText(String.valueOf(currentEntry1.getPrice()));
            bookEntryDetailText.setText(currentEntry1.getDetail());
            bookEntryStatusCom.setSelectedItem(currentEntry1.getStatus());
            currentBookIndex.setText("" + (currentEntryIndexBook + 1));
            nextBookButton.setEnabled(true);
            previousBookButton.setEnabled(true);
        } else {
            JOptionPane.showMessageDialog(this, "Sorry, No Book has been searched by using keyword", "No Book",
                    JOptionPane.PLAIN_MESSAGE);
        }
    }

    //displays next book
    private void previousBookButtonActionPerformed(ActionEvent e) {
        // TODO add your code here
        currentEntryIndexBook--;

        if (currentEntryIndexBook < 0)
            currentEntryIndexBook = numberOfEntriesBook - 1;

        currentBookIndex.setText("" + (currentEntryIndexBook + 1));
        currentBookIndexActionPerformed(e);
    }

    //gets input for current book
    private void currentBookIndexActionPerformed(ActionEvent e) {
        // TODO add your code here
        currentEntryIndexBook = (Integer.parseInt(currentBookIndex.getText()) - 1);

        if (numberOfEntriesBook != 0 && currentEntryIndexBook < numberOfEntriesBook) {
            currentEntry1 = results1.get(currentEntryIndexBook);
            bookEntryTitleText.setText(currentEntry1.getTitle());
            bookEntryAuthorText.setText(currentEntry1.getAuthor());
            bookEntryISBNText.setText(currentEntry1.getIsbn());
            bookEntryPublicText.setText(currentEntry1.getPublication());
            bookEntryGenreCom.setSelectedIndex(currentEntry1.getGenreID() - 1);
            bookEntrySubjectCom.setSelectedIndex(currentEntry1.getSubjectId() - 2);
            bookEntryPdateText.setText(String.valueOf(currentEntry1.getPurchaseDate()));
            bookEntryShopnameText.setText(currentEntry1.getShopName());
            bookEntryPriceText.setText(String.valueOf(currentEntry1.getPrice()));
            bookEntryDetailText.setText(currentEntry1.getDetail());
            bookEntryStatusCom.setSelectedItem(currentEntry1.getStatus());
            maxIndexBook.setText("" + numberOfEntriesBook);
            currentBookIndex.setText("" + (currentEntryIndexBook + 1));
        }

    }

    //displays next book
    private void nextBookButtonActionPerformed(ActionEvent e) {
        // TODO add your code here
        currentEntryIndexBook++;

        if (currentEntryIndexBook >= numberOfEntriesBook)
            currentEntryIndexBook = 0;

        currentBookIndex.setText("" + (currentEntryIndexBook + 1));
        currentBookIndexActionPerformed(e);
    }

    //generates lending reports
    private void generateLendingButtonActionPerformed(ActionEvent e) {
        // TODO add your code here
        String userInput = (String) lendingCombo.getSelectedItem();
        if (userInput == "Daily") {
            report.DailyBookLendingReport();
        } else if (userInput == "Monthly") {
            report.MonthlyBookLendingReport();
        } else if (userInput == "Annually") {
            report.AnnuallyBookLendingReport();
        }
    }

    //generates fine reports
    private void generateFineButtonActionPerformed(ActionEvent e) {
        // TODO add your code here
        String userInput = (String) findCombo.getSelectedItem();
        if (userInput == "Book lost") {
            report.BookLostReport();
        } else if (userInput == "Late return") {
            report.LateReturnFineReport();
        } else if (userInput == "User Fine") {
            report.UserFineReport();
        }
    }

    //generates purchase reports
    private void generatePurchaseButtonActionPerformed(ActionEvent e) {
        // TODO add your code here
        String userInput = (String) bookPurchasedCom.getSelectedItem();
        if (userInput == "By Shop") {
            report.BookPurchasedReportByShop();
        } else if (userInput == "By Price") {
            report.BookPurchaseReporyByPrice();
        } else if (userInput == "By Year(2014)") {
            report.BookPurchaseReportByYear14();
        } else if (userInput == "By Year(2013)") {
            report.BookPurchaseReportByYear13();
        }
    }

    //closes current window and opens login window
    private void thisWindowClosed(WindowEvent e) {
        // TODO add your code here
        personQueries.close();
        bookQueries.close();
        LoginTime ex = new LoginTime(activeUserID);
        try {
            ex.setLogOUTTime();
        } catch (SQLException e1) {
            e1.printStackTrace();
        }

        if (logoutCounter == 0) {
            Login newLogin = new Login();
            newLogin.setSize(700, 600);
            newLogin.setVisible(true);
        }
    }

    //returns book and generates time returned
    private void returnBookButtonActionPerformed(ActionEvent e) {
        // TODO add your code here

        DateFormat df = new SimpleDateFormat("yy/MM/dd HH:mm:ss");
        Date loginTime = new Date();
        String formatReturnTime = df.format(loginTime.getTime());

        int results1 = bookQueries.returnBook(formatReturnTime, currentEntry1.getBookID()

        );

        bookQueries.updateStatusBookforRerurn(currentEntry1.getBookID());

        if (results1 == 1) {
            JOptionPane.showMessageDialog(this, currentEntry1.getTitle() + " has been returned!!", "Return ",
                    JOptionPane.PLAIN_MESSAGE);
        } else {
            JOptionPane.showMessageDialog(this, "Book is not Borrowed!", "Error", JOptionPane.PLAIN_MESSAGE);
        }
        emptyBookTextFieldActionPerformed();

    }

    public void emptyBookTextFieldActionPerformed() {
    }

    private void initComponents() {
        // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
        // Generated using JFormDesigner Evaluation license - David Park
        bannerPanel = new JPanel();
        logOutbutton = new JButton();
        bannerLabel = new JLabel();
        label2 = new JLabel();
        label3 = new JLabel();
        mainPanel = new JTabbedPane();
        userTapPanel = new JPanel();
        userEntryPanel = new JPanel();
        userEntryfName = new JLabel();
        userEntryfNameText = new JTextField();
        userEntrylname = new JLabel();
        userEntrylNameText = new JTextField();
        userEntryPwd = new JLabel();
        passwordField1 = new JPasswordField();
        userEntryPhone = new JLabel();
        userEntryPhoneText = new JTextField();
        userEntryEmai = new JLabel();
        userEntryEmailText = new JTextField();
        userEntryAdress = new JLabel();
        userEntryAdressText = new JTextField();
        addUserButton = new JButton();
        bookTapPane = new JPanel();
        searchBookPanel = new JPanel();
        searchTitle = new JLabel();
        searchTitleField = new JTextField();
        searchTitleButton = new JButton();
        searchAuthor = new JLabel();
        searchAuthorField = new JTextField();
        searchAuthorButton = new JButton();
        bookEntryPanel = new JPanel();
        bookEntryTitle = new JLabel();
        bookEntryTitleText = new JTextField();
        bookEntryAuthoer = new JLabel();
        bookEntryAuthorText = new JTextField();
        bookEntryISBN = new JLabel();
        bookEntryISBNText = new JTextField();
        bookEntryPublic = new JLabel();
        bookEntryPublicText = new JTextField();
        bookEntryGenre = new JLabel();
        bookEntryGenreCom = new JComboBox();
        bookEntrySubject = new JLabel();
        bookEntrySubjectCom = new JComboBox();
        bookEntryPdate = new JLabel();
        bookEntryPdateText = new JTextField();
        bookEntryShopname = new JLabel();
        bookEntryShopnameText = new JTextField();
        bookEntryPrice = new JLabel();
        bookEntryPriceText = new JTextField();
        bookEntryDetail = new JLabel();
        bookEntryDetailText = new JTextField();
        bookEntryStatus = new JLabel();
        bookEntryStatusCom = new JComboBox();
        navigationBookPane = new JPanel();
        previousBookButton = new JButton();
        currentBookIndex = new JTextField();
        bookOflabel = new JLabel();
        maxIndexBook = new JTextField();
        nextBookButton = new JButton();
        returnBookButton = new JButton();
        rePortPanel = new JPanel();
        reportPanel = new JPanel();
        bookLendingLabel = new JLabel();
        fineReportLabel = new JLabel();
        lendingCombo = new JComboBox();
        findCombo = new JComboBox();
        generateLendingButton = new JButton();
        generateFineButton = new JButton();
        bookPurchasedLabel = new JLabel();
        bookPurchasedCom = new JComboBox();
        generatePurchaseButton = new JButton();

        //======== this ========
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosed(WindowEvent e) {
                thisWindowClosed(e);
            }
        });
        Container contentPane = getContentPane();
        contentPane.setLayout(null);

        //======== bannerPanel ========
        {
            bannerPanel.setBorder(new EmptyBorder(12, 12, 12, 12));

            bannerPanel.setLayout(null);

            //---- logOutbutton ----
            logOutbutton.setText("LogOut");
            logOutbutton.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    logOutbuttonActionPerformed(e);
                }
            });
            bannerPanel.add(logOutbutton);
            logOutbutton.setBounds(new Rectangle(new Point(180, 40), logOutbutton.getPreferredSize()));

            //---- bannerLabel ----
            bannerLabel.setText("Welcome to Maero Library Management System!");
            bannerLabel.setFont(new Font("Lucida Grande", Font.ITALIC, 20));
            bannerPanel.add(bannerLabel);
            bannerLabel.setBounds(300, 5, 475, 65);

            //---- label2 ----
            label2.setText("text");
            bannerPanel.add(label2);
            label2.setBounds(10, 10, 200, 30);

            //---- label3 ----
            label3.setText("text");
            bannerPanel.add(label3);
            label3.setBounds(10, 45, 200, 25);

            { // compute preferred size
                Dimension preferredSize = new Dimension();
                for (int i = 0; i < bannerPanel.getComponentCount(); i++) {
                    Rectangle bounds = bannerPanel.getComponent(i).getBounds();
                    preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                    preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
                }
                Insets insets = bannerPanel.getInsets();
                preferredSize.width += insets.right;
                preferredSize.height += insets.bottom;
                bannerPanel.setMinimumSize(preferredSize);
                bannerPanel.setPreferredSize(preferredSize);
            }
        }
        contentPane.add(bannerPanel);
        bannerPanel.setBounds(65, 10, 785, 75);

        //======== mainPanel ========
        {

            //======== userTapPanel ========
            {
                userTapPanel.setLayout(null);

                //======== userEntryPanel ========
                {
                    userEntryPanel.setBorder(new TitledBorder("Register Customer"));
                    userEntryPanel.setLayout(new GridLayout(6, 4));

                    //---- userEntryfName ----
                    userEntryfName.setText("FirstName");
                    userEntryfName.setHorizontalAlignment(SwingConstants.CENTER);
                    userEntryPanel.add(userEntryfName);
                    userEntryPanel.add(userEntryfNameText);

                    //---- userEntrylname ----
                    userEntrylname.setText("LasrName");
                    userEntrylname.setHorizontalAlignment(SwingConstants.CENTER);
                    userEntryPanel.add(userEntrylname);
                    userEntryPanel.add(userEntrylNameText);

                    //---- userEntryPwd ----
                    userEntryPwd.setText("Password");
                    userEntryPwd.setHorizontalAlignment(SwingConstants.CENTER);
                    userEntryPanel.add(userEntryPwd);
                    userEntryPanel.add(passwordField1);

                    //---- userEntryPhone ----
                    userEntryPhone.setText("PhoneNumber");
                    userEntryPhone.setHorizontalAlignment(SwingConstants.CENTER);
                    userEntryPanel.add(userEntryPhone);
                    userEntryPanel.add(userEntryPhoneText);

                    //---- userEntryEmai ----
                    userEntryEmai.setText("Email");
                    userEntryEmai.setHorizontalAlignment(SwingConstants.CENTER);
                    userEntryPanel.add(userEntryEmai);
                    userEntryPanel.add(userEntryEmailText);

                    //---- userEntryAdress ----
                    userEntryAdress.setText("Adress");
                    userEntryAdress.setHorizontalAlignment(SwingConstants.CENTER);
                    userEntryPanel.add(userEntryAdress);
                    userEntryPanel.add(userEntryAdressText);
                }
                userTapPanel.add(userEntryPanel);
                userEntryPanel.setBounds(35, 80, 785, 265);

                //---- addUserButton ----
                addUserButton.setText("Add User");
                addUserButton.addActionListener(new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        addUserButtonActionPerformed(e);
                    }
                });
                userTapPanel.add(addUserButton);
                addUserButton.setBounds(375, 385, 140, 30);
            }
            mainPanel.addTab("Register User", userTapPanel);

            //======== bookTapPane ========
            {
                bookTapPane.setLayout(null);

                //======== searchBookPanel ========
                {
                    searchBookPanel.setBorder(
                            new CompoundBorder(new TitledBorder("Search Book by Keyword"), Borders.DLU2));
                    searchBookPanel.setLayout(new GridLayout(2, 3));

                    //---- searchTitle ----
                    searchTitle.setText("Title");
                    searchTitle.setHorizontalAlignment(SwingConstants.CENTER);
                    searchBookPanel.add(searchTitle);

                    //---- searchTitleField ----
                    searchTitleField.setMaximumSize(new Dimension(120, 50));
                    searchBookPanel.add(searchTitleField);

                    //---- searchTitleButton ----
                    searchTitleButton.setText("Search");
                    searchTitleButton.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            searchTitleButtonActionPerformed(e);
                        }
                    });
                    searchBookPanel.add(searchTitleButton);

                    //---- searchAuthor ----
                    searchAuthor.setText("Author");
                    searchAuthor.setHorizontalAlignment(SwingConstants.CENTER);
                    searchBookPanel.add(searchAuthor);
                    searchBookPanel.add(searchAuthorField);

                    //---- searchAuthorButton ----
                    searchAuthorButton.setText("Search");
                    searchAuthorButton.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            searchAuthorButtonActionPerformed(e);
                        }
                    });
                    searchBookPanel.add(searchAuthorButton);
                }
                bookTapPane.add(searchBookPanel);
                searchBookPanel.setBounds(40, 15, 765, 140);

                //======== bookEntryPanel ========
                {
                    bookEntryPanel.setBorder(new CompoundBorder(new TitledBorder("Entry"), Borders.DLU2));
                    bookEntryPanel.setLayout(new GridLayout(6, 4, 2, 3));

                    //---- bookEntryTitle ----
                    bookEntryTitle.setText("Title");
                    bookEntryTitle.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryTitle);

                    //---- bookEntryTitleText ----
                    bookEntryTitleText.setEditable(false);
                    bookEntryPanel.add(bookEntryTitleText);

                    //---- bookEntryAuthoer ----
                    bookEntryAuthoer.setText("Author");
                    bookEntryAuthoer.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryAuthoer);

                    //---- bookEntryAuthorText ----
                    bookEntryAuthorText.setEditable(false);
                    bookEntryPanel.add(bookEntryAuthorText);

                    //---- bookEntryISBN ----
                    bookEntryISBN.setText("ISBN");
                    bookEntryISBN.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryISBN);

                    //---- bookEntryISBNText ----
                    bookEntryISBNText.setEditable(false);
                    bookEntryPanel.add(bookEntryISBNText);

                    //---- bookEntryPublic ----
                    bookEntryPublic.setText("Publication");
                    bookEntryPublic.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryPublic);

                    //---- bookEntryPublicText ----
                    bookEntryPublicText.setEditable(false);
                    bookEntryPanel.add(bookEntryPublicText);

                    //---- bookEntryGenre ----
                    bookEntryGenre.setText("Genre");
                    bookEntryGenre.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryGenre);

                    //---- bookEntryGenreCom ----
                    bookEntryGenreCom.setModel(new DefaultComboBoxModel(new String[] { "Fiction", "Non-Fiction" }));
                    bookEntryPanel.add(bookEntryGenreCom);

                    //---- bookEntrySubject ----
                    bookEntrySubject.setText("Subject");
                    bookEntrySubject.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntrySubject);

                    //---- bookEntrySubjectCom ----
                    bookEntrySubjectCom.setModel(new DefaultComboBoxModel(new String[] { "Classic", "Comedy",
                            "Tragedy", "Mythology", "Poetry", "Crime", "Thriller", "Horror", "Mystery",
                            "Historical_Fiction", "Fantasy", "Urban-Fantasy", "Science_Fiction", "Military",
                            "Western", "Romance", "Biography", "Auto-Biography", "Essay", "Narrative", "Speech",
                            "Textbook", "Reference", "Religious_Text" }));
                    bookEntryPanel.add(bookEntrySubjectCom);

                    //---- bookEntryPdate ----
                    bookEntryPdate.setText("Purchase Date");
                    bookEntryPdate.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryPdate);

                    //---- bookEntryPdateText ----
                    bookEntryPdateText.setEditable(false);
                    bookEntryPanel.add(bookEntryPdateText);

                    //---- bookEntryShopname ----
                    bookEntryShopname.setText("Shop Name");
                    bookEntryShopname.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryShopname);

                    //---- bookEntryShopnameText ----
                    bookEntryShopnameText.setEditable(false);
                    bookEntryPanel.add(bookEntryShopnameText);

                    //---- bookEntryPrice ----
                    bookEntryPrice.setText("Price");
                    bookEntryPrice.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryPrice);

                    //---- bookEntryPriceText ----
                    bookEntryPriceText.setEditable(false);
                    bookEntryPanel.add(bookEntryPriceText);

                    //---- bookEntryDetail ----
                    bookEntryDetail.setText("Detail");
                    bookEntryDetail.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryDetail);

                    //---- bookEntryDetailText ----
                    bookEntryDetailText.setEditable(false);
                    bookEntryPanel.add(bookEntryDetailText);

                    //---- bookEntryStatus ----
                    bookEntryStatus.setText("Status");
                    bookEntryStatus.setHorizontalAlignment(SwingConstants.CENTER);
                    bookEntryPanel.add(bookEntryStatus);

                    //---- bookEntryStatusCom ----
                    bookEntryStatusCom.setModel(new DefaultComboBoxModel(
                            new String[] { "AVAILABLE", "UNAVAILABLE", "Lost", "Damaged" }));
                    bookEntryPanel.add(bookEntryStatusCom);
                }
                bookTapPane.add(bookEntryPanel);
                bookEntryPanel.setBounds(40, 165, 770, 270);

                //======== navigationBookPane ========
                {
                    navigationBookPane.setLayout(new FlowLayout());

                    //---- previousBookButton ----
                    previousBookButton.setText("Previous");
                    previousBookButton.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            previousBookButtonActionPerformed(e);
                        }
                    });
                    navigationBookPane.add(previousBookButton);

                    //---- currentBookIndex ----
                    currentBookIndex.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            currentBookIndexActionPerformed(e);
                        }
                    });
                    navigationBookPane.add(currentBookIndex);

                    //---- bookOflabel ----
                    bookOflabel.setText("of");
                    navigationBookPane.add(bookOflabel);
                    navigationBookPane.add(maxIndexBook);

                    //---- nextBookButton ----
                    nextBookButton.setText("Next");
                    nextBookButton.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            nextBookButtonActionPerformed(e);
                        }
                    });
                    navigationBookPane.add(nextBookButton);
                }
                bookTapPane.add(navigationBookPane);
                navigationBookPane.setBounds(270, 435, 325, 40);

                //---- returnBookButton ----
                returnBookButton.setText("Return a Book");
                returnBookButton.addActionListener(new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        returnBookButtonActionPerformed(e);
                    }
                });
                bookTapPane.add(returnBookButton);
                returnBookButton.setBounds(370, 480, 150, 30);

                { // compute preferred size
                    Dimension preferredSize = new Dimension();
                    for (int i = 0; i < bookTapPane.getComponentCount(); i++) {
                        Rectangle bounds = bookTapPane.getComponent(i).getBounds();
                        preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                        preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
                    }
                    Insets insets = bookTapPane.getInsets();
                    preferredSize.width += insets.right;
                    preferredSize.height += insets.bottom;
                    bookTapPane.setMinimumSize(preferredSize);
                    bookTapPane.setPreferredSize(preferredSize);
                }
            }
            mainPanel.addTab("Return Book", bookTapPane);

            //======== rePortPanel ========
            {
                rePortPanel.setLayout(new GridBagLayout());
                ((GridBagLayout) rePortPanel.getLayout()).columnWidths = new int[] { 0, 0 };
                ((GridBagLayout) rePortPanel.getLayout()).rowHeights = new int[] { 0, 0 };
                ((GridBagLayout) rePortPanel.getLayout()).columnWeights = new double[] { 1.0, 1.0E-4 };
                ((GridBagLayout) rePortPanel.getLayout()).rowWeights = new double[] { 1.0, 1.0E-4 };

                //======== reportPanel ========
                {
                    reportPanel.setLayout(null);

                    //---- bookLendingLabel ----
                    bookLendingLabel.setText("Book Lending Report");
                    reportPanel.add(bookLendingLabel);
                    bookLendingLabel
                            .setBounds(new Rectangle(new Point(170, 190), bookLendingLabel.getPreferredSize()));

                    //---- fineReportLabel ----
                    fineReportLabel.setText("Fine Report");
                    reportPanel.add(fineReportLabel);
                    fineReportLabel.setBounds(170, 240, 150, fineReportLabel.getPreferredSize().height);

                    //---- lendingCombo ----
                    lendingCombo
                            .setModel(new DefaultComboBoxModel(new String[] { "Daily", "Monthly", "Annually" }));
                    reportPanel.add(lendingCombo);
                    lendingCombo.setBounds(330, 185, 125, lendingCombo.getPreferredSize().height);

                    //---- findCombo ----
                    findCombo.setModel(
                            new DefaultComboBoxModel(new String[] { "Book lost", "Late return", "User Fine" }));
                    reportPanel.add(findCombo);
                    findCombo.setBounds(330, 235, 125, findCombo.getPreferredSize().height);

                    //---- generateLendingButton ----
                    generateLendingButton.setText("Generate Report");
                    generateLendingButton.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            generateLendingButtonActionPerformed(e);
                        }
                    });
                    reportPanel.add(generateLendingButton);
                    generateLendingButton.setBounds(
                            new Rectangle(new Point(480, 180), generateLendingButton.getPreferredSize()));

                    //---- generateFineButton ----
                    generateFineButton.setText("Generate Report");
                    generateFineButton.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            generateFineButtonActionPerformed(e);
                        }
                    });
                    reportPanel.add(generateFineButton);
                    generateFineButton
                            .setBounds(new Rectangle(new Point(480, 230), generateFineButton.getPreferredSize()));

                    //---- bookPurchasedLabel ----
                    bookPurchasedLabel.setText("Book Purchased Report");
                    reportPanel.add(bookPurchasedLabel);
                    bookPurchasedLabel
                            .setBounds(new Rectangle(new Point(170, 290), bookPurchasedLabel.getPreferredSize()));

                    //---- bookPurchasedCom ----
                    bookPurchasedCom.setModel(new DefaultComboBoxModel(
                            new String[] { "By Shop", "By Price", "By Year(2014)", "By Year(2013)" }));
                    reportPanel.add(bookPurchasedCom);
                    bookPurchasedCom.setBounds(330, 285, 125, bookPurchasedCom.getPreferredSize().height);

                    //---- generatePurchaseButton ----
                    generatePurchaseButton.setText("Generate Report");
                    generatePurchaseButton.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                            generatePurchaseButtonActionPerformed(e);
                        }
                    });
                    reportPanel.add(generatePurchaseButton);
                    generatePurchaseButton.setBounds(
                            new Rectangle(new Point(480, 280), generatePurchaseButton.getPreferredSize()));

                    { // compute preferred size
                        Dimension preferredSize = new Dimension();
                        for (int i = 0; i < reportPanel.getComponentCount(); i++) {
                            Rectangle bounds = reportPanel.getComponent(i).getBounds();
                            preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                            preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
                        }
                        Insets insets = reportPanel.getInsets();
                        preferredSize.width += insets.right;
                        preferredSize.height += insets.bottom;
                        reportPanel.setMinimumSize(preferredSize);
                        reportPanel.setPreferredSize(preferredSize);
                    }
                }
                rePortPanel.add(reportPanel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER,
                        GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
            }
            mainPanel.addTab("Report Generation", rePortPanel);
        }
        contentPane.add(mainPanel);
        mainPanel.setBounds(35, 95, 850, 550);

        { // compute preferred size
            Dimension preferredSize = new Dimension();
            for (int i = 0; i < contentPane.getComponentCount(); i++) {
                Rectangle bounds = contentPane.getComponent(i).getBounds();
                preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
            }
            Insets insets = contentPane.getInsets();
            preferredSize.width += insets.right;
            preferredSize.height += insets.bottom;
            contentPane.setMinimumSize(preferredSize);
            contentPane.setPreferredSize(preferredSize);
        }
        pack();
        setLocationRelativeTo(getOwner());
        // JFormDesigner - End of component initialization  //GEN-END:initComponents
    }

    // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
    // Generated using JFormDesigner Evaluation license - David Park
    private JPanel bannerPanel;
    private JButton logOutbutton;
    private JLabel bannerLabel;
    private JLabel label2;
    private JLabel label3;
    private JTabbedPane mainPanel;
    private JPanel userTapPanel;
    private JPanel userEntryPanel;
    private JLabel userEntryfName;
    private JTextField userEntryfNameText;
    private JLabel userEntrylname;
    private JTextField userEntrylNameText;
    private JLabel userEntryPwd;
    private JPasswordField passwordField1;
    private JLabel userEntryPhone;
    private JTextField userEntryPhoneText;
    private JLabel userEntryEmai;
    private JTextField userEntryEmailText;
    private JLabel userEntryAdress;
    private JTextField userEntryAdressText;
    private JButton addUserButton;
    private JPanel bookTapPane;
    private JPanel searchBookPanel;
    private JLabel searchTitle;
    private JTextField searchTitleField;
    private JButton searchTitleButton;
    private JLabel searchAuthor;
    private JTextField searchAuthorField;
    private JButton searchAuthorButton;
    private JPanel bookEntryPanel;
    private JLabel bookEntryTitle;
    private JTextField bookEntryTitleText;
    private JLabel bookEntryAuthoer;
    private JTextField bookEntryAuthorText;
    private JLabel bookEntryISBN;
    private JTextField bookEntryISBNText;
    private JLabel bookEntryPublic;
    private JTextField bookEntryPublicText;
    private JLabel bookEntryGenre;
    private JComboBox bookEntryGenreCom;
    private JLabel bookEntrySubject;
    private JComboBox bookEntrySubjectCom;
    private JLabel bookEntryPdate;
    private JTextField bookEntryPdateText;
    private JLabel bookEntryShopname;
    private JTextField bookEntryShopnameText;
    private JLabel bookEntryPrice;
    private JTextField bookEntryPriceText;
    private JLabel bookEntryDetail;
    private JTextField bookEntryDetailText;
    private JLabel bookEntryStatus;
    private JComboBox bookEntryStatusCom;
    private JPanel navigationBookPane;
    private JButton previousBookButton;
    private JTextField currentBookIndex;
    private JLabel bookOflabel;
    private JTextField maxIndexBook;
    private JButton nextBookButton;
    private JButton returnBookButton;
    private JPanel rePortPanel;
    private JPanel reportPanel;
    private JLabel bookLendingLabel;
    private JLabel fineReportLabel;
    private JComboBox lendingCombo;
    private JComboBox findCombo;
    private JButton generateLendingButton;
    private JButton generateFineButton;
    private JLabel bookPurchasedLabel;
    private JComboBox bookPurchasedCom;
    private JButton generatePurchaseButton;
    // JFormDesigner - End of variables declaration  //GEN-END:variables
}