package cz.cvut.fel.restauracefel.restauracefel.gui; import cz.cvut.fel.restauracefel.library.Enums.EnumLoginResult; import cz.cvut.fel.restauracefel.library.service.ConfigParser; import cz.cvut.fel.restauracefel.restauracefel.Controller.Controller; /** * * @author Lukáš Viezán */ public class ViewController { private static final ViewController instance = new ViewController(); private Controller controller = null; private MainFrame mainFrame = null; private ViewController() { } public static ViewController getInstance() { return instance; } /** * Zobrazení základního přihlašovacího okna */ public void run() { mainFrame = new MainFrame(); mainFrame.setVisible(true); } /** * Dotaz na ověření přihlašovacích údajů a následné zobrazení uživately * @param username * @param password * @return */ public EnumLoginResult login(String username, String password, String requestRight) { EnumLoginResult result = getController().login(username, password, requestRight); switch (result) { case ConnectionFail: mainFrame.showErrorMessage("Nelze navázat spojení se serverem.", "Chyba komunikace"); break; case ConfigFileNotFound: mainFrame.showErrorMessage("Konfigurační soubor \"" + ConfigParser.getConfigFile() + "\" nebyl nalezen.", "Chyba"); break; } return result; } /** * Zobrazení chybové hlášky * @param text popis chybové hlášky * @param title nadpis zprávy */ private void showErrorMessage(String text, String title) { if (mainFrame != null) { mainFrame.showErrorMessage(text, title); } } /** * Zobrazení chybové zprávy o nenalezeném konfiguračním souboru */ public void configFileError() { showErrorMessage("Konfigurační soubor \"" + ConfigParser.getConfigFile() + "\" nebyl nalezen.", "Chyba"); } /** * Zobrazení chybové hlášky o nepodařeném spojení s databází */ public void connectionFailedError() { showErrorMessage("Nelze navázat spojení se serverem.", "Chyba komunikace"); } /** * Zobrazení hlavní nabídky pro přihlášeného uživatele * @param username - Přihlašovací jméno uživatele */ public void showUserGate(String username) { mainFrame.showUserGate(username); } /** * Metoda pro zjištění, zda aktuálně přihlášený uživatel má potřebné oprávnění * @param right požadované oprávnění od uživatele * @return */ public boolean hasRights(String right) { return controller.hasRights(right); } /** * Odhlášení aktuálního uživatele */ public void logout() { controller.logout(); } /** * Zobrazí modul pro pokladnu */ public void showPokladna() { getController().showPokladna(); } /** * Zobrazí modul managera */ public void showManager() { getController().showManager(); } /** * Zobrazí modul storage */ public void showStorage() { getController().showStorage(); } /* Zobrazí modul pro smeny */ public void showSmeny() { getController().showSmeny(); } /** * * @return Vrací instanci hlavního Controlleru */ private Controller getController() { if (controller == null) { controller = Controller.getInstance(); } return controller; } }