package com.github.jmchilton.jgalaxy; import com.google.common.base.Optional; import com.google.inject.Guice; import com.google.inject.Injector; public class JGalaxy { public static class InputState { private final Optional<Instance> instance; InputState(final Optional<Instance> instance) { this.instance = instance; } public Optional<Instance> getInstance() { return instance; } } public static void main(String args[]) { /* Set the Nimbus look and feel */ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(JGalaxy.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(JGalaxy.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(JGalaxy.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(JGalaxy.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } final Optional<Instance> instance; if(args.length >= 2) { instance = Optional.of(new Instance()); instance.get().setUrl(args[args.length - 2]); instance.get().setApiKey(args[args.length - 1]); } else { instance = Optional.absent(); } for(final String arg : args) { if(arg.equals("--no-check-certificate")) { System.out.println("Disabling SSL certificate checks."); Ssl.disableCertificateCheck(); } } final InputState inputState = new InputState(instance); /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { final Injector injector = Guice.createInjector(new JGalaxyModule(inputState)); final MainFrame frame = injector.getInstance(MainFrame.class); frame.setVisible(true); final Optional<Instance> instance = inputState.getInstance(); if(instance.isPresent()) { injector.getInstance(InstanceManager.class).connectNewInstance(instance.get()); } } }); } }