From 04515054c110d04d890e277a3e013f2ed228b45b Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 29 Jun 2022 09:48:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?REPORT-67316=20=E5=86=B3=E7=AD=96=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8-=E5=AE=A2=E6=88=B7=E6=A8=A1=E6=9D=BF=E6=98=AF?= =?UTF-8?q?=E7=BB=9D=E5=AF=B9=E5=B8=83=E5=B1=80=E5=9B=BA=E5=AE=9A=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E7=9A=84=EF=BC=8C=E5=A4=8D=E5=88=B6=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E9=87=8C=E7=9A=84tab=E5=88=B0=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E6=96=B0=E5=BB=BA=E7=9A=84=E7=BB=9D=E5=AF=B9=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E5=9B=BA=E5=AE=9A=E5=A4=A7=E5=B0=8Ffrm=EF=BC=8C?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E5=85=B3=E9=97=AD=E5=86=8D=E6=89=93=E5=BC=80?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E6=A8=A1=E6=9D=BF=EF=BC=8Ctab=E4=B8=8B?= =?UTF-8?q?=E7=9A=84=E6=8A=A5=E8=A1=A8=E5=9D=97=E5=B0=BA=E5=AF=B8=E5=8F=98?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/XCreatorUtils.java | 18 ++++++++++++++++++ .../cardlayout/XWCardMainBorderLayout.java | 5 +++++ .../java/com/fr/design/mainframe/FormArea.java | 18 +++--------------- .../design/mainframe/FormSelectionUtils.java | 4 ++++ 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java b/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java index 6445e001b..338f40643 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XCreatorUtils.java @@ -401,4 +401,22 @@ public class XCreatorUtils { } return container; } + + /** + * 循环遍历组件,调整组件间隙 + * @param creator + */ + //循环遍历布局,按百分比调整子组件大小 + public static void traverAndAdjust(XCreator creator, double percent) { + for (int i = 0; i < creator.getComponentCount(); i++) { + Object object = creator.getComponent(i); + if (object instanceof XCreator) { + XCreator temp = (XCreator) object; + temp.adjustCompSize(percent); + traverAndAdjust(temp, percent); + } + } + + } + } \ No newline at end of file diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index 0db348a39..31fc59d98 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -472,4 +472,9 @@ public class XWCardMainBorderLayout extends XWBorderLayout { public void setShowOuterShadowBorder(boolean showOuterShadowBorder) { this.showOuterShadowBorder = showOuterShadowBorder; } + + @Override + public void recalculateChildrenSize() { + + } } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormArea.java b/designer-form/src/main/java/com/fr/design/mainframe/FormArea.java index 23e08e5cf..236843f0a 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormArea.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormArea.java @@ -5,6 +5,7 @@ import com.fr.common.inputevent.InputEventBaseOnOS; import com.fr.design.designer.beans.events.DesignerEditListener; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWBorderLayout; import com.fr.design.designer.creator.XWFitLayout; @@ -428,7 +429,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent { if (root.acceptType(XWFitLayout.class)) { XWFitLayout layout = (XWFitLayout) root; layout.setContainerPercent(value / DEFAULT_SLIDER); - traverAndAdjust(layout, percent); + XCreatorUtils.traverAndAdjust(layout, percent); layout.adjustCreatorsWhileSlide(percent); // 拖动滑块,先将内部组件百分比大小计算,再计算容器大小 @@ -464,7 +465,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent { if (root.acceptType(XWFitLayout.class)) { XWFitLayout layout = (XWFitLayout) root; layout.setContainerPercent(1.0); - traverAndAdjust(layout, 0.0); + XCreatorUtils.traverAndAdjust(layout, 0.0); layout.adjustCreatorsWhileSlide(0.0); // 拖动滑块,先将内部组件百分比大小计算,再计算容器大小 @@ -487,19 +488,6 @@ public class FormArea extends JComponent implements ScrollRulerComponent { } } - //循环遍历布局,按百分比调整子组件大小 - private void traverAndAdjust(XCreator creator, double percent) { - for (int i = 0; i < creator.getComponentCount(); i++) { - Object object = creator.getComponent(i); - if (object instanceof XCreator) { - XCreator temp = (XCreator) object; - temp.adjustCompSize(percent); - traverAndAdjust(temp, percent); - } - } - - } - /** * 增加刻度条 */ diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormSelectionUtils.java b/designer-form/src/main/java/com/fr/design/mainframe/FormSelectionUtils.java index 7d3b17f5b..257ec423a 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormSelectionUtils.java @@ -16,6 +16,7 @@ import com.fr.design.designer.creator.XWTitleLayout; import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.fun.FormWidgetOptionProvider; import com.fr.design.utils.ComponentUtils; +import com.fr.design.utils.gui.LayoutUtils; import com.fr.form.main.Form; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WTitleLayout; @@ -291,6 +292,9 @@ public class FormSelectionUtils { public static XCreator copyXcreator(Form form, XCreator xCreator) throws CloneNotSupportedException{ Widget copied = (Widget) xCreator.toData().clone(); XCreator copiedCreator = XCreatorUtils.createXCreator(copied, xCreator.getSize()); + //主要用来处理组件间隔和padding,保证界面上展示的组件尺寸是计算过padding和组件间隔的 + LayoutUtils.layoutContainer(copiedCreator); + XCreatorUtils.traverAndAdjust(copiedCreator, 0.0); ArrayList nameSpace = new ArrayList<>(); copyWidgetName(form, nameSpace, copiedCreator); return copiedCreator; From 66ae55f8ddd08cc32ebbfdf73d022cdb51d66c39 Mon Sep 17 00:00:00 2001 From: rinoux Date: Wed, 29 Jun 2022 19:25:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?REPORT-74603=20=E5=B5=8C=E5=85=A5=E5=BC=8F?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E7=9A=84=E9=99=90=E5=88=B6=E8=AE=BF?= =?UTF-8?q?=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/data/datapane/connect/ConnectionListPane.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java index 0336c1ce0..3e03e6a5d 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -1,5 +1,6 @@ package com.fr.design.data.datapane.connect; +import com.fr.base.TemplateUtils; import com.fr.data.core.db.JDBCSecurityChecker; import com.fr.data.impl.Connection; import com.fr.data.impl.JDBCDatabaseConnection; @@ -195,7 +196,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh Connection connection = entry.getValue(); if (connection instanceof JDBCDatabaseConnection) { try { - JDBCSecurityChecker.checkURL(((JDBCDatabaseConnection) connection).getURL()); + JDBCSecurityChecker.checkURL(TemplateUtils.render(((JDBCDatabaseConnection) connection).getURL())); JDBCSecurityChecker.checkValidationQuery(((JDBCDatabaseConnection) connection).getDbcpAttr().getValidationQuery()); } catch (SQLException e) { throw new SQLException(Toolkit.i18nText("Fine-Design_Basic_Database_Connection_Invalid_Config", entry.getKey()) + ", " + e.getMessage(), e.getCause());