// Title : ANB Networked Hotel Management System
// Version : 1.7
// Copyright : Copyright (c)1999-2000
// Author : Adrian Banks
// Company : ANB
// Description : A Networked Hotel Management System Used For Room Bookings
// And Table Reservations.
//
// Mod's : Arrays added for easier component adding.
// : Date and time show in status bar and update continuously.
//
import java.io.*;
import java.awt.*;
import java.net.*;
import java.util.*;
import java.awt.event.*;
public class Hotel extends Frame implements ActionListener, AdjustmentListener
{
//#################################### start of allocation of global user interface items #########################
Label[] myLabels = { /*customerPanel*/
new Label("Customer No. :",Label.LEFT),
new Label("Surname :",Label.LEFT),
new Label("Other Name(s) :",Label.LEFT),
new Label("Address :",Label.LEFT),
new Label("Post Code :",Label.LEFT),
new Label("Telephone No. :",Label.LEFT),
new Label("Booking(s) :",Label.LEFT),
/*roomBooking Panel*/
new Label("Booking No. :",Label.LEFT),
new Label("Room No. :",Label.LEFT),
new Label("No. Of People :",Label.LEFT),
new Label("Arrival Date :",Label.LEFT),
new Label("Departure Date :",Label.LEFT),
new Label("Standard :",Label.LEFT),
new Label("Discount :",Label.LEFT),
new Label("Notes :",Label.LEFT),
/*tableBookingPanel*/
new Label("Booking No. :",Label.LEFT),
new Label("Table No. :",Label.LEFT),
new Label("No. Of People :",Label.LEFT),
new Label("Date :",Label.LEFT),
new Label("Time :",Label.LEFT),
new Label("Notes :",Label.LEFT),
/*billPanel*/
new Label("Booking No. :",Label.LEFT),
new Label("Bill Items :",Label.LEFT),
new Label("VAT : �",Label.LEFT),
new Label("TOTAL : �",Label.LEFT),
/*roomPanel*/
new Label("Room No. :",Label.LEFT),
new Label("Current Status :",Label.LEFT),
new Label("Booking No.(s) :",Label.LEFT),
new Label("Standard :",Label.LEFT),
new Label("Room Size :",Label.LEFT),
new Label("Bed Type :",Label.LEFT),
new Label("Nightly Rate : �",Label.LEFT),
/*tablePanel*/
new Label("Table No. :",Label.LEFT),
new Label("Current Status :",Label.LEFT),
new Label("Booking No.(s) :",Label.LEFT)
};
static Socket t;
static String server;
static BufferedReader in;
//Ports for input and output
static final int INPORT = 5050;
static final int OUTPORT = 5000;
//Objcet Numbers
static int nextCNum;
static int nextRNum;
static int nextTNum;
static int nextRBNum;
static int nextTBNum;
static boolean newoneC = false;
static boolean newoneR = false;
static boolean newoneT = false;
static boolean newoneRB = false;
static boolean newoneTB = false;
static ObjectInputStream ObIn;
static ObjectOutputStream ObOut;
static TodaysDate td;
CardLayout cardLayout;
Panel contentPanel, customerPanel, roomBookingPanel, tableBookingPanel, roomPanel, tablePanel, billPanel, managerPanel;
Button button1, button2, button3, button4, button5, button6;
static Label statusLabel1, statusLabel2;
boolean cupdate, rbupdate, tbupdate, rupdate, tupdate;
Dialog about;
TextField custText1, custText2, custText3, custText4, custText5;
TextField roomBookText1, roomBookText2, roomBookText3, roomBookText4, roomBookText5, roomBookText6, roomBookText7, roomBookText8;
TextField tableBookText1, tableBookText2, tableBookText3, tableBookText4, tableBookText5;
TextField billText1, billText2, billText3;
TextField roomText1, roomText2;
TextField tableText1;
TextArea custArea1, custArea2;
TextArea roomBookArea1, tableBookArea1;
TextArea billArea1;
TextArea roomArea1;
TextArea tableArea1;
Scrollbar roomBookScroll1, roomBookScroll2, roomBookScroll3, roomBookScroll4, roomBookScroll5, roomBookScroll6;
Scrollbar tableBookScroll1, tableBookScroll2, tableBookScroll3;
Button custButt1, custButt2;
Button roomBookButt1, roomBookButt2;
Button tableBookButt1, tableBookButt2;
Button billButt1, billButt2;
Button roomButt1, roomButt2;
Button tableButt1, tableButt2;
Button OKButton;
Choice roomBookMenu1, roomBookMenu2, roomBookMenu3;
Choice tableBookMenu1, tableBookMenu2;
Choice roomMenu1, roomMenu2, roomMenu3;
CheckboxGroup roomCheckGroup, tableCheckGroup;
Checkbox roomBookCheck1;
Checkbox roomCheckNull, roomCheck1, roomCheck2, roomCheck3, roomCheck4;
Checkbox tableCheckNull, tableCheck1, tableCheck2;
//#################################### end of allocation of global user interface items #########################
//Create the menu bar and the menu bar items
MenuBar menuBar1 = new MenuBar();
Menu menu1 = new Menu();
Menu menu2 = new Menu();
Menu menu3 = new Menu();
Menu menu4 = new Menu();
Menu menu5 = new Menu();
Menu menu6 = new Menu();
MenuItem menuItem1 = new MenuItem();
MenuItem menuItem2 = new MenuItem();
MenuItem menuItem3 = new MenuItem();
MenuItem menuItem4 = new MenuItem();
MenuItem menuItem5 = new MenuItem();
MenuItem menuItem6 = new MenuItem();
MenuItem menuItem7 = new MenuItem();
MenuItem menuItem8 = new MenuItem();
MenuItem menuItem9 = new MenuItem();
MenuItem menuItem10 = new MenuItem();
MenuItem menuItem11 = new MenuItem();
public Hotel()
{
//############################## start of basic layout ###############################
// Set up the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screenSize.width - 640) / 2, (screenSize.height - 480) / 2);
setTitle(" ANB Networked Hotel Management System (�1999-2000)");
setResizable(false);
setBackground(Color.lightGray);
//Stop the window from being maximised
addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent evt) {
setSize(640,480);
Dimension scrnSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((scrnSize.width - 640) / 2, (scrnSize.height - 480) / 2);}});
//Add a menu bar
setMenuBar(menuBar1);
menu1.setLabel("File");
menu2.setLabel("New");
menu3.setLabel("Booking");
menu4.setLabel("Restaurant");
menu5.setLabel("Manager");
menu6.setLabel("About");
menuItem1.setLabel("Back-Up Data Files");
menuItem2.setLabel("-");
menuItem3.setLabel("Exit");
menuItem4.setLabel("Room");
menuItem5.setLabel("Table");
menuItem6.setLabel("-");
menuItem7.setLabel("Customer");
menuItem8.setLabel("Room");
menuItem9.setLabel("Table");
menuItem10.setLabel("About ANBHMS....");
menuItem11.setLabel("Reset All Forms");
menuBar1.add(menu1);
menuBar1.add(menu2);
menuBar1.add(menu4);
menuBar1.add(menu5);
menuBar1.add(menu5);
menuBar1.add(menu6);
menu1.add(menuItem11);
menu1.add(menuItem1);
menu1.add(menuItem2);
menu1.add(menuItem3);
menu2.add(menu3);
menu3.add(menuItem4);
menu3.add(menuItem5);
menu2.add(menuItem6);
menu2.add(menuItem7);
menu2.add(menuItem8);
menu2.add(menuItem9);
menu6.add(menuItem10);
//Add action listeners to the menu items
menuItem1.addActionListener(this);
menuItem3.addActionListener(this);
menuItem4.addActionListener(this);
menuItem5.addActionListener(this);
menuItem7.addActionListener(this);
menuItem8.addActionListener(this);
menuItem9.addActionListener(this);
menuItem10.addActionListener(this);
menuItem11.addActionListener(this);
//Create the main panel for the layout
Panel mainPanel = new Panel();
mainPanel.setLayout(null);
add(mainPanel);
//Create three panels - one for the buttons(tabs) at the top, one for
//the content of each button's panel, and the other as a status bar
Panel buttonPanel = new Panel();
buttonPanel.setLayout(null);
contentPanel = new Panel();
Panel statusPanel = new Panel();
statusPanel.setLayout(null);
buttonPanel.setBounds(0,0,639,30);
contentPanel.setBounds(0,30,639,386);
statusPanel.setBounds(0,416,639,15);
mainPanel.add("buttonPanel",buttonPanel);
mainPanel.add("contentPanel",contentPanel);
mainPanel.add("statusPanel",statusPanel);
//Set the content frame to have a CardLayout
cardLayout = new CardLayout(5,5);
contentPanel.setLayout(cardLayout);
//Create six panels to show when the buttons are clicked
customerPanel = new Panel();
roomBookingPanel = new Panel();
tableBookingPanel = new Panel();
billPanel = new Panel();
roomPanel = new Panel();
tablePanel = new Panel();
managerPanel = new Panel();
//Add the panels
contentPanel.add("customerPanel",customerPanel);
contentPanel.add("roomBookingPanel",roomBookingPanel);
contentPanel.add("tableBookingPanel",tableBookingPanel);
contentPanel.add("billPanel",billPanel);
contentPanel.add("roomPanel",roomPanel);
contentPanel.add("tablePanel",tablePanel);
contentPanel.add("managerPanel",managerPanel);
//Change layout manager to null for all six panels
customerPanel.setLayout(null);
roomBookingPanel.setLayout(null);
tableBookingPanel.setLayout(null);
billPanel.setLayout(null);
roomPanel.setLayout(null);
tablePanel.setLayout(null);
managerPanel.setLayout(null);
//Create the buttons
button1 = new Button("Customer");
button2 = new Button("Room Booking");
button3 = new Button("Table Booking");
button4 = new Button("Bill");
button5 = new Button("Room");
button6 = new Button("Table");
//Position the buttons
button1.setBounds(30,2,90,25);
button2.setBounds(126,2,90,25);
button3.setBounds(222,2,90,25);
button4.setBounds(318,2,90,25);
button5.setBounds(414,2,90,25);
button6.setBounds(510,2,90,25);
//Add listeners to the buttons
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
button6.addActionListener(this);
//Add the buttons
buttonPanel.add("customerButton", button1);
buttonPanel.add("roomBookingButton", button2);
buttonPanel.add("tableBookingButton", button3);
buttonPanel.add("billButton", button4);
buttonPanel.add("RoomButton", button5);
buttonPanel.add("TableButton", button6);
//Set customer button to be selected
button1.setBackground(Color.blue);
button1.setForeground(Color.white);
//############################## end of basic layout ###############################
//.setBounds(xpos,ypos,width,height);
//############################## start of labels ###############################
//statusPanel
statusLabel1 = new Label("",Label.LEFT);
statusLabel2 = new Label("ANB Networked Hotel Management System (�1999-2000)",Label.LEFT);
statusLabel1.setBounds(5,0,283,15);
statusLabel2.setBounds(289,0,350,15);
statusPanel.add("statusBarLabel1",statusLabel1);
statusPanel.add("statusBarLabel2",statusLabel2);
//customerPanel
myLabels[0].setBounds(20,12,90,15);
myLabels[1].setBounds(20,57,90,15);
myLabels[2].setBounds(345,57,90,15);
myLabels[3].setBounds(20,102,90,15);
myLabels[4].setBounds(395,137,90,15);
myLabels[5].setBounds(395,187,90,15);
myLabels[6].setBounds(20,262,90,15);
//roomBookingPanel
myLabels[7].setBounds(20,12,90,15);
myLabels[8].setBounds(20,57,90,15);
myLabels[9].setBounds(315,57,90,15);
myLabels[10].setBounds(20,102,90,15);
myLabels[11].setBounds(315,102,90,15);
myLabels[12].setBounds(20,147,90,15);
myLabels[13].setBounds(315,147,90,15);
myLabels[14].setBounds(20,192,90,15);
//tableBookingPanel
myLabels[15].setBounds(20,12,90,15);
myLabels[16].setBounds(20,57,90,15);
myLabels[17].setBounds(20,102,90,15);
myLabels[18].setBounds(20,147,90,15);
myLabels[19].setBounds(20,192,90,15);
myLabels[20].setBounds(20,237,90,15);
//billPanel
myLabels[21].setBounds(20,12,90,15);
myLabels[22].setBounds(20,57,90,15);
myLabels[23].setBounds(20,292,90,15);
myLabels[24].setBounds(20,337,90,15);
//roomPanel
myLabels[25].setBounds(20,12,90,15);
myLabels[26].setBounds(315,12,90,15);
myLabels[27].setBounds(20,102,90,15);
myLabels[28].setBounds(20,262,90,15);
myLabels[29].setBounds(265,262,90,15);
myLabels[30].setBounds(20,307,90,15);
myLabels[31].setBounds(265,307,90,15);
//tablePanel
myLabels[32].setBounds(20,12,90,15);
myLabels[33].setBounds(315,12,90,15);
myLabels[34].setBounds(20,102,90,15);
for(int i = 0; i <= 6; i++)
customerPanel.add("label"+i,myLabels[i]);
for(int i = 7; i <= 14; i++)
roomBookingPanel.add("label"+i,myLabels[i]);
for(int i = 15; i <= 20; i++)
tableBookingPanel.add("label"+i,myLabels[i]);
for(int i = 21; i <= 24; i++)
billPanel.add("label"+i,myLabels[i]);
for(int i = 25; i <= 31; i++)
roomPanel.add("label"+i,myLabels[i]);
for(int i = 32; i <= 34; i++)
tablePanel.add("label"+i,myLabels[i]);
//############################## start of scrollbars ###############################
//roomBookingPanel
roomBookScroll1 = new Scrollbar(Scrollbar.VERTICAL);
roomBookScroll2 = new Scrollbar(Scrollbar.VERTICAL);
roomBookScroll3 = new Scrollbar(Scrollbar.VERTICAL);
roomBookScroll4 = new Scrollbar(Scrollbar.VERTICAL);
roomBookScroll5 = new Scrollbar(Scrollbar.VERTICAL);
roomBookScroll6 = new Scrollbar(Scrollbar.VERTICAL);
//tableBookingPanel
tableBookScroll1 = new Scrollbar(Scrollbar.VERTICAL);
tableBookScroll2 = new Scrollbar(Scrollbar.VERTICAL);
tableBookScroll3 = new Scrollbar(Scrollbar.VERTICAL);
//roomBookingPanel
roomBookScroll1.setMinimum(1);
roomBookScroll2.setMinimum(1);
roomBookScroll3.setMinimum(2000);
roomBookScroll4.setMinimum(1);
roomBookScroll5.setMinimum(1);
roomBookScroll6.setMinimum(2000);
//tableBookingPanel
tableBookScroll1.setMinimum(1);
tableBookScroll2.setMinimum(1);
tableBookScroll3.setMinimum(2000);
//roomBookingPanel
roomBookScroll1.setMaximum(41); //Don't know why???? - a bug???
roomBookScroll2.setMaximum(22);
roomBookScroll3.setMaximum(2100);
roomBookScroll4.setMaximum(41);
roomBookScroll5.setMaximum(22);
roomBookScroll6.setMaximum(2100);
//tableBookingPanel
tableBookScroll1.setMaximum(41);
tableBookScroll2.setMaximum(22);
tableBookScroll3.setMaximum(2100);
//roomBookingPanel
roomBookScroll1.setValue(td.getDate());
roomBookScroll2.setValue(td.getMonth());
roomBookScroll3.setValue(td.getYear());
roomBookScroll4.setValue(td.getDate() + 1);
roomBookScroll5.setValue(td.getMonth());
roomBookScroll6.setValue(td.getYear());
//tableBookingPanel
tableBookScroll1.setValue(td.getDate());
tableBookScroll2.setValue(td.getMonth());
tableBookScroll3.setValue(td.getYear());
//roomBookingPanel
roomBookScroll1.setBounds(140,100,15,20);
roomBookScroll2.setBounds(180,100,15,20);
roomBookScroll3.setBounds(230,100,15,20);
roomBookScroll4.setBounds(445,100,15,20);
roomBookScroll5.setBounds(485,100,15,20);
roomBookScroll6.setBounds(535,100,15,20);
//tableBookingPanel
tableBookScroll1.setBounds(140,145,15,20);
tableBookScroll2.setBounds(180,145,15,20);
tableBookScroll3.setBounds(230,145,15,20);
//roomBookingPanel
roomBookScroll1.addAdjustmentListener(this);
roomBookScroll2.addAdjustmentListener(this);
roomBookScroll3.addAdjustmentListener(this);
roomBookScroll4.addAdjustmentListener(this);
roomBookScroll5.addAdjustmentListener(this);
roomBookScroll6.addAdjustmentListener(this);
//tableBookingPanel
tableBookScroll1.addAdjustmentListener(this);
tableBookScroll2.addAdjustmentListener(this);
tableBookScroll3.addAdjustmentListener(this);
//roomBookingPanel
roomBookingPanel.add("roomBookScroll1",roomBookScroll1);
roomBookingPanel.add("roomBookScroll2",roomBookScroll2);
roomBookingPanel.add("roomBookScroll3",roomBookScroll3);
roomBookingPanel.add("roomBookScroll4",roomBookScroll4);
roomBookingPanel.add("roomBookScroll5",roomBookScroll5);
roomBookingPanel.add("roomBookScroll6",roomBookScroll6);
//tableBookingPanel
tableBookingPanel.add("tableBookScroll1",tableBookScroll1);
tableBookingPanel.add("tableBookScroll2",tableBookScroll2);
tableBookingPanel.add("tableBookScroll3",tableBookScroll3);
//############################## start of buttons ###############################
//customerPanel
custButt1 = new Button("Find Customer");
custButt2 = new Button("Update Details");
//roomBookingPanel
roomBookButt1 = new Button("Find Booking");
roomBookButt2 = new Button("Update Details");
//tableBookingPanel
tableBookButt1 = new Button("Find Booking");
tableBookButt2 = new Button("Update Details");
//billPanel
billButt1 = new Button("Print Bill");
billButt2 = new Button("Payment");
//roomPanel
roomButt1 = new Button("Find Room");
roomButt2 = new Button("Update Details");
//tablePanel
tableButt1 = new Button("Find Table");
tableButt2 = new Button("Update Details");
//customerPanel
custButt1.setBounds(475,295,120,25);
custButt2.setBounds(475,330,120,25);
//roomBookingPanel
roomBookButt1.setBounds(475,295,120,25);
roomBookButt2.setBounds(475,330,120,25);
//tableBookingPanel
tableBookButt1.setBounds(475,295,120,25);
tableBookButt2.setBounds(475,330,120,25);
//billPanel
billButt1.setBounds(475,295,120,25);
billButt2.setBounds(475,330,120,25);
//roomPanel
roomButt1.setBounds(475,295,120,25);
roomButt2.setBounds(475,330,120,25);
//tablePanel
tableButt1.setBounds(475,295,120,25);
tableButt2.setBounds(475,330,120,25);
//customerPanel
custButt1.addActionListener(this);
custButt2.addActionListener(this);
//roomBookingPanel
roomBookButt1.addActionListener(this);
roomBookButt2.addActionListener(this);
//tableBookingPanel
tableBookButt1.addActionListener(this);
tableBookButt2.addActionListener(this);
//billPanel
billButt1.addActionListener(this);
billButt2.addActionListener(this);
//roomPanel
roomButt1.addActionListener(this);
roomButt2.addActionListener(this);
//tablePanel
tableButt1.addActionListener(this);
tableButt2.addActionListener(this);
customerPanel.add("custButt1", custButt1);
customerPanel.add("custButt2", custButt2);
roomBookingPanel.add("roomBookButt1", roomBookButt1);
roomBookingPanel.add("roomBookButt2", roomBookButt2);
tableBookingPanel.add("tableBookButt1", tableBookButt1);
tableBookingPanel.add("tableBookButt2", tableBookButt2);
billPanel.add("billButt1", billButt1);
billPanel.add("billButt2", billButt2);
roomPanel.add("roomButt1", roomButt1);
roomPanel.add("roomButt2", roomButt2);
tablePanel.add("tableButt1", tableButt1);
tablePanel.add("tableButt2", tableButt2);
//############################## start of drop down menus ###############################
//roomBookingPanel
roomBookMenu1 = new Choice();
roomBookMenu2 = new Choice();
roomBookMenu3 = new Choice();
roomBookMenu1.addItem(" ");
roomBookMenu1.addItem(" 1 ");
roomBookMenu1.addItem(" 2 ");
roomBookMenu1.addItem(" 3 ");
roomBookMenu1.addItem(" 4 ");
roomBookMenu2.addItem(" None ");
roomBookMenu2.addItem(" 5 % ");
roomBookMenu2.addItem(" 10 % ");
roomBookMenu2.addItem(" 15 % ");
roomBookMenu2.addItem(" 20 % ");
roomBookMenu3.addItem(" ");
roomBookMenu3.addItem(" Basic ");
roomBookMenu3.addItem(" Luxury ");
roomBookMenu1.setBounds(420,55,50,15);
roomBookMenu2.setBounds(420,145,70,15);
roomBookMenu3.setBounds(115,145,100,15);
roomBookingPanel.add("roomBookMenu1",roomBookMenu1);
roomBookingPanel.add("roomBookMenu2",roomBookMenu2);
roomBookingPanel.add("roomBookMenu3",roomBookMenu3);
//tableBookingPanel
tableBookMenu1 = new Choice();
tableBookMenu2 = new Choice();
tableBookMenu1.addItem(" ");
tableBookMenu1.addItem(" 1 ");
tableBookMenu1.addItem(" 2 ");
tableBookMenu1.addItem(" 3 ");
tableBookMenu1.addItem(" 4 ");
tableBookMenu2.addItem(" ");
tableBookMenu2.addItem(" 11:00 ");
tableBookMenu2.addItem(" 12:00 ");
tableBookMenu2.addItem(" 13:00 ");
tableBookMenu2.addItem(" 17:00 ");
tableBookMenu2.addItem(" 18:00 ");
tableBookMenu2.addItem(" 19:00 ");
tableBookMenu2.addItem(" 20:00 ");
tableBookMenu2.addItem(" 21:00 ");
tableBookMenu2.addItem(" 22:00 ");
tableBookMenu1.setBounds(115,100,50,15);
tableBookMenu2.setBounds(115,190,70,15);
tableBookingPanel.add("tableBookMenu1",tableBookMenu1);
tableBookingPanel.add("tableBookMenu2",tableBookMenu2);
//roomPanel
roomMenu1 = new Choice();
roomMenu2 = new Choice();
roomMenu3 = new Choice();
roomMenu1.addItem(" ");
roomMenu1.addItem(" Basic ");
roomMenu1.addItem(" Luxury ");
roomMenu2.addItem(" ");
roomMenu2.addItem(" 1 ");
roomMenu2.addItem(" 2 ");
roomMenu2.addItem(" 3 ");
roomMenu2.addItem(" 4 ");
roomMenu3.addItem(" ");
roomMenu3.addItem(" Single ");
roomMenu3.addItem(" Double ");
roomMenu1.setBounds(115,260,70,15);
roomMenu2.setBounds(370,260,50,15);
roomMenu3.setBounds(115,305,70,15);
roomPanel.add("roomMenu1",roomMenu1);
roomPanel.add("roomMenu2",roomMenu2);
roomPanel.add("roomMenu3",roomMenu3);
//############################## start of checkboxes ###############################
//roomBookingPanel
roomBookCheck1 = new Checkbox(" Guest Checked In", false);
roomBookCheck1.setBounds(420,12,150,15);
roomBookingPanel.add("roomBookCheck1",roomBookCheck1);
//roomPanel
roomCheckGroup = new CheckboxGroup();
roomCheckNull = new Checkbox(" ",false,roomCheckGroup);
roomCheck1 = new Checkbox(" Vacant",false,roomCheckGroup);
roomCheck2 = new Checkbox(" Occupied",false,roomCheckGroup);
roomCheck3 = new Checkbox(" Cleaning In Progress",false,roomCheckGroup);
roomCheck4 = new Checkbox(" Repair Needed",false,roomCheckGroup);
roomCheck1.setBounds(420,12,150,20);
roomCheck2.setBounds(420,32,150,20);
roomCheck3.setBounds(420,52,150,20);
roomCheck4.setBounds(420,72,150,20);
roomPanel.add("roomCheck1",roomCheck1);
roomPanel.add("roomCheck2",roomCheck2);
roomPanel.add("roomCheck3",roomCheck3);
roomPanel.add("roomCheck4",roomCheck4);
//tablePanel
tableCheckGroup = new CheckboxGroup();
tableCheckNull = new Checkbox(" ",false,tableCheckGroup);
tableCheck1 = new Checkbox(" Vacant",false,tableCheckGroup);
tableCheck2 = new Checkbox(" Occupied",false,tableCheckGroup);
tableCheck1.setBounds(420,12,150,20);
tableCheck2.setBounds(420,32,150,20);
tablePanel.add("tableCheck1",tableCheck1);
tablePanel.add("tableCheck2",tableCheck2);
//############################## start of textfields ###############################
//customerPanel
custText1 = new TextField("",15);
custText2 = new TextField("",15);
custText3 = new TextField("",20);
custText4 = new TextField("",15);
custText5 = new TextField("",15);
//roomBookingPanel
roomBookText1 = new TextField("",15);
roomBookText2 = new TextField("",15);
roomBookText3 = new TextField(roomBookScroll1.getValue() + "",2);
roomBookText4 = new TextField(roomBookScroll2.getValue() + "",2);
roomBookText5 = new TextField(roomBookScroll3.getValue() + "",4);
roomBookText6 = new TextField(roomBookScroll4.getValue() + "",2);
roomBookText7 = new TextField(roomBookScroll5.getValue() + "",2);
roomBookText8 = new TextField(roomBookScroll6.getValue() + "",4);
//tableBookingPanel
tableBookText1 = new TextField("",15);
tableBookText2 = new TextField("",15);
tableBookText3 = new TextField(tableBookScroll1.getValue() + "",2);
tableBookText4 = new TextField(tableBookScroll2.getValue() + "",2);
tableBookText5 = new TextField(tableBookScroll3.getValue() + "",4);
//billPanel
billText1 = new TextField("",15);
billText2 = new TextField("",15);
billText3 = new TextField("",15);
//roomPanel
roomText1 = new TextField("",15);
roomText2 = new TextField("",15);
//tablePanel
tableText1 = new TextField("",15);
//customerPanel
custText1.setBounds(115,10,100,20);
custText2.setBounds(115,55,150,20);
custText3.setBounds(445,55,150,20);
custText4.setBounds(495,135,100,20);
custText5.setBounds(495,185,100,20);
//roomBookingPanel
roomBookText1.setBounds(115,10,100,20);
roomBookText2.setBounds(115,55,100,20);
roomBookText3.setBounds(115,100,25,20);
roomBookText4.setBounds(155,100,25,20);
roomBookText5.setBounds(195,100,35,20);
roomBookText6.setBounds(420,100,25,20);
roomBookText7.setBounds(460,100,25,20);
roomBookText8.setBounds(500,100,35,20);
//tableBookingPanel
tableBookText1.setBounds(115,10,100,20);
tableBookText2.setBounds(115,55,100,20);
tableBookText3.setBounds(115,145,25,20);
tableBookText4.setBounds(155,145,25,20);
tableBookText5.setBounds(195,145,35,20);
//billPanel
billText1.setBounds(115,10,100,20);
billText2.setBounds(115,290,100,20);
billText3.setBounds(115,335,100,20);
//roomPanel
roomText1.setBounds(115,10,100,20);
roomText2.setBounds(370,305,70,20);
//tablePanel
tableText1.setBounds(115,10,100,20);
customerPanel.add("custText1",custText1);
customerPanel.add("custText2",custText2);
customerPanel.add("custText3",custText3);
customerPanel.add("custText4",custText4);
customerPanel.add("custText5",custText5);
roomBookingPanel.add("roomBookText1",roomBookText1);
roomBookingPanel.add("roomBookText2",roomBookText2);
roomBookingPanel.add("roomBookText3",roomBookText3);
roomBookingPanel.add("roomBookText4",roomBookText4);
roomBookingPanel.add("roomBookText5",roomBookText5);
roomBookingPanel.add("roomBookText6",roomBookText6);
roomBookingPanel.add("roomBookText7",roomBookText7);
roomBookingPanel.add("roomBookText8",roomBookText8);
tableBookingPanel.add("tableBookText1",tableBookText1);
tableBookingPanel.add("tableBookText2",tableBookText2);
tableBookingPanel.add("tableBookText3",tableBookText3);
tableBookingPanel.add("tableBookText4",tableBookText4);
tableBookingPanel.add("tableBookText5",tableBookText5);
billPanel.add("billText1",billText1);
billPanel.add("billText2",billText2);
billPanel.add("billText3",billText3);
roomPanel.add("roomText1",roomText1);
roomPanel.add("roomText2",roomText2);
tablePanel.add("tableText1",tableText1);
//############################## start of textareas ###############################
//customerPanel
custArea1 = new TextArea("",7,20,1);
custArea2 = new TextArea("",5,15,1);
//roomBookingPanel
roomBookArea1 = new TextArea("",5,50,1);
//tableBookingPanel
tableBookArea1 = new TextArea("",5,50,1);
//billPanel
billArea1 = new TextArea("",9,75,1);
//roomPanel
roomArea1 = new TextArea("",6,60,1);
//tablePanel
tableArea1 = new TextArea("",9,60,1);
//customerPanel
custArea1.setBounds(115,100,200,130);
custArea2.setBounds(115,260,230,100);
//roomBookingPanel
roomBookArea1.setBounds(115,192,300,100);
//tableBookingPanel
tableBookArea1.setBounds(115,237,300,100);
//billPanel
billArea1.setBounds(115,55,430,210);
//roomPanel
roomArea1.setBounds(115,100,240,140);
//tablePanel
tableArea1.setBounds(115,100,300,250);
customerPanel.add("custArea1",custArea1);
customerPanel.add("custArea2",custArea2);
roomBookingPanel.add("roomBookArea1",roomBookArea1);
tableBookingPanel.add("tableBookArea1",tableBookArea1);
billPanel.add("billArea1",billArea1);
roomPanel.add("roomArea1",roomArea1);
tablePanel.add("tableArea1",tableArea1);
//############################## end of layout of panels ###############################
changeEnabledState(false,"all");
//room number disabled on room booking panel
roomBookText2.setEditable(false);
clearForms();
}
public static void main(String [] args) throws IOException
{
System.out.println("");
System.out.println("**********************************************");
System.out.println("* *");
System.out.println("* ANB Networked Hotel Management System *");
System.out.println("* (Client Application) *");
System.out.println("* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *");
System.out.println("* �1999-2000 Adrian Banks *");
System.out.println("* *");
System.out.println("**********************************************");
//Get today's date
td = new TodaysDate();
td.Print();
Frame f = new Hotel();
//Set up new thread for clock
DateTimeBar dtb = new DateTimeBar(statusLabel1);
dtb.start();
try
{
in = new BufferedReader(new InputStreamReader(System.in));
System.out.println(" Enter IP Of Server To Connect To");
System.out.print(" (Leave Blank For Local Host) :> ");
server = in.readLine();
System.out.println("");
//Connect to server
t = new Socket(server, OUTPORT);
ObOut = new ObjectOutputStream(t.getOutputStream());
ObIn = new ObjectInputStream(t.getInputStream());
System.out.println(" Connected To Server");
System.out.println("");
//Set the next object numbers
try
{
Numbers n = (Numbers) ObIn.readObject();
nextCNum = n.getCNum();
nextRNum = n.getRNum();
nextTNum = n.getTNum();
nextRBNum = n.getRBNum();
nextTBNum = n.getTBNum();
}
catch(ClassNotFoundException cnfe)
{
System.out.println(" ERROR - Cannot Allocate Object Numbers");
System.out.println(" Exiting System..........");
System.exit(0);
}
System.out.println(" Initialising GUI..........");
//possibly get rid of and put option in menu bar to quit and save info..........
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
try
{
t.close();
}
catch (IOException ioe) {}
System.out.println(" Connection To Server Closed");
System.out.println(" Exiting System............");
System.exit(0);
}
});
f.setSize(640, 480);
f.setVisible(true);
System.out.println(" System Running............");
}
catch (UnknownHostException uhe)
{
System.out.println(" ERROR - Cannot Find Server");
System.out.println(" Exiting System..........");
System.exit(0);
}
catch (ConnectException ce)
{
System.out.println(" ERROR - Cannot Find Server");
System.out.println(" Exiting System..........");
System.exit(0);
}
}
public void actionPerformed(ActionEvent e)
{
showMessage("ANB Networked Hotel Management System (�1999-2000)");
//************************ menu items ***************************
//Back-up data files
if (e.getSource() == menuItem1)
{
System.out.println("back-up data files");
}
//Reset All Forms
if (e.getSource() == menuItem11)
{
clearForms();
changeEnabledState(false,"all");
}
//Exit
if (e.getSource() == menuItem3)
{
try
{
t.close();
}
catch (IOException ioe) {}
System.out.println(" Connection To Server Closed");
System.out.println(" Exiting System............");
System.exit(0);
}
//Create a room booking
if (e.getSource() == menuItem4)
{
if (custText2.getText().compareTo("") == 0)
{
showMessage("Please Enter (Or Find) Customer Details First");
}
else
{
changeButton(button2, button1, button3, button4, button5, button6);
changeEnabledState(false,"all");
changeEnabledState(true,"rb");
roomBookText1.setText("RB" + nextRBNum);
roomBookText1.setEditable(false);
cardLayout.show(contentPanel,"roomBookingPanel");
newoneRB = true;
}
}
//Create a table booking
if (e.getSource() == menuItem5)
{
if (custText2.getText().compareTo("") == 0)
{
showMessage("Please Enter (Or Find) Customer Details First");
}
else
{
changeButton(button3, button1, button2, button4, button5, button6);
changeEnabledState(false,"all");
changeEnabledState(true,"tb");
tableBookText1.setText("TB" + nextTBNum);
tableBookText1.setEditable(false);
cardLayout.show(contentPanel,"tableBookingPanel");
newoneTB = true;
}
}
//Create a new customer
if (e.getSource() == menuItem7)
{
changeButton(button1, button2, button3, button4, button5, button6);
changeEnabledState(false,"all");
changeEnabledState(true,"c");
clearForms();
custText1.setText("CN" + nextCNum);
custText1.setEditable(false);
cardLayout.show(contentPanel,"customerPanel");
newoneC = true;
}
//Create a new room
if (e.getSource() == menuItem8)
{
changeButton(button5, button1, button2, button3, button4, button6);
changeEnabledState(false,"all");
changeEnabledState(true,"r");
clearForms();
roomText1.setText(nextRNum + "");
roomText1.setEditable(false);
cardLayout.show(contentPanel,"roomPanel");
newoneR = true;
}
//Create a new table
if (e.getSource() == menuItem9)
{
changeButton(button6, button1, button2, button3, button4, button5);
changeEnabledState(false,"all");
changeEnabledState(true,"t");
clearForms();
tableText1.setText(nextTNum + "");
tableText1.setEditable(false);
cardLayout.show(contentPanel,"tablePanel");
newoneT = true;
}
//About ANBHMS
if (e.getSource() == menuItem10)
{
about = new Dialog(this," About ANBHMS........",true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
about.setLocation((screenSize.width - 320) / 2, (screenSize.height - 194) / 2);
about.setResizable(false);
about.setBackground(Color.lightGray);
//Create the main panel for the layout
Panel mainPanel = new Panel();
mainPanel.setLayout(null);
about.add(mainPanel);
//Create the labels
Label label1 = new Label();
Label label2 = new Label();
Label label3 = new Label();
Label label4 = new Label();
Label label5 = new Label();
label1.setFont(new Font("Dialog", 1, 25));
label2.setFont(new Font("Dialog", 1, 25));
label1.setText("ANB Networked Hotel");
label2.setText("Management System");
label3.setText("Version 1.7");
label4.setText("�1999-2000 Adrian Banks");
label5.setText("(MEng ESE Leicester University)");
//Create an OK button
OKButton = new Button();
OKButton.setLabel("OK");
OKButton.addActionListener(this);
label1.setBounds(30,10,260,30);
label2.setBounds(37,35,246,30);
label3.setBounds(235,75,65,15);
label4.setBounds(30,100,160,15);
label5.setBounds(30,125,180,15);
OKButton.setBounds(230,120,70,30);
mainPanel.add(label1);
mainPanel.add(label2);
mainPanel.add(label3);
mainPanel.add(label4);
mainPanel.add(label5);
mainPanel.add("OKButton",OKButton);
about.setSize(320,194);
about.setVisible(true);
}
if (e.getSource() == OKButton)
{
about.setVisible(false);
}
//************************ panel change buttons ***************************
if (e.getSource() == button1)
{
changeButton(button1, button2, button3, button4, button5, button6);
//changeEnabledState(false,"all");
cardLayout.show(contentPanel,"customerPanel");
}
if (e.getSource() == button2)
{
changeButton(button2, button1, button3, button4, button5, button6);
//changeEnabledState(false,"all");
cardLayout.show(contentPanel,"roomBookingPanel");
}
if (e.getSource() == button3)
{
changeButton(button3, button1, button2, button4, button5, button6);
//changeEnabledState(false,"all");
cardLayout.show(contentPanel,"tableBookingPanel");
}
if (e.getSource() == button4)
{
changeButton(button4, button1, button2, button3, button5, button6);
//changeEnabledState(false,"all");
cardLayout.show(contentPanel,"billPanel");
}
if (e.getSource() == button5)
{
changeButton(button5, button1, button2, button3, button4, button6);
//changeEnabledState(false,"all");
cardLayout.show(contentPanel,"roomPanel");
}
if (e.getSource() == button6)
{
changeButton(button6, button1, button2, button3, button4, button5);
//changeEnabledState(false,"all");
cardLayout.show(contentPanel,"tablePanel");
}
//************************ customer buttons ***************************
//Find Customer
if (e.getSource() == custButt1)
{
newoneC = false;
newoneR = false;
newoneT = false;
newoneRB = false;
newoneTB = false;
ObjectType ot = new ObjectType("customer","find");
String cnum = new String(custText1.getText().toUpperCase());
try
{
ObOut.writeObject(ot);
ObOut.writeObject(cnum);
}
catch (IOException ioe)
{
showMessage(" ERROR - Could Not Send Data");
System.out.println("ERROR - Could Not Send Data");
}
try
{
clearForms();
Customer c = (Customer) ObIn.readObject();
custText1.setText(c.getNumber());
custText2.setText(c.getSurname());
custText3.setText(c.getOther_Names());
custArea1.setText(c.getAddress());
custText4.setText(c.getPostcode());
custText5.setText(c.getTel_Number());
if (c.getNumber().compareTo("Not Found") == 0)
{
changeEnabledState(false,"all");
showMessage("No Record Of Customer");
}
else
{
changeEnabledState(true,"c");/*rbtbb*/
custText1.setEditable(false);
}
}
catch (ClassNotFoundException cnfe)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
catch (OptionalDataException ode)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
catch (IOException ioe)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
}
//Update Customer
if ((e.getSource() == custButt2) && cupdate && !((custText1.getText().compareTo("") == 0) || (custText1.getText().compareTo("Not Found") == 0)))
{
if (newoneC)
{
newoneC = false;
nextCNum++;
}
showMessage("Updating Customer Details");
ObjectType ot = new ObjectType("customer","update");
Customer c = new Customer();
c.setNumber(custText1.getText().toUpperCase());
c.setSurname(custText2.getText());
c.setOther_Names(custText3.getText());
c.setAddress(custArea1.getText());
c.setPostcode(custText4.getText());
c.setTel_Number(custText5.getText());
try
{
ObOut.writeObject(ot);
ObOut.writeObject(c);
showMessage("Customer Details Updated Successfully");
}
catch (IOException ioe)
{
System.out.println("ERROR - Could Not Send Data");
showMessage("ERROR - Could Not Send Data");
}
}
//************************ room booking buttons ***************************
//Find Room Booking
if (e.getSource() == roomBookButt1)
{
newoneC = false;
newoneR = false;
newoneT = false;
newoneRB = false;
newoneTB = false;
ObjectType ota = new ObjectType("roombooking","find");
String rbnum = new String(roomBookText1.getText().toUpperCase());
try
{
ObOut.writeObject(ota);
ObOut.writeObject(rbnum);
}
catch (IOException ioe)
{
showMessage(" ERROR - Could Not Send Data");
System.out.println("ERROR - Could Not Send Data");
}
try
{
clearForms();
RoomBooking rb = (RoomBooking) ObIn.readObject();
ObjectType ot = new ObjectType("customer","find");
String cnum = new String(rb.getCustomerNumber());
ObOut.writeObject(ot);
ObOut.writeObject(cnum);
Customer c = (Customer) ObIn.readObject();
custText1.setText(c.getNumber());
custText2.setText(c.getSurname());
custText3.setText(c.getOther_Names());
custArea1.setText(c.getAddress());
custText4.setText(c.getPostcode());
custText5.setText(c.getTel_Number());
if (c.getNumber().compareTo("Not Found") == 0)
{
showMessage("No Record Of Customer");
}
else
{
custText1.setEditable(false);
}
roomBookText1.setText(rb.getNumber());
custText1.setText(rb.getCustomerNumber());
roomBookText2.setText(rb.getRoomNumber());
roomBookText3.setText(rb.getArrivalDateDay());
roomBookText4.setText(rb.getArrivalDateMonth());
roomBookText5.setText(rb.getArrivalDateYear());
roomBookText6.setText(rb.getDepartureDateDay());
roomBookText7.setText(rb.getDepartureDateMonth());
roomBookText8.setText(rb.getDepartureDateYear());
if (rb.getCheckedIn().compareTo("yes") == 0)
roomBookCheck1.setState(true);
else
roomBookCheck1.setState(false);
if (rb.getStandard().compareTo("basic") == 0)
roomBookMenu3.select(" Basic ");
if (rb.getStandard().compareTo("luxury") == 0)
roomBookMenu3.select(" Luxury ");
if (rb.getNoPeople().compareTo("1") == 0)
roomBookMenu1.select(" 1 ");
if (rb.getNoPeople().compareTo("2") == 0)
roomBookMenu1.select(" 2 ");
if (rb.getNoPeople().compareTo("3") == 0)
roomBookMenu1.select(" 3 ");
if (rb.getNoPeople().compareTo("4") == 0)
roomBookMenu1.select(" 4 ");
if (rb.getDiscount().compareTo("none") == 0)
roomBookMenu2.select(" None ");
if (rb.getDiscount().compareTo("5") == 0)
roomBookMenu2.select(" 5 % ");
if (rb.getDiscount().compareTo("10") == 0)
roomBookMenu2.select(" 10 % ");
if (rb.getDiscount().compareTo("15") == 0)
roomBookMenu2.select(" 15 % ");
if (rb.getDiscount().compareTo("20") == 0)
roomBookMenu2.select(" 20 % ");
roomBookArea1.setText(rb.getNotes());
if (rb.getNumber().compareTo("Not Found") == 0)
{
changeEnabledState(false,"all");
showMessage("No Record Of Room Booking");
}
else
{
changeEnabledState(true,"rb");/*ctbb*/
roomBookText1.setEditable(false);
roomBookButt2.setLabel("Update Details");
rbupdate = true;
}
}
catch (ClassNotFoundException cnfe)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
catch (OptionalDataException ode)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
catch (IOException ioe)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
}
//Update Room Booking
if ((e.getSource() == roomBookButt2) && rbupdate && (roomBookButt2.getLabel().compareTo("Update Details") == 0) && !((roomBookText1.getText().compareTo("") == 0) || (roomBookText1.getText().compareTo("Not Found") == 0)))
{
String bookingOK = "";
//check new details are ok
if (!newoneRB)
{
ObjectType ot = new ObjectType("roombooking","checkup");
RoomBooking rb = new RoomBooking();
rb.setNumber(roomBookText1.getText().toUpperCase());
rb.setArrivalDateDay(roomBookText3.getText());
rb.setArrivalDateMonth(roomBookText4.getText());
rb.setArrivalDateYear(roomBookText5.getText());
rb.setDepartureDateDay(roomBookText6.getText());
rb.setDepartureDateMonth(roomBookText7.getText());
rb.setDepartureDateYear(roomBookText8.getText());
if (roomBookCheck1.getState() == true)
rb.setCheckedIn("yes");
else
rb.setCheckedIn("no");
if (roomBookMenu3.getSelectedItem().compareTo(" Basic ") == 0)
rb.setStandard("basic");
if (roomBookMenu3.getSelectedItem().compareTo(" Luxury ") == 0)
rb.setStandard("luxury");
if (roomBookMenu1.getSelectedItem().compareTo(" 1 ") == 0)
rb.setNoPeople("1");
if (roomBookMenu1.getSelectedItem().compareTo(" 2 ") == 0)
rb.setNoPeople("2");
if (roomBookMenu1.getSelectedItem().compareTo(" 3 ") == 0)
rb.setNoPeople("3");
if (roomBookMenu1.getSelectedItem().compareTo(" 4 ") == 0)
rb.setNoPeople("4");
if (roomBookMenu2.getSelectedItem().compareTo(" None ") == 0)
rb.setDiscount("none");
if (roomBookMenu2.getSelectedItem().compareTo(" 5 % ") == 0)
rb.setDiscount("5");
if (roomBookMenu2.getSelectedItem().compareTo(" 10 % ") == 0)
rb.setDiscount("10");
if (roomBookMenu2.getSelectedItem().compareTo(" 15 % ") == 0)
rb.setDiscount("15");
if (roomBookMenu2.getSelectedItem().compareTo(" 20 % ") == 0)
rb.setDiscount("20");
rb.setNotes(roomBookArea1.getText());
if (checkDate(roomBookText3.getText(),roomBookText4.getText(),roomBookText5.getText(),roomBookText6.getText(),roomBookText7.getText(),roomBookText8.getText()))
{
try
{
ObOut.writeObject(ot);
ObOut.writeObject(rb);
bookingOK = (String) ObIn.readObject();
}
catch (IOException ioe)
{
showMessage(" ERROR - Could Not Send Data");
System.out.println("ERROR - Could Not Send Data");
}
catch (ClassNotFoundException cnfe)
{
showMessage(" ERROR - Could Not Receive Data");
System.out.println("ERROR - Could Not Receive Data");
}
if (bookingOK.compareTo("no") == 0)
{
showMessage("No Booking Available - Try Different Criteria");
}
}
else
{
showMessage("Invalid Dates - Please Correct Before Proceeding");
}
}
if (newoneRB)
{
newoneRB = false;
nextRBNum++;
}
//if updated details are ok
if (bookingOK.compareTo("no") != 0)
{
showMessage("Updating Room Booking Details");
ObjectType ot = new ObjectType("roombooking","update");
RoomBooking rb = new RoomBooking();
rb.setNumber(roomBookText1.getText().toUpperCase());
rb.setCustomerNumber(custText1.getText().toUpperCase());
rb.setRoomNumber(roomBookText2.getText());
rb.setArrivalDateDay(roomBookText3.getText());
rb.setArrivalDateMonth(roomBookText4.getText());
rb.setArrivalDateYear(roomBookText5.getText());
rb.setDepartureDateDay(roomBookText6.getText());
rb.setDepartureDateMonth(roomBookText7.getText());
rb.setDepartureDateYear(roomBookText8.getText());
if (roomBookCheck1.getState() == true)
rb.setCheckedIn("yes");
else
rb.setCheckedIn("no");
if (roomBookMenu3.getSelectedItem().compareTo(" Basic ") == 0)
rb.setStandard("basic");
if (roomBookMenu3.getSelectedItem().compareTo(" Luxury ") == 0)
rb.setStandard("luxury");
if (roomBookMenu1.getSelectedItem().compareTo(" 1 ") == 0)
rb.setNoPeople("1");
if (roomBookMenu1.getSelectedItem().compareTo(" 2 ") == 0)
rb.setNoPeople("2");
if (roomBookMenu1.getSelectedItem().compareTo(" 3 ") == 0)
rb.setNoPeople("3");
if (roomBookMenu1.getSelectedItem().compareTo(" 4 ") == 0)
rb.setNoPeople("4");
if (roomBookMenu2.getSelectedItem().compareTo(" None ") == 0)
rb.setDiscount("none");
if (roomBookMenu2.getSelectedItem().compareTo(" 5 % ") == 0)
rb.setDiscount("5");
if (roomBookMenu2.getSelectedItem().compareTo(" 10 % ") == 0)
rb.setDiscount("10");
if (roomBookMenu2.getSelectedItem().compareTo(" 15 % ") == 0)
rb.setDiscount("15");
if (roomBookMenu2.getSelectedItem().compareTo(" 20 % ") == 0)
rb.setDiscount("20");
rb.setNotes(roomBookArea1.getText());
try
{
ObOut.writeObject(ot);
ObOut.writeObject(rb);
showMessage("Room Booking Details Updated Successfully");
}
catch (IOException ioe)
{
System.out.println("ERROR - Could Not Send Data");
showMessage("ERROR - Could Not Send Data");
}
}
}
//Check Booking Details Are Available (ie. the dates)
if ((e.getSource() == roomBookButt2) && rbupdate && (roomBookButt2.getLabel().compareTo("Check Booking") == 0) && !((roomBookText1.getText().compareTo("") == 0) || (roomBookText1.getText().compareTo("Not Found") == 0)))
{
String bookingOK = "";
ObjectType ot = new ObjectType("roombooking","check");
RoomBooking rb = new RoomBooking();
rb.setNumber(roomBookText1.getText().toUpperCase());
rb.setArrivalDateDay(roomBookText3.getText());
rb.setArrivalDateMonth(roomBookText4.getText());
rb.setArrivalDateYear(roomBookText5.getText());
rb.setDepartureDateDay(roomBookText6.getText());
rb.setDepartureDateMonth(roomBookText7.getText());
rb.setDepartureDateYear(roomBookText8.getText());
if (roomBookCheck1.getState() == true)
rb.setCheckedIn("yes");
else
rb.setCheckedIn("no");
if (roomBookMenu3.getSelectedItem().compareTo(" Basic ") == 0)
rb.setStandard("basic");
if (roomBookMenu3.getSelectedItem().compareTo(" Luxury ") == 0)
rb.setStandard("luxury");
if (roomBookMenu1.getSelectedItem().compareTo(" 1 ") == 0)
rb.setNoPeople("1");
if (roomBookMenu1.getSelectedItem().compareTo(" 2 ") == 0)
rb.setNoPeople("2");
if (roomBookMenu1.getSelectedItem().compareTo(" 3 ") == 0)
rb.setNoPeople("3");
if (roomBookMenu1.getSelectedItem().compareTo(" 4 ") == 0)
rb.setNoPeople("4");
if (roomBookMenu2.getSelectedItem().compareTo(" None ") == 0)
rb.setDiscount("none");
if (roomBookMenu2.getSelectedItem().compareTo(" 5 % ") == 0)
rb.setDiscount("5");
if (roomBookMenu2.getSelectedItem().compareTo(" 10 % ") == 0)
rb.setDiscount("10");
if (roomBookMenu2.getSelectedItem().compareTo(" 15 % ") == 0)
rb.setDiscount("15");
if (roomBookMenu2.getSelectedItem().compareTo(" 20 % ") == 0)
rb.setDiscount("20");
rb.setNotes(roomBookArea1.getText());
if (checkDate(roomBookText3.getText(),roomBookText4.getText(),roomBookText5.getText(),roomBookText6.getText(),roomBookText7.getText(),roomBookText8.getText()))
{
try
{
ObOut.writeObject(ot);
ObOut.writeObject(rb);
bookingOK = (String) ObIn.readObject();
}
catch (IOException ioe)
{
showMessage(" ERROR - Could Not Send Data");
System.out.println("ERROR - Could Not Send Data");
}
catch (ClassNotFoundException cnfe)
{
showMessage(" ERROR - Could Not Receive Data");
System.out.println("ERROR - Could Not Receive Data");
}
if (bookingOK.compareTo("no") == 0)
{
showMessage("No Booking Available - Try Different Criteria");
}
else
{
roomBookText2.setText(bookingOK);
showMessage("Booking Available - Click Update Details Button To Confirm");
roomBookButt2.setLabel("Update Details");
}
}
else
{
showMessage("Invalid Dates - Please Correct Before Proceeding");
}
}
//************************ room buttons ***************************
//Find Room
if (e.getSource() == roomButt1)
{
newoneC = false;
newoneR = false;
newoneT = false;
newoneRB = false;
newoneTB = false;
ObjectType ot = new ObjectType("room","find");
String rnum = new String(roomText1.getText().toUpperCase());
try
{
ObOut.writeObject(ot);
ObOut.writeObject(rnum);
}
catch (IOException ioe)
{
showMessage(" ERROR - Could Not Send Data");
System.out.println("ERROR - Could Not Send Data");
}
try
{
clearForms();
Room r = (Room) ObIn.readObject();
roomText1.setText(r.getNumber());
if (r.getStatus().compareTo("vacant") == 0)
roomCheck1.setState(true);
if (r.getStatus().compareTo("occupied") == 0)
roomCheck2.setState(true);
if (r.getStatus().compareTo("clean") == 0)
roomCheck3.setState(true);
if (r.getStatus().compareTo("repair") == 0)
roomCheck4.setState(true);
if (r.getStandard().compareTo("basic") == 0)
roomMenu1.select(" Basic ");
if (r.getStandard().compareTo("luxury") == 0)
roomMenu1.select(" Luxury ");
if (r.getNo_Beds().compareTo("1") == 0)
roomMenu2.select(" 1 ");
if (r.getNo_Beds().compareTo("2") == 0)
roomMenu2.select(" 2 ");
if (r.getNo_Beds().compareTo("3") == 0)
roomMenu2.select(" 3 ");
if (r.getNo_Beds().compareTo("4") == 0)
roomMenu2.select(" 4 ");
if (r.getBed_Type().compareTo("single") == 0)
roomMenu3.select(" Single ");
if (r.getBed_Type().compareTo("double") == 0)
roomMenu3.select(" Double ");
roomText2.setText(r.getTariff());
if (r.getNumber().compareTo("Not Found") == 0)
{
changeEnabledState(false,"all");
showMessage("No Record Of Room");
}
else
{
changeEnabledState(true,"r");
roomText1.setEditable(false);
}
}
catch (ClassNotFoundException cnfe)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
catch (OptionalDataException ode)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
catch (IOException ioe)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
}
//Update Room
if ((e.getSource() == roomButt2) && rupdate && !((roomText1.getText().compareTo("") == 0) || (roomText1.getText().compareTo("Not Found") == 0)))
{
if (newoneR)
{
newoneR = false;
nextRNum++;
}
showMessage("Updating Room Details");
ObjectType ot = new ObjectType("room","update");
Room r = new Room();
r.setNumber(roomText1.getText().toUpperCase());
if (roomCheck1.getState() == true)
r.setStatus("vacant");
if (roomCheck2.getState() == true)
r.setStatus("occupied");
if (roomCheck3.getState() == true)
r.setStatus("clean");
if (roomCheck4.getState() == true)
r.setStatus("repair");
if (roomMenu1.getSelectedItem().compareTo(" Basic ") == 0)
r.setStandard("basic");
if (roomMenu1.getSelectedItem().compareTo(" Luxury ") == 0)
r.setStandard("luxury");
if (roomMenu2.getSelectedItem().compareTo(" 1 ") == 0)
r.setNo_Beds("1");
if (roomMenu2.getSelectedItem().compareTo(" 2 ") == 0)
r.setNo_Beds("2");
if (roomMenu2.getSelectedItem().compareTo(" 3 ") == 0)
r.setNo_Beds("3");
if (roomMenu2.getSelectedItem().compareTo(" 4 ") == 0)
r.setNo_Beds("4");
if (roomMenu3.getSelectedItem().compareTo(" Single ") == 0)
r.setBed_Type("single");
if (roomMenu3.getSelectedItem().compareTo(" Double ") == 0)
r.setBed_Type("double");
r.setTariff(roomText2.getText());
try
{
ObOut.writeObject(ot);
ObOut.writeObject(r);
showMessage("Room Details Updated Successfully");
}
catch (IOException ioe)
{
System.out.println("ERROR - Could Not Send Data");
showMessage("ERROR - Could Not Send Data");
}
}
//************************ table buttons ***************************
//Find Table
if (e.getSource() == tableButt1)
{
newoneC = false;
newoneR = false;
newoneT = false;
newoneRB = false;
newoneTB = false;
ObjectType ot = new ObjectType("table","find");
String tnum = new String(tableText1.getText().toUpperCase());
try
{
ObOut.writeObject(ot);
ObOut.writeObject(tnum);
}
catch (IOException ioe)
{
showMessage(" ERROR - Could Not Send Data");
System.out.println("ERROR - Could Not Send Data");
}
try
{
clearForms();
Table t = (Table) ObIn.readObject();
tableText1.setText(t.getNumber());
if (t.getStatus().compareTo("vacant") == 0)
tableCheck1.setState(true);
if (t.getStatus().compareTo("occupied") == 0)
tableCheck2.setState(true);
if (t.getNumber().compareTo("Not Found") == 0)
{
changeEnabledState(false,"all");
showMessage("No Record Of Table");
}
else
{
changeEnabledState(true,"t");
tableText1.setEditable(false);
}
}
catch (ClassNotFoundException cnfe)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
catch (OptionalDataException ode)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
catch (IOException ioe)
{
System.out.println("ERROR - Could Not Receive Data");
showMessage("ERROR - Could Not Receive Data");
}
}
//Update Table
if ((e.getSource() == tableButt2) && tupdate && !((tableText1.getText().compareTo("") == 0) || (tableText1.getText().compareTo("Not Found") == 0)))
{
if (newoneT)
{
newoneT = false;
nextTNum++;
}
showMessage("Updating Customer Details");
ObjectType ot = new ObjectType("table","update");
Table t = new Table();
t.setNumber(tableText1.getText().toUpperCase());
if (tableCheck1.getState() == true)
t.setStatus("vacant");
if (tableCheck2.getState() == true)
t.setStatus("occupied");
try
{
ObOut.writeObject(ot);
ObOut.writeObject(t);
showMessage("Table Details Updated Successfully");
}
catch (IOException ioe)
{
System.out.println("ERROR - Could Not Send Data");
showMessage("ERROR - Could Not Send Data");
}
}
//managerPanel exists as well......
}
public void adjustmentValueChanged(AdjustmentEvent e)
{
if (e.getSource() == roomBookScroll1)
{
roomBookText3.setText(roomBookScroll1.getValue() + "");
}
else if (e.getSource() == roomBookScroll2)
{
roomBookText4.setText(roomBookScroll2.getValue() + "");
}
else if (e.getSource() == roomBookScroll3)
{
roomBookText5.setText(roomBookScroll3.getValue() + "");
}
else if (e.getSource() == roomBookScroll4)
{
roomBookText6.setText(roomBookScroll4.getValue() + "");
}
else if (e.getSource() == roomBookScroll5)
{
roomBookText7.setText(roomBookScroll5.getValue() + "");
}
else if (e.getSource() == roomBookScroll6)
{
roomBookText8.setText(roomBookScroll6.getValue() + "");
}
else if (e.getSource() == tableBookScroll1)
{
tableBookText3.setText(tableBookScroll1.getValue() + "");
}
else if (e.getSource() == tableBookScroll2)
{
tableBookText4.setText(tableBookScroll2.getValue() + "");
}
else if (e.getSource() == tableBookScroll3)
{
tableBookText5.setText(tableBookScroll3.getValue() + "");
}
}
private void changeButton(Button arg, Button arg1, Button arg2, Button arg3, Button arg4, Button arg5)
{
arg1.setBackground(Color.lightGray);
arg2.setBackground(Color.lightGray);
arg3.setBackground(Color.lightGray);
arg4.setBackground(Color.lightGray);
arg5.setBackground(Color.lightGray);
arg.setBackground(Color.blue);
arg1.setForeground(Color.black);
arg2.setForeground(Color.black);
arg3.setForeground(Color.black);
arg4.setForeground(Color.black);
arg5.setForeground(Color.black);
arg.setForeground(Color.white);
newoneC = false;
newoneR = false;
newoneT = false;
newoneRB = false;
newoneTB = false;
}
public void clearForms()
{
//customerPanel
custText1.setText("");
custText2.setText("");
custText3.setText("");
custText4.setText("");
custText5.setText("");
custArea1.setText("");
custArea2.setText("");
//roomBookingPanel
roomBookText1.setText("");
roomBookText2.setText("");
roomBookText3.setText("");
roomBookText4.setText("");
roomBookText5.setText("");
roomBookText6.setText("");
roomBookText7.setText("");
roomBookText8.setText("");
roomBookArea1.setText("");
roomBookMenu1.select(0);
roomBookMenu2.select(0);
roomBookMenu3.select(0);
roomBookCheck1.setState(false);
roomBookButt2.setLabel("Check Booking");
//tableBookingPanel
tableBookText1.setText("");
tableBookText2.setText("");
tableBookText3.setText("");
tableBookText4.setText("");
tableBookText5.setText("");
tableBookArea1.setText("");
//billPanel
billText1.setText("");
billText2.setText("");
billText3.setText("");
billArea1.setText("");
//roomPanel
roomText1.setText("");
roomText2.setText("");
roomArea1.setText("");
roomMenu1.select(0);
roomMenu2.select(0);
roomMenu3.select(0);
roomCheckGroup.setSelectedCheckbox(roomCheckNull);
//tablePanel
tableText1.setText("");
tableArea1.setText("");
tableCheckGroup.setSelectedCheckbox(tableCheckNull);
//Number boxes
custText1.setEditable(true);
roomBookText1.setEditable(true);
tableBookText1.setEditable(true);
roomText1.setEditable(true);
tableText1.setEditable(true);
newoneC = false;
newoneR = false;
newoneT = false;
newoneRB = false;
newoneTB = false;
}
public void changeEnabledState(boolean editableState, String s)
{
cupdate = false;
rupdate = false;
tupdate = false;
rbupdate = false;
tbupdate = false;
if ((s.compareTo("all") == 0) || (s.compareTo("c") == 0) || (s.compareTo("crbtbb") == 0))
{
//customerPanel
custText2.setEditable(editableState);
custText3.setEditable(editableState);
custText4.setEditable(editableState);
custText5.setEditable(editableState);
custArea1.setEditable(editableState);
custArea2.setEditable(editableState);
cupdate = editableState;
}
if ((s.compareTo("all") == 0) || (s.compareTo("rb") == 0) || (s.compareTo("crbtbb") == 0))
{
//roomBookingPanel
roomBookText3.setEditable(editableState);
roomBookText4.setEditable(editableState);
roomBookText5.setEditable(editableState);
roomBookText6.setEditable(editableState);
roomBookText7.setEditable(editableState);
roomBookText8.setEditable(editableState);
roomBookArea1.setEditable(editableState);
roomBookCheck1.setEnabled(editableState);
roomBookMenu1.setEnabled(editableState);
roomBookMenu2.setEnabled(editableState);
roomBookMenu3.setEnabled(editableState);
rbupdate = editableState;
}
if ((s.compareTo("all") == 0) || (s.compareTo("tb") == 0) || (s.compareTo("crbtbb") == 0))
{
//tableBookingPanel
tableBookText2.setEditable(editableState);
tableBookText3.setEditable(editableState);
tableBookText4.setEditable(editableState);
tableBookText5.setEditable(editableState);
tableBookArea1.setEditable(editableState);
tableBookMenu1.setEnabled(editableState);
tableBookMenu2.setEnabled(editableState);
tbupdate = editableState;
}
if ((s.compareTo("all") == 0) || (s.compareTo("b") == 0) || (s.compareTo("crbtbb") == 0))
{
//billPanel
billText2.setEditable(editableState);
billText3.setEditable(editableState);
billArea1.setEditable(editableState);
}
if ((s.compareTo("all") == 0) || (s.compareTo("r") == 0))
{
//roomPanel
roomText2.setEditable(editableState);
roomArea1.setEditable(editableState);
roomCheck1.setEnabled(editableState);
roomCheck2.setEnabled(editableState);
roomCheck3.setEnabled(editableState);
roomCheck4.setEnabled(editableState);
roomMenu1.setEnabled(editableState);
roomMenu2.setEnabled(editableState);
roomMenu3.setEnabled(editableState);
rupdate = editableState;
}
if ((s.compareTo("all") == 0) || (s.compareTo("t") == 0))
{
//tablePanel
tableArea1.setEditable(editableState);
tableCheck1.setEnabled(editableState);
tableCheck2.setEnabled(editableState);
tupdate = editableState;
}
}
public void showMessage(String s)
{
statusLabel2.setText(s);
}
public boolean checkDate(String da, String ma, String ya, String db, String mb, String yb)
{
try
{
//Arrival Date
int yr = Integer.parseInt(ya);
int mon = Integer.parseInt(ma);
int dy = Integer.parseInt(da);
//Departure Date
int yra = Integer.parseInt(yb);
int mona = Integer.parseInt(mb);
int dya = Integer.parseInt(db);
//Arrival Date
if ((mon < 1) || (mon > 12))
return false;
if (((mon == 4) || (mon == 6) || (mon == 9) || (mon == 11)) && ((dy < 1) || (dy > 30)))
return false;
if (((mon == 1) || (mon == 3) || (mon == 5) || ((mon > 6) && (mon < 9)) || (mon == 10) || (mon == 12)) && ((dy < 1) || (dy > 31)))
return false;
if ((mon == 2) && ((yr % 4) == 0) && ((dy < 1) || (dy > 29)))
return false;
if ((mon == 2) && ((yr % 4) != 0) && ((dy < 1) || (dy > 28)))
return false;
//Departure Date
if ((mona < 1) || (mona > 12))
return false;
if (((mona == 4) || (mona == 6) || (mona == 9) || (mona == 11)) && ((dya < 1) || (dya > 30)))
return false;
if (((mona == 1) || (mona == 3) || (mona == 5) || ((mona > 6) && (mona < 9)) || (mona == 10) || (mona == 12)) && ((dya < 1) || (dya > 31)))
return false;
if ((mona == 2) && ((yra % 4) == 0) && ((dya < 1) || (dya > 29)))
return false;
if ((mona == 2) && ((yra % 4) != 0) && ((dya < 1) || (dya > 28)))
return false;
//Check dates against each other
if (yra < yr)
return false;
if ((yra == yr) && (mona < mon))
return false;
if ((yra == yr) && (mona == mon) && (dya < dy))
return false;
return true;
}
catch(NumberFormatException nfe)
{
return false;
}
}
}