Browse Source

REPORT-55554 【组件背景分离】组件复用-mac上,组件标题的默认字体 和 单元格默认字体 不是一个字体;windows这边是一致的,都是宋体

【问题原因】
LayoutStyle中的默认标题字体确实和单元格的默认字体一致,但是字体控件的默认字体并不一致。

正常控件在拖拽到面板上是,会调用样式面板的LayoutStylePane.populate(LayoutBorderStyle)
方法,根据组件的样式数据,更新样式面板,所以最终样式面板中标题字体是和LayoutStyle中默认字体
一致,也就是和单元格默认字体一致。

但复用组件拖拽到面板上后,右侧栏实际上还是组件商城,需要点击一下右侧栏的组件设置按钮才能实例化
和初始化样式面板,就因为这点击了一下(设计器总体的问题,右侧栏的任何操作都被认为是UI发生了更新,
需要同步到数据模型),导致代码中调用了LayoutStylePane.update,从右侧栏的样式面板获取样式
数据,再设置到组件上,而右侧栏的字体控件默认值和单元格默认字体不一致,所以出现了问题。

【改动思路】
在字体控件实例化的时候,直接使用空的默认样式中的标题字体初始化它,保证UI和数据模型一致
final/10.0
Starryi 3 years ago
parent
commit
93f7fb7396
  1. 9
      designer-form/src/main/java/com/fr/design/gui/xpane/LayoutStylePane.java

9
designer-form/src/main/java/com/fr/design/gui/xpane/LayoutStylePane.java

@ -215,6 +215,15 @@ public class LayoutStylePane extends BasicBeanPane<LayoutBorderStyle> {
titleTextPane = new TinyFormulaPane();
titleFontFamilyComboBox = new UIComboBox(Utils.getAvailableFontFamilyNames4Report());
TitlePacker title = style.getTitle();
if (title != null) {
FRFont frFont = title.getFrFont();
if (frFont != null) {
String fontFamily = frFont.getFamily();
// 使用style中默认的字体初始化titleFontFamilyComboBox,保证UI和数据的一致性
this.titleFontFamilyComboBox.setSelectedItem(fontFamily);
}
}
titleFontFamilyComboBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_FRFont_Family"));
titleFontSizeComboBox = new UIComboBox(FRFontPane.FONT_SIZES);

Loading…
Cancel
Save