From d9707a67f5ad63591aa16908ea71a23ffb73a946 Mon Sep 17 00:00:00 2001 From: "Wim.Zhai" Date: Wed, 20 Feb 2019 23:35:25 +0800 Subject: [PATCH 01/12] =?UTF-8?q?CHART-3865=20'=E4=BD=8D=E7=BD=AE'?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=98=BE=E7=A4=BA'=E5=B8=83=E5=B1=80'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/designer/style/label/VanChartPlotLabelDetailPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java index 9a26a87116..012c410a89 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartPlotLabelDetailPane.java @@ -143,7 +143,7 @@ public class VanChartPlotLabelDetailPane extends BasicPane { protected JPanel getLabelPositionPane (Component[][] comps, double[] row, double[] col){ JPanel panel = TableLayoutHelper.createTableLayoutPane(comps,row,col); - return createTableLayoutPaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Layout"), panel); + return createTableLayoutPaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Attr_Layout"), panel); } From 347ec07f7ae7291ddb8b0edc5ef90c7b3d8ef856 Mon Sep 17 00:00:00 2001 From: Hades Date: Thu, 21 Feb 2019 15:52:19 +0800 Subject: [PATCH 02/12] =?UTF-8?q?REPORT-14661=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E7=95=8C=E9=9D=A2=20=E6=9C=8D=E5=8A=A1=E5=99=A8-?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=95=B0=E6=8D=AE=E9=9B=86=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/tabledata/tabledatapane/DBTableDataPane.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index d441d51160..879e4ef0de 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -29,6 +29,7 @@ import com.fr.design.gui.itableeditorpane.UITableEditorPane; import com.fr.design.gui.itoolbar.UIToolbar; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; import com.fr.design.gui.syntax.ui.rtextarea.RTextScrollPane; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; import com.fr.design.menu.SeparatorDef; import com.fr.design.menu.ToolBarDef; @@ -211,10 +212,13 @@ public class DBTableDataPane extends AbstractTableDataPane { isShareCheckBox.setBackground(Color.WHITE); maxPanel = new MaxMemRowCountPanel(); maxPanel.setBorder(null); + JPanel wrapMaxPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); + wrapMaxPanel.add(maxPanel); + wrapMaxPanel.setPreferredSize(new Dimension(200, 20)); UIToolbar editToolBar = ToolBarDef.createJToolBar(); toolBarDef.updateToolBar(editToolBar); editToolBar.add(isShareCheckBox); - editToolBar.add(maxPanel); + editToolBar.add(wrapMaxPanel); return editToolBar; } From 33fc4b4c25bfe49cc9b51a742c8433b2762c976a Mon Sep 17 00:00:00 2001 From: Hades Date: Thu, 21 Feb 2019 15:59:15 +0800 Subject: [PATCH 03/12] =?UTF-8?q?REPORT-14661=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E7=95=8C=E9=9D=A2=20=E6=9C=8D=E5=8A=A1=E5=99=A8-?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=95=B0=E6=8D=AE=E9=9B=86=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/data/tabledata/tabledatapane/DBTableDataPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index 879e4ef0de..85b8fbd7d3 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -214,7 +214,7 @@ public class DBTableDataPane extends AbstractTableDataPane { maxPanel.setBorder(null); JPanel wrapMaxPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); wrapMaxPanel.add(maxPanel); - wrapMaxPanel.setPreferredSize(new Dimension(200, 20)); + wrapMaxPanel.setPreferredSize(new Dimension(250, 20)); UIToolbar editToolBar = ToolBarDef.createJToolBar(); toolBarDef.updateToolBar(editToolBar); editToolBar.add(isShareCheckBox); From 5ea5f0e205b8cc6c46443b8c823510acf3caf1b8 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 21 Feb 2019 17:23:05 +0800 Subject: [PATCH 04/12] =?UTF-8?q?REPORT-14668=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E8=AF=AD=E8=A8=80=E5=88=87=E6=8D=A2=E6=88=90=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E5=90=8E=E7=9A=84=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cell/settingpane/CellOtherSetPane.java | 60 ++++++++++++------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java index cecd400423..cbe37764de 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java @@ -17,6 +17,7 @@ import com.fr.design.layout.TableLayoutHelper; import com.fr.design.layout.VerticalFlowLayout; import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.design.mainframe.JTemplate; +import com.fr.design.utils.gui.UIComponentUtils; import com.fr.design.widget.FRWidgetFactory; import com.fr.general.ComparatorUtils; import com.fr.report.cell.DefaultTemplateCellElement; @@ -51,6 +52,7 @@ public class CellOtherSetPane extends AbstractCellAttrPane { private static final int HEAD_WDITH = 290; private static final int HEAD_HEIGTH = 24; private static final int COMBO_WIDTH = 154; + private static final int BUTTON_GROUP_WIDTH = 140; // normal private UIButtonGroup autoshrik; @@ -81,7 +83,7 @@ public class CellOtherSetPane extends AbstractCellAttrPane { private UIRadioButton[] adjustRadioButtons; // 插入行策略 - private UIButtonGroup insertRowPolicy; + private UIButtonGroup insertRowPolicyButtonGroup; private ValueEditorPane valueEditor; private CardLayout insertRowLayout; private JPanel insertRowPane; @@ -147,7 +149,7 @@ public class CellOtherSetPane extends AbstractCellAttrPane { private void initInsertRowPolicyPane() { // 插入行策略 - insertRowPolicy = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_NULL"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Estate_Default_Text"), + insertRowPolicyButtonGroup = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_NULL"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Estate_Default_Text"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_COPY")}); defaultValuePane = new JPanel(new BorderLayout(4, 0)); valueEditor = ValueEditorPaneFactory.createBasicValueEditorPane(); @@ -157,10 +159,10 @@ public class CellOtherSetPane extends AbstractCellAttrPane { insertRowPane.add(new JPanel(), "none"); insertRowPane.add(defaultValuePane, "content"); insertRowPane.setPreferredSize(new Dimension(0, 0)); - insertRowPolicy.addChangeListener(new ChangeListener() { + insertRowPolicyButtonGroup.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { - if (insertRowPolicy.getSelectedIndex() == 1) { + if (insertRowPolicyButtonGroup.getSelectedIndex() == 1) { insertRowPane.setPreferredSize(new Dimension(100, 20)); insertRowLayout.show(insertRowPane, "content"); } else { @@ -169,16 +171,33 @@ public class CellOtherSetPane extends AbstractCellAttrPane { } } }); + + double f = TableLayout.FILL; double p = TableLayout.PREFERRED; - double[] rowSize1 = {p, p}; - double[] columnSize1 = {p, f}; - int[][] rowCount1 = {{1, 1}, {1, 1}}; - Component[][] components1 = new Component[][]{ - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_Policy"), SwingConstants.LEFT), insertRowPolicy}, - new Component[]{null, insertRowPane}, - }; - insertRowPolicyPane = TableLayoutHelper.createGapTableLayoutPane(components1, rowSize1, columnSize1, rowCount1, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_MEDIUM); + UILabel insertRowPolicyLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_Policy", SwingConstants.LEFT)); + UIComponentUtils.setLineWrap(insertRowPolicyLabel); + + // 如果右侧需要很宽的空间,就用3行1列的布局 + if (insertRowPolicyButtonGroup.getPreferredSize().getWidth() > BUTTON_GROUP_WIDTH) { + double[] rowSize = {p, p, p}; + double[] columnSize = {f}; + + Component[][] components = new Component[][] { + new Component[]{insertRowPolicyLabel}, + new Component[]{insertRowPolicyButtonGroup}, + new Component[]{insertRowPane}, + }; + insertRowPolicyPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_MEDIUM); + } else { + double[] rowSize = {p, p}; + double[] columnSize = {f, BUTTON_GROUP_WIDTH}; + Component[][] components = new Component[][] { + new Component[]{insertRowPolicyLabel, insertRowPolicyButtonGroup}, + new Component[]{null, insertRowPane}, + }; + insertRowPolicyPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_MEDIUM); + } } private JPanel seniorUpPane() { @@ -200,13 +219,14 @@ public class CellOtherSetPane extends AbstractCellAttrPane { fileNamePane.setBorder(BorderFactory.createEmptyBorder(0,12,0,0)); UILabel showContentLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_Content"), SwingConstants.LEFT); + UIComponentUtils.setLineWrap(showContentLabel); UILabel toolTipLabel = FRWidgetFactory.createLineWrapLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_ToolTip")); JPanel toolTipTextFieldWrapper = new JPanel(new BorderLayout()); toolTipTextFieldWrapper.add(tooltipTextField, BorderLayout.NORTH); Component[][] components = new Component[][]{ - new Component[]{showContentLabel, showContent}, + new Component[]{showContentLabel, UIComponentUtils.wrapWithBorderLayoutPane(showContent)}, new Component[]{fileNamePane, null}, // 选择"用下载连接显示二进制内容"时,会显示这一行的面板 new Component[]{toolTipLabel, toolTipTextFieldWrapper} }; @@ -323,7 +343,7 @@ public class CellOtherSetPane extends AbstractCellAttrPane { pageAfterColumnCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_Page_After_Column")); canBreakOnPaginateCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellPage_Can_Break_On_Paginate")); repeatCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellPage_Repeat_Content_When_Paging")); - insertRowPolicy.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_Policy")); + insertRowPolicyButtonGroup.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_Policy")); valueEditor.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_CellWrite_InsertRow_Policy")); } @@ -395,16 +415,16 @@ public class CellOtherSetPane extends AbstractCellAttrPane { cellInsertPolicyAttr = new CellInsertPolicyAttr(); } if (ComparatorUtils.equals(CellInsertPolicyAttr.INSERT_POLICY_COPY, cellInsertPolicyAttr.getInsertPolicy())) { - insertRowPolicy.setSelectedIndex(2); + insertRowPolicyButtonGroup.setSelectedIndex(2); } else if (ComparatorUtils.equals(CellInsertPolicyAttr.INSERT_POLICY_DEFAULT, cellInsertPolicyAttr.getInsertPolicy())) { - insertRowPolicy.setSelectedIndex(1); + insertRowPolicyButtonGroup.setSelectedIndex(1); Object defaultValue = cellInsertPolicyAttr.getDefaultInsertValue(); this.valueEditor.populate(defaultValue); } else { - insertRowPolicy.setSelectedIndex(0); + insertRowPolicyButtonGroup.setSelectedIndex(0); this.valueEditor.populate(StringUtils.EMPTY); } - if (insertRowPolicy.getSelectedIndex() == 1) { + if (insertRowPolicyButtonGroup.getSelectedIndex() == 1) { insertRowPane.setPreferredSize(new Dimension(100, 20)); insertRowLayout.show(insertRowPane, "content"); } else { @@ -521,9 +541,9 @@ public class CellOtherSetPane extends AbstractCellAttrPane { // 插入 CellInsertPolicyAttr cellInsertPolicyAttr = new CellInsertPolicyAttr(); - if (insertRowPolicy.getSelectedIndex() == 2) { + if (insertRowPolicyButtonGroup.getSelectedIndex() == 2) { cellInsertPolicyAttr.setInsertPolicy(CellInsertPolicyAttr.INSERT_POLICY_COPY); - } else if (insertRowPolicy.getSelectedIndex() == 1) { + } else if (insertRowPolicyButtonGroup.getSelectedIndex() == 1) { cellInsertPolicyAttr.setInsertPolicy(CellInsertPolicyAttr.INSERT_POLICY_DEFAULT); Object value = valueEditor.update(); cellInsertPolicyAttr.setDefaultInsertValue(value); From 86fa21168dddf9a9eb92fc019ec4dc9e59160761 Mon Sep 17 00:00:00 2001 From: Hades Date: Fri, 22 Feb 2019 15:57:16 +0800 Subject: [PATCH 05/12] =?UTF-8?q?REPORT-14981=20=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E8=87=AA=E5=AE=9A=E4=B9=89=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=90=8E=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/web/CustomIconPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java index b85ac113d5..74a4990300 100644 --- a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java +++ b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java @@ -291,7 +291,7 @@ public class CustomIconPane extends BasicPane { Configurations.update(new WorkerFacade(WidgetInfoConfig.class) { @Override public void run() { - WidgetInfoConfig.getInstance().setIconManager(IconManager.getIconManager()); + WidgetInfoConfig.getInstance().setIconManager(iconManager); } }); From b28e268f04f0dbc6926ebfeb392c0720aa992c87 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 22 Feb 2019 16:54:42 +0800 Subject: [PATCH 06/12] =?UTF-8?q?REPORT-14526=20=E3=80=900123=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E3=80=91=E6=96=87=E4=BB=B6=E6=8E=A7=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E5=8F=AA=E6=94=AF=E6=8C=81=E5=8D=95=E6=96=87=E4=BB=B6=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E8=AE=BE=E7=BD=AE=E6=96=87=E5=AD=97=E8=A2=AB=E9=81=AE?= =?UTF-8?q?=E6=8C=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/utils/gui/UIComponentUtils.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/utils/gui/UIComponentUtils.java b/designer-base/src/main/java/com/fr/design/utils/gui/UIComponentUtils.java index 3e1f98555f..d2e9704658 100644 --- a/designer-base/src/main/java/com/fr/design/utils/gui/UIComponentUtils.java +++ b/designer-base/src/main/java/com/fr/design/utils/gui/UIComponentUtils.java @@ -2,6 +2,8 @@ package com.fr.design.utils.gui; import com.fr.design.gui.core.UITextComponent; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.general.ComparatorUtils; +import com.fr.general.GeneralContext; import com.fr.stable.StringUtils; import javax.swing.JComponent; @@ -9,6 +11,7 @@ import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; +import java.util.Locale; /** * 包含 UI 组件相关的工具方法 @@ -45,15 +48,18 @@ public class UIComponentUtils { } private static void insertPrefixToText(UITextComponent comp, String prefix) { - if (comp == null) { + if (comp == null || ComparatorUtils.equals(Locale.CHINA, GeneralContext.getLocale())) { + // 最初是为了解决日文国际化显示不全,而增加的换行功能。中文不需要换行。 + // windows 下,字体为宋体时,对于 JLabel、JCheckBox、JButton 等控件,使用换行后,文字会下移,可能导致文字下半部分被截断。 + // 因此中文直接返回,不加换行逻辑。 return; } - String text = comp.getText(); - if (StringUtils.isEmpty(comp.getText()) || text.startsWith(HTML_TAG)) { + String text = comp.getText(); + if (StringUtils.isEmpty(text) || text.startsWith(HTML_TAG)) { return; } - comp.setText(prefix + comp.getText()); + comp.setText(prefix + text); } /** From 526ff727863bba596f3b0a26c7ea2972a9dfecfe Mon Sep 17 00:00:00 2001 From: zheng Date: Fri, 22 Feb 2019 17:05:09 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E6=8F=92=E4=BB=B6jarti?= =?UTF-8?q?me=E6=9B=B4=E6=96=B0=20=E9=A1=BA=E4=BE=BF=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E7=9A=84=E4=B8=80=E4=BA=9B=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractExtendedChartReportDataPane.java | 55 ++++++++++++------- .../AbstractExtendedChartTableDataPane.java | 44 ++++++++++----- .../style/HeatMapRangeLegendPane.java | 14 ++++- .../component/GradualIntervalConfigPane.java | 18 ++---- 4 files changed, 82 insertions(+), 49 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartReportDataPane.java b/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartReportDataPane.java index e42707a62a..b8758b9f5e 100644 --- a/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartReportDataPane.java +++ b/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartReportDataPane.java @@ -12,8 +12,8 @@ import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPa import javax.swing.BorderFactory; import javax.swing.JPanel; import javax.swing.SwingConstants; -import java.awt.Component; import java.awt.BorderLayout; +import java.awt.Component; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -92,38 +92,53 @@ public abstract class AbstractExtendedChartReportDataPane fieldList = new ArrayList(); + if (hasCustomFieldPane()) { + fieldList.add(new ExtendedField(seriesPane.updateBean())); + fieldList.add(new ExtendedField(valuePane.updateBean())); + } + dataConfig.setCustomFields(fieldList); + + return dataSet; + } + @Override public void updateBean(ChartCollection ob) { if (ob != null) { Chart chart = ob.getSelectedChart(); if (chart != null) { - ExtendedReportDataSet dataSet = new ExtendedReportDataSet(); - - AbstractDataConfig dataConfig = update(); - dataSet.setDataConfig(dataConfig); - - List fieldList = new ArrayList(); - if (hasCustomFieldPane()) { - fieldList.add(new ExtendedField(seriesPane.updateBean())); - fieldList.add(new ExtendedField(valuePane.updateBean())); - } - dataConfig.setCustomFields(fieldList); - chart.setFilterDefinition(dataSet); + chart.setFilterDefinition(updateDataSet()); } } } diff --git a/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartTableDataPane.java b/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartTableDataPane.java index 0771b749a5..ac1799e745 100644 --- a/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartTableDataPane.java +++ b/designer-chart/src/main/java/com/fr/extended/chart/AbstractExtendedChartTableDataPane.java @@ -93,17 +93,40 @@ public abstract class AbstractExtendedChartTableDataPane Date: Fri, 22 Feb 2019 17:46:17 +0800 Subject: [PATCH 08/12] =?UTF-8?q?REPORT-14624=20Rename=20=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/export/AbstractExportAction.java | 15 ++- .../main/java/com/fr/file/AbstractFILE.java | 93 ++++++++++++++++ .../src/main/java/com/fr/file/FileFILE.java | 2 +- .../java/com/fr/file/RenameExportFILE.java | 102 ++++++++++++++++++ .../main/java/com/fr/file/StashedFILE.java | 34 +----- 5 files changed, 207 insertions(+), 39 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/file/AbstractFILE.java create mode 100644 designer-base/src/main/java/com/fr/file/RenameExportFILE.java diff --git a/designer-base/src/main/java/com/fr/design/actions/file/export/AbstractExportAction.java b/designer-base/src/main/java/com/fr/design/actions/file/export/AbstractExportAction.java index 536fc87ee5..17d19aab71 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/export/AbstractExportAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/export/AbstractExportAction.java @@ -1,7 +1,7 @@ package com.fr.design.actions.file.export; -import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.JTemplateAction; +import com.fr.design.base.mode.DesignModeContext; import com.fr.design.gui.iprogressbar.FRProgressBar; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.DesignerContext; @@ -9,6 +9,7 @@ import com.fr.design.mainframe.JTemplate; import com.fr.exception.RemoteDesignPermissionDeniedException; import com.fr.file.FILE; import com.fr.file.FILEChooserPane; +import com.fr.file.RenameExportFILE; import com.fr.file.filter.ChooseFileFilter; import com.fr.io.exporter.DesignExportType; import com.fr.io.exporter.ExporterKey; @@ -92,12 +93,17 @@ public abstract class AbstractExportAction> extends JT int saveValue = fileChooserPane.showSaveDialog(DesignerContext.getDesignerFrame(), "." + this.getDefaultExtension()); if (saveValue == FILEChooserPane.JOPTIONPANE_OK_OPTION || saveValue == FILEChooserPane.OK_OPTION) { FILE target = fileChooserPane.getSelectedFILE(); + //rename 方式导出 + target = RenameExportFILE.create(target); try { target.mkfile(); } catch (Exception exp) { FineLoggerFactory.getLogger().error("Error In Make New File", exp); } - FineLoggerFactory.getLogger().info("\"" + target.getName() + "\"" + Toolkit.i18nText("Fine-Design_Report_Prepare_Export") + "!"); + FineLoggerFactory.getLogger().info( + "\"" + RenameExportFILE.recoverFileName(target.getName()) + "\"" + + Toolkit.i18nText("Fine-Design_Report_Prepare_Export") + "!" + ); progressbar = new FRProgressBar( createExportWork(getSource(), target, para), @@ -124,7 +130,7 @@ public abstract class AbstractExportAction> extends JT private boolean processNotSaved() { //当前编辑的模板 E e = getEditingComponent(); - if (!e.isALLSaved() && !DesignerMode.isVcsMode()) { + if (!e.isALLSaved() && !DesignModeContext.isVcsMode()) { e.stopEditing(); int returnVal = JOptionPane.showConfirmDialog( DesignerContext.getDesignerFrame(), @@ -149,7 +155,7 @@ public abstract class AbstractExportAction> extends JT private SwingWorker createExportWork(final FILE source, final FILE target, final Map parameterMap) { final String path = source.getPath(); - final String name = target.getName(); + final String name = RenameExportFILE.recoverFileName(target.getName()); return new SwingWorker() { @@ -162,7 +168,6 @@ public abstract class AbstractExportAction> extends JT dealExporter(outputStream, path, parameterMap); this.setProgress(80); outputStream.flush(); - outputStream.close(); this.setProgress(100); FineLoggerFactory.getLogger().info("\"" + name + "\"" + Toolkit.i18nText("Fine-Design_Report_Finish_Export") + "!"); diff --git a/designer-base/src/main/java/com/fr/file/AbstractFILE.java b/designer-base/src/main/java/com/fr/file/AbstractFILE.java new file mode 100644 index 0000000000..866ea2c2b1 --- /dev/null +++ b/designer-base/src/main/java/com/fr/file/AbstractFILE.java @@ -0,0 +1,93 @@ +package com.fr.file; + +import javax.swing.Icon; +import java.io.InputStream; +import java.io.OutputStream; + +public abstract class AbstractFILE implements FILE { + + @Override + public String prefix() { + throw new UnsupportedOperationException(); + } + + @Override + public boolean isDirectory() { + throw new UnsupportedOperationException(); + } + + @Override + public String getName() { + throw new UnsupportedOperationException(); + } + + @Override + public Icon getIcon() { + throw new UnsupportedOperationException(); + } + + @Override + public String getPath() { + throw new UnsupportedOperationException(); + } + + @Override + public void setPath(String path) { + throw new UnsupportedOperationException(); + } + + @Override + public FILE getParent() { + throw new UnsupportedOperationException(); + } + + @Override + public FILE[] listFiles() { + throw new UnsupportedOperationException(); + } + + @Override + public boolean createFolder(String name) { + throw new UnsupportedOperationException(); + } + + @Override + public boolean mkfile() throws Exception { + throw new UnsupportedOperationException(); + } + + @Override + public boolean exists() { + throw new UnsupportedOperationException(); + } + + @Override + public void closeTemplate() throws Exception { + throw new UnsupportedOperationException(); + } + + @Override + public InputStream asInputStream() throws Exception { + throw new UnsupportedOperationException(); + } + + @Override + public OutputStream asOutputStream() throws Exception { + throw new UnsupportedOperationException(); + } + + @Override + public String getEnvFullName() { + throw new UnsupportedOperationException(); + } + + @Override + public boolean isMemFile() { + throw new UnsupportedOperationException(); + } + + @Override + public boolean isEnvFile() { + throw new UnsupportedOperationException(); + } +} diff --git a/designer-base/src/main/java/com/fr/file/FileFILE.java b/designer-base/src/main/java/com/fr/file/FileFILE.java index 5331cd7785..c4f58fa1a3 100644 --- a/designer-base/src/main/java/com/fr/file/FileFILE.java +++ b/designer-base/src/main/java/com/fr/file/FileFILE.java @@ -201,7 +201,7 @@ public class FileFILE implements FILE { OutputStream out; try { StableUtils.makesureFileExist(file); - out = new FileOutputStream(file, true); + out = new FileOutputStream(file, false); } catch (Exception e) { throw SessionLocalManager.createLogPackedException(e); } diff --git a/designer-base/src/main/java/com/fr/file/RenameExportFILE.java b/designer-base/src/main/java/com/fr/file/RenameExportFILE.java new file mode 100644 index 0000000000..8b03e943f6 --- /dev/null +++ b/designer-base/src/main/java/com/fr/file/RenameExportFILE.java @@ -0,0 +1,102 @@ +package com.fr.file; + +import com.fr.stable.StableUtils; +import com.fr.stable.StringUtils; +import com.fr.third.org.apache.commons.io.FileUtils; +import com.fr.web.session.SessionLocalManager; + +import javax.swing.Icon; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; + +public class RenameExportFILE extends AbstractFILE { + + private static final String EXPORT_SUFFIX = ".FRExportTmp"; + + private FILE file; + + private RenameExportFILE(FILE file) { + this.file = new FileFILE(new File(file.getPath() + EXPORT_SUFFIX)); + } + + public static RenameExportFILE create(FILE file) { + return new RenameExportFILE(file); + } + + public static String recoverFileName(String fileName) { + if (StringUtils.isEmpty(fileName) || !fileName.endsWith(EXPORT_SUFFIX)) { + return fileName; + } + return fileName.substring(0, fileName.lastIndexOf(EXPORT_SUFFIX)); + } + + @Override + public String prefix() { + return file.prefix(); + } + + @Override + public boolean isDirectory() { + return false; + } + + @Override + public String getName() { + return file.getName(); + } + + @Override + public Icon getIcon() { + return null; + } + + @Override + public String getPath() { + return file.getPath(); + } + + + @Override + public FILE getParent() { + return file.getParent(); + } + + + @Override + public boolean mkfile() throws Exception { + return file.mkfile(); + } + + @Override + public boolean exists() { + return file.exists(); + } + + @Override + public OutputStream asOutputStream() throws Exception { + + final File localeFile = new File(file.getPath()); + OutputStream out; + try { + StableUtils.makesureFileExist(localeFile); + out = new FileOutputStream(localeFile, false) { + @Override + public void close() throws IOException { + super.close(); + String path = file.getPath(); + if (localeFile.exists()) { + FileUtils.copyFile(localeFile, new File(recoverFileName(path))); + if (localeFile.getPath().endsWith(EXPORT_SUFFIX)) { + FileUtils.forceDelete(localeFile); + } + } + } + }; + } catch (Exception e) { + throw SessionLocalManager.createLogPackedException(e); + } + return out; + } +} \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/file/StashedFILE.java b/designer-base/src/main/java/com/fr/file/StashedFILE.java index 4bc9b431ea..181af28601 100644 --- a/designer-base/src/main/java/com/fr/file/StashedFILE.java +++ b/designer-base/src/main/java/com/fr/file/StashedFILE.java @@ -1,15 +1,13 @@ package com.fr.file; import javax.swing.Icon; -import javax.transaction.NotSupportedException; import java.io.ByteArrayInputStream; import java.io.InputStream; -import java.io.OutputStream; /** * 切换环境用于暂存的文件类型 */ -public class StashedFILE implements FILE { +public class StashedFILE extends AbstractFILE { private FILE file; private byte[] content; @@ -44,31 +42,6 @@ public class StashedFILE implements FILE { return file.getPath(); } - @Override - public void setPath(String path) { - throw new UnsupportedOperationException(); - } - - @Override - public FILE getParent() { - throw new UnsupportedOperationException(); - } - - @Override - public FILE[] listFiles() { - throw new UnsupportedOperationException(); - } - - @Override - public boolean createFolder(String name) { - throw new UnsupportedOperationException(); - } - - @Override - public boolean mkfile() throws Exception { - throw new UnsupportedOperationException(); - } - @Override public boolean exists() { return false; @@ -84,11 +57,6 @@ public class StashedFILE implements FILE { return new ByteArrayInputStream(content); } - @Override - public OutputStream asOutputStream() throws Exception { - throw new NotSupportedException(); - } - @Override public String getEnvFullName() { return file.getEnvFullName(); From 3a426fbe99f63b3ca12dc5c934d32a130d9f0b93 Mon Sep 17 00:00:00 2001 From: Hades Date: Mon, 25 Feb 2019 11:35:07 +0800 Subject: [PATCH 09/12] =?UTF-8?q?REPORT-15027=20=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8C=89=E9=92=AE=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E7=AC=AC=E4=B8=80=E4=B8=AA=E7=9A=84=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E4=BC=9A=E6=98=BE=E7=A4=BA=E5=9C=A8=E7=AC=AC?= =?UTF-8?q?=E4=BA=8C=E4=B8=AA=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/webattr/EditToolBar.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java b/designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java index b6683337fd..0a2c627668 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/EditToolBar.java @@ -679,12 +679,10 @@ public class EditToolBar extends BasicPane { private void updateCustomToolBarButton() { CustomToolBarButton customToolBarButton = (CustomToolBarButton) widget; - if (customToolBarButton.getJSImpl() != null) { - customToolBarButton.setJSImpl(this.javaScriptPane.updateBean()); - } else { - customToolBarButton.setJSImpl(JavaScriptActionPane.createDefault().updateBean()); + if (customToolBarButton.getJSImpl() == null) { + this.javaScriptPane = JavaScriptActionPane.createDefault(); } - + customToolBarButton.setJSImpl(this.javaScriptPane.updateBean()); } } From 46da85b73bc0f816410766d14147a85b4d0afe20 Mon Sep 17 00:00:00 2001 From: "Wim.Zhai" Date: Mon, 25 Feb 2019 21:59:14 +0800 Subject: [PATCH 10/12] =?UTF-8?q?CHART-3954=20=E6=94=B9=E5=96=84=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E7=9A=84=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8C=BA?= =?UTF-8?q?=E9=97=B4=E5=80=BC=E4=BD=BF=E7=94=A8=E5=85=AC=E5=BC=8F=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=85=B6=E9=82=BB=E5=80=BC=E8=83=8C=E6=99=AF=E9=A2=9C?= =?UTF-8?q?=E8=89=B2=E6=98=BE=E7=A4=BA=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/chart/gui/style/series/UIColorPickerPane.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/series/UIColorPickerPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/series/UIColorPickerPane.java index 7a1567bf9e..c9a6caf80a 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/series/UIColorPickerPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/series/UIColorPickerPane.java @@ -531,12 +531,16 @@ public class UIColorPickerPane extends BasicPane implements UIObserver { double forValue = Double.MAX_VALUE; double backValue = -Double.MAX_VALUE; for(int i = 0, size = textFieldList.size(); i < size; i++) {// check 是否合格, 然后检查 是否改变颜色, + //backNumber是否是公式形式 + boolean formulaBackNumber = false; if(i == size - 1) { backValue = -Double.MAX_VALUE; } else { Number backNumber = ChartBaseUtils.formula2Number(BaseFormula.createFormulaBuilder().build(getValue4Index(i+1))); if(backNumber != null){ backValue = backNumber.doubleValue(); + } else { + formulaBackNumber = true; } } @@ -544,7 +548,7 @@ public class UIColorPickerPane extends BasicPane implements UIObserver { if(number != null) { double value = number.doubleValue(); - if(value < forValue && value > backValue) { + if ((value < forValue && value > backValue) || formulaBackNumber) { setBackgroundUIColor(i,Color.WHITE); } else { setBackgroundUIColor(i, Color.red); From 9fa1c91985c709c16e331d6cae37e5bc250ccb7f Mon Sep 17 00:00:00 2001 From: "Wim.Zhai" Date: Mon, 25 Feb 2019 22:40:20 +0800 Subject: [PATCH 11/12] =?UTF-8?q?CHART-3956=20=E6=95=B0=E6=8D=AE=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=95=8C=E9=9D=A2=E6=98=BE=E7=A4=BA'=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/chart/gui/data/TableDataPane.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/TableDataPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/TableDataPane.java index 780a70e57b..ed58f6d7d7 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/TableDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/TableDataPane.java @@ -11,6 +11,7 @@ import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.data.tabledata.wrapper.TableDataWrapper; import com.fr.design.gui.ilable.BoldFontTextLabel; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane; import com.fr.design.utils.gui.UIComponentUtils; @@ -39,7 +40,7 @@ public class TableDataPane extends FurtherBasicBeanPane{ } private void initDataPane() { - UILabel label = new BoldFontTextLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_TableData")); + UILabel label = new BoldFontTextLabel(Toolkit.i18nText("Fine-Design_Chart_Table_Data")); UIComponentUtils.setLineWrap(label, TABLE_DATA_LABEL_LINE_WRAP_WIDTH); tableDataPane = new DatabaseTableDataPane(label) { @@ -85,7 +86,7 @@ public class TableDataPane extends FurtherBasicBeanPane{ * @return 返回标题. */ public String title4PopupWindow() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_TableData"); + return Toolkit.i18nText("Fine-Design_Chart_TableData"); } From 2915b30d9629452e5122a02641386612035e7121 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 26 Feb 2019 15:32:08 +0800 Subject: [PATCH 12/12] =?UTF-8?q?CHART-3956=20=E3=80=90CHART=E3=80=91?= =?UTF-8?q?=E5=9B=BE=E8=A1=A8=E5=B1=9E=E6=80=A7-=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E7=95=8C=E9=9D=A2-=E6=95=B0=E6=8D=AE=E9=9B=86=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=95=8C=E9=9D=A2=E4=B8=8D=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/chart/gui/data/TableDataPane.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/TableDataPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/TableDataPane.java index ed58f6d7d7..7f22a03a6b 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/TableDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/TableDataPane.java @@ -42,6 +42,7 @@ public class TableDataPane extends FurtherBasicBeanPane{ private void initDataPane() { UILabel label = new BoldFontTextLabel(Toolkit.i18nText("Fine-Design_Chart_Table_Data")); UIComponentUtils.setLineWrap(label, TABLE_DATA_LABEL_LINE_WRAP_WIDTH); + UIComponentUtils.setPreferedWidth(label, ChartDataPane.LABEL_WIDTH); tableDataPane = new DatabaseTableDataPane(label) { @Override