diff --git a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java index 706ae7575..470f4c32d 100644 --- a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java @@ -55,9 +55,23 @@ import com.fr.stable.StableUtils; import com.fr.stable.image4j.codec.ico.ICODecoder; import com.fr.stable.project.ProjectConstants; -import javax.swing.*; +import javax.swing.Icon; +import javax.swing.JComponent; +import javax.swing.JFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenuBar; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.WindowConstants; import javax.swing.border.MatteBorder; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Graphics; +import java.awt.Insets; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Toolkit; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.dnd.DnDConstants; @@ -124,9 +138,6 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta private WindowAdapter windowAdapter = new WindowAdapter() { public void windowOpened(WindowEvent e) { - HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setComposite(); - reCalculateFrameSize(); - HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().doResize(); } @@ -259,6 +270,14 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta } } }); + this.addDesignerOpenedListener(new DesignerOpenedListener() { + @Override + public void designerOpened() { + HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setComposite(); + reCalculateFrameSize(); + HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().doResize(); + } + }); this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); this.setVisible(false); this.setExtendedState(JFrame.MAXIMIZED_BOTH); diff --git a/designer-base/src/com/fr/start/BaseDesigner.java b/designer-base/src/com/fr/start/BaseDesigner.java index 2a5f0af50..6648d9c7a 100644 --- a/designer-base/src/com/fr/start/BaseDesigner.java +++ b/designer-base/src/com/fr/start/BaseDesigner.java @@ -23,11 +23,13 @@ import com.fr.log.FineLoggerFactory; import com.fr.module.ModuleEvent; import com.fr.stable.OperatingSystem; -import java.awt.*; +import java.awt.Window; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.lang.reflect.Method; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; /** * The main class of Report Designer. @@ -51,14 +53,21 @@ public abstract class BaseDesigner extends ToolBarMenuDock { DesignerEnvManager.loadLogSetting(); createDesignerFrame(); } - - public void show(String[] args) { - - collectUserInformation(); - showDesignerFrame(args, DesignerContext.getDesignerFrame(), false); - for (int i = 0; !TemplateTreePane.getInstance().getTemplateFileTree().isTemplateShowing() && i < LOAD_TREE_MAXNUM; i++) { - TemplateTreePane.getInstance().getTemplateFileTree().refresh(); - } + + public void show(final String[] args) { + ExecutorService executorService = Executors.newSingleThreadExecutor(); + executorService.submit(new Runnable() { + @Override + public void run() { + collectUserInformation(); + showDesignerFrame(args, DesignerContext.getDesignerFrame(), false); + for (int i = 0; !TemplateTreePane.getInstance().getTemplateFileTree().isTemplateShowing() && i < LOAD_TREE_MAXNUM; i++) { + TemplateTreePane.getInstance().getTemplateFileTree().refresh(); + } + } + }); + executorService.shutdown(); + DesignerContext.getDesignerFrame().setVisible(true); } @@ -134,7 +143,6 @@ public abstract class BaseDesigner extends ToolBarMenuDock { df.getSelectedJTemplate().requestGridFocus(); } }); - df.setVisible(true); return isException; }