mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 17:22:09 +10:00
patch for mac-specific file handler
This commit is contained in:
@@ -14,6 +14,7 @@
|
|||||||
<classpathentry kind="lib" path="lib/balloontip-1.2.4.1.jar"/>
|
<classpathentry kind="lib" path="lib/balloontip-1.2.4.1.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/jep-2.4.1.jar"/>
|
<classpathentry kind="lib" path="lib/jep-2.4.1.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/poi-3.5-FINAL-20090928.jar"/>
|
<classpathentry kind="lib" path="lib/poi-3.5-FINAL-20090928.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/AppleJavaExtensions.jar"/>
|
||||||
<classpathentry combineaccessrules="false" kind="src" path="/diylc-core"/>
|
<classpathentry combineaccessrules="false" kind="src" path="/diylc-core"/>
|
||||||
<classpathentry kind="lib" path="lib/xstream-1.4.3.jar"/>
|
<classpathentry kind="lib" path="lib/xstream-1.4.3.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/java-http-proxy.jar"/>
|
<classpathentry kind="lib" path="lib/java-http-proxy.jar"/>
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import org.apache.log4j.Logger;
|
|||||||
import org.apache.log4j.PropertyConfigurator;
|
import org.apache.log4j.PropertyConfigurator;
|
||||||
import org.diylc.appframework.miscutils.ConfigurationManager;
|
import org.diylc.appframework.miscutils.ConfigurationManager;
|
||||||
import org.diylc.appframework.miscutils.PropertyInjector;
|
import org.diylc.appframework.miscutils.PropertyInjector;
|
||||||
|
import org.diylc.appframework.miscutils.Utils;
|
||||||
import org.diylc.common.IPlugInPort;
|
import org.diylc.common.IPlugInPort;
|
||||||
import org.diylc.core.IView;
|
import org.diylc.core.IView;
|
||||||
import org.diylc.lang.LangUtil;
|
import org.diylc.lang.LangUtil;
|
||||||
@@ -63,19 +64,19 @@ public class DIYLCStarter {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param args
|
* @param args
|
||||||
* @throws InvalidActivityException
|
* @throws InvalidActivityException
|
||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// Initialize splash screen
|
// Initialize splash screen
|
||||||
DIYLCSplash splash = null;
|
DIYLCSplash splash = null;
|
||||||
Exception splashException = null;
|
Exception splashException = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
splash = new DIYLCSplash();
|
splash = new DIYLCSplash();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println("Splash screen could not be initialized: " + e.getMessage());
|
System.out.println("Splash screen could not be initialized: " + e.getMessage());
|
||||||
splashException = e;
|
splashException = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
URL url = DIYLCStarter.class.getResource("log4j.properties");
|
URL url = DIYLCStarter.class.getResource("log4j.properties");
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
@@ -87,12 +88,12 @@ public class DIYLCStarter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ConfigurationManager.initialize("diylc");
|
ConfigurationManager.initialize("diylc");
|
||||||
|
|
||||||
// disable HIGHLIGHT_CONTINUITY_AREA config, keep it transient
|
// disable HIGHLIGHT_CONTINUITY_AREA config, keep it transient
|
||||||
ConfigurationManager.getInstance().writeValue(IPlugInPort.HIGHLIGHT_CONTINUITY_AREA, false);
|
ConfigurationManager.getInstance().writeValue(IPlugInPort.HIGHLIGHT_CONTINUITY_AREA, false);
|
||||||
|
|
||||||
LOG.info("Loading languages...");
|
LOG.info("Loading languages...");
|
||||||
|
|
||||||
LangUtil.configure();
|
LangUtil.configure();
|
||||||
|
|
||||||
LOG.debug("Java version: " + System.getProperty("java.runtime.version") + " by "
|
LOG.debug("Java version: " + System.getProperty("java.runtime.version") + " by "
|
||||||
@@ -106,20 +107,22 @@ public class DIYLCStarter {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.error("Could not set Look&Feel", e);
|
LOG.error("Could not set Look&Feel", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
Thread fontThread = new Thread(new Runnable() {
|
Thread fontThread = new Thread(new Runnable() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
LOG.debug("Starting font pre-loading");
|
LOG.debug("Starting font pre-loading");
|
||||||
|
|
||||||
File[] fonts = ResourceLoader.getFiles("fonts");
|
File[] fonts = ResourceLoader.getFiles("fonts");
|
||||||
|
|
||||||
if (fonts != null)
|
if (fonts != null)
|
||||||
for (int i = 0; i < fonts.length; i++) {
|
for (int i = 0; i < fonts.length; i++) {
|
||||||
try {
|
try {
|
||||||
LOG.info("Dynamically loading font: " + fonts[i].getName());
|
LOG.info("Dynamically loading font: " + fonts[i].getName());
|
||||||
Font customFont = Font.createFont(Font.TRUETYPE_FONT, new File(fonts[i].getAbsolutePath())).deriveFont(12f);
|
Font customFont =
|
||||||
|
Font.createFont(Font.TRUETYPE_FONT, new File(fonts[i].getAbsolutePath()))
|
||||||
|
.deriveFont(12f);
|
||||||
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
|
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
|
||||||
// register the font
|
// register the font
|
||||||
ge.registerFont(customFont);
|
ge.registerFont(customFont);
|
||||||
@@ -129,7 +132,7 @@ public class DIYLCStarter {
|
|||||||
LOG.error("Font format error", e);
|
LOG.error("Font format error", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FontChooserComboBox box = new FontChooserComboBox();
|
FontChooserComboBox box = new FontChooserComboBox();
|
||||||
box.getPreferredSize();
|
box.getPreferredSize();
|
||||||
JPanel p = new JPanel();
|
JPanel p = new JPanel();
|
||||||
@@ -141,11 +144,11 @@ public class DIYLCStarter {
|
|||||||
|
|
||||||
String val = System.getProperty(SCRIPT_RUN);
|
String val = System.getProperty(SCRIPT_RUN);
|
||||||
if (!"true".equals(val)) {
|
if (!"true".equals(val)) {
|
||||||
int response =
|
int response = JOptionPane.showConfirmDialog(null,
|
||||||
JOptionPane.showConfirmDialog(null, "It is not recommended to run DIYLC by clicking on the diylc.jar file.\n"
|
"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\n"
|
+ "Please use diylc.exe on Windows or run.sh on OSX/Linux to ensure the best\n"
|
||||||
+ "performance and reliability. Do you want to continue?", "DIYLC", JOptionPane.YES_NO_OPTION,
|
+ "performance and reliability. Do you want to continue?",
|
||||||
JOptionPane.WARNING_MESSAGE);
|
"DIYLC", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
|
||||||
if (response != JOptionPane.YES_OPTION) {
|
if (response != JOptionPane.YES_OPTION) {
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
}
|
}
|
||||||
@@ -153,33 +156,37 @@ public class DIYLCStarter {
|
|||||||
|
|
||||||
MainFrame mainFrame = new MainFrame();
|
MainFrame mainFrame = new MainFrame();
|
||||||
Presenter presenter = mainFrame.getPresenter();
|
Presenter presenter = mainFrame.getPresenter();
|
||||||
// mainFrame.setLocationRelativeTo(null);
|
// mainFrame.setLocationRelativeTo(null);
|
||||||
|
|
||||||
if (splash == null) {
|
if (splash == null) {
|
||||||
LOG.warn("Splash screen could not be initialized", splashException);
|
LOG.warn("Splash screen could not be initialized", splashException);
|
||||||
} else {
|
} else {
|
||||||
splash.setVisible(false);
|
splash.setVisible(false);
|
||||||
splash.dispose();
|
splash.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
mainFrame.setVisible(true);
|
mainFrame.setVisible(true);
|
||||||
|
|
||||||
SwingUtilities.invokeLater(() -> {
|
// assign open file handler for Mac
|
||||||
Application.getApplication().setOpenFileHandler((AppEvent.OpenFilesEvent ofe) -> {
|
if (Utils.isMac()) {
|
||||||
List<File> files = ofe.getFiles();
|
SwingUtilities.invokeLater(() -> {
|
||||||
if (files != null && files.size() > 0) {
|
Application.getApplication().setOpenFileHandler((AppEvent.OpenFilesEvent ofe) -> {
|
||||||
String filePath = files.get(0).getAbsolutePath();
|
List<File> files = ofe.getFiles();
|
||||||
if (presenter.allowFileAction()) {
|
if (files != null && files.size() > 0) {
|
||||||
presenter.loadProjectFromFile(filePath);
|
String filePath = files.get(0).getAbsolutePath();
|
||||||
|
if (presenter.allowFileAction()) {
|
||||||
|
presenter.loadProjectFromFile(filePath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
if (args.length > 0) {
|
if (args.length > 0) {
|
||||||
presenter.loadProjectFromFile(args[0]);
|
presenter.loadProjectFromFile(args[0]);
|
||||||
} else {
|
} else {
|
||||||
boolean showTemplates = ConfigurationManager.getInstance().readBoolean(TemplateDialog.SHOW_TEMPLATES_KEY, false);
|
boolean showTemplates =
|
||||||
|
ConfigurationManager.getInstance().readBoolean(TemplateDialog.SHOW_TEMPLATES_KEY, false);
|
||||||
if (showTemplates) {
|
if (showTemplates) {
|
||||||
TemplateDialog templateDialog = new TemplateDialog(mainFrame, mainFrame.getPresenter());
|
TemplateDialog templateDialog = new TemplateDialog(mainFrame, mainFrame.getPresenter());
|
||||||
if (!templateDialog.getFiles().isEmpty()) {
|
if (!templateDialog.getFiles().isEmpty()) {
|
||||||
@@ -199,12 +206,12 @@ public class DIYLCStarter {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.error("Could not read config.properties file", e);
|
LOG.error("Could not read config.properties file", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ConfigurationManager.getInstance().isFileWithErrors())
|
if (ConfigurationManager.getInstance().isFileWithErrors())
|
||||||
mainFrame.showMessage("<html>"
|
mainFrame.showMessage("<html>"
|
||||||
+ "There was an error reading the configuration file and it was replaced by a default configuration.<br>"
|
+ "There was an error reading the configuration file and it was replaced by a default configuration.<br>"
|
||||||
+ "The backup file is created and placed in user directory under '.diylc' sub-directory with '~' at the end.<br>"
|
+ "The backup file is created and placed in user directory under '.diylc' sub-directory with '~' at the end.<br>"
|
||||||
+ "This can happen when running two versions of DIYLC on the same machine at the same time.<br>"
|
+ "This can happen when running two versions of DIYLC on the same machine at the same time.<br>"
|
||||||
+ "Replace the main 'config.xml' file with the backup when running the latest version of DIYLC."
|
+ "Replace the main 'config.xml' file with the backup when running the latest version of DIYLC."
|
||||||
+ "</html>", "Warning", IView.WARNING_MESSAGE);
|
+ "</html>", "Warning", IView.WARNING_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user