/* GoShopping.java  */

package shopping;

import javax.swing.*;
import java.beans.*;

public class GoShopping {
    
    public GoShopping() {
    }
    
    public static void main(String[] args) {
        Visa account = new Visa();              // listens and may veto a buy
        CreditCard card = new CreditCard();     // the Visa card

        card.addVetoableChangeListener(account); //register as listener to CreditCard bean 
        
        double price;
        while ( true ) {
            price = Double.parseDouble(JOptionPane.showInputDialog("Enter item price...0 to quit shopping")); 
            if ( price == 0.0 ) { break; }

            try {
                card.setBalance(price);
            }
            catch ( PropertyVetoException e) {
                JOptionPane.showMessageDialog(null,"Transaction denied...would exceed credit limit");
            }
            
            System.out.println( "Credit card balance : " + card.getBalance() );
        }
    }
}

