package ui;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MenuUi extends AbstractUiTemplate {

    private SelectTeamUi selectTeamUi;

    private InsertPlayerUi insertPlayerUi;

    private SelectPlayerUi selectPlayerUi;

    public void setSelectTeamUi(SelectTeamUi selectTeamUi) {
        this.selectTeamUi = selectTeamUi;
    }

    public void setInsertPlayerUi(InsertPlayerUi insertPlayerUi) {
        this.insertPlayerUi = insertPlayerUi;
    }

    public void setSelectPlayerUi(SelectPlayerUi selectPlayerUi) {
        this.selectPlayerUi = selectPlayerUi;
    }

    protected void showMenu() {
        System.out.println("--------------------");
        System.out.println("¡º¼±¼ö ¸í´Ü¡»¡¸¸Þ´º ¡¹");
        System.out.println("");
        System.out.println("1.Á¾·á ");
        System.out.println("2.ÆÀ ¸ñ·Ï ");
        System.out.println("3.¼±¼ö Ãß°¡ ");
        System.out.println("4.¼±¼ö ¸ñ·Ï ");
        System.out.println("");
        System.out.println("¹øÈ£¸¦ ÀÔ·ÂÇÑ ÈÄ Enter Å°¸¦ ´­·¯ÁÖ¼¼¿ä .");
    }

    protected int getMaxMenuNumber() {
        return 4;
    }

    protected int getMinMenuNumber() {
        return 1;
    }

    protected void execute(int number) {
        switch (number) {
        case 1:
            // 1.Á¾·á
            System.out.println("Á¾·áµÇ¾ú½À´Ï´Ù .");
            System.exit(0);
        case 2:
            // 2.ÆÀ ¸ñ·Ï
            this.selectTeamUi.show();
            break;
        case 3:
            // 3.¼±¼ö Ãß°¡
            this.insertPlayerUi.show();
            break;
        case 4:
            // 4.¼±¼ö ¸ñ·Ï
            this.selectPlayerUi.show();
            break;
        }
    }

    public static void main(String[] args) {
        // ½ºÇÁ¸µ ¼³Á¤ ÆÄÀÏ ÀÐ±â
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        MenuUi menuUi = context.getBean(MenuUi.class);
        while (true) {
            menuUi.show();
        }
    }
}
