From 458ebdcd46b2c9c326d8dacdf11d9ec3a233dbfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=2EYing-=E5=BA=94=E5=BF=97=E6=B5=A9?= Date: Mon, 24 Apr 2023 17:32:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-94379=20=E6=8E=A7=E4=BB=B6=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=A2=9E=E5=BC=BA=E6=8F=92=E4=BB=B6=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E5=90=AF=E7=94=A8=E5=90=8E=EF=BC=8C=E9=83=A8=E5=88=86=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E6=A0=B7=E5=BC=8F=E8=AE=BE=E7=BD=AE=E6=9C=89?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../widget/ui/designer/ButtonDefinePane.java | 7 ++++--- .../ui/designer/FreeButtonDefinePane.java | 19 ++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java index 3059ddc37d..085d239826 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java @@ -35,6 +35,7 @@ public abstract class ButtonDefinePane extends AbstractDataMod protected UITextField labelNameTextField; private final List> extraPaneList = new ArrayList<>(); private JPanel extraPane; + protected boolean containsExtraPane; public ButtonDefinePane(XCreator creator){ super(creator); @@ -63,7 +64,7 @@ public abstract class ButtonDefinePane extends AbstractDataMod private void refreshAdvancedPane() { extraPaneList.clear(); - boolean containsExtraPane = false; + containsExtraPane = false; Set> providers = ExtraDesignClassManager.getInstance().getArray(WidgetAdvancedPaneProvider.XML_TAG); for (WidgetAdvancedPaneProvider provider : providers) { if (!provider.accept(creator)) { @@ -78,8 +79,6 @@ public abstract class ButtonDefinePane extends AbstractDataMod private void refreshAdvancedPane(boolean containsExtraPane) { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; - Component[] backgroundCompPane = createBackgroundComp(); - Component[] frFont = createFontPane(); double[] rowSize; double[] columnSize; int[][] rowCount; @@ -94,6 +93,8 @@ public abstract class ButtonDefinePane extends AbstractDataMod rowCount = new int[][]{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; n_components = getExtraAdvancedComponents(panel); } else { + Component[] backgroundCompPane = createBackgroundComp(); + Component[] frFont = createFontPane(); rowSize = new double[]{p, p, p, p, p, p, p, p}; columnSize = new double[]{p, f}; rowCount = new int[][]{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/FreeButtonDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/FreeButtonDefinePane.java index 843f402f01..16a31b85ed 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/FreeButtonDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/FreeButtonDefinePane.java @@ -41,10 +41,13 @@ public class FreeButtonDefinePane extends ButtonDefinePane { } public void populateSubButtonPane(FreeButton e) { + if (containsExtraPane) { + return; + } backgroundCompPane.populate(e); frFontPane.setVisible(e.isCustomStyle()); fontLabel.setVisible(e.isCustomStyle()); - if(e.isCustomStyle()){ + if (e.isCustomStyle()) { FRFont frFont = e.getFont(); if (frFont != null) { frFontPane.populateBean(e.getFont()); @@ -54,12 +57,14 @@ public class FreeButtonDefinePane extends ButtonDefinePane { public FreeButton updateSubButtonPane() { FreeButton freeButton = (FreeButton) creator.toData(); - backgroundCompPane.update(freeButton); - frFontPane.setVisible(freeButton.isCustomStyle()); - fontLabel.setVisible(freeButton.isCustomStyle()); - if(freeButton.isCustomStyle()){ - FRFont frFont = freeButton.getFont() == null ? FRFont.getInstance() : freeButton.getFont(); - freeButton.setFont(frFontPane.update(frFont)); + if (!containsExtraPane) { + backgroundCompPane.update(freeButton); + frFontPane.setVisible(freeButton.isCustomStyle()); + fontLabel.setVisible(freeButton.isCustomStyle()); + if (freeButton.isCustomStyle()) { + FRFont frFont = freeButton.getFont() == null ? FRFont.getInstance() : freeButton.getFont(); + freeButton.setFont(frFontPane.update(frFont)); + } } return freeButton; } From 988d95b631f31212f71a59b66056a37763952fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=2EYing-=E5=BA=94=E5=BF=97=E6=B5=A9?= Date: Mon, 24 Apr 2023 17:40:29 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-94379=20=E6=8E=A7=E4=BB=B6=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=A2=9E=E5=BC=BA=E6=8F=92=E4=BB=B6=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E5=90=AF=E7=94=A8=E5=90=8E=EF=BC=8C=E9=83=A8=E5=88=86=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E6=A0=B7=E5=BC=8F=E8=AE=BE=E7=BD=AE=E6=9C=89?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/widget/ui/designer/ButtonDefinePane.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java index 085d239826..6889ef7b49 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/ButtonDefinePane.java @@ -79,6 +79,8 @@ public abstract class ButtonDefinePane extends AbstractDataMod private void refreshAdvancedPane(boolean containsExtraPane) { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; + Component[] backgroundCompPane = createBackgroundComp(); + Component[] frFont = createFontPane(); double[] rowSize; double[] columnSize; int[][] rowCount; @@ -93,8 +95,6 @@ public abstract class ButtonDefinePane extends AbstractDataMod rowCount = new int[][]{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; n_components = getExtraAdvancedComponents(panel); } else { - Component[] backgroundCompPane = createBackgroundComp(); - Component[] frFont = createFontPane(); rowSize = new double[]{p, p, p, p, p, p, p, p}; columnSize = new double[]{p, f}; rowCount = new int[][]{{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}};