From b02e8fd991e060b30349402a9fdcf5962b0e5341 Mon Sep 17 00:00:00 2001 From: Harrison Date: Tue, 9 Aug 2022 10:30:29 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-76098=20=E3=80=90=E8=BF=AD=E4=BB=A3?= =?UTF-8?q?=E3=80=91=E3=80=90=E8=B5=B7=E5=A7=8B=E9=A1=B5=E3=80=91=E8=B5=B7?= =?UTF-8?q?=E5=A7=8B=E9=A1=B5=E5=92=8C=E7=A9=BA=E6=8A=A5=E8=A1=A8=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E9=85=8D=E7=BD=AE=E9=A1=B9=E5=9D=87=E5=BC=80=E5=90=AF?= =?UTF-8?q?=EF=BC=8C=E7=82=B9=E5=87=BB=E6=9C=80=E8=BF=91=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E6=A8=A1=E6=9D=BF=E5=90=AF=E5=8A=A8=EF=BC=8C=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=89=93=E5=BC=80=E5=AF=B9=E5=BA=94=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=20=E4=BC=98=E5=85=88=E5=88=A4=E6=96=AD=E8=B5=B7=E5=A7=8B?= =?UTF-8?q?=E9=A1=B5=EF=BC=8C=E5=86=8D=E5=88=A4=E6=96=AD=E8=80=81=E7=9A=84?= =?UTF-8?q?=E6=89=93=E5=BC=80=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/start/BaseDesigner.java | 66 ++++++++++++------- 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/designer-base/src/main/java/com/fr/start/BaseDesigner.java b/designer-base/src/main/java/com/fr/start/BaseDesigner.java index 89c928e2c..674f38168 100644 --- a/designer-base/src/main/java/com/fr/start/BaseDesigner.java +++ b/designer-base/src/main/java/com/fr/start/BaseDesigner.java @@ -38,6 +38,7 @@ import com.fr.workspace.base.WorkspaceStatus; import java.awt.Window; import java.lang.reflect.Method; +import java.util.concurrent.atomic.AtomicBoolean; /** * The main class of Report Designer. @@ -142,7 +143,33 @@ public abstract class BaseDesigner extends ToolBarMenuDock { } private boolean openFile(final DesignerFrame df, boolean isException, FILE file) { - + + AtomicBoolean isExWrapper = new AtomicBoolean(isException); + openTemplate(df, isExWrapper, file); + + if (OperatingSystem.isMacOS()) { + enableFullScreenMode(df); + } + + JTemplate selectedJTemplate = df.getSelectedJTemplate(); + if (selectedJTemplate != null) { + selectedJTemplate.requestGridFocus(); + } + return isExWrapper.get(); + } + + private void openTemplate(DesignerFrame df, AtomicBoolean isException, FILE file) { + + // 如果是起始页启动中 + if (openTemplateOnStartup(df, isException, file)) { + return; + } + + openTemplate0(df, isException, file); + } + + private void openTemplate0(DesignerFrame df, AtomicBoolean isException, FILE file) { + //启动时打开指定文件的接口 DesignerStartOpenFileProcessor processor = ExtraDesignClassManager.getInstance().getSingle(DesignerStartOpenFileProcessor.XML_TAG); // 如果插件没有,且又开启了启动时打开空文件,则使用启动时打开空文件 @@ -154,24 +181,20 @@ public abstract class BaseDesigner extends ToolBarMenuDock { if (f != null) { file = f;//避免null } else { - isException = true;//此时有文件nullpointer异常,执行打开空文件 + isException.set(true);//此时有文件nullpointer异常,执行打开空文件 } } - openTemplate(df, isException, file); - - if (OperatingSystem.isMacOS()) { - enableFullScreenMode(df); - } - - JTemplate selectedJTemplate = df.getSelectedJTemplate(); - if (selectedJTemplate != null) { - selectedJTemplate.requestGridFocus(); + if (file != null && file.exists() && !isException.get()) { + df.openTemplate(file); + } else { + df.addAndActivateJTemplate(); + // 如果没有模板,则需要确认一下 + MutilTempalteTabPane.getInstance().setTemTemplate(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); } - return isException; } - private void openTemplate(DesignerFrame df, boolean isException, FILE file) { + private boolean openTemplateOnStartup(DesignerFrame df, AtomicBoolean isException, FILE file) { boolean onStartup = DesignerStartupContext.getInstance().isSupport(); if (onStartup) { @@ -180,27 +203,20 @@ public abstract class BaseDesigner extends ToolBarMenuDock { df.addAndActivateJTemplate(); // 如果没有模板,则需要确认一下 MutilTempalteTabPane.getInstance().setTemTemplate(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); - return; + return true; } if (context.isOpenLastFile()) { - if (file != null && file.exists() && !isException) { + if (file != null && file.exists() && !isException.get()) { df.openTemplate(file); - return; + return true; } } if (context.isOpenEmpty()) { df.showEmptyJTemplate(); - return; + return true; } } - - if (file != null && file.exists() && !isException) { - df.openTemplate(file); - } else { - df.addAndActivateJTemplate(); - // 如果没有模板,则需要确认一下 - MutilTempalteTabPane.getInstance().setTemTemplate(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); - } + return false; } private void enableFullScreenMode(Window window) {