Browse Source

REPORT-55603 【10.0.18冒烟】【组件背景分离】组件复用-控件组件类插件最新jar下不显示控件大小、控件位置

【问题原因】
1. 插件控件的FormWidgetCardPane.initComponent方法在isExtraWidget后直接退出,
没有执行添加boundPane的逻辑
2. 插件控件的definePane既包含了基本属性,又包含了高级属性,FormWidgetCardPane
内部无法在基本属性和高级属性之前插入boundPane

【改动思路】
和产品沟通后确认,对于插件控件,暂时不改变右侧栏中位置*尺寸面板的位置,其余类型的内置
控件仍然需要将位置*尺寸面板放置在高级属性上方
final/10.0
Starryi 3 years ago
parent
commit
794f0630b9
  1. 21
      designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java

21
designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java

@ -150,6 +150,11 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane {
freshPropertyMode(innerCreator);
if (isExtraWidget) {
// REPORT-55603: 仅对于插件控件,将尺寸*位置面板放置在definePane下方,其余控件将尺寸*位置面板放置在definePane上方
widgetBoundPane = createWidgetBoundPane(xCreator);
if (widgetBoundPane != null) {
attriCardPane.add(widgetBoundPane, BorderLayout.CENTER);
}
return;
}
@ -187,10 +192,18 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane {
});
DataModify<Widget> definePane = rn.getDefinePane();
// 使用单独的JPane和BorderLayout.North进行包装,避免出现CENTER嵌套CENTER后,内容高度变大的情况
JPanel definePaneWrapContent = FRGUIPaneFactory.createBorderLayout_S_Pane();
definePaneWrapContent.add(definePane.toSwingComponent(), BorderLayout.NORTH);
attriCardPane.add(definePaneWrapContent, BorderLayout.CENTER);
JComponent definePaneComponent = definePane.toSwingComponent();
boolean isExtraWidget = FormWidgetDefinePaneFactoryBase.isExtraXWidget(creator.toData());
if (isExtraWidget) {
// REPORT-55603: 仅对于插件控件,将尺寸*位置面板放置在definePane下方,其余控件将尺寸*位置面板放置在definePane上方
attriCardPane.add(definePaneComponent, BorderLayout.NORTH);
} else {
// 使用单独的JPane和BorderLayout.North进行包装,避免出现CENTER嵌套CENTER后,内容高度变大的情况
JPanel definePaneWrapContent = FRGUIPaneFactory.createBorderLayout_S_Pane();
definePaneWrapContent.add(definePaneComponent, BorderLayout.NORTH);
attriCardPane.add(definePaneWrapContent, BorderLayout.CENTER);
}
currentEditorDefinePane = definePane;
}

Loading…
Cancel
Save