From 5735c343c5ee630cb67242f5fd2a4d3be583cbaf Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Fri, 7 Aug 2020 11:49:06 +0800 Subject: [PATCH 01/13] =?UTF-8?q?REPORT-36200=20=E3=80=90name63/user63?= =?UTF-8?q?=E3=80=91=E5=9C=A8=E6=8E=A7=E4=BB=B6=E5=8F=B3=E4=B8=8B=E6=96=B9?= =?UTF-8?q?=E5=A4=9A=E6=AC=A1=E5=A4=8D=E5=88=B6=EF=BC=8C=E5=B9=B6=E4=B8=8D?= =?UTF-8?q?=E4=BC=9A=E4=B8=8D=E6=96=AD=E5=90=91=E5=8F=B3=E4=B8=8B=E5=A4=8D?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/mainframe/FormSelectionUtils.java | 1 - 1 file changed, 1 deletion(-) 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 b3b07efd7..193a63235 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 @@ -115,7 +115,6 @@ public class FormSelectionUtils { FineLoggerFactory.getLogger().error(e.getMessage(), e); } } - rebuildSelection(designer); designer.getEditListenerTable().fireCreatorModified( designer.getSelectionModel().getSelection().getSelectedCreator(), DesignerEvent.CREATOR_PASTED); From 649aa6c2634c3ae10b01bd5db612bee337f27c7c Mon Sep 17 00:00:00 2001 From: rinoux Date: Fri, 7 Aug 2020 15:38:04 +0800 Subject: [PATCH 02/13] =?UTF-8?q?REPORT-37014=20=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E5=8D=B8=E8=BD=BD=E5=90=8E=E6=95=B0=E6=8D=AE=E9=9B=86=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E5=9B=BE=E6=A0=87=E8=BF=98=E5=9C=A8=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/WestRegionContainerPane.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java index 5c17d8f1a..5ff85ea9e 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java @@ -39,7 +39,11 @@ public class WestRegionContainerPane extends UIResizableContainer { @Override public void on(PluginEvent event) { - + + if (getDownPane() != null) { + replaceDownPane(TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter())); + } + setDownPane(TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter())); } }, new PluginFilter() { From d08934cdce956d34cdee11651161630f40b16168 Mon Sep 17 00:00:00 2001 From: rinoux Date: Fri, 7 Aug 2020 15:39:10 +0800 Subject: [PATCH 03/13] update --- .../java/com/fr/design/mainframe/WestRegionContainerPane.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java index 5ff85ea9e..23c642dbd 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java @@ -42,9 +42,9 @@ public class WestRegionContainerPane extends UIResizableContainer { if (getDownPane() != null) { replaceDownPane(TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter())); + } else { + setDownPane(TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter())); } - - setDownPane(TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter())); } }, new PluginFilter() { From b29ee8d713b292073ddb84d7a85d43e02dd5b150 Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Mon, 10 Aug 2020 10:49:09 +0800 Subject: [PATCH 04/13] =?UTF-8?q?REPORT-36778=20=E3=80=90=E9=85=8D?= =?UTF-8?q?=E5=90=88=E5=B9=B3=E5=8F=B0=E3=80=91=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E8=A7=84=E8=8C=83FR=E9=80=82=E9=85=8D=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/actions/help/AboutPane.java | 5 +++-- .../update/push/DesignerPushUpdateDialog.java | 2 +- .../update/push/DesignerUpdateInfo.java | 22 +++++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java b/designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java index 57e01f1ac..b1f4bad07 100644 --- a/designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java +++ b/designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java @@ -55,8 +55,9 @@ public class AboutPane extends JPanel { JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane(); centerPane.add(contentPane, BorderLayout.NORTH); + contentPane.add(new BoxCenterAligmentPane(getBuildTitle())); BoxCenterAlignmentCopyablePane buildCopyPane = new BoxCenterAlignmentCopyablePane( - getBuildTitle(), + StringUtils.EMPTY, getVersionBuildNO(), new String[]{ com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Copy_Build_NO"), @@ -204,7 +205,7 @@ public class AboutPane extends JPanel { private String getBuildTitle() { return append(ProductConstants.APP_NAME, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_About_Version"), - StringUtils.BLANK, ProductConstants.RELEASE_VERSION, BUILD_PREFIX); + StringUtils.BLANK, ProductConstants.VERSION, BUILD_PREFIX); } private JPanel getEmailActionPane(final String desc, final String mailTo) { diff --git a/designer-base/src/main/java/com/fr/design/update/push/DesignerPushUpdateDialog.java b/designer-base/src/main/java/com/fr/design/update/push/DesignerPushUpdateDialog.java index d35b1dd54..e37877a4b 100644 --- a/designer-base/src/main/java/com/fr/design/update/push/DesignerPushUpdateDialog.java +++ b/designer-base/src/main/java/com/fr/design/update/push/DesignerPushUpdateDialog.java @@ -79,7 +79,7 @@ class DesignerPushUpdateDialog extends UIDialog { private Model createModel(DesignerUpdateInfo updateInfo) { Model model = new Model(); - model.setVersion(updateInfo.getLatestVersion()); + model.setVersion(updateInfo.getLatestFullVersion()); model.setContent(updateInfo.getPushContent()); model.setMoreInfoUrl(updateInfo.getMoreInfoUrl()); model.setBackgroundUrl(updateInfo.getBackgroundUrl()); diff --git a/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java b/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java index 5d5e02a47..fda62cab2 100644 --- a/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java +++ b/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java @@ -1,7 +1,10 @@ package com.fr.design.update.push; +import com.fr.general.CloudCenter; import com.fr.general.ComparatorUtils; +import com.fr.general.http.HttpToolbox; import com.fr.json.JSONObject; +import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; import java.security.InvalidParameterException; @@ -58,6 +61,25 @@ class DesignerUpdateInfo { return latestVersion; } + String getLatestFullVersion() { + try { + String url = CloudCenter.getInstance().acquireUrlByKind("jar10.newupdate"); + if (StringUtils.isBlank(url)) { + return StringUtils.EMPTY; + } + String res = HttpToolbox.get(url); + if (StringUtils.isBlank(res)) { + return StringUtils.EMPTY; + } + String version = new JSONObject(res).optString("version"); + String build = new JSONObject(res).optString("build"); + return version + "-" + build; + } catch (Throwable e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); + } + return StringUtils.EMPTY; + } + String getLastIgnoredVersion() { return lastIgnoredVersion; } From 0bb07f8d88fe968c7ec7bf4bfa67ed420f143e6d Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Mon, 10 Aug 2020 10:51:25 +0800 Subject: [PATCH 05/13] =?UTF-8?q?REPORT-36778=20=E3=80=90=E9=85=8D?= =?UTF-8?q?=E5=90=88=E5=B9=B3=E5=8F=B0=E3=80=91=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E8=A7=84=E8=8C=83FR=E9=80=82=E9=85=8D=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/mainframe/FormSelectionUtils.java | 1 + 1 file changed, 1 insertion(+) 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 193a63235..b3b07efd7 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 @@ -115,6 +115,7 @@ public class FormSelectionUtils { FineLoggerFactory.getLogger().error(e.getMessage(), e); } } + rebuildSelection(designer); designer.getEditListenerTable().fireCreatorModified( designer.getSelectionModel().getSelection().getSelectedCreator(), DesignerEvent.CREATOR_PASTED); From 768699195bd2a73059fb1029316889255bc28907 Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Mon, 10 Aug 2020 10:56:31 +0800 Subject: [PATCH 06/13] =?UTF-8?q?REPORT-36778=20=E3=80=90=E9=85=8D?= =?UTF-8?q?=E5=90=88=E5=B9=B3=E5=8F=B0=E3=80=91=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E8=A7=84=E8=8C=83FR=E9=80=82=E9=85=8D=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/update/push/DesignerUpdateInfo.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java b/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java index fda62cab2..cf8226829 100644 --- a/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java +++ b/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java @@ -17,6 +17,8 @@ class DesignerUpdateInfo { private static final String KEY_CONTENT = "content"; private static final String KEY_BACKGROUND_URL = "background"; private static final String KEY_MORE_INFO_URL = "more"; + private static final String SPLIT_CHAR = "-"; + private final String currentVersion; // 当前版本 private final String latestVersion; // 最新版本 @@ -73,7 +75,7 @@ class DesignerUpdateInfo { } String version = new JSONObject(res).optString("version"); String build = new JSONObject(res).optString("build"); - return version + "-" + build; + return version + SPLIT_CHAR + build; } catch (Throwable e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } From 6c36a0e1c9d849514410c6d0682409197ce1d827 Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Mon, 10 Aug 2020 11:20:59 +0800 Subject: [PATCH 07/13] =?UTF-8?q?REPORT-36778=20=E3=80=90=E9=85=8D?= =?UTF-8?q?=E5=90=88=E5=B9=B3=E5=8F=B0=E3=80=91=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E8=A7=84=E8=8C=83FR=E9=80=82=E9=85=8D=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/update/push/DesignerUpdateInfo.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java b/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java index cf8226829..56e28c5fe 100644 --- a/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java +++ b/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java @@ -3,6 +3,8 @@ package com.fr.design.update.push; import com.fr.general.CloudCenter; import com.fr.general.ComparatorUtils; import com.fr.general.http.HttpToolbox; +import com.fr.json.JSON; +import com.fr.json.JSONFactory; import com.fr.json.JSONObject; import com.fr.log.FineLoggerFactory; import com.fr.stable.StringUtils; @@ -73,8 +75,9 @@ class DesignerUpdateInfo { if (StringUtils.isBlank(res)) { return StringUtils.EMPTY; } - String version = new JSONObject(res).optString("version"); - String build = new JSONObject(res).optString("build"); + JSONObject jsonObject = JSONFactory.createJSON(JSON.OBJECT, res); + String version = jsonObject.getString("version"); + String build = jsonObject.getString("build"); return version + SPLIT_CHAR + build; } catch (Throwable e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); From 81c21c6ee7ba9bc7cf1c5db96e4b06668ba3f50c Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Mon, 10 Aug 2020 13:52:44 +0800 Subject: [PATCH 08/13] =?UTF-8?q?REPORT-36778=20=E3=80=90=E9=85=8D?= =?UTF-8?q?=E5=90=88=E5=B9=B3=E5=8F=B0=E3=80=91=E7=89=88=E6=9C=AC=E5=8F=B7?= =?UTF-8?q?=E8=A7=84=E8=8C=83FR=E9=80=82=E9=85=8D=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/update/push/DesignerUpdateInfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java b/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java index 56e28c5fe..a136f279b 100644 --- a/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java +++ b/designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java @@ -67,7 +67,7 @@ class DesignerUpdateInfo { String getLatestFullVersion() { try { - String url = CloudCenter.getInstance().acquireUrlByKind("jar10.newupdate"); + String url = CloudCenter.getInstance().acquireUrlByKind("jar10.new.update"); if (StringUtils.isBlank(url)) { return StringUtils.EMPTY; } From 3aee824a90eff55de4cff4b9429a01e023fbfc60 Mon Sep 17 00:00:00 2001 From: "Henry.Wang" Date: Mon, 10 Aug 2020 15:27:40 +0800 Subject: [PATCH 09/13] =?UTF-8?q?REPORT-37041=20=E4=B8=AD=E6=96=87?= =?UTF-8?q?=E7=89=88=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=9D=A1=E4=BB=B6=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E4=B8=AD=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5=E5=92=8C?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E4=BA=8B=E4=BB=B6=E5=BC=B9=E6=A1=86=E5=B0=BA?= =?UTF-8?q?=E5=AF=B8=E5=8F=91=E7=94=9F=E5=8F=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/javascript/JSContentPane.java | 3 ++- .../main/java/com/fr/design/condition/HyperlinkPane.java | 4 +--- .../java/com/fr/design/condition/WidgetHighlightPane.java | 6 ++---- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java b/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java index 2ca2d6e66..10e11c8fb 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java @@ -31,6 +31,7 @@ public class JSContentPane extends BasicPane { private RSyntaxTextArea contentTextArea; private UILabel funNameLabel; private AutoCompletion ac; + private static final Dimension FUNCTION_NAME_LABEL_SIZE = new Dimension(300, 80); private int titleWidth = 180; @@ -68,7 +69,7 @@ public class JSContentPane extends BasicPane { JPanel jsParaPane = new JPanel(new BorderLayout(4, 4)); jsParaPane.setPreferredSize(new Dimension(300, 80)); UIScrollPane scrollPane = new UIScrollPane(funNameLabel); - scrollPane.setPreferredSize(new Dimension(400, 80)); + scrollPane.setPreferredSize(FUNCTION_NAME_LABEL_SIZE); scrollPane.setBorder(new UIRoundedBorder(UIConstants.TITLED_BORDER_COLOR, 1, UIConstants.ARC)); jsParaPane.add(scrollPane, BorderLayout.WEST); jsParaPane.add(label, BorderLayout.EAST); diff --git a/designer-realize/src/main/java/com/fr/design/condition/HyperlinkPane.java b/designer-realize/src/main/java/com/fr/design/condition/HyperlinkPane.java index 1df652a84..643ad7890 100644 --- a/designer-realize/src/main/java/com/fr/design/condition/HyperlinkPane.java +++ b/designer-realize/src/main/java/com/fr/design/condition/HyperlinkPane.java @@ -15,7 +15,6 @@ import com.fr.report.cell.cellattr.highlight.HighlightAction; import com.fr.report.cell.cellattr.highlight.HyperlinkHighlightAction; import javax.swing.*; -import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -31,7 +30,6 @@ public class HyperlinkPane extends ConditionAttrSingleConditionPane { private static final int DIALOG_WIDTH = 700; private static final int DIALOG_HEIGHT = 400; - private static final Dimension WINDOW_CUSTOM_SIZE = new Dimension(720, 600); private Widget widget; private UIComboBox box; @@ -48,7 +45,8 @@ public class WidgetHighlightPane extends ConditionAttrSingleConditionPane Date: Mon, 10 Aug 2020 15:44:00 +0800 Subject: [PATCH 10/13] =?UTF-8?q?REPORT-36612=20&&=20REPORT-37010=20&&=20R?= =?UTF-8?q?EPORT-37062=20=E7=BC=A9=E6=94=BE=E9=AA=8C=E6=94=B6bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/FormArea.java | 2 +- .../com/fr/design/mainframe/FormDesigner.java | 19 ++++++++++++++++++- .../fr/design/mainframe/FormDesignerUI.java | 7 ------- .../mainframe/ReportComponentComposite.java | 2 +- .../form/FormReportComponentComposite.java | 2 +- 5 files changed, 21 insertions(+), 11 deletions(-) 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 05edb3192..967cabd06 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 @@ -117,7 +117,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent { addFormRuler(); } this.setFocusTraversalKeysEnabled(false); - this.addMouseWheelListener(showValSpinnerMouseWheelListener); + this.designer.addMouseWheelListener(showValSpinnerMouseWheelListener); registerShortCutKey(); } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java index b7d8a9a4c..b138e3b35 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java @@ -83,10 +83,12 @@ import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.MouseEvent; +import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; @@ -993,7 +995,7 @@ public class FormDesigner extends TargetComponent
implements TreeSelection @Nullable public XCreator getComponentAt(int x, int y, XCreator[] except) { - XLayoutContainer container = y + this.getPaintY() < paraHeight - formArea.getVerticalValue() ? paraComponent : rootComponent; + XLayoutContainer container = y < paraHeight - formArea.getVerticalValue() ? paraComponent : rootComponent; if (container == null) { container = rootComponent; } @@ -1281,6 +1283,21 @@ public class FormDesigner extends TargetComponent implements TreeSelection this.formArea = formArea; } + + + public void paint(Graphics g){ + //重新设置下绘制的起点和缩放幅度 + AffineTransform at = new AffineTransform(); + if (rootComponent.getParent() != null) { + at.translate(this.getPaintX(), this.getPaintY()); + at.scale(this.getScale(), this.getScale()); + Graphics2D g2 = (Graphics2D) g; + g2.transform(at); + } + super.paint(g); + } + + /** * 绘制组件根节点 * diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java b/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java index 404a0fd13..ee49cd66e 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java @@ -68,13 +68,6 @@ public class FormDesignerUI extends ComponentUI { public void paint(final Graphics g, JComponent c) { XCreator rootComponent = designer.getRootComponent(); this.time = (float) designer.getResolution() / ScreenResolution.getScreenResolution(); - AffineTransform at = new AffineTransform(); - if (rootComponent.getParent() != null) { - at.translate(designer.getPaintX(), designer.getPaintY()); - at.scale(designer.getScale(), designer.getScale()); - Graphics2D g2 = (Graphics2D) g; - g2.transform(at); - } if (rootComponent != null) { // 设计自适应界面 repaintFit(g, rootComponent, c); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java b/designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java index 4b74ab4dd..84ae83838 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java @@ -35,7 +35,7 @@ public class ReportComponentComposite extends JComponent implements RemoveListen private static final int MAX = 400; private static final int HUND = 100; private static final int MIN = 10; - private static final int DIR = 15; + private static final int DIR = 10; private JWorkBook parent; private UIModeControlContainer parentContainer = null; diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormReportComponentComposite.java b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormReportComponentComposite.java index d173762b4..cf64757c2 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormReportComponentComposite.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormReportComponentComposite.java @@ -35,7 +35,7 @@ public class FormReportComponentComposite extends JComponent implements TargetMo private static final int MAX = 400; private static final int HUND = 100; private static final int MIN = 10; - private static final int DIR = 15; + private static final int DIR = 10; private static final double MIN_TIME = 0.4; public FormElementCaseDesigner elementCaseDesigner; private BaseJForm jForm; From a70193f6fa45c4afce86299ffeeacaeff24a5cf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Mon, 10 Aug 2020 16:05:02 +0800 Subject: [PATCH 11/13] CHART-15034 && CHART-14688 && CHART-15019 bugfix --- .../java/com/fr/design/chart/ChartIcon.java | 6 +- .../chart/gui/data/ChartDataFilterPane.java | 8 +- .../range/component/LegendGradientBar.java | 159 ++++++++---------- .../design/cell/editor/ChartCellEditor.java | 16 +- .../design/cell/editor/ChartFloatEditor.java | 17 +- 5 files changed, 78 insertions(+), 128 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/design/chart/ChartIcon.java b/designer-chart/src/main/java/com/fr/design/chart/ChartIcon.java index 4d4a6ed43..16e13db70 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/ChartIcon.java +++ b/designer-chart/src/main/java/com/fr/design/chart/ChartIcon.java @@ -3,8 +3,8 @@ package com.fr.design.chart; import com.fr.base.chart.BaseChartPainter; import com.fr.base.chart.chartdata.CallbackEvent; import com.fr.base.chart.result.WebChartIDInfo; -import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; +import com.fr.chartx.attr.ChartProvider; import com.fr.design.ChartTypeInterfaceManager; import com.fr.design.file.HistoryTemplateListCache; import com.fr.script.Calculator; @@ -57,8 +57,8 @@ public class ChartIcon implements Icon, XMLable { } private void initChartName() { - Chart chart = chartCollection.getSelectedChart(Chart.class); - String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(chart.getPlot().getPlotID()); + ChartProvider chart = chartCollection.getSelectedChartProvider(ChartProvider.class); + String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(chart.getID()); chartName = subName[0]; } diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/ChartDataFilterPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/ChartDataFilterPane.java index fcd101fb1..c24a19244 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/ChartDataFilterPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/ChartDataFilterPane.java @@ -7,9 +7,9 @@ import com.fr.chart.chartattr.Plot; import com.fr.chart.chartdata.TopDefinition; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; import com.fr.design.gui.icheckbox.UICheckBox; -import com.fr.design.i18n.Toolkit; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; +import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.style.AbstractChartTabPane; @@ -21,12 +21,12 @@ import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import java.util.ArrayList; +import java.util.List; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; -import java.util.ArrayList; -import java.util.List; /** * 图表数据 分类 系列 过滤界面. @@ -37,7 +37,7 @@ import java.util.List; public class ChartDataFilterPane extends ThirdTabPane { private static final long serialVersionUID = 3650522989381790194L; private static final int PAN_WIDTH = 246; - private static final int FIL_HEIGHT = 150; + private static final int FIL_HEIGHT = 200; private CategoryFilterPane categoryPane; private SeriesFilterPane seriesPane; diff --git a/designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java b/designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java index 6b09d4e1b..8401f86a9 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java +++ b/designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java @@ -7,7 +7,6 @@ import com.fr.design.event.UIObserverListener; import com.fr.design.mainframe.DesignerContext; import com.fr.design.style.background.gradient.SelectColorPointBtn; import com.fr.design.style.color.ColorCell; -import com.fr.design.style.color.ColorSelectConfigManager; import com.fr.design.style.color.ColorSelectDetailPane; import com.fr.design.style.color.ColorSelectDialog; import com.fr.design.style.color.ColorSelectable; @@ -18,6 +17,9 @@ import com.fr.stable.AssistUtils; import javax.swing.JComponent; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.awt.Color; import java.awt.Cursor; import java.awt.Dimension; @@ -27,9 +29,6 @@ import java.awt.LinearGradientPaint; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.Point2D; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; public class LegendGradientBar extends JComponent implements ColorSelectable, UIObserver { @@ -75,11 +74,11 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI private List changeListenerList = new ArrayList(); - public LegendGradientBar(){ + public LegendGradientBar() { startPos = 4; endPos = max; - setSubColor(new Color(36,167,255)); + setSubColor(new Color(36, 167, 255)); setColorSelectionBtnNum(2 + 1); @@ -117,10 +116,10 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI private float[] initDist(int colorSelectionBtnNum) { float[] dist = new float[colorSelectionBtnNum]; dist[0] = 0f; - for (int i = 0; i < colorSelectionBtnNum-2; i++) { - dist[i+1] = (float) ((selectColorPointBtnList.get(i).getX() - 4) / (max - 4)); + for (int i = 0; i < colorSelectionBtnNum - 2; i++) { + dist[i + 1] = (float) ((selectColorPointBtnList.get(i).getX() - 4) / (max - 4)); } - dist[colorSelectionBtnNum-1] = 1f; + dist[colorSelectionBtnNum - 1] = 1f; return dist; } @@ -141,8 +140,8 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI private Color[] initColors(Color subColor, int colorSelectionBtnNum) { Color[] converseColors = getColorArray(subColor, colorSelectionBtnNum); Color[] colors = new Color[colorSelectionBtnNum]; - for (int i = 0; i < colorSelectionBtnNum; i++){ - colors[i] = converseColors[colorSelectionBtnNum-1 - i]; + for (int i = 0; i < colorSelectionBtnNum; i++) { + colors[i] = converseColors[colorSelectionBtnNum - 1 - i]; } return colors; } @@ -150,30 +149,32 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI private void initColorSelectBtn(Color[] colors, int colorSelectionBtnNum) { //获取按钮颜色数组 Color startSlotColor = colors[0]; - Color endSlotColor = colors[colorSelectionBtnNum-1]; + Color endSlotColor = colors[colorSelectionBtnNum - 1]; Color[] pColors = new Color[colorSelectionBtnNum - 2]; - for (int i = 0; i < pColors.length; i++){ + for (int i = 0; i < pColors.length; i++) { pColors[i] = colors[i + 1]; } - selectColorSlotBtnStart = new SelectColorPointBtn(startPos, REC_HEIGHT, startSlotColor, new Color(138,138,138)); - selectColorSlotBtnEnd = new SelectColorPointBtn(endPos, REC_HEIGHT, endSlotColor, new Color(138,138,138)); + selectColorSlotBtnStart = new SelectColorPointBtn(startPos, REC_HEIGHT, startSlotColor, new Color(138, 138, 138)); + selectColorSlotBtnEnd = new SelectColorPointBtn(endPos, REC_HEIGHT, endSlotColor, new Color(138, 138, 138)); //初始化list selectColorPointBtnList = new ArrayList(); //加入可滑动颜色选择器 - for (int i = 0; i < pColors.length; i++){ - SelectColorPointBtn pi = new SelectColorPointBtn(((startPos+endPos)/(pColors.length+1))*(i+1), REC_HEIGHT, pColors[i]); + for (int i = 0; i < pColors.length; i++) { + SelectColorPointBtn pi = new SelectColorPointBtn(((startPos + endPos) / (pColors.length + 1)) * (i + 1), REC_HEIGHT, pColors[i]); selectColorPointBtnList.add(pi); } + refreshColorsAndDist(selectColorPointBtnList); this.repaint(); } /** * 添加事件 + * * @param changeListener 事件 */ public void addChangeListener(ChangeListener changeListener) { @@ -216,7 +217,7 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI //如果该位置已经有滑块占领,则做跨越偏移 selectColorPointBtnList.get(index).setX(LegendGradientBar.this.setOffset(e.getX(), index, OFFSETSTEP)); } - + refreshColorsAndDist(selectColorPointBtnList); LegendGradientBar.this.repaint(); } }); @@ -224,25 +225,23 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI //防止位置重复,设置偏移 private int setOffset(int x, int index, int offset) { - for (int i = 0; i < selectColorPointBtnList.size(); i++){ + for (int i = 0; i < selectColorPointBtnList.size(); i++) { if (i != index && AssistUtils.equals(x, selectColorPointBtnList.get(i).getX())) { - if (x >= (min+max)/2) { + if (x >= (min + max) / 2) { x -= offset; - x = setOffset(x, index, offset+OFFSETSTEP); - } - else{ + x = setOffset(x, index, offset + OFFSETSTEP); + } else { x += offset; - x = setOffset(x, index, offset+OFFSETSTEP); + x = setOffset(x, index, offset + OFFSETSTEP); } } } //边界情况 - if (x <= min){ - x = min + (index+1)*OFFSETSTEP; - } - else if (x >= max){ - x = max - (index+1)*OFFSETSTEP; + if (x <= min) { + x = min + (index + 1) * OFFSETSTEP; + } else if (x >= max) { + x = max - (index + 1) * OFFSETSTEP; } return x; } @@ -259,50 +258,33 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI break; } } - if (select >= 0) { - ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE); - ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this); - Color color = LegendGradientBar.this.getColor(); - if (color != null) { - DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color); - selectColorPointBtnList.get(select).setColorInner(color); - - LegendGradientBar.this.repaint(); - } - } - - //是否选中颜色编辑槽 - else if (selectColorSlotBtnStart.contains(e.getX(), e.getY())) { - ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE); - ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this); - Color color = LegendGradientBar.this.getColor(); - if (color != null) { - DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color); - selectColorSlotBtnStart.setColorInner(color); - //stateChanged(); - LegendGradientBar.this.repaint(); - } + dealClick(selectColorPointBtnList.get(select)); + } else if (selectColorSlotBtnStart.contains(e.getX(), e.getY())) { + dealClick(selectColorSlotBtnStart); } else if (selectColorSlotBtnEnd.contains(e.getX(), e.getY())) { - ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE); - ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this); - Color color = LegendGradientBar.this.getColor(); - if (color != null) { - DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color); - selectColorSlotBtnEnd.setColorInner(color); - //stateChanged(); - LegendGradientBar.this.repaint(); - } + dealClick(selectColorSlotBtnEnd); } - - LegendGradientBar.this.repaint(); } } }); } - private void addMouseReleasedListener(){ + private void dealClick(SelectColorPointBtn selectColorPointBtn) { + ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE); + this.setColor(selectColorPointBtn.getColorInner()); + ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this); + Color color = this.getColor(); + if (color != null) { + DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color); + selectColorPointBtn.setColorInner(color); + refreshColorsAndDist(selectColorPointBtnList); + LegendGradientBar.this.repaint(); + } + } + + private void addMouseReleasedListener() { this.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent e) { @@ -318,14 +300,11 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI Point2D start = new Point2D.Float(4, 0); Point2D end = new Point2D.Float(max, 0); - //获取排序后的颜色数组和位置数组 - refreshColorsAndDist(selectColorPointBtnList); - LinearGradientPaint paint = new LinearGradientPaint(start, end, dist, colors); g2.setPaint(paint); g2.fillRect(4, 0, max - 4, 30); - g2.setColor(new Color(138,138,138)); + g2.setColor(new Color(138, 138, 138)); g2.drawRect(4, 0, max - 4, 30); //开始和结束位置颜色选择槽位 @@ -343,22 +322,22 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI Collections.sort(select); colors[0] = selectColorSlotBtnStart.getColorInner(); - for (int i = 0; i < colorSelectionBtnNum-2; i++) { - colors[i+1] = select.get(i).getColorInner(); + for (int i = 0; i < colorSelectionBtnNum - 2; i++) { + colors[i + 1] = select.get(i).getColorInner(); } - colors[colorSelectionBtnNum-1] = selectColorSlotBtnEnd.getColorInner(); + colors[colorSelectionBtnNum - 1] = selectColorSlotBtnEnd.getColorInner(); dist = new float[colorSelectionBtnNum]; dist[0] = 0f; - for (int i = 0; i < colorSelectionBtnNum-2; i++) { - dist[i+1] = (float) ((select.get(i).getX() - 4) / (max - 4)); + for (int i = 0; i < colorSelectionBtnNum - 2; i++) { + dist[i + 1] = (float) ((select.get(i).getX() - 4) / (max - 4)); } - dist[colorSelectionBtnNum-1] = 1f; + dist[colorSelectionBtnNum - 1] = 1f; fireColorAndDistChangeListener(); } - public void refreshSubColor(Color subColor){ + public void refreshSubColor(Color subColor) { //设置主题色 setSubColor(subColor); @@ -370,9 +349,9 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI } - public void refreshColorSelectionBtnNum(int num){ + public void refreshColorSelectionBtnNum(int num) { //设置主题色 - colorSelectionBtnNum = num+1; + colorSelectionBtnNum = num + 1; //计算colors数组 colors = initColors(subColor, colorSelectionBtnNum); @@ -418,14 +397,14 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI } - public void populate(GradualIntervalConfig intervalConfig){ - if(intervalConfig == null) { + public void populate(GradualIntervalConfig intervalConfig) { + if (intervalConfig == null) { return; } setSubColor(intervalConfig.getSubColor()); - setColorSelectionBtnNum((int)(intervalConfig.getDivStage() + 1)); + setColorSelectionBtnNum((int) (intervalConfig.getDivStage() + 1)); populateColorAndDist(intervalConfig.getGradualColorDistList()); @@ -436,15 +415,15 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI int num = gradualColorDistList.size(); this.colors = new Color[num]; this.dist = new float[num]; - for (int i = 0; i < num; i++){ + for (int i = 0; i < num; i++) { this.colors[i] = gradualColorDistList.get(i).getColor(); this.dist[i] = gradualColorDistList.get(i).getPosition(); } } - public void update(GradualIntervalConfig intervalConfig){ + public void update(GradualIntervalConfig intervalConfig) { ArrayList colorDistList = new ArrayList(); - for (int i = 0; i < getColorSelectionBtnNum(); i++){ + for (int i = 0; i < getColorSelectionBtnNum(); i++) { colorDistList.add(new GradualColorDist(this.dist[i], this.colors[i])); } intervalConfig.setGradualColorDistList(colorDistList); @@ -453,26 +432,26 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI private void refreshColorSelectBtn(Color[] colors, float[] dist) { //获取按钮颜色数组 Color startSlotColor = colors[0]; - Color endSlotColor = colors[colors.length-1]; + Color endSlotColor = colors[colors.length - 1]; Color[] pColors = new Color[colors.length - 2]; - for (int i = 0; i < pColors.length; i++){ + for (int i = 0; i < pColors.length; i++) { pColors[i] = colors[i + 1]; } float[] position = new float[dist.length - 2]; - for (int i = 0; i < position.length; i++){ - position[i] = dist[i+1]*(max-4) + 4; + for (int i = 0; i < position.length; i++) { + position[i] = dist[i + 1] * (max - 4) + 4; } - selectColorSlotBtnStart = new SelectColorPointBtn(startPos, REC_HEIGHT, startSlotColor, new Color(138,138,138)); - selectColorSlotBtnEnd = new SelectColorPointBtn(endPos, REC_HEIGHT, endSlotColor, new Color(138,138,138)); + selectColorSlotBtnStart = new SelectColorPointBtn(startPos, REC_HEIGHT, startSlotColor, new Color(138, 138, 138)); + selectColorSlotBtnEnd = new SelectColorPointBtn(endPos, REC_HEIGHT, endSlotColor, new Color(138, 138, 138)); //刷新可移动按钮的位置 selectColorPointBtnList = new ArrayList(); //加入可滑动颜色选择器 - for (int i = 0; i < pColors.length; i++){ + for (int i = 0; i < pColors.length; i++) { SelectColorPointBtn pi = new SelectColorPointBtn(position[i], REC_HEIGHT, pColors[i]); selectColorPointBtnList.add(pi); } diff --git a/designer-realize/src/main/java/com/fr/design/cell/editor/ChartCellEditor.java b/designer-realize/src/main/java/com/fr/design/cell/editor/ChartCellEditor.java index 67ccc4876..f9600d72b 100644 --- a/designer-realize/src/main/java/com/fr/design/cell/editor/ChartCellEditor.java +++ b/designer-realize/src/main/java/com/fr/design/cell/editor/ChartCellEditor.java @@ -10,7 +10,6 @@ import com.fr.grid.Grid; import com.fr.report.cell.TemplateCellElement; import com.fr.report.elementcase.TemplateElementCase; import com.fr.stable.bridge.StableFactory; -import com.fr.stable.core.PropertyChangeAdapter; import javax.swing.SwingUtilities; import java.awt.Component; @@ -52,20 +51,7 @@ public class ChartCellEditor extends AbstractCellEditor implements DialogActionL public Component getCellEditorComponent(final Grid grid, TemplateCellElement cellElement, int resolution) { Object valueCell = cellElement.getValue(); if (valueCell instanceof BaseChartCollection) { - if (glyphComponent == null) { - glyphComponent = DesignModuleFactory.getChartComponent((BaseChartCollection)valueCell); - glyphComponent.addStopEditingListener(new PropertyChangeAdapter() { - @Override - public void propertyChange() { - stopCellEditing(); - grid.requestFocus();// kunsnat: 补充, 编辑图表reset之后, Grid也算停止编辑 重获焦点 bug20443SS - } - }); - } else { - glyphComponent.populate((BaseChartCollection) valueCell); - } - this.chartCellEditorDialog = null; - return glyphComponent; + return null; } this.chartCellEditorDialog = getMiddleChartDialog(SwingUtilities.getWindowAncestor(grid)); this.chartCellEditorDialog.addDialogActionListener(this); diff --git a/designer-realize/src/main/java/com/fr/design/cell/editor/ChartFloatEditor.java b/designer-realize/src/main/java/com/fr/design/cell/editor/ChartFloatEditor.java index 5087ad4ae..d9d17f4c0 100644 --- a/designer-realize/src/main/java/com/fr/design/cell/editor/ChartFloatEditor.java +++ b/designer-realize/src/main/java/com/fr/design/cell/editor/ChartFloatEditor.java @@ -9,7 +9,6 @@ import com.fr.grid.Grid; import com.fr.report.cell.FloatElement; import com.fr.stable.StringUtils; import com.fr.stable.bridge.StableFactory; -import com.fr.stable.core.PropertyChangeAdapter; import javax.swing.SwingUtilities; import java.awt.Component; @@ -49,21 +48,7 @@ public class ChartFloatEditor extends AbstractFloatEditor implements DialogActio public Component getFloatEditorComponent(final Grid grid, FloatElement floatElement, int resolution) { Object valueCell = floatElement.getValue(); if (valueCell instanceof BaseChartCollection) { - this.chartFloatEditorDialog = null; - if (glyphComponent == null) { - glyphComponent = DesignModuleFactory.getChartComponent((BaseChartCollection)valueCell); - glyphComponent.addStopEditingListener(new PropertyChangeAdapter() { - @Override - public void propertyChange() { - stopFloatEditing(); - grid.requestFocus();// kunsnat: 补充, 编辑图表reset之后, Grid也算停止编辑 重获焦点 bug20443 - } - }); - - } else { - glyphComponent.populate((BaseChartCollection) valueCell); - } - return glyphComponent; + return null; } this.chartFloatEditorDialog = getMiddleChartDialog(SwingUtilities.getWindowAncestor(grid)); this.chartFloatEditorDialog.addDialogActionListener(this); From b5dd00b22089ef5193e3d4a55d261caef25e607a Mon Sep 17 00:00:00 2001 From: hades Date: Mon, 10 Aug 2020 16:59:42 +0800 Subject: [PATCH 12/13] =?UTF-8?q?REPORT-37097=20=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1-=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=89=93?= =?UTF-8?q?=E5=BC=80=E7=9A=84=E4=B8=A4=E4=B8=AA=E6=A8=A1=E6=9D=BF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E6=98=BE=E7=A4=BA=E6=B7=B7=E4=B9=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/file/HistoryTemplateListCache.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java b/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java index 466e919b7..ba1cce556 100644 --- a/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java +++ b/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java @@ -370,6 +370,7 @@ public class HistoryTemplateListCache implements CallbackEvent { */ public void load() { FineLoggerFactory.getLogger().info("Env Change Template Loading..."); + JTemplate currentTemplate = null; if (stashFILEMap != null && stashFILEMap.size() != 0) { int size = historyList.size(); for (int i = 0; i < size; i++) { @@ -385,20 +386,24 @@ public class HistoryTemplateListCache implements CallbackEvent { historyList.set(i, template); // 替换当前正在编辑的模板,使用添加并激活的方式,以便使用统一的入口来处理监听事件 if (isCurrentEditingFile(template.getPath())) { - loadCurrentTemplate(template); + currentTemplate = template; } } else { // 当模板为空时 说明是一个新建的未保存模板 但是内存中保存了该模板 可以从中获取 JTemplate jt = historyList.get(i); // 另外如果该模板是正在编辑的模板,需要要激活 if (jt != null && isCurrentEditingFile(jt.getPath())) { - loadCurrentTemplate(jt); + currentTemplate = jt; } } } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } } + // 最后加载当前正在编辑的模板 以保证数据集刷新正常 + if (currentTemplate != null) { + loadCurrentTemplate(currentTemplate); + } stashFILEMap.clear(); MutilTempalteTabPane.getInstance().refreshOpenedTemplate(historyList); MutilTempalteTabPane.getInstance().repaint(); From 6e7d59ba89377bf60c0957fbb27c7d5b6c57f7e6 Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 11 Aug 2020 11:39:41 +0800 Subject: [PATCH 13/13] =?UTF-8?q?REPORT-37250=20=20windows=E4=B8=8B?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/FormDesigner.java | 28 +++++++++---------- .../fr/design/mainframe/FormDesignerUI.java | 7 +++++ 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java index b138e3b35..f9141ca99 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java @@ -402,6 +402,19 @@ public class FormDesigner extends TargetComponent implements TreeSelection com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Alert"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); } + + public void paintChildren(Graphics g) { + Graphics2D g2d = (Graphics2D) g; + AffineTransform old = g2d.getTransform(); + AffineTransform at = new AffineTransform(); + at.translate(this.getPaintX(), this.getPaintY()); + at.scale(this.getScale(), this.getScale()); + g2d.transform(at); + super.paintChildren(g); + g2d.setTransform(old); + } + + /** * 自动添加组件 * @@ -1283,21 +1296,6 @@ public class FormDesigner extends TargetComponent implements TreeSelection this.formArea = formArea; } - - - public void paint(Graphics g){ - //重新设置下绘制的起点和缩放幅度 - AffineTransform at = new AffineTransform(); - if (rootComponent.getParent() != null) { - at.translate(this.getPaintX(), this.getPaintY()); - at.scale(this.getScale(), this.getScale()); - Graphics2D g2 = (Graphics2D) g; - g2.transform(at); - } - super.paint(g); - } - - /** * 绘制组件根节点 * diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java b/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java index ee49cd66e..404a0fd13 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java @@ -68,6 +68,13 @@ public class FormDesignerUI extends ComponentUI { public void paint(final Graphics g, JComponent c) { XCreator rootComponent = designer.getRootComponent(); this.time = (float) designer.getResolution() / ScreenResolution.getScreenResolution(); + AffineTransform at = new AffineTransform(); + if (rootComponent.getParent() != null) { + at.translate(designer.getPaintX(), designer.getPaintY()); + at.scale(designer.getScale(), designer.getScale()); + Graphics2D g2 = (Graphics2D) g; + g2.transform(at); + } if (rootComponent != null) { // 设计自适应界面 repaintFit(g, rootComponent, c);