//
/* * Example ATM simulation - file OperatorPanel.java * * This file implements the class that manages the ATM's operator panel * * Copyright (c) 1997 - Russell C. Bjork * */ package atm.atmparts; import java.awt.*; import atm.util.Money; //
public class OperatorPanel extends Panel { //
public OperatorPanel() { setLayout(new BorderLayout()); setBackground(new Color(128,128,255)); add("West", new Label("Operator Panel")); _message = new Label("Click ON button to turn ATM on"); add("Center", _message); CheckboxGroup group = new CheckboxGroup(); _offButton = new Checkbox("OFF", group, true); _onButton = new Checkbox("ON", group, false); Panel buttonPanel = new Panel(); buttonPanel.add(_offButton); buttonPanel.add(_onButton); add("East", buttonPanel); } //
public synchronized boolean switchOn() { // This will blink the "Click ON button ..." message when // the ATM is off boolean isOn = _onButton.getState(); if (! isOn) if (_message.isShowing()) _message.hide(); else _message.show(); else _message.hide(); return isOn; } //
public Money getInitialCash() { int numberBills = -1; while (numberBills < 0) { QuestionDialog cashDialog = new QuestionDialog("How many $20 bills are in the cash dispenser?", this); String answer = cashDialog.answer(); if (answer != null) try { numberBills = Integer.parseInt(answer); } catch (NumberFormatException e) { } } return new Money(20 * numberBills); } //
// These fields are needed by the GUI private Label _message; private Checkbox _offButton; private Checkbox _onButton; } //