mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 17:22:09 +10:00
101 lines
3.0 KiB
Java
101 lines
3.0 KiB
Java
package org.diylc;
|
|
|
|
import java.io.FileInputStream;
|
|
import java.net.URL;
|
|
import java.util.Properties;
|
|
|
|
import javax.swing.JOptionPane;
|
|
import javax.swing.UIManager;
|
|
|
|
import org.apache.log4j.Logger;
|
|
import org.apache.log4j.PropertyConfigurator;
|
|
import org.diylc.appframework.miscutils.ConfigurationManager;
|
|
import org.diylc.appframework.miscutils.PropertyInjector;
|
|
import org.diylc.presenter.Presenter;
|
|
import org.diylc.swing.gui.MainFrame;
|
|
import org.diylc.swing.gui.TemplateDialog;
|
|
|
|
/**
|
|
* Main class that runs DIYLC.
|
|
*
|
|
* @author Branislav Stojkovic
|
|
*
|
|
* @see Presenter
|
|
* @see MainFrame
|
|
*/
|
|
public class DIYLCStarter {
|
|
|
|
private static final Logger LOG = Logger.getLogger(DIYLCStarter.class);
|
|
|
|
private static final String SCRIPT_RUN = "org.diylc.scriptRun";
|
|
|
|
/**
|
|
* @param args
|
|
*/
|
|
public static void main(String[] args) {
|
|
URL url = DIYLCStarter.class.getResource("log4j.properties");
|
|
Properties properties = new Properties();
|
|
try {
|
|
properties.load(url.openStream());
|
|
PropertyConfigurator.configure(properties);
|
|
} catch (Exception e) {
|
|
LOG.error("Could not initialize log4j configuration", e);
|
|
}
|
|
|
|
LOG.debug("Java version: " + System.getProperty("java.runtime.version")
|
|
+ " by " + System.getProperty("java.vm.vendor"));
|
|
LOG.debug("OS: " + System.getProperty("os.name") + " "
|
|
+ System.getProperty("os.version"));
|
|
|
|
LOG.info("Starting DIYLC with working directory "
|
|
+ System.getProperty("user.dir"));
|
|
|
|
try {
|
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
|
} catch (Exception e) {
|
|
LOG.error("Could not set Look&Feel", e);
|
|
}
|
|
|
|
String val = System.getProperty(SCRIPT_RUN);
|
|
if (!"true".equals(val)) {
|
|
int response = JOptionPane
|
|
.showConfirmDialog(
|
|
null,
|
|
"It is not recommended to run DIYLC by clicking on the diylc.jar file.\n" +
|
|
"Please use diylc.exe on Windows or run.sh on OSX/Linux to ensure the best" +
|
|
"performance and reliability. Do you want to continue?",
|
|
"DIYLC", JOptionPane.YES_NO_OPTION,
|
|
JOptionPane.WARNING_MESSAGE);
|
|
if (response != JOptionPane.YES_OPTION) {
|
|
System.exit(0);
|
|
}
|
|
}
|
|
|
|
MainFrame mainFrame = new MainFrame();
|
|
mainFrame.setLocationRelativeTo(null);
|
|
mainFrame.setVisible(true);
|
|
if (args.length > 0) {
|
|
mainFrame.getPresenter().loadProjectFromFile(args[0]);
|
|
} else {
|
|
boolean showTemplates = ConfigurationManager.getInstance()
|
|
.readBoolean(TemplateDialog.SHOW_TEMPLATES_KEY, true);
|
|
if (showTemplates) {
|
|
TemplateDialog templateDialog = new TemplateDialog(mainFrame,
|
|
mainFrame.getPresenter());
|
|
if (!templateDialog.getFiles().isEmpty()) {
|
|
templateDialog.setVisible(true);
|
|
}
|
|
}
|
|
}
|
|
|
|
properties = new Properties();
|
|
try {
|
|
LOG.info("Injecting default properties.");
|
|
properties.load(new FileInputStream("config.properties"));
|
|
PropertyInjector.injectProperties(properties);
|
|
} catch (Exception e) {
|
|
LOG.error("Could not read config.properties file", e);
|
|
}
|
|
}
|
|
}
|