// @topic S-0303-02-01-20 Java MVC Architecture Demo
// @brief The use case controller class

package demo;
public class ControllerDemo {
    //----------------------------------------
    // data
    //----------------------------------------
    private FrameMainView window;
    private ElevatorBank elevatorBank;

    //----------------------------------------
    // constructors
    //----------------------------------------
    public ControllerDemo()
    {
    }//ControllerDemo
    
    //----------------------------------------
    // operations
    //----------------------------------------
    public void initUseCase()
    {
        // constructing business objects
        elevatorBank = new ElevatorBank();
        elevatorBank.addElevator( new Elevator() );
        elevatorBank.addElevator( new Elevator() );
    }//initUseCase
    
    public FrameMainView getWindow() {
        return window;
    }//getWindow

    public void setWindow(FrameMainView window) {
        this.window = window;
    }//setWindow
    
    public void moveElevator()
    {
        // update the business model
        elevatorBank.getElevator( 0 ).moveUp();

        // update the view
        window.getAreaDisplayElevators().setText(
            "" + elevatorBank.getElevator( 0 ).getFloor()
        );
    }//moveElevator
    
}//class ControllerDemo