// @topic T11712 MVC Demo - Food Order
// @brief Use Case Controller class

package mvc_demo;

import java.util.ArrayList;

public class ControllerMenu {
    //--------------------------------------
    // data attributes
    //--------------------------------------
    private WindowMenu windowMenu = null;
    private WindowOrders windowOrders = null;
    private OrderHistory orderHistory = null;

    //--------------------------------------
    // constructors
    //--------------------------------------
    public ControllerMenu()
    {
        // create business objects as
        // needed by this use case
        orderHistory = new OrderHistory();
    }

    //--------------------------------------
    // operations
    //--------------------------------------
    public void clearOrders()
    {
        orderHistory.clearOrders();
        // make sure window is updated:
        showOrders();
    }//clearOrders
    
    public void showOrders() {
        ArrayList<Integer> orders =
                orderHistory.getOrderHistory();
        windowOrders.updateOrders( orders );
        windowOrders.setVisible(true);
    }//showOrders

    public void placeOrder( int idx ) {
        orderHistory.addOrder(idx);
    }//placeOrder
    
    public WindowMenu getWindowMenu() {
        return windowMenu;
    }//getWindowMenu

    public void setWindowMenu(WindowMenu windowMenu) {
        this.windowMenu = windowMenu;
    }//setWindowMenu

    public OrderHistory getOrderHistory() {
        return orderHistory;
    }//getOrderHistory

    public void setOrderHistory(OrderHistory orderHistory) {
        this.orderHistory = orderHistory;
    }//setOrderHistory
    
    public WindowOrders getWindowOrders() {
        return windowOrders;
    }//getWindowOrders

    public void setWindowOrders(WindowOrders windowOrders) {
        this.windowOrders = windowOrders;
    }//setWindowOrders

}//class ControllerMenu