/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ngmfconsole;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.util.logging.FileHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
/**
*
* @author od
*/
public class Main {
public static final Logger logger = Logger.getLogger("oms3.console");
static String java_home() {
String jh = System.getProperty("jh");
if (jh != null) {
return jh;
}
jh = System.getenv("JAVA_HOME");
if (jh != null) {
return jh;
}
return System.getProperty("java.home");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
Handler h = new FileHandler(System.getProperty("user.dir") + File.separatorChar + "log.txt", true);
h.setFormatter(new SimpleFormatter());
logger.setUseParentHandlers(false);
logger.addHandler(h);
try {
logger.info("Start Session");
logger.setLevel(Level.parse(System.getProperty("loglevel")));
} catch (Exception E) {
logger.warning("Not a valid log level in '-Dloglevel=???': '" + System.getProperty("loglevel") + "'");
logger.setLevel(Level.INFO);
} finally {
logger.info("Log level: " + logger.getLevel().toString());
}
logger.info("OMS version " + Utils.getOMSAppVersion());
logger.info("User dir: " + System.getProperty("user.dir"));
logger.info("OMS home: " + Console.oms3Home);
logger.info("java.home: " + java_home());
// adjust LnF
String osName = System.getProperty("os.name");
if ((osName != null) && osName.toLowerCase().startsWith("lin")) {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
} else {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
try {
String.class.getMethod("isEmpty", (Class<?>[]) null);
} catch (Exception E) {
JOptionPane.showMessageDialog(null,
"You are using an older Java version, however JDK 1.6 is needed!\nPlease install the right JDK, start again ...",
"Problem...", JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
String jh = java_home();
if (jh == null) {
JOptionPane.showMessageDialog(null,
"You need to install the latest JDK and set 'JAVA_HOME' to your JDK install directory. "
+ "\nPlease start again ...",
"Problem...", JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
if (!new File(jh).exists()) {
JOptionPane.showMessageDialog(null,
"'JAVA_HOME' (" + jh + ") does not exists. Please fix this."
+ "\nPlease start again ...",
"Problem...", JOptionPane.ERROR_MESSAGE);
System.exit(0);
}
// open window
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
final Console c = new Console();
c.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
c.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
if (JOptionPane.showConfirmDialog(c, "Exit ?", "Console", JOptionPane.YES_NO_OPTION)
== JOptionPane.YES_OPTION) {
c.savePrefs();
logger.info("Exit");
System.exit(0);
}
}
});
c.setSize(800, 600);
c.setLocationRelativeTo(null);
c.setVisible(true);
}
});
}
}