package com.softgraf.control;

import javafx.collections.ObservableList;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;

public class Sistema {

	final public static String TITULO;
	final public static Alert dlgErro;
	final public static Alert dlgInfo;
	final public static Alert dlgConfirma;
	
	// inicializar estático
	static {
		TITULO = "Sysfar 2.0";
		// precisa ser executado dentro do método start() do JavaFX
		dlgErro = new Alert(AlertType.WARNING);
		dlgErro.setTitle(TITULO);
		
		dlgInfo = new Alert(AlertType.INFORMATION);
		dlgInfo.setTitle(TITULO);
		
		dlgConfirma = new Alert(AlertType.CONFIRMATION);
		dlgConfirma.setTitle(TITULO);
	}
	
	public static void showException(String msgErro, Exception e){
		dlgErro.setHeaderText(msgErro);
		dlgErro.setContentText(e.getMessage());
		dlgErro.showAndWait();
	}
	
	
	// retorna um submenu a partir do painel principal
	public static MenuItem findMenuItem(String nomeMenu, String nomeSubmenu){
		// obtem a lista de todos os itens do painel principal
		ObservableList<Node> lista = Principal.palco.getScene()
									.getRoot().getChildrenUnmodifiable();
		MenuItem menuItem = null;
		
		rotuloFor:
		for (Node node : lista){  // para cada item do painel principal
			if (node instanceof MenuBar){
				MenuBar barra = (MenuBar) node;
				ObservableList<Menu> menus = barra.getMenus();
				for (Menu menu : menus){  // todos os menus
					// Ex.: se menu = Cadastrar
					if (menu.getText().equalsIgnoreCase(nomeMenu)){
						// obtém a lista de submenus
						ObservableList<MenuItem> itens = menu.getItems();
						for (MenuItem itemMenu : itens){
							// Ex.: se submenu = Cliente
							if (itemMenu.getText().equalsIgnoreCase(nomeSubmenu)){
								menuItem = itemMenu;
								break rotuloFor;
							}
							
						}
					}
				}
				
			}	
		}
		
		return menuItem;
	}

}
