From 868cf0bd1507e2d5165f2d17adab4cf0209bd6ef Mon Sep 17 00:00:00 2001 From: hades Date: Wed, 12 May 2021 10:35:52 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-52085=20=E8=A3=85=E6=9C=89=E8=80=81?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=9A=84=E6=96=B0=E8=87=AA=E9=80=82=E5=BA=94?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=20frm=E6=97=A0=E6=B3=95=E6=89=93=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/app/FormApp.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/app/FormApp.java b/designer-realize/src/main/java/com/fr/design/mainframe/app/FormApp.java index 05454fcbe..02692c991 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/app/FormApp.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/app/FormApp.java @@ -18,6 +18,7 @@ import com.fr.exception.TplLockedException; import com.fr.file.FILE; import com.fr.form.main.Form; import com.fr.form.ui.container.WBorderLayout; +import com.fr.general.ComparatorUtils; import com.fr.log.FineLoggerFactory; import com.fr.stable.Constants; import com.fr.stable.bridge.StableFactory; @@ -57,20 +58,33 @@ class FormApp extends AbstractAppProvider { @Override public JTemplate call() throws Exception { OpenResult result = worker.getResult(); - return (JTemplate) StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, - new Object[]{result.getBaseBook(), tplFile, result.getRef()}, classType, BaseJForm.class); + return compatibleForm(result.getBaseBook(), result.getRef(), tplFile, classType); } }); FineLoggerFactory.getLogger().info(Toolkit.i18nText("Fine-Design_Report_Template_Opening_And_Waiting", tplFile.getName()) + "..."); worker.start(tplFile.getPath()); OpenResult result = worker.getResult(); if (result != null) { - return (JTemplate) StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, - new Object[]{result.getBaseBook(), tplFile, new Parameter[0]}, classType, BaseJForm.class); + return compatibleForm(result.getBaseBook(), new Parameter[0], tplFile, classType); } return emptyForm; } + /** + * 兼容外部注册的frm类型 + * + * @return + */ + private JTemplate compatibleForm(Form form, Parameter[] parameters, FILE tplFile, HashMap classType) { + if (ComparatorUtils.equals(StableFactory.getRegisteredClass(BaseJForm.XML_TAG).getName(), JForm.class)) { + return (JTemplate) StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, + new Object[]{form, tplFile, parameters}, classType, BaseJForm.class); + } else { + return (JTemplate) StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, + new Object[]{form, tplFile}, classType, BaseJForm.class); + } + } + @Override public Form asIOFile(FILE file) {