From b9d9b8960f07075319e6cb1d88bd4cef80a6e380 Mon Sep 17 00:00:00 2001 From: Starryi Date: Wed, 15 Jun 2022 18:01:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-73670=20=E6=96=B0=E5=BB=BA=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E8=83=8C=E6=99=AF=E6=B2=A1=E6=9C=89=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E4=B8=BB=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 对于新建模板,给Form/WorkBook应用主题的时机太晚了,导致根据数据模型 创建出来的XCreator里没有主题样式信息。 因此需要将这种场景下处理主题的时机提前到创建XCreator之前. 【改动思路】 同上 【review建议】 --- .../src/main/java/com/fr/design/mainframe/JTemplate.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index d6ceb34177..defd21444b 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -190,6 +190,10 @@ public abstract class JTemplate> public JTemplate(T t, FILE file, boolean isNewFile, Parameter[] parameters) { super(t); + if (isNewFile) { + // REPORT-58486: 必须在初始的UndoState创建前设置主题,使得初始的UndoState就包含了主题效果 + setUpTheme4NewTemplate(); + } beforeInit(); // 判断是否切换设计器状态到禁止拷贝剪切 if (t.getAttrMark(DesignBanCopyAttrMark.XML_TAG) != null) { @@ -1894,10 +1898,10 @@ public abstract class JTemplate> protected void setUpTheme4NewTemplate() { TemplateTheme theme = getUsingTemplateThemeConfig().cachedFetchTheme4NewTemplate(); - TemplateThemeAttrMark themeAttrMark = template.getAttrMark(TemplateThemeAttrMark.XML_TAG); + TemplateThemeAttrMark themeAttrMark = getTarget().getAttrMark(TemplateThemeAttrMark.XML_TAG); if (themeAttrMark == null) { themeAttrMark = new TemplateThemeAttrMark(); - template.addAttrMark(themeAttrMark); + getTarget().addAttrMark(themeAttrMark); } themeAttrMark.setName(theme.getName()); themeAttrMark.setDark(theme.isDark()); From 9f514db78987209976b1e83ab1c3daa3eec5b6c3 Mon Sep 17 00:00:00 2001 From: Starryi Date: Wed, 15 Jun 2022 18:17:29 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-70647=20=E8=BF=9C=E7=A8=8B=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E5=9C=BA=E6=99=AF=E4=B8=8B=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E5=86=85=E8=BE=B9=E6=A1=86=E9=85=8D=E7=BD=AE=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 远程设计场景下,无法通过RPC接口实现类的类型来判断是否可用,实际返回的都是 proxy类型对象,因此需要添加接口方法。 【改动思路】 同上 【review建议】 --- .../com/fr/design/mainframe/theme/ThemedFeatureController.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/ThemedFeatureController.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/ThemedFeatureController.java index 2e0fc5c387..47cf1bcdda 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/ThemedFeatureController.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/ThemedFeatureController.java @@ -1,7 +1,6 @@ package com.fr.design.mainframe.theme; import com.fr.workspace.WorkContext; -import com.fr.workspace.server.theme.SupportThemedCellInnerBorderFeature; import com.fr.workspace.server.theme.ThemedCellBorderFeature; /** @@ -12,6 +11,6 @@ import com.fr.workspace.server.theme.ThemedCellBorderFeature; public class ThemedFeatureController { public static boolean isCellStyleSupportInnerBorder() { ThemedCellBorderFeature controller = WorkContext.getCurrent().get(ThemedCellBorderFeature.class); - return controller instanceof SupportThemedCellInnerBorderFeature; + return controller.isSupport(); } }