/*
* SKCraft Launcher
* Copyright (C) 2010-2014 Albert Pham <http://www.sk89q.com> and contributors
* Please see LICENSE.txt for license information.
*/
package com.skcraft.launcher;
import com.google.common.base.Supplier;
import com.skcraft.launcher.swing.SwingHelper;
import lombok.extern.java.Log;
import javax.swing.*;
import java.awt.*;
import java.util.logging.Level;
@Log
public class FancyLauncher {
public static void main(final String[] args) {
Launcher.setupLogger();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
Thread.currentThread().setContextClassLoader(FancyLauncher.class.getClassLoader());
UIManager.getLookAndFeelDefaults().put("ClassLoader", FancyLauncher.class.getClassLoader());
UIManager.getDefaults().put("SplitPane.border", BorderFactory.createEmptyBorder());
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
System.setProperty("sun.awt.noerasebackground", "true");
System.setProperty("substancelaf.windowRoundedCorners", "false");
if (!SwingHelper.setLookAndFeel("com.skcraft.launcher.skin.LauncherLookAndFeel")) {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
Launcher launcher = Launcher.createFromArguments(args);
launcher.setMainWindowSupplier(new CustomWindowSupplier(launcher));
launcher.showLauncherWindow();
} catch (Throwable t) {
log.log(Level.WARNING, "Load failure", t);
SwingHelper.showErrorDialog(null, "Uh oh! The updater couldn't be opened because a " +
"problem was encountered.", "Launcher error", t);
}
}
});
}
private static class CustomWindowSupplier implements Supplier<Window> {
private final Launcher launcher;
private CustomWindowSupplier(Launcher launcher) {
this.launcher = launcher;
}
@Override
public Window get() {
return new FancyLauncherFrame(launcher);
}
}
}