try {
MainFrame f = new MainFrame("Antidote");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
AppContext context = new AppContext(f);
f.setContext(context);
/* Doing this in a block to limit scope of temps */
{
String propertiesFileName = settings.getPropertiesFile();
if (propertiesFileName != null) {
context.setPropertiesFileName(propertiesFileName);
}
/* If the props file name wasn't passed on the command line
* and instanced in AppContext above, this will attempt to load
* the default filename initialized in the AppContext
*/
if (!context.loadProperties()) {
// System.err.println("Warning: Could not load properties file " + context.getPropertiesFileName());
/* Not necessarily an error, e.g., first time Antidote has run */
/* Anyway, this is fairly well handled in AppContext already */
}
}
if(!settings.isWizardMode()) {
EventResponder resp = new EventResponder(context);
Antidote gui = new Antidote(context);
JMenuBar menu = context.getActions().createMenuBar();
f.setJMenuBar(menu);
gui.setJMenuBar(menu);
f.getContentPane().add(BorderLayout.CENTER, gui);
f.getContentPane().add(BorderLayout.NORTH,
context.getActions().createToolBar());
// Add the project selection menu.
ProjectSelectionMenu ps = new ProjectSelectionMenu(context);
ps.insertInto(menu);
// Add debugging items.
if(settings.isDebugMode()) {
context.getEventBus().addMember(
EventBus.VETOING, new EventDebugMonitor());
}
// Load a build file if one is provided.
if(settings.getBuildFile() != null) {
LoadFileCmd load = new LoadFileCmd(context);
load.setFile(new File(settings.getBuildFile()));
load.run();
}
}
else {
// We are in wizard mode. Create it.
Wizard wiz = new Wizard(new BuildData());
// XXX this is temporary for testing. Eventually
// it will launch the regular antidote screen with the
// results of the wizard.
wiz.addWizardListener(new WizardListener() {
public void finished(Object model) {
BuildData data = (BuildData) model;
System.out.println(data.createProject());
System.exit(0);
}
public void canceled() {
System.exit(0);
}
});
f.getContentPane().add(BorderLayout.CENTER, wiz);
}
ImageIcon icon =
context.getResources().loadImageIcon("icon-small.gif");
if(icon != null) {
f.setIconImage(icon.getImage());
}
else {
System.out.println("Application icon not found.");
}
// Send notice we are starting up
context.getEventBus().postEvent(
new AppStartupEvent(context));
f.pack();
f.restorePersistentSize();
f.setVisible(true);
// Send notice we are shutting down
context.getEventBus().postEvent(
new AppShutdownEvent(context));
}
catch(Exception ex) {
ex.printStackTrace();
}