www.pudn.com > Java_UML_library.rar > CancelReservationFrame.java


// 
//  Unified Library Application 
//  Case study in Unified Modeling Language Toolkit 
// 
//  CancelReservationFrame.java 
// 
// 
//  Copyright (c) 1998 John Wiley & Sons, Inc. All rights reserved. 
//  Reproduction or translations of this work beyond that permitted 
//  in Section 117 of the 1976 United States Copyright Act without 
//  the express written permission of the copyright owner is unlawful. 
//  Requests for further information should be addressed to Permissions 
//  Department, John Wiley & Sons, Inc. The purchaser may make back-up 
//  copies for his/her own use only and not for distribution or resale. 
//  The Publisher assumes no responsibility for errors, omissions, or 
//  damages, caused by the use of these programs of from the use of the 
//  information contained herein. 
 
package ui; 
 
import util.ObjId; 
import bo.*; 
 
import java.awt.*; 
 
public class CancelReservationFrame extends Frame implements ResultOfFindTitle { 
 
	private Title title; 
    private BorrowerInformation borrower; 
 
	void findTitleButton_Clicked(Event event) { 
		FindTitleDialog dlg = new FindTitleDialog(this,true); 
		dlg.show(); 
	} 
 
	void okButton_Clicked(Event event) { 
	    if (title == null || borrowerList.getSelectedIndex() == -1) 
        { 
            new MessageBox(this,"Not all information given!"); 
        } 
        else 
        { 
            Reservation res; 
            String borrowername = borrowerList.getItem(borrowerList.getSelectedIndex()); 
            borrower = BorrowerInformation.findOnLastName(borrowername); 
            int index = 0; 
            while ( (res = borrower.getReservation(index)) != null) 
            { 
                if (res.getTitle().getTitle().equals(title.getTitle())) 
                { 
                    ObjId oid = res.getObjId(); 
                    borrower.removeReservation(oid); 
                    borrower.update(); 
                    break; 
                } 
                index++; 
            } 
            index = 0; 
            while ( (res = title.getReservation(index)) != null) 
            { 
                if (res.getBorrower().getLastName().equals(borrower.getLastName())) 
                { 
                    title.removeReservation(res.getObjId()); 
                    title.update(); 
                    break; 
                } 
                index++; 
            } 
 
            if (res == null) 
            { 
                new MessageBox(this,"There is no such reservation stored!"); 
                return; 
            } 
            res.delete(); 
 
		    dispose(); 
        } 
	} 
 
	void cancelButton_Clicked(Event event) { 
		dispose(); 
	} 
 
	void borrowerList_ListSelect(Event event) { 
		checkStatus(); 
	} 
 
    public void resultTitle(ObjId titleid) 
    { 
        title = Title.getTitle(titleid); 
        titleField.setText(title.getTitle()); 
        authorField.setText(title.getAuthor()); 
        int noReservations = title.getNoReservations(); 
        for (int i = 0; i < noReservations; i++) 
        { 
            Reservation res = title.getReservation(i); 
            BorrowerInformation borrow = res.getBorrower(); 
            borrowerList.addItem(borrow.getLastName()); 
        } 
        checkStatus(); 
    } 
 
 
    private void checkStatus() 
    { 
        if (title == null || borrowerList.getSelectedIndex() == -1) 
            okButton.disable(); 
        else 
            okButton.enable(); 
    } 
	public CancelReservationFrame() { 
 
		//{{INIT_CONTROLS 
		setLayout(null); 
		addNotify(); 
		resize(insets().left + insets().right + 430,insets().top + insets().bottom + 288); 
		setFont(new Font("Dialog", Font.PLAIN, 12)); 
		titleField = new java.awt.TextField(); 
		titleField.setEditable(false); 
		titleField.reshape(insets().left + 96,insets().top + 24,182,24); 
		titleField.setBackground(new Color(12632256)); 
		add(titleField); 
		label1 = new java.awt.Label("Title"); 
		label1.reshape(insets().left + 24,insets().top + 24,40,20); 
		add(label1); 
		authorField = new java.awt.TextField(); 
		authorField.setEditable(false); 
		authorField.reshape(insets().left + 96,insets().top + 60,182,24); 
		authorField.setBackground(new Color(12632256)); 
		add(authorField); 
		label2 = new java.awt.Label("Author"); 
		label2.reshape(insets().left + 24,insets().top + 60,48,20); 
		add(label2); 
		findTitleButton = new java.awt.Button("Find Title"); 
		findTitleButton.reshape(insets().left + 288,insets().top + 24,108,24); 
		add(findTitleButton); 
		okButton = new java.awt.Button("OK (Reservation cancelled)"); 
		okButton.reshape(insets().left + 96,insets().top + 240,216,24); 
		add(okButton); 
		cancelButton = new java.awt.Button("Close"); 
		cancelButton.reshape(insets().left + 336,insets().top + 240,60,24); 
		add(cancelButton); 
		label3 = new java.awt.Label("Borrowers"); 
		label3.reshape(insets().left + 24,insets().top + 108,60,20); 
		add(label3); 
		borrowerList = new java.awt.List(0,false); 
		add(borrowerList); 
		borrowerList.reshape(insets().left + 96,insets().top + 108,178,107); 
		setTitle("Remove Reservation"); 
		//}} 
        okButton.disable(); 
		//{{INIT_MENUS 
		//}} 
	} 
 
	public CancelReservationFrame(String title) { 
	    this(); 
	    setTitle(title); 
	} 
 
    public synchronized void show() { 
    	move(50, 50); 
    	super.show(); 
    } 
 
	public boolean handleEvent(Event event) { 
    	if (event.id == Event.WINDOW_DESTROY) { 
            dispose(); 
            return true; 
    	} 
		if (event.target == okButton && event.id == Event.ACTION_EVENT) { 
			okButton_Clicked(event); 
			return true; 
		} 
		if (event.target == cancelButton && event.id == Event.ACTION_EVENT) { 
			cancelButton_Clicked(event); 
			return true; 
		} 
		if (event.target == findTitleButton && event.id == Event.ACTION_EVENT) { 
			findTitleButton_Clicked(event); 
			return true; 
		} 
		if (event.target == borrowerList && event.id == Event.LIST_SELECT) { 
			borrowerList_ListSelect(event); 
			return true; 
		} 
		return super.handleEvent(event); 
	} 
 
	//{{DECLARE_CONTROLS 
	java.awt.TextField titleField; 
	java.awt.Label label1; 
	java.awt.TextField authorField; 
	java.awt.Label label2; 
	java.awt.Button findTitleButton; 
	java.awt.Button okButton; 
	java.awt.Button cancelButton; 
	java.awt.Label label3; 
	java.awt.List borrowerList; 
	//}} 
 
	//{{DECLARE_MENUS 
	//}} 
}