// ApplicationLauncher package org.javamoney.examples.ez.money; import static org.javamoney.examples.ez.common.utility.I18NHelper.ENGLISH; import static org.javamoney.examples.ez.common.utility.I18NHelper.getLanguage; import static org.javamoney.examples.ez.common.utility.I18NHelper.loadCommonProperties; import static org.javamoney.examples.ez.common.utility.I18NHelper.loadProperties; import static org.javamoney.examples.ez.common.utility.I18NHelper.setLanguage; import static org.javamoney.examples.ez.common.utility.LookAndFeelHelper.initializeLookAndFeel; import static javax.swing.SwingUtilities.invokeLater; import static org.javamoney.examples.ez.money.utility.DialogHelper.error; import static org.javamoney.examples.ez.money.utility.FileMapHelper.getFileMap; import static org.javamoney.examples.ez.money.utility.FileMapHelper.initializeAndCache; import static org.javamoney.examples.ez.money.utility.StartupHelper.runStartup; import java.util.Locale; import org.javamoney.examples.ez.common.utility.I18NHelper; /** * This class, instantiated by the JVM, is the entrance point for the * application. This class facilitates launching the application. All methods in * this class are static. */ public final class ApplicationLauncher { /** * This method, called by the JVM, launches the application. * * @param args The passed-in arguments (ignored). */ public static void main(final String[] args) { // Set language and load properties files. setLanguage(I18NHelper.ENGLISH); loadCommonProperties(); loadProperties(I18N_PATH); // For languages other than English, set the default locale to set the JVM's // language. if(getLanguage() != ENGLISH) { Locale.setDefault(getLanguage()); } try { doStartup(); invokeLater(new ApplicationThread()); } catch(Exception exception) { // Ignored. } } ////////////////////////////////////////////////////////////////////////////// // Start of private methods. ////////////////////////////////////////////////////////////////////////////// private static void doStartup() { // Initialize the document base and cache the project's files. initializeAndCache(); if(getFileMap().getDocumentBase().exists() == true) { try { initializeLookAndFeel(); // Load the program's data. runStartup(); } catch(Exception exception) { // Something has happened that cannot be recovered from. showFatalErrorMessage(); System.exit(1); } } else { showInitializationErrorMessage(); } } private static String getProperty(String key) { return I18NHelper.getProperty("ApplicationLauncher." + key); } private static void showFatalErrorMessage() { error(getProperty("fatal.title"), getProperty("fatal.description")); } private static void showInitializationErrorMessage() { error(getProperty("init.title"), getProperty("init.description")); } ////////////////////////////////////////////////////////////////////////////// // Start of class members. ////////////////////////////////////////////////////////////////////////////// private static final String I18N_PATH = "org/javamoney/examples/ez/money/i18n/"; }