From 022637b26f2776cf601f3138c72b6ebe3e3847d5 Mon Sep 17 00:00:00 2001 From: Starryi Date: Tue, 3 Jan 2023 15:37:55 +0800 Subject: [PATCH 01/17] =?UTF-8?q?REPORT-86045=20FR11=E5=86=B3=E7=AD=96?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=81=87=E4=BF=9D=E5=AD=98-=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E5=86=85=E6=92=A4=E9=94=80=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E5=86=8D=E7=BC=96=E8=BE=91=E9=99=A4=E6=AD=A4=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=9D=97=E5=A4=96=E9=83=A8=E5=88=86=EF=BC=8C=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=20=E5=AE=9E=E9=99=85=E6=9C=AA=E4=BF=9D?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 在报表块编辑模式下重置Form对象,比如setTarget,需要做些额外 的工作,才能确保新的target完全可用,主要是要确保散落 在formDesign中各处的对象,如selectedCreators等,要有新的 target对象保持一致,否则再回到表单编辑界面时,就不能通过 这些creators,对target对象进行修改了。 【改动思路】 将表单编辑界面的一些修改操作也放到报表块编辑模式场景下执行, 确保该更新的都能更新到 --- .../java/com/fr/design/mainframe/JForm.java | 88 ++++++++++--------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index e3162e9ef6..4e9c45ce44 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -6,8 +6,6 @@ import com.fr.base.Parameter; import com.fr.base.Releasable; import com.fr.base.extension.FileExtension; import com.fr.base.iofile.attr.ExtendSharableAttrMark; -import com.fr.base.theme.FineColorGather; -import com.fr.base.theme.FineColorManager; import com.fr.base.theme.FineColorSynchronizer; import com.fr.base.theme.FormTheme; import com.fr.base.theme.TemplateTheme; @@ -17,8 +15,8 @@ import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignModelAdapter; import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; -import com.fr.design.actions.FormMobileAttrAction; import com.fr.design.actions.FormECParallelCalAction; +import com.fr.design.actions.FormMobileAttrAction; import com.fr.design.actions.TemplateParameterAction; import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.actions.file.export.EmbeddedFormExportExportAction; @@ -56,8 +54,8 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.form.FormECCompositeProvider; import com.fr.design.mainframe.form.FormECDesignerProvider; import com.fr.design.mainframe.reuse.ComponentReuseNotificationInfo; -import com.fr.design.mainframe.share.collect.ComponentCollector; import com.fr.design.mainframe.share.ComponentShareUtil; +import com.fr.design.mainframe.share.collect.ComponentCollector; import com.fr.design.mainframe.template.info.JFormProcessInfo; import com.fr.design.mainframe.template.info.TemplateProcessInfo; import com.fr.design.mainframe.theme.dialog.TemplateThemeUsingDialog; @@ -71,7 +69,6 @@ import com.fr.design.parameter.ParameterPropertyPane; import com.fr.design.preview.FormPreview; import com.fr.design.preview.MobilePreview; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; -import com.fr.design.ui.util.UIUtil; import com.fr.design.utils.gui.LayoutUtils; import com.fr.file.FILE; import com.fr.file.FILEChooserPane; @@ -110,7 +107,14 @@ import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.tree.TreePath; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Insets; +import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; @@ -1266,46 +1270,48 @@ public class JForm extends JTemplate implements BaseJForm Date: Wed, 4 Jan 2023 11:35:34 +0800 Subject: [PATCH 02/17] =?UTF-8?q?REPORT-87768=20fix:=E8=A7=84=E9=81=BF?= =?UTF-8?q?=E4=B8=8BtemplateID=E7=9A=84=E9=87=8D=E5=A4=8D=E7=94=9F?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/mainframe/JTemplate.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index b59df2cf08..d59d616357 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -330,7 +330,9 @@ public abstract class JTemplate> * 为另存的模板创建新的模板id */ private void generateNewTemplateIdForSaveAs() { - generateTemplateId(); + if (StringUtils.isEmpty(template.getTemplateID())) { + generateTemplateId(); + } } /** From 2e5d636edc2d748f3a4056b2a27249d07beeb7db Mon Sep 17 00:00:00 2001 From: Yann Date: Wed, 4 Jan 2023 11:46:34 +0800 Subject: [PATCH 03/17] =?UTF-8?q?REPORT-87576=20=E5=8F=96=E8=89=B2?= =?UTF-8?q?=E6=9D=BF=E4=BD=BF=E7=94=A8=E5=90=8E=E4=BC=9A=E8=AE=A9fr?= =?UTF-8?q?=E5=8D=A1=E4=BD=8F=E3=80=82=E5=8F=AF=E7=A8=B3=E5=AE=9A=E5=A4=8D?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/gui/style/BorderPane.java | 41 +++++++++---------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/style/BorderPane.java b/designer-base/src/main/java/com/fr/design/gui/style/BorderPane.java index 6d62593935..d2a302ea01 100644 --- a/designer-base/src/main/java/com/fr/design/gui/style/BorderPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/style/BorderPane.java @@ -265,34 +265,31 @@ public class BorderPane extends AbstractBasicStylePane implements GlobalNameObse int lineStyle = currentLineCombo.getSelectedLineStyle(); Color lineColor = currentLineColorPane.getSelectObject(); CellBorderStyle cellBorderStyle = new CellBorderStyle(); - if (topToggleButton.isSelected()) { - cellBorderStyle.setTopColor(lineColor); + if (lineColor != null) { + if (topToggleButton.isSelected()) { + cellBorderStyle.setTopColor(lineColor); + } + if (bottomToggleButton.isSelected()) { + cellBorderStyle.setBottomColor(lineColor); + } + if (leftToggleButton.isSelected()) { + cellBorderStyle.setLeftColor(lineColor); + } + if (rightToggleButton.isSelected()) { + cellBorderStyle.setRightColor(lineColor); + } + if (verticalToggleButton.isSelected()) { + cellBorderStyle.setVerticalColor(lineColor); + } + if (horizontalToggleButton.isSelected()) { + cellBorderStyle.setHorizontalColor(lineColor); + } } cellBorderStyle.setTopStyle(topToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (bottomToggleButton.isSelected()) { - cellBorderStyle.setBottomColor(lineColor); - } cellBorderStyle.setBottomStyle(bottomToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (leftToggleButton.isSelected()) { - cellBorderStyle.setLeftColor(lineColor); - } cellBorderStyle.setLeftStyle(leftToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (rightToggleButton.isSelected()) { - cellBorderStyle.setRightColor(lineColor); - } cellBorderStyle.setRightStyle(rightToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (verticalToggleButton.isSelected()) { - cellBorderStyle.setVerticalColor(lineColor); - } cellBorderStyle.setVerticalStyle(verticalToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (horizontalToggleButton.isSelected()) { - cellBorderStyle.setHorizontalColor(lineColor); - } cellBorderStyle.setHorizontalStyle(horizontalToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); outerToggleButton.setSelected(leftToggleButton.isSelected() && bottomToggleButton.isSelected() && rightToggleButton.isSelected() && topToggleButton.isSelected()); From bffc93847ee3f5d78f624964fcb33a77d9ab7bfb Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Wed, 4 Jan 2023 11:52:25 +0800 Subject: [PATCH 04/17] =?UTF-8?q?REPORT-87013=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A811.0.11=E6=9B=B4=E6=96=B0=E6=97=A5=E5=BF=97=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=9A=84=E4=BF=A1=E6=81=AF=E6=98=AF=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/update/ui/dialog/UpdateMainDialog.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java b/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java index 1fa37f60f8..033e2cb07f 100644 --- a/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java +++ b/designer-base/src/main/java/com/fr/design/update/ui/dialog/UpdateMainDialog.java @@ -118,6 +118,8 @@ public class UpdateMainDialog extends UIDialog { private ArrayList updateInfoList; + private Set titleSet; + private boolean getUpdateInfoSuccess; private UpdateInfoCachePropertyManager cacheProperty; @@ -267,6 +269,7 @@ public class UpdateMainDialog extends UIDialog { String keyword = searchUpdateInfoKeyword.getText(); if (ComparatorUtils.equals(keyword, StringUtils.EMPTY) && getUpdateInfoSuccess) { updateInfoList.clear(); + titleSet.clear(); getUpdateInfo(keyword).execute(); } } @@ -281,6 +284,7 @@ public class UpdateMainDialog extends UIDialog { public void actionPerformed(ActionEvent e) { if (getUpdateInfoSuccess) { updateInfoList.clear(); + titleSet.clear(); getUpdateInfo(searchUpdateInfoKeyword.getText()).execute(); } } @@ -388,6 +392,7 @@ public class UpdateMainDialog extends UIDialog { private SwingWorker getUpdateInfo(final String keyword) { updateInfoList = new ArrayList<>(); + titleSet = new HashSet<>(); lastUpdateCacheTime = UpdateConstants.CHANGELOG_X_START; String cacheConfigPath = getUpdateCacheConfig(); cacheProperty = new UpdateInfoCachePropertyManager(StableUtils.pathJoin(WorkContext.getCurrent().getPath(), "resources", "offlineres", cacheConfigPath)); @@ -489,6 +494,7 @@ public class UpdateMainDialog extends UIDialog { } } if (isValid(updateInfo, GeneralUtils.objectToString(curJarDate))) { + titleSet.add(updateInfo[UpdateInfoTable.UPDATE_TITLE_INDEX]); updateInfoList.add(new Object[]{UPDATELOG_FORMAT.format(updateTime), updateInfo[UpdateInfoTable.UPDATE_VERSION_INDEX], updateInfo[UpdateInfoTable.UPDATE_TITLE_INDEX], updateTime.after(curJarDate)}); } } @@ -501,7 +507,7 @@ public class UpdateMainDialog extends UIDialog { private boolean isValid(String[] updateInfo, String curJarDate) { - return isValidLogInfo(updateInfo[UpdateInfoTable.UPDATE_TITLE_INDEX]) && curJarDate != null && curJarDate.compareTo(updateInfo[UpdateInfoTable.UPDATE_DATE_INDEX]) <= 0; + return isValidLogInfo(updateInfo[UpdateInfoTable.UPDATE_TITLE_INDEX]) && curJarDate != null && curJarDate.compareTo(updateInfo[UpdateInfoTable.UPDATE_DATE_INDEX]) <= 0 && !titleSet.contains(updateInfo[UpdateInfoTable.UPDATE_TITLE_INDEX]); } private void updateCachedInfoFile(JSONArray jsonArray) throws Exception { @@ -561,6 +567,7 @@ public class UpdateMainDialog extends UIDialog { } Date curDate = UPDATE_INFO_TABLE_FORMAT.parse(currentNO, new ParsePosition(currentNO.indexOf("-") + 1)); if (isValid4GenerateInfo(updateTitle, GeneralUtils.objectToString(curDate), updateTimeStr)) { + titleSet.add(updateTitle); updateInfoList.add(new Object[]{updateTimeStr, updateVersionStr, updateTitle, updateTime.after(curJarDate)}); } } @@ -568,7 +575,7 @@ public class UpdateMainDialog extends UIDialog { } private boolean isValid4GenerateInfo(String updateTitle, String curDate, String updateTimeStr) { - return isValidLogInfo(updateTitle) && curDate.compareTo(updateTimeStr) <= 0; + return isValidLogInfo(updateTitle) && curDate.compareTo(updateTimeStr) <= 0 && !titleSet.contains(updateTitle); } private boolean containsKeyword(String str, String keyword) { From e34a0c78ae6e2c77f87a312fb1fcc53c1fe5eb14 Mon Sep 17 00:00:00 2001 From: Carlson Date: Wed, 4 Jan 2023 14:36:17 +0800 Subject: [PATCH 05/17] =?UTF-8?q?REPORT-87768=20fix:=E8=80=83=E8=99=91?= =?UTF-8?q?=E5=8F=A6=E5=AD=98=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/mainframe/JTemplate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index d59d616357..e8cdc3ee8d 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -330,7 +330,7 @@ public abstract class JTemplate> * 为另存的模板创建新的模板id */ private void generateNewTemplateIdForSaveAs() { - if (StringUtils.isEmpty(template.getTemplateID())) { + if (StringUtils.isEmpty(template.getTemplateID()) || this.getEditingFILE().exists()) { generateTemplateId(); } } From 0a11d39fb414aa7ef3cb49bd0a892adc83bedd36 Mon Sep 17 00:00:00 2001 From: Yann Date: Wed, 4 Jan 2023 15:10:16 +0800 Subject: [PATCH 06/17] =?UTF-8?q?REPORT-87576=20=E5=8F=96=E8=89=B2?= =?UTF-8?q?=E6=9D=BF=E4=BD=BF=E7=94=A8=E5=90=8E=E4=BC=9A=E8=AE=A9fr?= =?UTF-8?q?=E5=8D=A1=E4=BD=8F=E3=80=82=E5=8F=AF=E7=A8=B3=E5=AE=9A=E5=A4=8D?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/gui/style/BorderPane.java | 41 +++++++++---------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/style/BorderPane.java b/designer-base/src/main/java/com/fr/design/gui/style/BorderPane.java index 6d62593935..d2a302ea01 100644 --- a/designer-base/src/main/java/com/fr/design/gui/style/BorderPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/style/BorderPane.java @@ -265,34 +265,31 @@ public class BorderPane extends AbstractBasicStylePane implements GlobalNameObse int lineStyle = currentLineCombo.getSelectedLineStyle(); Color lineColor = currentLineColorPane.getSelectObject(); CellBorderStyle cellBorderStyle = new CellBorderStyle(); - if (topToggleButton.isSelected()) { - cellBorderStyle.setTopColor(lineColor); + if (lineColor != null) { + if (topToggleButton.isSelected()) { + cellBorderStyle.setTopColor(lineColor); + } + if (bottomToggleButton.isSelected()) { + cellBorderStyle.setBottomColor(lineColor); + } + if (leftToggleButton.isSelected()) { + cellBorderStyle.setLeftColor(lineColor); + } + if (rightToggleButton.isSelected()) { + cellBorderStyle.setRightColor(lineColor); + } + if (verticalToggleButton.isSelected()) { + cellBorderStyle.setVerticalColor(lineColor); + } + if (horizontalToggleButton.isSelected()) { + cellBorderStyle.setHorizontalColor(lineColor); + } } cellBorderStyle.setTopStyle(topToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (bottomToggleButton.isSelected()) { - cellBorderStyle.setBottomColor(lineColor); - } cellBorderStyle.setBottomStyle(bottomToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (leftToggleButton.isSelected()) { - cellBorderStyle.setLeftColor(lineColor); - } cellBorderStyle.setLeftStyle(leftToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (rightToggleButton.isSelected()) { - cellBorderStyle.setRightColor(lineColor); - } cellBorderStyle.setRightStyle(rightToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (verticalToggleButton.isSelected()) { - cellBorderStyle.setVerticalColor(lineColor); - } cellBorderStyle.setVerticalStyle(verticalToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); - - if (horizontalToggleButton.isSelected()) { - cellBorderStyle.setHorizontalColor(lineColor); - } cellBorderStyle.setHorizontalStyle(horizontalToggleButton.isSelected() ? lineStyle : Constants.LINE_NONE); outerToggleButton.setSelected(leftToggleButton.isSelected() && bottomToggleButton.isSelected() && rightToggleButton.isSelected() && topToggleButton.isSelected()); From e260386ad110fc0dabd403316dcff3686fe882df Mon Sep 17 00:00:00 2001 From: Yann Date: Wed, 4 Jan 2023 17:52:14 +0800 Subject: [PATCH 07/17] =?UTF-8?q?REPORT-86430=20AlphaFine=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E4=B8=AD=E5=BF=83tab=E9=A1=B5=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E6=9C=89=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alphafine/search/manager/impl/PluginSearchManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java index babf9f4865..de8f468829 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java @@ -214,7 +214,7 @@ public class PluginSearchManager implements AlphaFineSearchProvider { } return time; } - })); + }).reversed()); } catch (Exception e) { FineLoggerFactory.getLogger().error(e, e.getMessage()); } From e1b4a4f850c188a441f744abb4f36322eba7e806 Mon Sep 17 00:00:00 2001 From: Carlson Date: Wed, 4 Jan 2023 19:33:27 +0800 Subject: [PATCH 08/17] =?UTF-8?q?REPORT-87768=20=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=89=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/mainframe/JTemplate.java | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index e8cdc3ee8d..43714f949b 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -326,15 +326,6 @@ public abstract class JTemplate> public abstract JComponent getCurrentReportComponentPane(); - /** - * 为另存的模板创建新的模板id - */ - private void generateNewTemplateIdForSaveAs() { - if (StringUtils.isEmpty(template.getTemplateID()) || this.getEditingFILE().exists()) { - generateTemplateId(); - } - } - /** * 收集图表信息 */ @@ -959,7 +950,9 @@ public abstract class JTemplate> originID = currentId; } // 在保存之前,初始化 templateID - generateNewTemplateIdForSaveAs(); + if (StringUtils.isEmpty(currentId)) { + generateTemplateId(); + } this.editingFILE = editingFILE; boolean result = this.saveToNewFile(oldName); @@ -1834,7 +1827,7 @@ public abstract class JTemplate> originID = currentId; } // 在保存之前,初始化 templateID - generateNewTemplateIdForSaveAs(); + generateTemplateId(); this.editingFILE = editingFILE; boolean result = this.saveToNewRealFile(oldName); if (result) { From 5430ede56d55f3878eb0aa32940fdc852203951c Mon Sep 17 00:00:00 2001 From: Starryi Date: Tue, 3 Jan 2023 15:37:55 +0800 Subject: [PATCH 09/17] =?UTF-8?q?REPORT-86045=20FR11=E5=86=B3=E7=AD=96?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=81=87=E4=BF=9D=E5=AD=98-=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E5=86=85=E6=92=A4=E9=94=80=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E5=86=8D=E7=BC=96=E8=BE=91=E9=99=A4=E6=AD=A4=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=9D=97=E5=A4=96=E9=83=A8=E5=88=86=EF=BC=8C=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=20=E5=AE=9E=E9=99=85=E6=9C=AA=E4=BF=9D?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【问题原因】 在报表块编辑模式下重置Form对象,比如setTarget,需要做些额外 的工作,才能确保新的target完全可用,主要是要确保散落 在formDesign中各处的对象,如selectedCreators等,要有新的 target对象保持一致,否则再回到表单编辑界面时,就不能通过 这些creators,对target对象进行修改了。 【改动思路】 将表单编辑界面的一些修改操作也放到报表块编辑模式场景下执行, 确保该更新的都能更新到 --- .../java/com/fr/design/mainframe/JForm.java | 88 ++++++++++--------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index e3162e9ef6..4e9c45ce44 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -6,8 +6,6 @@ import com.fr.base.Parameter; import com.fr.base.Releasable; import com.fr.base.extension.FileExtension; import com.fr.base.iofile.attr.ExtendSharableAttrMark; -import com.fr.base.theme.FineColorGather; -import com.fr.base.theme.FineColorManager; import com.fr.base.theme.FineColorSynchronizer; import com.fr.base.theme.FormTheme; import com.fr.base.theme.TemplateTheme; @@ -17,8 +15,8 @@ import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignModelAdapter; import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; -import com.fr.design.actions.FormMobileAttrAction; import com.fr.design.actions.FormECParallelCalAction; +import com.fr.design.actions.FormMobileAttrAction; import com.fr.design.actions.TemplateParameterAction; import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.actions.file.export.EmbeddedFormExportExportAction; @@ -56,8 +54,8 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.form.FormECCompositeProvider; import com.fr.design.mainframe.form.FormECDesignerProvider; import com.fr.design.mainframe.reuse.ComponentReuseNotificationInfo; -import com.fr.design.mainframe.share.collect.ComponentCollector; import com.fr.design.mainframe.share.ComponentShareUtil; +import com.fr.design.mainframe.share.collect.ComponentCollector; import com.fr.design.mainframe.template.info.JFormProcessInfo; import com.fr.design.mainframe.template.info.TemplateProcessInfo; import com.fr.design.mainframe.theme.dialog.TemplateThemeUsingDialog; @@ -71,7 +69,6 @@ import com.fr.design.parameter.ParameterPropertyPane; import com.fr.design.preview.FormPreview; import com.fr.design.preview.MobilePreview; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; -import com.fr.design.ui.util.UIUtil; import com.fr.design.utils.gui.LayoutUtils; import com.fr.file.FILE; import com.fr.file.FILEChooserPane; @@ -110,7 +107,14 @@ import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.tree.TreePath; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.Insets; +import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; @@ -1266,46 +1270,48 @@ public class JForm extends JTemplate implements BaseJForm Date: Thu, 5 Jan 2023 10:09:14 +0800 Subject: [PATCH 10/17] =?UTF-8?q?REPORT-87768=20=E7=BB=99=E5=AD=90?= =?UTF-8?q?=E7=B1=BB=E6=8F=90=E4=BE=9B=E4=B8=80=E4=B8=8B=E9=87=8D=E5=86=99?= =?UTF-8?q?=E7=9A=84=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/mainframe/JTemplate.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index 43714f949b..444ef577fb 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -326,6 +326,13 @@ public abstract class JTemplate> public abstract JComponent getCurrentReportComponentPane(); + /** + * 为另存的模板创建新的模板id + */ + protected void generateNewTemplateIdForSaveAs() { + generateTemplateId(); + } + /** * 收集图表信息 */ @@ -950,9 +957,7 @@ public abstract class JTemplate> originID = currentId; } // 在保存之前,初始化 templateID - if (StringUtils.isEmpty(currentId)) { - generateTemplateId(); - } + generateNewTemplateIdForSaveAs(); this.editingFILE = editingFILE; boolean result = this.saveToNewFile(oldName); @@ -1827,7 +1832,7 @@ public abstract class JTemplate> originID = currentId; } // 在保存之前,初始化 templateID - generateTemplateId(); + generateNewTemplateIdForSaveAs(); this.editingFILE = editingFILE; boolean result = this.saveToNewRealFile(oldName); if (result) { From dfe0ea9969d615c019edf9b87c3d966d8e725a8d Mon Sep 17 00:00:00 2001 From: "Coral.Chen" Date: Mon, 9 Jan 2023 17:07:34 +0800 Subject: [PATCH 11/17] =?UTF-8?q?REPORT-86259=20=E3=80=90=E5=AF=BC?= =?UTF-8?q?=E5=87=BAexcel&word=E3=80=91=E4=BB=85=E9=99=90=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E4=B8=8B=E9=99=90=E5=88=B6=E5=A4=8D=E5=88=B6=20REPORT?= =?UTF-8?q?-86426-=E5=AF=BC=E5=87=BAexcel/pdf=20=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=85=AC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/report/ExportUniversalPane.java | 26 ++++++++++++++----- .../design/report/ReportExportAttrPane.java | 5 ++-- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java b/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java index 3714d66a27..dce865b402 100644 --- a/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java @@ -1,7 +1,6 @@ package com.fr.design.report; import com.fr.base.CustomConfig; -import com.fr.config.Configuration; import com.fr.design.constants.UIConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.icheckbox.UICheckBox; @@ -11,16 +10,20 @@ import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.utils.BrowseUtils; import com.fr.general.CloudCenter; +import com.fr.io.attr.ReportExportAttr; import com.fr.transaction.Configurations; import com.fr.transaction.WorkerFacade; + +import javax.swing.BorderFactory; +import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import javax.swing.BorderFactory; -import javax.swing.JPanel; /** + * 通用 + * * @author hades * @version 11.0 * Created by hades on 2022/5/26 @@ -30,13 +33,15 @@ public class ExportUniversalPane extends BasicPane { private static final String HELP_URL = CloudCenter.getInstance().acquireUrlByKind("help.alt_font.zh_CN", "https://help.fanruan.com/finereport/doc-view-4707.html"); private UICheckBox specialCharacterExport; + // 密码支持公式 + private UICheckBox passwordSupportFormula; public ExportUniversalPane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); - JPanel outerNorthPane =FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Report_Universal_Export_Config")); + JPanel outerNorthPane = FRGUIPaneFactory.createTitledBorderPane(Toolkit.i18nText("Fine-Design_Report_Universal_Export_Config")); JPanel northPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_M_Pane(); - JPanel specialCharacterExportPane =FRGUIPaneFactory.createNormalFlowInnerContainer_M_Pane(); + JPanel specialCharacterExportPane = FRGUIPaneFactory.createNormalFlowInnerContainer_M_Pane(); specialCharacterExport = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Universal_Export_Special_Character")); specialCharacterExport.setSelected(true); specialCharacterExportPane.add(specialCharacterExport); @@ -55,6 +60,11 @@ public class ExportUniversalPane extends BasicPane { labelPane.add(centerLabel, BorderLayout.CENTER); labelPane.add(rightLabel, BorderLayout.EAST); northPane.add(labelPane); + JPanel passwordSupportPane = FRGUIPaneFactory.createNormalFlowInnerContainer_M_Pane(); + passwordSupportFormula = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Universal_Export_Password_Support_Formula")); + passwordSupportFormula.setSelected(false); + passwordSupportPane.add(passwordSupportFormula); + northPane.add(passwordSupportPane); outerNorthPane.add(northPane); this.add(outerNorthPane); } @@ -64,15 +74,17 @@ public class ExportUniversalPane extends BasicPane { return "ExportUniversalPane"; } - public void populate() { + public void populate(ReportExportAttr reportExportAttr) { this.specialCharacterExport.setSelected(CustomConfig.getInstance().isOptimizedSpecialCharacterExport()); + this.passwordSupportFormula.setSelected(reportExportAttr.isPwdSupportFormula()); } - public void update() { + public void update(ReportExportAttr reportExportAttr) { Configurations.modify(new WorkerFacade(CustomConfig.class) { @Override public void run() { CustomConfig.getInstance().setOptimizedSpecialCharacterExport(specialCharacterExport.isSelected()); + reportExportAttr.setPwdSupportFormula(passwordSupportFormula.isSelected()); } }); } diff --git a/designer-realize/src/main/java/com/fr/design/report/ReportExportAttrPane.java b/designer-realize/src/main/java/com/fr/design/report/ReportExportAttrPane.java index 2de520d273..cd992c3fdf 100644 --- a/designer-realize/src/main/java/com/fr/design/report/ReportExportAttrPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/ReportExportAttrPane.java @@ -61,7 +61,7 @@ public class ReportExportAttrPane extends BasicPane { } if (this.exportUniversalPane != null) { - this.exportUniversalPane.populate(); + this.exportUniversalPane.populate(reportExportAttr); } if (this.excelExportPane != null) { @@ -84,9 +84,8 @@ public class ReportExportAttrPane extends BasicPane { public ReportExportAttr update() { ReportExportAttr reportExportAttr = new ReportExportAttr(); - if (this.exportUniversalPane != null) { - this.exportUniversalPane.update(); + this.exportUniversalPane.update(reportExportAttr); } if (this.excelExportPane != null) { From e18d9c5a16025fb81a16461ac645b9fadcbd0bc7 Mon Sep 17 00:00:00 2001 From: "Coral.Chen" Date: Mon, 9 Jan 2023 17:18:41 +0800 Subject: [PATCH 12/17] =?UTF-8?q?REPORT-86426-=E5=AF=BC=E5=87=BAexcel/pdf?= =?UTF-8?q?=20=E5=AF=86=E7=A0=81=E6=94=AF=E6=8C=81=E5=85=AC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/report/ExportUniversalPane.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java b/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java index dce865b402..5fe52560dc 100644 --- a/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/ExportUniversalPane.java @@ -74,11 +74,21 @@ public class ExportUniversalPane extends BasicPane { return "ExportUniversalPane"; } + /** + * 填充数据 + * + * @param reportExportAttr 报表导出属性 + */ public void populate(ReportExportAttr reportExportAttr) { this.specialCharacterExport.setSelected(CustomConfig.getInstance().isOptimizedSpecialCharacterExport()); this.passwordSupportFormula.setSelected(reportExportAttr.isPwdSupportFormula()); } + /** + * 更新界面 + * + * @param reportExportAttr 报表导出属性 + */ public void update(ReportExportAttr reportExportAttr) { Configurations.modify(new WorkerFacade(CustomConfig.class) { @Override From 8feb5752f8c4fbbab9ec531743d890e788a96e21 Mon Sep 17 00:00:00 2001 From: "Yuan.Wang" Date: Wed, 11 Jan 2023 17:15:07 +0800 Subject: [PATCH 13/17] =?UTF-8?q?REPORT-88359=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8Key=E7=BC=BA=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/parameter/RootDesignDefinePane.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java b/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java index 910b466f79..9b4dfb4c44 100644 --- a/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java @@ -134,7 +134,7 @@ public class RootDesignDefinePane extends AbstractDataModify { displayReport = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Display_Nothing_Before_Query")); UIComponentUtils.setLineWrap(displayReport); useParamsTemplate = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Use_Params_Template")); - fireAfterEditor = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("触发编辑结束事件")); + fireAfterEditor = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Trigger_Editing_End_Event")); fireAfterEditor.setEnabled(false); fireAfterEditor.setBorder(BorderFactory.createEmptyBorder(0, 30, 0, 0)); useParamsTemplate.addChangeListener(e -> { @@ -189,7 +189,7 @@ public class RootDesignDefinePane extends AbstractDataModify { displayReport = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Display_Nothing_Before_Query")); UIComponentUtils.setLineWrap(displayReport); useParamsTemplate = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Use_Params_Template")); - fireAfterEditor = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("触发编辑结束事件")); + fireAfterEditor = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Trigger_Editing_End_Event")); fireAfterEditor.setEnabled(false); fireAfterEditor.setBorder(BorderFactory.createEmptyBorder(0, 30, 0, 0)); useParamsTemplate.addChangeListener(e -> { From 285ecbbde013574be83c3609be194b3ec41f584b Mon Sep 17 00:00:00 2001 From: "Yuan.Wang" Date: Wed, 11 Jan 2023 18:31:56 +0800 Subject: [PATCH 14/17] =?UTF-8?q?REPORT-88359=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8Key=E7=BC=BA=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/parameter/RootDesignDefinePane.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java b/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java index 910b466f79..9b4dfb4c44 100644 --- a/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/parameter/RootDesignDefinePane.java @@ -134,7 +134,7 @@ public class RootDesignDefinePane extends AbstractDataModify { displayReport = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Display_Nothing_Before_Query")); UIComponentUtils.setLineWrap(displayReport); useParamsTemplate = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Use_Params_Template")); - fireAfterEditor = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("触发编辑结束事件")); + fireAfterEditor = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Trigger_Editing_End_Event")); fireAfterEditor.setEnabled(false); fireAfterEditor.setBorder(BorderFactory.createEmptyBorder(0, 30, 0, 0)); useParamsTemplate.addChangeListener(e -> { @@ -189,7 +189,7 @@ public class RootDesignDefinePane extends AbstractDataModify { displayReport = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Display_Nothing_Before_Query")); UIComponentUtils.setLineWrap(displayReport); useParamsTemplate = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Use_Params_Template")); - fireAfterEditor = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("触发编辑结束事件")); + fireAfterEditor = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Trigger_Editing_End_Event")); fireAfterEditor.setEnabled(false); fireAfterEditor.setBorder(BorderFactory.createEmptyBorder(0, 30, 0, 0)); useParamsTemplate.addChangeListener(e -> { From 7347a81a81e197f437e1414b11a1673fd3afa635 Mon Sep 17 00:00:00 2001 From: "Destiny.Lin" Date: Fri, 13 Jan 2023 15:25:32 +0800 Subject: [PATCH 15/17] =?UTF-8?q?REPORT-88307=20=E6=8E=A7=E4=BB=B6-?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E6=8E=A7=E4=BB=B6-=E5=B0=86=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E4=B8=AD=E7=9A=84=E2=80=9C=E5=AD=97=E4=BD=93?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E2=80=9D=E6=94=B9=E4=B8=BA=E2=80=9C=E5=AD=97?= =?UTF-8?q?=E4=BD=93=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/widget/ui/designer/LabelDefinePane.java | 2 +- .../fr/design/widget/ui/designer/btn/ButtonGroupDefinePane.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java index 1c30b1a557..992ea9cfb5 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/LabelDefinePane.java @@ -68,7 +68,7 @@ public class LabelDefinePane extends AbstractDataModify