All pastes #21107 Raw Edit

Mine

public text v1 · immutable
#21107 ·published 2005-08-25 14:30 UTC
rendered paste body
/**
* My Tiny Company User Interface
* @author George Eleftherakis
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
import javax.swing.*;

public class CustomerUI extends Frame implements KeyListener,
                                  ActionListener{

	CustomerBase cb;

	//private TextField tfRecNo;
	private TextField tfAirCompany;
	private TextField tfFlightNumber;
	private TextField tfFlyingFrom;
	private TextField tfFlyingTo;
	private TextField tfDateOfFlight;
	private TextField tfTimeOfFlight;
	private TextField tfFClass;
	private TextField tfSClass;
	private TextField tfTClass;
	private int RecNo = 0;
    public int ok=1;

	    //The constructor
	    public CustomerUI() {

		cb = new CustomerBase();

		// Create and add the menu to the frame
		MenuBar mb;
        Menu m1, m2;
        MenuItem mi1_1, mi1_2,mi1_3, mi2_1, mi2_2, mi2_3;

        mb = new MenuBar();
        setMenuBar(mb);

		//Build first menu in the menu bar.
        m1 = new Menu("File", true);
		mb.add(m1);

		mi1_1 = new MenuItem("Load");
		mi1_1.addActionListener(this);
		m1.add(mi1_1);

		mi1_2 = new MenuItem("Save");
		mi1_2.addActionListener(this);
        m1.add(mi1_2);

        //Build second menu in the menu bar.
        m2 = new Menu("Help");
        mb.setHelpMenu(m2);

        mi2_1 = new MenuItem("Help Topics");
		mi2_1.addActionListener(this);
        m2.add(mi2_1);

        mi2_2 = new MenuItem("-");
        m2.add(mi2_2);

        mi2_3 = new MenuItem("About");
		mi2_3.addActionListener(this);
        m2.add(mi2_3);

		//Create a panel to group the buttons, put that south
		Panel pButtons = new Panel();

        Button insertButton = new Button("Insert new flight");
		pButtons.add(insertButton);
		insertButton.addActionListener(this);
        insertButton.setEnabled(false);

		Button nextButton = new Button("Next");
		pButtons.add(nextButton);
		nextButton.addActionListener(this);
nextButton.setEnabled(false);

		Button previousButton = new Button("Previous");
		pButtons.add(previousButton);
		previousButton.addActionListener(this);
previousButton.setEnabled(false);

		Button deleteButton = new Button("Delete");
		pButtons.add(deleteButton);
		deleteButton.addActionListener(this);
deleteButton.setEnabled(false);

        Button searchButton = new Button("Search");
		pButtons.add(searchButton);
		searchButton.addActionListener(this);
searchButton.setEnabled(false);

		Button clearButton = new Button("Clear");
		pButtons.add(clearButton);
		clearButton.addActionListener(this);
clearButton.setEnabled(false);

		Button exitButton = new Button("Exit");
		pButtons.add(exitButton);
		exitButton.addActionListener(this);
		exitButton.setEnabled(false);
		add(pButtons, "South");

		//Create a panel to group the textFields, put that north
		Panel pTextFields = new Panel();
		pTextFields.setLayout(new GridLayout(9,2));

		pTextFields.add(new Label("Air company: "));
		tfAirCompany = new TextField("",2);
		//tfAirCompany.setMaxSize(2);
		pTextFields.add(tfAirCompany);

		//tfAirCompany.setMaxSize(2);
        tfAirCompany.setEnabled(false);


		pTextFields.add(new Label("Flight number: "));
	    tfFlightNumber = new TextField("",3);

		pTextFields.add(tfFlightNumber);
tfFlightNumber.setEnabled(false);


		pTextFields.add(new Label("Flying from: "));
		tfFlyingFrom = new TextField("",50);

		pTextFields.add(tfFlyingFrom);
tfFlyingFrom.setEnabled(false);


		pTextFields.add(new Label("Flying to: "));
		tfFlyingTo= new TextField("",50);
		pTextFields.add(tfFlyingTo);
tfFlyingTo.setEnabled(false);

		pTextFields.add(new Label("Date of flight: "));
		tfDateOfFlight= new TextField("", 50);
		pTextFields.add(tfDateOfFlight);
tfDateOfFlight.setEnabled(false);

		pTextFields.add(new Label("Time of flight: "));
		tfTimeOfFlight= new TextField("", 50);
		pTextFields.add(tfTimeOfFlight);
tfTimeOfFlight.setEnabled(false);

		pTextFields.add(new Label("First Class Seats: "));
	    tfFClass= new TextField("", 50);
		pTextFields.add(tfFClass);
tfFClass.setEnabled(false);

		pTextFields.add(new Label("Second Class Seats: "));
		tfSClass= new TextField("", 50);
		pTextFields.add(tfSClass);
tfSClass.setEnabled(false);

		pTextFields.add(new Label("Third Class Seats: "));
	    tfTClass= new TextField("", 50);
		pTextFields.add(tfTClass);
tfTClass.setEnabled(false);

tfTClass.addKeyListener(this);
//Create a combo box with choices.
//String[] Seats =
//{	"First Class",
//	"Business Class",
//"Economy Class"};

		add(pTextFields, "North");

	}






    protected void displayInfo(KeyEvent e, String s){
//JOptionPane.showMessageDialog(null,"xa");
        //You should only rely on the key char if the event
        //is a key typed event.
        String keyString;
        int id = e.getID();
        if (id == KeyEvent.KEY_TYPED) {
            char c = e.getKeyChar();
keyString = "key character = '" + c + "'";
        } else {
            int keyCode = e.getKeyCode();
           // keyString = "key code = " + keyCode
            //            + " ("
                //        + KeyEvent.getKeyText(keyCode)
                 //       + ")";
        }

        int modifiers = e.getModifiersEx();
//        modString = "modifiers = " + modifiers;
//        tmpString = KeyEvent.getModifiersExText(modifiers);
//        if (tmpString.length() > 0) {
         //   modString += " (" + tmpString + ")";
      //  } else {
      //      modString += " (no modifiers)";
      //  }

//        actionString = "action key? ";
    //    if (e.isActionKey()) {
   //         actionString += "YES";
   //     } else {
   //         actionString += "NO";
   //     }

String locationString = "key location: ";
        int location = e.getKeyLocation();
        if (location == KeyEvent.KEY_LOCATION_STANDARD) {
            locationString += "standard";
        } else if (location == KeyEvent.KEY_LOCATION_LEFT) {
            locationString += "left";
        } else if (location == KeyEvent.KEY_LOCATION_RIGHT) {
            locationString += "right";
        } else if (location == KeyEvent.KEY_LOCATION_NUMPAD) {
            locationString += "numpad";
        } else { // (location == KeyEvent.KEY_LOCATION_UNKNOWN)
            locationString += "unknown";
        }

       //Display information about the KeyEvent...
    }












/** Handle the key typed event from the text field. */
    public void keyTyped(KeyEvent e) {
	displayInfo(e, "KEY TYPED: ");
    }

    /** Handle the key pressed event from the text field. */
    public void keyPressed(KeyEvent e) {
	displayInfo(e, "KEY PRESSED: ");
    }

    /** Handle the key released event from the text field. */
    public void keyReleased(KeyEvent e) {
	displayInfo(e, "KEY RELEASED: ");
    }


    //This method handles the 'captured' events
    public void actionPerformed (ActionEvent evt) {

		String arg = evt.getActionCommand();
		//JOptionPane.showMessageDialog(null,arg);


        if (arg.equals("Next")) {
			//JOptionPane.showMessageDialog (null,cb.getNumberOfCustomers());
			if (RecNo < cb.getNumberOfCustomers()) RecNo++; //Control the Record Number to know where I am and avoid to increase if I am at the end
			Customer c = (Customer) cb.selectCustomer (RecNo);  //Read the customer from the file
			display (c); //Display the info
		}

        else if (arg.equals("Previous")){
			if (RecNo > 1 ) RecNo--;
			Customer c = (Customer) cb.selectCustomer (RecNo);
			display (c);
		}

		else if (arg.equals("Delete")){
			//Customer c = new Customer();
        cb.removeCustomer(RecNo);
        tfAirCompany.setText("");
        tfFlightNumber.setText("");
        JOptionPane.showMessageDialog(null,"Flight Removed");
        ok=0;
		}
		else if (arg.equals("Insert new flight")){
	    //cb.saveBaseToFile("flights.dat",tfAirCompany.getText(),tfFlightNumber.getText());
        //tfAirCompany.setText("");
        //tfFlightNumber.setText("");
       // JOptionPane.showMessageDialog(null,tfAirCompany.getText());
        if ((tfAirCompany.getText().equals("")) || (tfFlightNumber.getText().equals("")) || (tfFlyingFrom.getText().equals("")) || (tfFlyingTo.getText().equals("")) || (tfDateOfFlight.getText().equals("")) || (tfTimeOfFlight.getText().equals("")) || (tfFClass.getText().equals("")) || (tfSClass.getText().equals("")) || (tfTClass.getText().equals("")))
        //|| (tfFlightNumber.getText()==null))
        {
        JOptionPane.showMessageDialog(null,"Please complete the form!");
	}
else
{
	ok=0;
	JOptionPane.showMessageDialog(null,"Successfully inserted!");
        Customer c=new Customer();
        c.setAirCompany(tfAirCompany.getText());
		c.setFlightNumber(tfFlightNumber.getText());
		//JOptionPane.showMessageDialog(null,c.getFirstName());
		cb.addCustomer(c);
}
		}
		else if (arg.equals("Save")){
		cb.saveBaseToFile("flights.dat",tfAirCompany.getText(),tfFlightNumber.getText());
		JOptionPane.showMessageDialog(null,"Flights saved!");
		ok=1;
		}
        else if (arg.equals("Load")){
        cb.loadBaseFromFile("flights.dat");

        insertButton.setEnabled(true);
        nextButton.setEnabled(true);
        previousButton.setEnabled(true);
        exitButton.setEnabled(true);
        clearButton.setEnabled(true);
        searchButton.setEnabled(true);
        deleteButton.setEnabled(true);

        tfTClass.setEnabled(true);
        tfSClass.setEnabled(true);
        tfFClass.setEnabled(true);
        tfTimeOfFlight.setEnabled(true);
        tfDateOfFlight.setEnabled(true);
        tfFlyingTo.setEnabled(true);
        tfFlyingFrom.setEnabled(true);
        tfFlightNumber.setEnabled(true);
        tfAirCompany.setEnabled(true);

        ok=1;
		}
		else if (arg.equals("Search"))
		{


		String returnValue1 = JOptionPane.showInputDialog(null,"Please enter Air Company to search:","Search",JOptionPane.QUESTION_MESSAGE);
		String nm1=returnValue1;

		String returnValue2 = JOptionPane.showInputDialog("Please enter Flight Number to search:");
		String nm2=returnValue2;

		if ((nm1.equals("")) || (nm2.equals("")))
		{
			JOptionPane.showMessageDialog(null,"Please insert an Air company and a Flight Number");
		}
		else
		{

		Customer c = cb.findBy(nm1,nm2);
		if (c==null)
		{
			JOptionPane.showMessageDialog(null,"INFORMATION NOT FOUND!");
}
}
	}
		else if (arg.equals("Exit")){

			Object[] options = {"Yes",
			                    "No"};

if (ok==0)
{
			int selection = JOptionPane.showOptionDialog(null,
			    "Do you want to save the new flight records and any changes you have done?",  // message
			    "Flights",                    // title
			    JOptionPane.YES_NO_OPTION,             // how many buttons
			    JOptionPane.QUESTION_MESSAGE,          // icon
			    null,                                  // used for custom Icon
			    options,                               // array of button lables
			    options[0]);                           // lable of the default button

//JOptionPane.showMessageDialog(null,"helo");

if(selection==JOptionPane.OK_OPTION)
{
//JOptionPane.showMessageDialog(null,"patithike to ok");

        ok=1;
		cb.saveBaseToFile("flights.dat",tfAirCompany.getText(),tfFlightNumber.getText());
JOptionPane.showMessageDialog(null,"Flights saved!");
}


//        JOptionPane.showMessageDialog(null,"Flights saved!");

}
System.exit(0);
		}
		else if (arg.equals("Clear")){
		//cb.loadBaseFromFile("customers.dat");
		tfAirCompany.setText("");
        tfFlightNumber.setText("");
		}
		else if (arg.equals("Contents") ){
		        	JOptionPane.showMessageDialog (this, "Select File->Load to start working with the flights database. \nSelect File->Save to save the new records in the database.", "Help", JOptionPane.INFORMATION_MESSAGE );
		}
		else if (arg.equals("About") ){
        	JOptionPane.showMessageDialog (this, "Airflights database. \nby Stefanos Neofytidis", "About...", JOptionPane.INFORMATION_MESSAGE );
		}

	}


	public void display (Customer c) {
		if (c != null) {
			//Integer a = new Integer(c.getAmount());
			Integer b = new Integer(RecNo);
			//tfFirstName.setText(c.getFirstName());
			//tfLastName.setText(c.getLastName());
			//JOptionPane.showMessageDialog (null,"Loaded");
			tfAirCompany.setText(c.getAirCompany());
			tfFlightNumber.setText(c.getFlightNumber());

			//tfAirCompany.setText(b.toString());
			//JOptionPane.showMessageDialog (null,b.toString());
		}
	}




	//The main function that actually creates the UI(frame) to the screen
	public static void main(String [] Args){
		Frame f = new CustomerUI();
		f.setTitle("Flights Information");
		f.setSize(440,350);
		f.setVisible(true);
       // insertButton.setVisible(true);


		//This method handles the 'x' button that closes a frame
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
	}




}