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 c856f4fd3..e1433119b 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) { @@ -1926,10 +1930,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()); 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 2e0fc5c38..47cf1bcdd 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(); } }