diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index b0b182f5..44bf0a97 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3366,6 +3366,10 @@ NEW_FEATURE Added 'Neutrik Jack' component based on Neutrik NMJx series. Mono/Stereo and PCB/Panel mount options are available + + NEW_FEATURE + Analyze fonts in the background to identify ones that are causing slowness when editing 'Label' components and skip font preview for them to optimize performance + IMPROVEMENT Improved performance of the application when using dashed and dotted style for 'Hookup Wire' component diff --git a/diylc/diylc-swing/lib/swing-framework.jar b/diylc/diylc-swing/lib/swing-framework.jar index 4d035652..5c5c54e9 100644 Binary files a/diylc/diylc-swing/lib/swing-framework.jar and b/diylc/diylc-swing/lib/swing-framework.jar differ diff --git a/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java b/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java index 2e1b397f..44d490fa 100644 --- a/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java +++ b/diylc/diylc-swing/src/org/diylc/DIYLCStarter.java @@ -17,11 +17,7 @@ */ package org.diylc; -import java.awt.Font; -import java.awt.FontFormatException; -import java.awt.GraphicsEnvironment; import java.io.File; -import java.io.IOException; import java.lang.reflect.Field; import java.net.URL; import java.util.List; @@ -29,7 +25,6 @@ import java.util.Properties; import javax.activity.InvalidActivityException; import javax.swing.JOptionPane; -import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.UIManager; @@ -45,8 +40,7 @@ import org.diylc.presenter.Presenter; import org.diylc.serialization.ProjectFileManager; import org.diylc.swing.gui.MainFrame; import org.diylc.swing.gui.TemplateDialog; -import org.diylc.swingframework.FontChooserComboBox; -import org.diylc.utils.ResourceLoader; +import org.diylc.swingframework.fonts.FontOptimizer; import com.apple.eawt.AppEvent; import com.apple.eawt.Application; @@ -149,34 +143,10 @@ public class DIYLCStarter { @Override public void run() { - LOG.debug("Starting font pre-loading"); - - File[] fonts = ResourceLoader.getFiles("fonts"); - - if (fonts != null) - for (int i = 0; i < fonts.length; i++) { - try { - LOG.info("Dynamically loading font: " + fonts[i].getName()); - Font customFont = - Font.createFont(Font.TRUETYPE_FONT, new File(fonts[i].getAbsolutePath())) - .deriveFont(12f); - GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); - // register the font - ge.registerFont(customFont); - } catch (IOException e) { - LOG.error("Could not load font", e); - } catch (FontFormatException e) { - LOG.error("Font format error", e); - } - } - - FontChooserComboBox box = new FontChooserComboBox(); - box.getPreferredSize(); - JPanel p = new JPanel(); - box.paint(p.getGraphics()); - LOG.debug("Finished font pre-loading"); + FontOptimizer.run(ConfigurationManager.getInstance()); } }); + fontThread.setPriority(Thread.MIN_PRIORITY); fontThread.start(); String val = System.getProperty(SCRIPT_RUN); diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/FontEditor.java b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/FontEditor.java index 37195844..eeadd02a 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/editor/FontEditor.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/editor/FontEditor.java @@ -1,6 +1,6 @@ /* - DIY Layout Creator (DIYLC). +O DIY Layout Creator (DIYLC). Copyright (c) 2009-2018 held jointly by the individual authors. This file is part of DIYLC. @@ -21,16 +21,16 @@ */ package org.diylc.swing.gui.editor; -import java.awt.Color; -import java.awt.Font; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; - -import javax.swing.BorderFactory; -import javax.swing.JTextField; - -import org.diylc.common.PropertyWrapper; -import org.diylc.swingframework.FontChooserComboBox; +import java.awt.Color; +import java.awt.Font; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; + +import javax.swing.BorderFactory; +import javax.swing.JTextField; + +import org.diylc.common.PropertyWrapper; +import org.diylc.swingframework.fonts.FontChooserComboBox; import org.diylc.utils.Constants; public class FontEditor extends FontChooserComboBox {