JMadMain.java

package cern.accsoft.steering.jmad.gui;

import javax.swing.*;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.spi.RootLogger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Entry point for JMad as stand alone application
 */
public class JMadMain {

    private static final Logger LOGGER = LoggerFactory.getLogger(JMadMain.class);

    public static void main(String[] args) {
        configureLogger();
        setupLookAndFeel();
        JMad.createStandaloneJMad().getJMadGui().showGui();
    }

    private static void configureLogger() {
        BasicConfigurator.configure();
        RootLogger.getRootLogger().setLevel(Level.INFO);
        Thread.setDefaultUncaughtExceptionHandler((th, e) -> LOGGER
                .error("Unhandled {} in thread {}: {}", e.getClass().getSimpleName(), th.getName(), e.getMessage(), e));
    }

    private static void setupLookAndFeel() {
        try {
            for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (Exception e) {
            /* Default look and feel */
        }
    }
}