package fr.free.cdmrail;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class Menu {
	
//	public static JMenu [] theMenu = null;

	// Création du menu
	// Si un menu existe déjà on le supprime
	// pframe : la fenêtre qui contient le menu
	// pmenuBar : la barre des menus
	// ptheMenu : tableau pour définir les titres des menus
//	public static void SetMenu(JFrame pframe, JMenuBar pmenuBar, JMenu [] ptheMenu) {
	public static void SetMenu(JFrame pframe) {
		JMenuBar pmenuBar = new JMenuBar();
		JMenu [] ptheMenu = new JMenu[Menu.MENU_MAIN_FR.length];
		// Si un menu existe on le supprime
		if (pframe.getMenuBar() != null) {
			// Annule la barre de menu
			pframe.setMenuBar(null);
			// Valide l'effacement
			pframe.revalidate();
			// Maj l'affichage
			pframe.repaint();
		}
		// Les titres du menu
		if (Global.whichLanguage == Global.LANGUAGE_FR) {
			// Menu en Français
			for (byte lin = 0; lin < Menu.MENU_MAIN_FR.length; lin++) {
				// Titre du menu
				ptheMenu[lin] = new JMenu(Menu.MENU_MAIN_FR[lin]);
				// Les éléments du titre
				if (Menu.MENU_MAIN_ITEMS_FR[lin].length > 0) {
					SetMenuItems(lin, ptheMenu[lin]);
				}
				// Ajout du titre à la barre des menus
				pmenuBar.add(ptheMenu[lin]);
			}
		}
		else {
			// Menu en Anglais
			for (byte lin = 0; lin < Menu.MENU_MAIN_EN.length; lin++) {
				// Titre du menu
				ptheMenu[lin] = new JMenu(Menu.MENU_MAIN_EN[lin]);
				// Les éléments du titre
				if (Menu.MENU_MAIN_ITEMS_EN[lin].length > 0) {
					SetMenuItems(lin, ptheMenu[lin]);
				}
				// Ajout du titre à la barre des menus
				pmenuBar.add(ptheMenu[lin]);
			}
		}
		// Indique la barre de menu
		pframe.setJMenuBar(pmenuBar);
	}
	
	// Création des éléments d'un titre du menu
	// pframe : la fenêtre qui contient les menus
	// plin : l'index dans le tableau MENU_MAIN_ITEMS_XX de la ligne des éléments du titre ptheMenu
	// ptheMenu : titre de menu
	// ptheMenuItems : tableau pour définir les éléments du titre
	public static void SetMenuItems(byte plin, JMenu ptheMenu) {
		if (Global.whichLanguage == Global.LANGUAGE_FR) {
			// Eléments en Français
			for (byte col = 0; col < MENU_MAIN_ITEMS_FR[plin].length; col++ ) {
				if (MENU_MAIN_ITEMS_FR[plin][col].equals("-")) {
					// C'est un séparateur
					ptheMenu.addSeparator();
				}
				else {
					ptheMenu.add(new JMenuItem(MENU_MAIN_ITEMS_FR[plin][col]));
				}			
			}
		}
		else {
			// Eléments en Anglais
			for (byte col = 0; col < MENU_MAIN_ITEMS_EN[plin].length; col++ ) {
				if (MENU_MAIN_ITEMS_EN[plin][col].equals("-")) {
					// C'est un séparateur
					ptheMenu.addSeparator();
				}
				else {
					ptheMenu.add(new JMenuItem(MENU_MAIN_ITEMS_EN[plin][col]));
				}			
			}
		}
	}
	
//	// Change la langue des menus
//	public static void SetMenuLanguage(JFrame pframe, byte planguage) {
//		// Annule la barre de menu
//		pframe.setMenuBar(null);
//		// Valide l'effacement
//		pframe.revalidate();
//		// Maj l'affichage
//		pframe.repaint();
//		
//		// Positionne la langue
//		Global.whichLanguage = planguage;
//		// Création du menu avec la langue indiquée
//		SetMenu(pframe, pframe.getMenuBar(), Menu.theMenu);
//	}

	
	// Titres des menus en Français
	public static final String[] MENU_MAIN_FR = {
		"Fichier/Réseau",
		"Edition/Réseau",
		"Affichage",
		"Trains",
		"Configuration",
		"Itinéraires",
		"Exécuter",
		"Interface",
		"Options",
		"Outils",
		"Comm./IP",
		"Fenêtre",
		"Aide",
		"..."
	};

	// Titres des menus en Anglais
	public static final String[] MENU_MAIN_EN = {
		"File/Layout",
		"Edit/Layout",
		"View",
		"Consists",
		"Configuration",
		"Routes",
		"Run",
		"Interface",
		"Options",
		"Tools",
		"Comm./IP",
		"Window",
		"Aide",
		"..."
	};
	
	// Les éléments des titres en Français
	public static final String[][] MENU_MAIN_ITEMS_FR = {
		{},
		{},
		{},
		{},
		{},
		{},
		{},
		{},
		{"Langue","-","Echelle","-","Catalogue de voies","-","Dimensions Min.","-","Affichage","-","Couleurs","Couleurs et options des voies","-",
			"Simulation","-","Run"},
		{},
		{},
		{},
		{},
		{}
	};
	
	// Les éléments des titres en Français
	public static final String[][] MENU_MAIN_ITEMS_EN = {
		{},
		{},
		{},
		{},
		{},
		{},
		{},
		{},
		{"Langue","-","Echelle","-","TRack Catalog","-","Min. Dimensions","-","Display","-","Colors","Track colors and options","-",
			"Simulation","-","Run"},
		{},
		{},
		{},
		{},
		{}
	};
}
