From a6feb0d1ded3047189b8e2787eea880d28c593e8 Mon Sep 17 00:00:00 2001 From: shine Date: Wed, 19 Aug 2020 14:56:42 +0800 Subject: [PATCH 01/32] =?UTF-8?q?=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractCustomFieldComboBoxPane.java | 121 +++++++++--------- .../SeriesValueFieldComboBoxPane.java | 12 +- .../design/chartx/data/DataLayoutHelper.java | 69 ++++++++++ .../data/map/AbstractAreaLngLatPane.java | 15 +-- .../chartx/data/map/MapChartDataPane.java | 8 +- .../fields/AbstractCellDataFieldsPane.java | 15 +-- .../fields/AbstractDataSetFieldsPane.java | 15 +-- .../fields/diff/MapDataSetFieldsPane.java | 7 +- .../fr/design/chartx/single/CellDataPane.java | 2 + .../fr/design/chartx/single/DataSetPane.java | 30 ++--- .../design/chartx/single/SingleDataPane.java | 22 +--- .../ExtendedCustomFieldComboBoxPane.java | 12 +- 12 files changed, 176 insertions(+), 152 deletions(-) create mode 100644 designer-chart/src/main/java/com/fr/design/chartx/data/DataLayoutHelper.java diff --git a/designer-chart/src/main/java/com/fr/design/chartx/component/AbstractCustomFieldComboBoxPane.java b/designer-chart/src/main/java/com/fr/design/chartx/component/AbstractCustomFieldComboBoxPane.java index e93900ea6f..e4e27b7f49 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/component/AbstractCustomFieldComboBoxPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/component/AbstractCustomFieldComboBoxPane.java @@ -1,19 +1,18 @@ package com.fr.design.chartx.component; import com.fr.data.util.function.AbstractDataFunction; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.chartx.component.correlation.AbstractCorrelationPane; import com.fr.design.chartx.component.correlation.CalculateComboBoxEditorComponent; import com.fr.design.chartx.component.correlation.FieldEditorComponentWrapper; import com.fr.design.chartx.component.correlation.UIComboBoxEditorComponent; import com.fr.design.chartx.component.correlation.UITextFieldEditorComponent; -import com.fr.design.gui.frpane.UIComboBoxPane; +import com.fr.design.chartx.data.DataLayoutHelper; +import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.data.CalculateComboBox; import com.fr.design.mainframe.chart.gui.data.table.DataPaneHelper; import com.fr.extended.chart.UIComboBoxWithNone; @@ -22,19 +21,25 @@ import com.fr.stable.StringUtils; import javax.swing.JPanel; import javax.swing.SwingConstants; -import java.util.ArrayList; -import java.util.List; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import java.awt.BorderLayout; +import java.awt.CardLayout; import java.awt.Component; -import java.awt.Dimension; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.util.ArrayList; +import java.util.List; /** * Created by shine on 2018/9/12. * 系列名使用字段名or字段值的抽象的pane 支持多种属性结构的存取 */ -public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane { +public abstract class AbstractCustomFieldComboBoxPane extends BasicBeanPane { + + private UIButtonGroup nameOrValue; + private JPanel cardPane; + private CardLayout cardLayout; private AbstractUseFieldValuePane useFieldValuePane; @@ -42,73 +47,43 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< private List fieldList = new ArrayList(); - @Override - protected void initLayout() { - this.setLayout(new BorderLayout(0, 6)); - JPanel northPane = new JPanel(new BorderLayout()); - northPane.add(jcb, BorderLayout.CENTER); - UILabel label = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Series_Name_From")); - label.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH, 20)); - northPane.add(label, BorderLayout.WEST); - this.add(northPane, BorderLayout.NORTH); - this.add(cardPane, BorderLayout.CENTER); - } + public AbstractCustomFieldComboBoxPane() { - @Override - protected List> initPaneList() { useFieldValuePane = createUseFieldValuePane(); customFieldNamePane = createCustomFieldNamePane(); - List> list = new ArrayList>(); - list.add(useFieldValuePane); - list.add(paneWrapper()); - return list; - } - private FurtherBasicBeanPane paneWrapper() { - FurtherBasicBeanPane pane = new FurtherBasicBeanPane() { + nameOrValue = new UIButtonGroup( + new String[]{useFieldValuePane.title4PopupWindow(), customFieldNamePane.title4PopupWindow()}, + new Boolean[]{false, true}); + nameOrValue.setSelectedItem(false); + nameOrValue.addChangeListener(new ChangeListener() { @Override - public String title4PopupWindow() { - return Toolkit.i18nText("Fine-Design_Chart_Enable_Field_Name"); + public void stateChanged(ChangeEvent e) { + checkCardPane(); } + }); + JPanel northPane = DataLayoutHelper.createDataLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Series_Name_From"), nameOrValue); - @Override - public boolean accept(Object ob) { - return false; - } - - @Override - public void reset() { - } + cardLayout = new CardLayout(); + cardPane = new JPanel(cardLayout); + cardPane.add(useFieldValuePane, useFieldValuePane.title4PopupWindow()); + cardPane.add(customFieldNamePane, customFieldNamePane.title4PopupWindow()); - @Override - public void populateBean(Object ob) { - } - - @Override - public Object updateBean() { - return null; - } - }; - pane.setLayout(new BorderLayout(0, 6)); - pane.add(customFieldNamePane, BorderLayout.CENTER); - return pane; + this.setLayout(new BorderLayout(0, 6)); + this.add(northPane, BorderLayout.NORTH); + this.add(cardPane, BorderLayout.CENTER); } protected abstract AbstractUseFieldValuePane createUseFieldValuePane(); protected abstract AbstractCustomFieldNamePane createCustomFieldNamePane(); - @Override - protected String title4PopupWindow() { - return StringUtils.EMPTY; - } - protected boolean valueComboBoxHasNone() { return false; } public void checkBoxUse(boolean hasUse) { - jcb.setEnabled(hasUse); + nameOrValue.setEnabled(hasUse); useFieldValuePane.checkBoxUse(hasUse); } @@ -122,6 +97,19 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< fieldList = columnNameList; } + private void checkCardPane() { + cardLayout.show(cardPane, nameOrValue.getSelectedItem() ? customFieldNamePane.title4PopupWindow() : useFieldValuePane.title4PopupWindow()); + } + + protected void populateNameOrValue(boolean b) { + nameOrValue.setSelectedItem(b); + checkCardPane(); + } + + protected boolean updateNameOrValue() { + return nameOrValue.getSelectedItem(); + } + protected void populateCustomFieldNamePane(T t) { customFieldNamePane.populateBean(t); } @@ -138,6 +126,16 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< useFieldValuePane.updateBean(t); } + @Override + public T updateBean() { + return null; + } + + @Override + protected String title4PopupWindow() { + return null; + } + protected abstract class AbstractUseFieldValuePane extends FurtherBasicBeanPane { private UIComboBox series; private UIComboBox value; @@ -169,11 +167,7 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Summary_Method"), SwingConstants.LEFT), function}, }; - double p = TableLayout.PREFERRED; - double[] columnSize = {78, 122}; - double[] rowSize = {p, p, p}; - - JPanel panel = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + JPanel panel = DataLayoutHelper.createDataLayoutPane(components); this.setLayout(new BorderLayout(0, 6)); this.add(panel, BorderLayout.CENTER); @@ -258,5 +252,10 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< protected Object[] createLine() { return new String[]{StringUtils.EMPTY, StringUtils.EMPTY, Toolkit.i18nText("Fine-Design_Chart_Use_None")}; } + + @Override + protected String title4PopupWindow() { + return Toolkit.i18nText("Fine-Design_Chart_Enable_Field_Name"); + } } } diff --git a/designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java b/designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java index 4372cf0db1..e38b3965d4 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java @@ -27,23 +27,21 @@ public class SeriesValueFieldComboBoxPane extends AbstractCustomFieldComboBoxPan @Override public void populateBean(SeriesValueCorrelationDefinition ob) { + populateNameOrValue(ob.isCustomFieldValue()); if (ob.isCustomFieldValue()) { populateCustomFieldNamePane(ob); - jcb.setSelectedIndex(1); } else { populateUseFieldValuePane(ob); - jcb.setSelectedIndex(0); } } @Override public void updateBean(SeriesValueCorrelationDefinition ob) { - if (jcb.getSelectedIndex() == 0) { - ob.setCustomFieldValue(false); - updateUseFieldValuePane(ob); - } else { - ob.setCustomFieldValue(true); + ob.setCustomFieldValue(updateNameOrValue()); + if (ob.isCustomFieldValue()) { updateCustomFieldNamePane(ob); + } else { + updateUseFieldValuePane(ob); } } diff --git a/designer-chart/src/main/java/com/fr/design/chartx/data/DataLayoutHelper.java b/designer-chart/src/main/java/com/fr/design/chartx/data/DataLayoutHelper.java new file mode 100644 index 0000000000..98ae28085c --- /dev/null +++ b/designer-chart/src/main/java/com/fr/design/chartx/data/DataLayoutHelper.java @@ -0,0 +1,69 @@ +package com.fr.design.chartx.data; + +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; + +import javax.swing.BorderFactory; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.SwingConstants; +import java.awt.Component; +import java.util.Arrays; + +/** + * @author shine + * @version 10.0 + * Created by shine on 2020/7/22 + */ +public class DataLayoutHelper { + + public static int WIDTH = 150; + public static int LABEL_HEIGHT = 20; + public static int LABEL_WIDTH = 65; + + public static int LEFT_GAP = 15; + public static int RIGHT_GAP = 10; + + public static void setWIDTH(int WIDTH) { + DataLayoutHelper.WIDTH = WIDTH; + } + + public static void setLabelHeight(int labelHeight) { + LABEL_HEIGHT = labelHeight; + } + + public static void setLabelWidth(int labelWidth) { + LABEL_WIDTH = labelWidth; + } + + public static void setLeftGap(int leftGap) { + LEFT_GAP = leftGap; + } + + public static void setRightGap(int rightGap) { + RIGHT_GAP = rightGap; + } + + public static JPanel createDataLayoutPane(Component[][] components) { + int len = components.length; + double p = TableLayout.PREFERRED; + double[] columnSize = {DataLayoutHelper.LABEL_WIDTH, DataLayoutHelper.WIDTH}; + double[] rowSize = new double[len]; + Arrays.fill(rowSize, p); + + return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + } + + public static JPanel createDataLayoutPane(String label, Component component) { + Component[][] components = new Component[][]{ + new Component[]{new UILabel(label, SwingConstants.LEFT), component} + }; + + return createDataLayoutPane(components); + } + + public static void addNormalBorder(JComponent component) { + component.setBorder(BorderFactory.createEmptyBorder(0, DataLayoutHelper.LEFT_GAP, 0, DataLayoutHelper.RIGHT_GAP)); + } +} diff --git a/designer-chart/src/main/java/com/fr/design/chartx/data/map/AbstractAreaLngLatPane.java b/designer-chart/src/main/java/com/fr/design/chartx/data/map/AbstractAreaLngLatPane.java index 09393918a5..53c1cde759 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/data/map/AbstractAreaLngLatPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/data/map/AbstractAreaLngLatPane.java @@ -1,18 +1,15 @@ package com.fr.design.chartx.data.map; +import com.fr.design.chartx.data.DataLayoutHelper; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.mainframe.chart.gui.ChartDataPane; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.util.Arrays; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Component; @@ -67,8 +64,10 @@ public abstract class AbstractAreaLngLatPane extends JPanel { locationType.setSelectedIndex(0); + JPanel northPane = DataLayoutHelper.createDataLayoutPane(Toolkit.i18nText("FR-Plugin_Design_Geographic_Location"), locationType); + this.setLayout(new BorderLayout(0, 6)); - this.add(locationType, BorderLayout.NORTH); + this.add(northPane, BorderLayout.NORTH); this.add(centerPane, BorderLayout.CENTER); } @@ -103,12 +102,8 @@ public abstract class AbstractAreaLngLatPane extends JPanel { for (int i = 0; i < len; i++) { components[i] = new Component[]{new UILabel(labels[i], SwingConstants.LEFT), fieldComponents[i]}; } - double p = TableLayout.PREFERRED; - double[] columnSize = {ChartDataPane.LABEL_WIDTH, 122}; - double[] rowSize = new double[len]; - Arrays.fill(rowSize, p); - return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 6); + return DataLayoutHelper.createDataLayoutPane(components); } } diff --git a/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java b/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java index fd4790d57d..c6686dece9 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java @@ -10,7 +10,6 @@ import com.fr.design.chartx.fields.diff.PointMapCellDataFieldsPane; import com.fr.design.chartx.fields.diff.PointMapDataSetFieldsPane; import com.fr.design.chartx.single.SingleDataPane; import com.fr.design.gui.frpane.AttributeChangeListener; -import com.fr.plugin.chart.map.VanChartMapPlot; import com.fr.plugin.chart.type.MapType; import com.fr.van.chart.map.designer.VanMapAreaPointAndLineGroupPane; @@ -33,11 +32,8 @@ public class MapChartDataPane extends AbstractChartDataPane { this.setLayout(new BorderLayout()); this.add(cellDataFieldsPane, BorderLayout.CENTER); + DataLayoutHelper.addNormalBorder(this); } @Override diff --git a/designer-chart/src/main/java/com/fr/design/chartx/single/DataSetPane.java b/designer-chart/src/main/java/com/fr/design/chartx/single/DataSetPane.java index cfb9a2c18a..3df0d3d6d5 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/single/DataSetPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/single/DataSetPane.java @@ -3,25 +3,20 @@ package com.fr.design.chartx.single; import com.fr.chartx.data.DataSetDefinition; import com.fr.data.impl.NameTableData; import com.fr.design.beans.FurtherBasicBeanPane; +import com.fr.design.chartx.data.DataLayoutHelper; import com.fr.design.chartx.fields.AbstractDataSetFieldsPane; 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.DatabaseTableDataPane; -import com.fr.design.utils.gui.UIComponentUtils; -import java.util.List; +import javax.swing.JPanel; import java.awt.BorderLayout; -import java.awt.Dimension; +import java.util.List; /** * Created by shine on 2019/5/21. */ public class DataSetPane extends FurtherBasicBeanPane { - private static final int TABLE_DATA_LABEL_LINE_WRAP_WIDTH = 65; - private static final int TABLE_DATA_PANE_WIDTH = 246; private DatabaseTableDataPane tableDataPane; @@ -32,24 +27,27 @@ public class DataSetPane extends FurtherBasicBeanPane { } private void initComps(AbstractDataSetFieldsPane dataSetFieldsPane) { - 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) { + tableDataPane = new DatabaseTableDataPane(null) { @Override protected void userEvent() { refreshBoxListAndTableName(); checkBoxUse(); } + + @Override + protected void setBorder() { + } + }; - tableDataPane.setPreferredSize(new Dimension(TABLE_DATA_PANE_WIDTH, tableDataPane.getPreferredSize().height)); + this.dataSetFieldsPane = dataSetFieldsPane; - this.setLayout(new BorderLayout()); - this.add(tableDataPane, BorderLayout.NORTH); + JPanel northPane = DataLayoutHelper.createDataLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Table_Data"), tableDataPane); + this.setLayout(new BorderLayout(0, 6)); + this.add(northPane, BorderLayout.NORTH); this.add(dataSetFieldsPane, BorderLayout.CENTER); + DataLayoutHelper.addNormalBorder(this); checkBoxUse(); } diff --git a/designer-chart/src/main/java/com/fr/design/chartx/single/SingleDataPane.java b/designer-chart/src/main/java/com/fr/design/chartx/single/SingleDataPane.java index dc4dfc65ad..06ed06649b 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/single/SingleDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/single/SingleDataPane.java @@ -3,28 +3,22 @@ package com.fr.design.chartx.single; import com.fr.chartx.data.AbstractDataDefinition; import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane; +import com.fr.design.chartx.data.DataLayoutHelper; import com.fr.design.chartx.fields.AbstractCellDataFieldsPane; import com.fr.design.chartx.fields.AbstractDataSetFieldsPane; -import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.frpane.UIComboBoxPane; -import com.fr.design.gui.ilable.BoldFontTextLabel; -import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; -import com.fr.design.utils.gui.UIComponentUtils; -import javax.swing.BorderFactory; import javax.swing.JPanel; +import java.awt.BorderLayout; import java.util.ArrayList; import java.util.List; -import java.awt.BorderLayout; /** * Created by shine on 2019/5/21. */ public class SingleDataPane extends BasicBeanPane { - private static final int TABLE_DATA_LABEL_LINE_WIDTH = 81; - private UIComboBoxPane comboBoxPane; private DataSetPane dataSetPane; @@ -50,18 +44,12 @@ public class SingleDataPane extends BasicBeanPane { } protected void initLayout() { - this.setLayout(new BorderLayout(LayoutConstants.HGAP_LARGE, 6)); - JPanel northPane = new JPanel(new BorderLayout(LayoutConstants.HGAP_LARGE, 0)); + this.setLayout(new BorderLayout(0, 6)); + JPanel northPane = DataLayoutHelper.createDataLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Data_Source"), jcb); + DataLayoutHelper.addNormalBorder(northPane); - UILabel label = new BoldFontTextLabel(Toolkit.i18nText("Fine-Design_Chart_Data_Source")); - UIComponentUtils.setPreferedWidth(label, TABLE_DATA_LABEL_LINE_WIDTH); - northPane.add(label,BorderLayout.WEST); - northPane.add(jcb, BorderLayout.CENTER); - - northPane.setBorder(BorderFactory.createEmptyBorder(5,24,0,15)); this.add(northPane, BorderLayout.NORTH); this.add(cardPane, BorderLayout.CENTER); - } @Override diff --git a/designer-chart/src/main/java/com/fr/extended/chart/ExtendedCustomFieldComboBoxPane.java b/designer-chart/src/main/java/com/fr/extended/chart/ExtendedCustomFieldComboBoxPane.java index 108d4b605e..119d73bda6 100644 --- a/designer-chart/src/main/java/com/fr/extended/chart/ExtendedCustomFieldComboBoxPane.java +++ b/designer-chart/src/main/java/com/fr/extended/chart/ExtendedCustomFieldComboBoxPane.java @@ -27,21 +27,19 @@ public class ExtendedCustomFieldComboBoxPane extends AbstractCustomFieldComboBox public void populateBean(AbstractDataConfig ob) { if (ob.isCustomName()) { populateCustomFieldNamePane(ob); - jcb.setSelectedIndex(1); } else { populateUseFieldValuePane(ob); - jcb.setSelectedIndex(0); } + populateNameOrValue(ob.isCustomName()); } @Override public void updateBean(AbstractDataConfig ob) { - if (jcb.getSelectedIndex() == 0) { - ob.setCustomName(false); - updateUseFieldValuePane(ob); - } else { - ob.setCustomName(true); + ob.setCustomName(updateNameOrValue()); + if (ob.isCustomName()) { updateCustomFieldNamePane(ob); + } else { + updateUseFieldValuePane(ob); } } From 2b32641bae3c12e3260aa124ec350c5ebad499e8 Mon Sep 17 00:00:00 2001 From: shine Date: Wed, 19 Aug 2020 15:01:17 +0800 Subject: [PATCH 02/32] =?UTF-8?q?=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/chartx/data/map/MapChartDataPane.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java b/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java index c6686dece9..148bcd7ca2 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java @@ -10,6 +10,7 @@ import com.fr.design.chartx.fields.diff.PointMapCellDataFieldsPane; import com.fr.design.chartx.fields.diff.PointMapDataSetFieldsPane; import com.fr.design.chartx.single.SingleDataPane; import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.plugin.chart.map.VanChartMapPlot; import com.fr.plugin.chart.type.MapType; import com.fr.van.chart.map.designer.VanMapAreaPointAndLineGroupPane; @@ -32,7 +33,11 @@ public class MapChartDataPane extends AbstractChartDataPane Date: Wed, 19 Aug 2020 17:44:17 +0800 Subject: [PATCH 03/32] =?UTF-8?q?REPORT-37769=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E5=A4=9Atab=EF=BC=8C=E8=AE=BE=E7=BD=AE=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E8=83=8C=E6=99=AF=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=B8=80=E4=B8=AAtab=EF=BC=8C=E7=AC=AC=E4=B8=80=E4=B8=AAtab0?= =?UTF-8?q?=E7=9A=84=E9=80=89=E4=B8=AD=E8=83=8C=E6=99=AF=E5=B0=B1=E4=BC=9A?= =?UTF-8?q?=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/designer/creator/cardlayout/XWCardTagLayout.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java index dc8bb90801..49f246256c 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java @@ -143,7 +143,7 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { fitLayout.setInitialBackground(layout.getTemplateStyle().getTabDefaultBackground()); fitLayout.setCustomStyle(true); } - tabFitLayout.setxCardSwitchButton((XCardSwitchButton)this.getComponent(0)); + tabFitLayout.setxCardSwitchButton((XCardSwitchButton)this.getComponent(index)); tabFitLayout.checkButonType(); tabFitLayout.setBackupParent(cardLayout); cardLayout.add(tabFitLayout, widgetName); From 55e1b7288f6dd45bb41fd4e99d8844cf34796d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Thu, 20 Aug 2020 10:15:18 +0800 Subject: [PATCH 04/32] =?UTF-8?q?CHART-15216=20=E6=9D=A1=E4=BB=B6=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E4=B8=AD=E4=B8=8D=E5=BA=94=E8=AF=A5=E5=87=BA=E7=8E=B0?= =?UTF-8?q?=E5=8B=BE=E9=80=89=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VanChartLineMapTooltipConditionPane.java | 4 +-- ...VanChartLineMapPlotTooltipNoCheckPane.java | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapPlotTooltipNoCheckPane.java diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/VanChartLineMapTooltipConditionPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/VanChartLineMapTooltipConditionPane.java index 408480a791..d3ed1ab7a5 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/VanChartLineMapTooltipConditionPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/VanChartLineMapTooltipConditionPane.java @@ -4,7 +4,7 @@ package com.fr.van.chart.designer.other.condition.item; import com.fr.chart.chartattr.Plot; import com.fr.design.condition.ConditionAttributesPane; import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane; -import com.fr.van.chart.map.line.VanChartLineMapPlotTooltipPane; +import com.fr.van.chart.map.line.VanChartLineMapPlotTooltipNoCheckPane; /** * Created by hufan on 2016/12/23. @@ -16,6 +16,6 @@ public class VanChartLineMapTooltipConditionPane extends VanChartTooltipConditio } protected VanChartPlotTooltipPane createTooltipContentsPane() { - return new VanChartLineMapPlotTooltipPane(getPlot(), null); + return new VanChartLineMapPlotTooltipNoCheckPane(getPlot(), null); } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapPlotTooltipNoCheckPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapPlotTooltipNoCheckPane.java new file mode 100644 index 0000000000..88b72c5709 --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapPlotTooltipNoCheckPane.java @@ -0,0 +1,36 @@ +package com.fr.van.chart.map.line; + +import com.fr.chart.chartattr.Plot; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.i18n.Toolkit; +import com.fr.plugin.chart.base.AttrTooltip; +import com.fr.van.chart.designer.style.VanChartStylePane; + +import java.awt.BorderLayout; + +/** + * @author Bjorn + * @version 10.0 + * Created by Bjorn on 2020-08-20 + */ +public class VanChartLineMapPlotTooltipNoCheckPane extends VanChartLineMapPlotTooltipPane { + + public VanChartLineMapPlotTooltipNoCheckPane(Plot plot, VanChartStylePane parent) { + super(plot, parent); + } + + protected void addComponents(Plot plot) { + isTooltipShow = new UICheckBox(Toolkit.i18nText("Fine-Design_Chart_Use_Tooltip")); + tooltipPane = createTooltipPane(plot); + + this.setLayout(new BorderLayout()); + this.add(tooltipPane, BorderLayout.CENTER); + } + + @Override + public void populate(AttrTooltip attr) { + super.populate(attr); + isTooltipShow.setSelected(true); + tooltipPane.setEnabled(isTooltipShow.isSelected()); + } +} From 279c9f40bd3c2956ca6aa2540a63a1ef6e52974d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Thu, 20 Aug 2020 10:35:25 +0800 Subject: [PATCH 05/32] =?UTF-8?q?CHART-15216=20release=E2=86=92final?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VanChartLineMapTooltipConditionPane.java | 4 +-- ...VanChartLineMapPlotTooltipNoCheckPane.java | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapPlotTooltipNoCheckPane.java diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/VanChartLineMapTooltipConditionPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/VanChartLineMapTooltipConditionPane.java index 408480a791..d3ed1ab7a5 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/VanChartLineMapTooltipConditionPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/VanChartLineMapTooltipConditionPane.java @@ -4,7 +4,7 @@ package com.fr.van.chart.designer.other.condition.item; import com.fr.chart.chartattr.Plot; import com.fr.design.condition.ConditionAttributesPane; import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane; -import com.fr.van.chart.map.line.VanChartLineMapPlotTooltipPane; +import com.fr.van.chart.map.line.VanChartLineMapPlotTooltipNoCheckPane; /** * Created by hufan on 2016/12/23. @@ -16,6 +16,6 @@ public class VanChartLineMapTooltipConditionPane extends VanChartTooltipConditio } protected VanChartPlotTooltipPane createTooltipContentsPane() { - return new VanChartLineMapPlotTooltipPane(getPlot(), null); + return new VanChartLineMapPlotTooltipNoCheckPane(getPlot(), null); } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapPlotTooltipNoCheckPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapPlotTooltipNoCheckPane.java new file mode 100644 index 0000000000..49afb79ebc --- /dev/null +++ b/designer-chart/src/main/java/com/fr/van/chart/map/line/VanChartLineMapPlotTooltipNoCheckPane.java @@ -0,0 +1,36 @@ +package com.fr.van.chart.map.line; + +import com.fr.chart.chartattr.Plot; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.i18n.Toolkit; +import com.fr.plugin.chart.base.AttrTooltip; +import com.fr.van.chart.designer.style.VanChartStylePane; + +import java.awt.BorderLayout; + +/** + * @author Bjorn + * @version 10.0 + * Created by Bjorn on 2020-08-20 + */ +public class VanChartLineMapPlotTooltipNoCheckPane extends VanChartLineMapPlotTooltipPane { + + public VanChartLineMapPlotTooltipNoCheckPane(Plot plot, VanChartStylePane parent) { + super(plot, parent); + } + + protected void addComponents(Plot plot) { + isTooltipShow = new UICheckBox(Toolkit.i18nText("Fine-Design_Chart_Use_Tooltip")); + tooltipPane = createTooltipPane(plot); + + this.setLayout(new BorderLayout()); + this.add(tooltipPane, BorderLayout.CENTER); + } + + @Override + public void populate(AttrTooltip attr) { + super.populate(attr); + isTooltipShow.setSelected(true); + tooltipPane.setEnabled(isTooltipShow.isSelected()); + } +} \ No newline at end of file From 6251d571522ef136311fee0492e0b6234247319c Mon Sep 17 00:00:00 2001 From: Yvan Date: Thu, 20 Aug 2020 11:34:39 +0800 Subject: [PATCH 06/32] =?UTF-8?q?REPORT-29547=20=E3=80=90=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E3=80=91=E8=AE=BE=E8=AE=A1=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E5=8F=B3=E4=BE=A7=E4=B8=8B=E6=8B=89=E6=8C=89=E9=92=AE=E4=B8=AD?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E5=85=B6=E5=AE=83=E6=A8=A1=E6=9D=BF=E6=96=87?= =?UTF-8?q?=E5=AD=97=E5=B1=95=E7=A4=BA=E4=B8=8D=E5=85=A8=201.=20=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE"=E5=85=B3=E9=97=AD=E5=85=B6=E5=AE=83=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF"=E8=BF=99=E4=B8=AA=E7=BB=84=E4=BB=B6=E7=9A=84?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E6=B0=B4=E5=B9=B3=E5=B1=85=E4=B8=AD=202.=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E4=BA=9B=E5=AF=BC=E5=8C=85=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/file/MutilTempalteTabPane.java | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java b/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java index e4ab990337..69aee1b50e 100644 --- a/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java +++ b/designer-base/src/main/java/com/fr/design/file/MutilTempalteTabPane.java @@ -17,14 +17,31 @@ import com.fr.file.FILE; import com.fr.general.ComparatorUtils; import com.fr.log.FineLoggerFactory; import com.fr.stable.Constants; -import com.fr.stable.ProductConstants; import com.fr.third.javax.annotation.Nonnull; import com.fr.workspace.WorkContext; import com.fr.workspace.server.lock.TplOperator; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.ButtonModel; +import javax.swing.Icon; +import javax.swing.JComponent; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JSeparator; +import javax.swing.SwingConstants; import javax.swing.plaf.basic.BasicMenuItemUI; -import java.awt.*; +import java.awt.AWTEvent; +import java.awt.AlphaComposite; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.GradientPaint; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.RenderingHints; import java.awt.event.AWTEventListener; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -171,6 +188,8 @@ public class MutilTempalteTabPane extends JComponent { private UIMenuItem initCloseOther() { UIMenuItem closeOther = new UIMenuItem(Toolkit.i18nText("Fine-Design_Basic_FS_Close_Other_Templates")); + // Yvan: 英文下文本显示不全,后续发现如果将模板名设置的比较短,其它语言也会出现显示不全的问题,所以设置一下文本水平居中 + closeOther.setHorizontalAlignment(SwingConstants.CENTER); setListDownItemPreferredSize(closeOther); closeOther.addActionListener(new ActionListener() { @Override From ea06a7b22458583df9cf14eecf94fe49812390c2 Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 20 Aug 2020 12:25:29 +0800 Subject: [PATCH 07/32] =?UTF-8?q?REPORT-37821=20=20frm=E7=BB=9D=E5=AF=B9?= =?UTF-8?q?=E5=B8=83=E5=B1=80=E6=A1=86=E9=80=89=E5=A4=9A=E4=B8=AA=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/EditingMouseListener.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java b/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java index 3754e5109e..2fa3dea643 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java @@ -195,6 +195,7 @@ public class EditingMouseListener extends MouseInputAdapter { */ public void mouseReleased(MouseEvent e) { MouseEvent transEvent = new MouseEvent(e.getComponent(), MouseEvent.MOUSE_CLICKED, e.getWhen(), e.getModifiers(), e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton()); + MouseEvent clickEvent = new MouseEvent(e.getComponent(), MouseEvent.MOUSE_CLICKED, e.getWhen(), e.getModifiers(), e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton()); int oldX = e.getX(); int oldY = e.getY(); offsetEventPoint(e); @@ -219,14 +220,21 @@ public class EditingMouseListener extends MouseInputAdapter { lastPressEvent = null; lastXCreator = null; e.translatePoint(oldX - e.getX(), oldY - e.getY()); - if (pressX != oldX || pressY != oldY) { + if (isAutoFire(transEvent, clickEvent)) { // click只有在mouseReleased和mousePressed前后x/y坐标相等时才会被触发在mouseReleased之后 // 但是当使用者来回点击切换时 存在mouseReleased和mousePressed前后x/y坐标不相等的情况 即鼠标按下去的位置和鼠标释放的位置不相等 存在偏移 // 当这种偏移很小时 看起来就好像是点击了 实际上是手抖了或者鼠标轻微滑动了 所以这里对这种情况要有容错处理 - mouseClicked(transEvent); + mouseClicked(clickEvent); } } + private boolean isAutoFire(MouseEvent transEvent, MouseEvent clickEvent ) { + offsetEventPoint(transEvent); + XCreator xCreator = designer.getComponentAt(transEvent); + return (pressX != clickEvent.getX() || pressY != clickEvent.getY()) + && xCreator != null && xCreator.acceptType(XCardSwitchButton.class); + } + private void mouseDraggingRelease(MouseEvent e) { // 当前鼠标所在的组件 XCreator hoveredComponent = designer.getComponentAt(e.getX(), e.getY()); From 3ed643669b8d926ffcdf70e2b655ae3978977548 Mon Sep 17 00:00:00 2001 From: shine Date: Wed, 19 Aug 2020 14:56:42 +0800 Subject: [PATCH 08/32] =?UTF-8?q?=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractCustomFieldComboBoxPane.java | 121 +++++++++--------- .../SeriesValueFieldComboBoxPane.java | 12 +- .../design/chartx/data/DataLayoutHelper.java | 69 ++++++++++ .../data/map/AbstractAreaLngLatPane.java | 15 +-- .../chartx/data/map/MapChartDataPane.java | 8 +- .../fields/AbstractCellDataFieldsPane.java | 15 +-- .../fields/AbstractDataSetFieldsPane.java | 15 +-- .../fields/diff/MapDataSetFieldsPane.java | 7 +- .../fr/design/chartx/single/CellDataPane.java | 2 + .../fr/design/chartx/single/DataSetPane.java | 30 ++--- .../design/chartx/single/SingleDataPane.java | 22 +--- .../ExtendedCustomFieldComboBoxPane.java | 12 +- 12 files changed, 176 insertions(+), 152 deletions(-) create mode 100644 designer-chart/src/main/java/com/fr/design/chartx/data/DataLayoutHelper.java diff --git a/designer-chart/src/main/java/com/fr/design/chartx/component/AbstractCustomFieldComboBoxPane.java b/designer-chart/src/main/java/com/fr/design/chartx/component/AbstractCustomFieldComboBoxPane.java index e93900ea6f..e4e27b7f49 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/component/AbstractCustomFieldComboBoxPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/component/AbstractCustomFieldComboBoxPane.java @@ -1,19 +1,18 @@ package com.fr.design.chartx.component; import com.fr.data.util.function.AbstractDataFunction; +import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.chartx.component.correlation.AbstractCorrelationPane; import com.fr.design.chartx.component.correlation.CalculateComboBoxEditorComponent; import com.fr.design.chartx.component.correlation.FieldEditorComponentWrapper; import com.fr.design.chartx.component.correlation.UIComboBoxEditorComponent; import com.fr.design.chartx.component.correlation.UITextFieldEditorComponent; -import com.fr.design.gui.frpane.UIComboBoxPane; +import com.fr.design.chartx.data.DataLayoutHelper; +import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.data.CalculateComboBox; import com.fr.design.mainframe.chart.gui.data.table.DataPaneHelper; import com.fr.extended.chart.UIComboBoxWithNone; @@ -22,19 +21,25 @@ import com.fr.stable.StringUtils; import javax.swing.JPanel; import javax.swing.SwingConstants; -import java.util.ArrayList; -import java.util.List; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import java.awt.BorderLayout; +import java.awt.CardLayout; import java.awt.Component; -import java.awt.Dimension; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; +import java.util.ArrayList; +import java.util.List; /** * Created by shine on 2018/9/12. * 系列名使用字段名or字段值的抽象的pane 支持多种属性结构的存取 */ -public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane { +public abstract class AbstractCustomFieldComboBoxPane extends BasicBeanPane { + + private UIButtonGroup nameOrValue; + private JPanel cardPane; + private CardLayout cardLayout; private AbstractUseFieldValuePane useFieldValuePane; @@ -42,73 +47,43 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< private List fieldList = new ArrayList(); - @Override - protected void initLayout() { - this.setLayout(new BorderLayout(0, 6)); - JPanel northPane = new JPanel(new BorderLayout()); - northPane.add(jcb, BorderLayout.CENTER); - UILabel label = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Series_Name_From")); - label.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH, 20)); - northPane.add(label, BorderLayout.WEST); - this.add(northPane, BorderLayout.NORTH); - this.add(cardPane, BorderLayout.CENTER); - } + public AbstractCustomFieldComboBoxPane() { - @Override - protected List> initPaneList() { useFieldValuePane = createUseFieldValuePane(); customFieldNamePane = createCustomFieldNamePane(); - List> list = new ArrayList>(); - list.add(useFieldValuePane); - list.add(paneWrapper()); - return list; - } - private FurtherBasicBeanPane paneWrapper() { - FurtherBasicBeanPane pane = new FurtherBasicBeanPane() { + nameOrValue = new UIButtonGroup( + new String[]{useFieldValuePane.title4PopupWindow(), customFieldNamePane.title4PopupWindow()}, + new Boolean[]{false, true}); + nameOrValue.setSelectedItem(false); + nameOrValue.addChangeListener(new ChangeListener() { @Override - public String title4PopupWindow() { - return Toolkit.i18nText("Fine-Design_Chart_Enable_Field_Name"); + public void stateChanged(ChangeEvent e) { + checkCardPane(); } + }); + JPanel northPane = DataLayoutHelper.createDataLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Series_Name_From"), nameOrValue); - @Override - public boolean accept(Object ob) { - return false; - } - - @Override - public void reset() { - } + cardLayout = new CardLayout(); + cardPane = new JPanel(cardLayout); + cardPane.add(useFieldValuePane, useFieldValuePane.title4PopupWindow()); + cardPane.add(customFieldNamePane, customFieldNamePane.title4PopupWindow()); - @Override - public void populateBean(Object ob) { - } - - @Override - public Object updateBean() { - return null; - } - }; - pane.setLayout(new BorderLayout(0, 6)); - pane.add(customFieldNamePane, BorderLayout.CENTER); - return pane; + this.setLayout(new BorderLayout(0, 6)); + this.add(northPane, BorderLayout.NORTH); + this.add(cardPane, BorderLayout.CENTER); } protected abstract AbstractUseFieldValuePane createUseFieldValuePane(); protected abstract AbstractCustomFieldNamePane createCustomFieldNamePane(); - @Override - protected String title4PopupWindow() { - return StringUtils.EMPTY; - } - protected boolean valueComboBoxHasNone() { return false; } public void checkBoxUse(boolean hasUse) { - jcb.setEnabled(hasUse); + nameOrValue.setEnabled(hasUse); useFieldValuePane.checkBoxUse(hasUse); } @@ -122,6 +97,19 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< fieldList = columnNameList; } + private void checkCardPane() { + cardLayout.show(cardPane, nameOrValue.getSelectedItem() ? customFieldNamePane.title4PopupWindow() : useFieldValuePane.title4PopupWindow()); + } + + protected void populateNameOrValue(boolean b) { + nameOrValue.setSelectedItem(b); + checkCardPane(); + } + + protected boolean updateNameOrValue() { + return nameOrValue.getSelectedItem(); + } + protected void populateCustomFieldNamePane(T t) { customFieldNamePane.populateBean(t); } @@ -138,6 +126,16 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< useFieldValuePane.updateBean(t); } + @Override + public T updateBean() { + return null; + } + + @Override + protected String title4PopupWindow() { + return null; + } + protected abstract class AbstractUseFieldValuePane extends FurtherBasicBeanPane { private UIComboBox series; private UIComboBox value; @@ -169,11 +167,7 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Summary_Method"), SwingConstants.LEFT), function}, }; - double p = TableLayout.PREFERRED; - double[] columnSize = {78, 122}; - double[] rowSize = {p, p, p}; - - JPanel panel = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + JPanel panel = DataLayoutHelper.createDataLayoutPane(components); this.setLayout(new BorderLayout(0, 6)); this.add(panel, BorderLayout.CENTER); @@ -258,5 +252,10 @@ public abstract class AbstractCustomFieldComboBoxPane extends UIComboBoxPane< protected Object[] createLine() { return new String[]{StringUtils.EMPTY, StringUtils.EMPTY, Toolkit.i18nText("Fine-Design_Chart_Use_None")}; } + + @Override + protected String title4PopupWindow() { + return Toolkit.i18nText("Fine-Design_Chart_Enable_Field_Name"); + } } } diff --git a/designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java b/designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java index 4372cf0db1..e38b3965d4 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/component/SeriesValueFieldComboBoxPane.java @@ -27,23 +27,21 @@ public class SeriesValueFieldComboBoxPane extends AbstractCustomFieldComboBoxPan @Override public void populateBean(SeriesValueCorrelationDefinition ob) { + populateNameOrValue(ob.isCustomFieldValue()); if (ob.isCustomFieldValue()) { populateCustomFieldNamePane(ob); - jcb.setSelectedIndex(1); } else { populateUseFieldValuePane(ob); - jcb.setSelectedIndex(0); } } @Override public void updateBean(SeriesValueCorrelationDefinition ob) { - if (jcb.getSelectedIndex() == 0) { - ob.setCustomFieldValue(false); - updateUseFieldValuePane(ob); - } else { - ob.setCustomFieldValue(true); + ob.setCustomFieldValue(updateNameOrValue()); + if (ob.isCustomFieldValue()) { updateCustomFieldNamePane(ob); + } else { + updateUseFieldValuePane(ob); } } diff --git a/designer-chart/src/main/java/com/fr/design/chartx/data/DataLayoutHelper.java b/designer-chart/src/main/java/com/fr/design/chartx/data/DataLayoutHelper.java new file mode 100644 index 0000000000..98ae28085c --- /dev/null +++ b/designer-chart/src/main/java/com/fr/design/chartx/data/DataLayoutHelper.java @@ -0,0 +1,69 @@ +package com.fr.design.chartx.data; + +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; + +import javax.swing.BorderFactory; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.SwingConstants; +import java.awt.Component; +import java.util.Arrays; + +/** + * @author shine + * @version 10.0 + * Created by shine on 2020/7/22 + */ +public class DataLayoutHelper { + + public static int WIDTH = 150; + public static int LABEL_HEIGHT = 20; + public static int LABEL_WIDTH = 65; + + public static int LEFT_GAP = 15; + public static int RIGHT_GAP = 10; + + public static void setWIDTH(int WIDTH) { + DataLayoutHelper.WIDTH = WIDTH; + } + + public static void setLabelHeight(int labelHeight) { + LABEL_HEIGHT = labelHeight; + } + + public static void setLabelWidth(int labelWidth) { + LABEL_WIDTH = labelWidth; + } + + public static void setLeftGap(int leftGap) { + LEFT_GAP = leftGap; + } + + public static void setRightGap(int rightGap) { + RIGHT_GAP = rightGap; + } + + public static JPanel createDataLayoutPane(Component[][] components) { + int len = components.length; + double p = TableLayout.PREFERRED; + double[] columnSize = {DataLayoutHelper.LABEL_WIDTH, DataLayoutHelper.WIDTH}; + double[] rowSize = new double[len]; + Arrays.fill(rowSize, p); + + return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + } + + public static JPanel createDataLayoutPane(String label, Component component) { + Component[][] components = new Component[][]{ + new Component[]{new UILabel(label, SwingConstants.LEFT), component} + }; + + return createDataLayoutPane(components); + } + + public static void addNormalBorder(JComponent component) { + component.setBorder(BorderFactory.createEmptyBorder(0, DataLayoutHelper.LEFT_GAP, 0, DataLayoutHelper.RIGHT_GAP)); + } +} diff --git a/designer-chart/src/main/java/com/fr/design/chartx/data/map/AbstractAreaLngLatPane.java b/designer-chart/src/main/java/com/fr/design/chartx/data/map/AbstractAreaLngLatPane.java index 09393918a5..53c1cde759 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/data/map/AbstractAreaLngLatPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/data/map/AbstractAreaLngLatPane.java @@ -1,18 +1,15 @@ package com.fr.design.chartx.data.map; +import com.fr.design.chartx.data.DataLayoutHelper; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.mainframe.chart.gui.ChartDataPane; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.util.Arrays; import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Component; @@ -67,8 +64,10 @@ public abstract class AbstractAreaLngLatPane extends JPanel { locationType.setSelectedIndex(0); + JPanel northPane = DataLayoutHelper.createDataLayoutPane(Toolkit.i18nText("FR-Plugin_Design_Geographic_Location"), locationType); + this.setLayout(new BorderLayout(0, 6)); - this.add(locationType, BorderLayout.NORTH); + this.add(northPane, BorderLayout.NORTH); this.add(centerPane, BorderLayout.CENTER); } @@ -103,12 +102,8 @@ public abstract class AbstractAreaLngLatPane extends JPanel { for (int i = 0; i < len; i++) { components[i] = new Component[]{new UILabel(labels[i], SwingConstants.LEFT), fieldComponents[i]}; } - double p = TableLayout.PREFERRED; - double[] columnSize = {ChartDataPane.LABEL_WIDTH, 122}; - double[] rowSize = new double[len]; - Arrays.fill(rowSize, p); - return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 6); + return DataLayoutHelper.createDataLayoutPane(components); } } diff --git a/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java b/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java index fd4790d57d..c6686dece9 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java @@ -10,7 +10,6 @@ import com.fr.design.chartx.fields.diff.PointMapCellDataFieldsPane; import com.fr.design.chartx.fields.diff.PointMapDataSetFieldsPane; import com.fr.design.chartx.single.SingleDataPane; import com.fr.design.gui.frpane.AttributeChangeListener; -import com.fr.plugin.chart.map.VanChartMapPlot; import com.fr.plugin.chart.type.MapType; import com.fr.van.chart.map.designer.VanMapAreaPointAndLineGroupPane; @@ -33,11 +32,8 @@ public class MapChartDataPane extends AbstractChartDataPane { this.setLayout(new BorderLayout()); this.add(cellDataFieldsPane, BorderLayout.CENTER); + DataLayoutHelper.addNormalBorder(this); } @Override diff --git a/designer-chart/src/main/java/com/fr/design/chartx/single/DataSetPane.java b/designer-chart/src/main/java/com/fr/design/chartx/single/DataSetPane.java index cfb9a2c18a..3df0d3d6d5 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/single/DataSetPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/single/DataSetPane.java @@ -3,25 +3,20 @@ package com.fr.design.chartx.single; import com.fr.chartx.data.DataSetDefinition; import com.fr.data.impl.NameTableData; import com.fr.design.beans.FurtherBasicBeanPane; +import com.fr.design.chartx.data.DataLayoutHelper; import com.fr.design.chartx.fields.AbstractDataSetFieldsPane; 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.DatabaseTableDataPane; -import com.fr.design.utils.gui.UIComponentUtils; -import java.util.List; +import javax.swing.JPanel; import java.awt.BorderLayout; -import java.awt.Dimension; +import java.util.List; /** * Created by shine on 2019/5/21. */ public class DataSetPane extends FurtherBasicBeanPane { - private static final int TABLE_DATA_LABEL_LINE_WRAP_WIDTH = 65; - private static final int TABLE_DATA_PANE_WIDTH = 246; private DatabaseTableDataPane tableDataPane; @@ -32,24 +27,27 @@ public class DataSetPane extends FurtherBasicBeanPane { } private void initComps(AbstractDataSetFieldsPane dataSetFieldsPane) { - 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) { + tableDataPane = new DatabaseTableDataPane(null) { @Override protected void userEvent() { refreshBoxListAndTableName(); checkBoxUse(); } + + @Override + protected void setBorder() { + } + }; - tableDataPane.setPreferredSize(new Dimension(TABLE_DATA_PANE_WIDTH, tableDataPane.getPreferredSize().height)); + this.dataSetFieldsPane = dataSetFieldsPane; - this.setLayout(new BorderLayout()); - this.add(tableDataPane, BorderLayout.NORTH); + JPanel northPane = DataLayoutHelper.createDataLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Table_Data"), tableDataPane); + this.setLayout(new BorderLayout(0, 6)); + this.add(northPane, BorderLayout.NORTH); this.add(dataSetFieldsPane, BorderLayout.CENTER); + DataLayoutHelper.addNormalBorder(this); checkBoxUse(); } diff --git a/designer-chart/src/main/java/com/fr/design/chartx/single/SingleDataPane.java b/designer-chart/src/main/java/com/fr/design/chartx/single/SingleDataPane.java index dc4dfc65ad..06ed06649b 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/single/SingleDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/single/SingleDataPane.java @@ -3,28 +3,22 @@ package com.fr.design.chartx.single; import com.fr.chartx.data.AbstractDataDefinition; import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.FurtherBasicBeanPane; +import com.fr.design.chartx.data.DataLayoutHelper; import com.fr.design.chartx.fields.AbstractCellDataFieldsPane; import com.fr.design.chartx.fields.AbstractDataSetFieldsPane; -import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.frpane.UIComboBoxPane; -import com.fr.design.gui.ilable.BoldFontTextLabel; -import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; -import com.fr.design.utils.gui.UIComponentUtils; -import javax.swing.BorderFactory; import javax.swing.JPanel; +import java.awt.BorderLayout; import java.util.ArrayList; import java.util.List; -import java.awt.BorderLayout; /** * Created by shine on 2019/5/21. */ public class SingleDataPane extends BasicBeanPane { - private static final int TABLE_DATA_LABEL_LINE_WIDTH = 81; - private UIComboBoxPane comboBoxPane; private DataSetPane dataSetPane; @@ -50,18 +44,12 @@ public class SingleDataPane extends BasicBeanPane { } protected void initLayout() { - this.setLayout(new BorderLayout(LayoutConstants.HGAP_LARGE, 6)); - JPanel northPane = new JPanel(new BorderLayout(LayoutConstants.HGAP_LARGE, 0)); + this.setLayout(new BorderLayout(0, 6)); + JPanel northPane = DataLayoutHelper.createDataLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Data_Source"), jcb); + DataLayoutHelper.addNormalBorder(northPane); - UILabel label = new BoldFontTextLabel(Toolkit.i18nText("Fine-Design_Chart_Data_Source")); - UIComponentUtils.setPreferedWidth(label, TABLE_DATA_LABEL_LINE_WIDTH); - northPane.add(label,BorderLayout.WEST); - northPane.add(jcb, BorderLayout.CENTER); - - northPane.setBorder(BorderFactory.createEmptyBorder(5,24,0,15)); this.add(northPane, BorderLayout.NORTH); this.add(cardPane, BorderLayout.CENTER); - } @Override diff --git a/designer-chart/src/main/java/com/fr/extended/chart/ExtendedCustomFieldComboBoxPane.java b/designer-chart/src/main/java/com/fr/extended/chart/ExtendedCustomFieldComboBoxPane.java index 108d4b605e..119d73bda6 100644 --- a/designer-chart/src/main/java/com/fr/extended/chart/ExtendedCustomFieldComboBoxPane.java +++ b/designer-chart/src/main/java/com/fr/extended/chart/ExtendedCustomFieldComboBoxPane.java @@ -27,21 +27,19 @@ public class ExtendedCustomFieldComboBoxPane extends AbstractCustomFieldComboBox public void populateBean(AbstractDataConfig ob) { if (ob.isCustomName()) { populateCustomFieldNamePane(ob); - jcb.setSelectedIndex(1); } else { populateUseFieldValuePane(ob); - jcb.setSelectedIndex(0); } + populateNameOrValue(ob.isCustomName()); } @Override public void updateBean(AbstractDataConfig ob) { - if (jcb.getSelectedIndex() == 0) { - ob.setCustomName(false); - updateUseFieldValuePane(ob); - } else { - ob.setCustomName(true); + ob.setCustomName(updateNameOrValue()); + if (ob.isCustomName()) { updateCustomFieldNamePane(ob); + } else { + updateUseFieldValuePane(ob); } } From 0d341449424ff6017835950b9849761353e830d1 Mon Sep 17 00:00:00 2001 From: shine Date: Wed, 19 Aug 2020 15:01:17 +0800 Subject: [PATCH 09/32] =?UTF-8?q?=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/chartx/data/map/MapChartDataPane.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java b/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java index c6686dece9..148bcd7ca2 100644 --- a/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/chartx/data/map/MapChartDataPane.java @@ -10,6 +10,7 @@ import com.fr.design.chartx.fields.diff.PointMapCellDataFieldsPane; import com.fr.design.chartx.fields.diff.PointMapDataSetFieldsPane; import com.fr.design.chartx.single.SingleDataPane; import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.plugin.chart.map.VanChartMapPlot; import com.fr.plugin.chart.type.MapType; import com.fr.van.chart.map.designer.VanMapAreaPointAndLineGroupPane; @@ -32,7 +33,11 @@ public class MapChartDataPane extends AbstractChartDataPane Date: Wed, 19 Aug 2020 17:48:12 +0800 Subject: [PATCH 10/32] =?UTF-8?q?CHART-15175=20=E8=B0=83=E6=95=B4=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E6=95=B0=E6=8D=AE=E7=9A=84=E6=95=B0=E6=8D=AE=E7=82=B9?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/van/chart/box/VanChartBoxPlotTooltipPane.java | 4 ---- .../com/fr/van/chart/box/VanChartBoxTooltipContentPane.java | 6 +++++- .../java/com/fr/van/chart/box/VanChartBoxTooltipPane.java | 6 ------ .../chart/box/data/report/BoxPlotReportDataContentPane.java | 2 +- .../chart/box/data/table/BoxPlotTableDataContentPane.java | 2 +- 5 files changed, 7 insertions(+), 13 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxPlotTooltipPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxPlotTooltipPane.java index a68eb55964..f1cae6e3bf 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxPlotTooltipPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxPlotTooltipPane.java @@ -25,8 +25,4 @@ public class VanChartBoxPlotTooltipPane extends VanChartPlotTooltipPane { protected boolean hasTooltipSeriesType() { return false; } - - public void checkContentVisible(boolean isDetailed) { - ((VanChartBoxTooltipContentPane) tooltipContentPane).checkFormatVisible(isDetailed); - } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java index 8831b50491..b2271cc337 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java @@ -178,7 +178,7 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { } protected AttrTooltipContent createAttrTooltip() { - return new AttrBoxTooltipContent(); + return new AttrBoxTooltipContent(detailed); } protected void populateFormatPane(AttrTooltipContent attrTooltipContent) { @@ -195,6 +195,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { q1.populate(boxTooltipContent.getQ1()); min.populate(boxTooltipContent.getMin()); outlier.populate(boxTooltipContent.getOutlier()); + + checkFormatVisible(boxTooltipContent.isDetailed()); } } @@ -212,6 +214,8 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { q1.update(boxTooltipContent.getQ1()); min.update(boxTooltipContent.getMin()); outlier.update(boxTooltipContent.getOutlier()); + + boxTooltipContent.setDetailed(this.detailed); } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipPane.java index 955f974534..ad5840267a 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipPane.java @@ -4,7 +4,6 @@ import com.fr.chart.base.DataSeriesCondition; import com.fr.chart.chartattr.Plot; import com.fr.plugin.chart.attr.plot.VanChartPlot; import com.fr.plugin.chart.base.AttrTooltip; -import com.fr.plugin.chart.box.VanChartBoxPlot; import com.fr.van.chart.designer.style.VanChartStylePane; import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane; import com.fr.van.chart.designer.style.tooltip.VanChartTooltipPane; @@ -25,11 +24,6 @@ public class VanChartBoxTooltipPane extends VanChartTooltipPane { if (tooltipPane instanceof VanChartBoxPlotTooltipPane) { tooltipPane.populate((AttrTooltip) attr); - - VanChartBoxPlotTooltipPane boxPlotTooltipPane = (VanChartBoxPlotTooltipPane) tooltipPane; - VanChartBoxPlot boxPlot = (VanChartBoxPlot) plot; - - boxPlotTooltipPane.checkContentVisible(boxPlot.isDetailed()); } } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/data/report/BoxPlotReportDataContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/data/report/BoxPlotReportDataContentPane.java index f6d6090356..037c0aa70b 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/data/report/BoxPlotReportDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/data/report/BoxPlotReportDataContentPane.java @@ -101,7 +101,7 @@ public class BoxPlotReportDataContentPane extends AbstractReportDataContentPane boolean isDetailed = dataType.getSelectedIndex() == 0; report.setDetailed(isDetailed); - ((VanChartBoxPlot) initplot).setDetailed(isDetailed); + ((VanChartBoxPlot) initplot).updateDetailedAttr(isDetailed); } if (detailedDataSeriesPane != null) { detailedDataSeriesPane.updateBean(collection); diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableDataContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableDataContentPane.java index 92b554d0d2..4fa2296aa0 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/data/table/BoxPlotTableDataContentPane.java @@ -154,7 +154,7 @@ public class BoxPlotTableDataContentPane extends AbstractTableDataContentPane { boolean isDetailed = dataType.getSelectedIndex() == 0; table.setDetailed(isDetailed); - ((VanChartBoxPlot) initplot).setDetailed(isDetailed); + ((VanChartBoxPlot) initplot).updateDetailedAttr(isDetailed); } if (seriesTypeComboxPane != null) { seriesTypeComboxPane.updateBean(collection); From b42d4cc480c431184c0746bdf69bded08f911300 Mon Sep 17 00:00:00 2001 From: "Qinghui.Liu" Date: Wed, 19 Aug 2020 18:20:06 +0800 Subject: [PATCH 11/32] =?UTF-8?q?=E8=B0=83=E6=95=B4check=E7=9A=84=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/van/chart/box/VanChartBoxTooltipContentPane.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java index b2271cc337..77b16b4993 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java @@ -32,7 +32,7 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { public VanChartBoxTooltipContentPane(VanChartStylePane parent, JPanel showOnPane, boolean isDetailed) { super(parent, showOnPane); - this.detailed = isDetailed; + checkFormatVisible(isDetailed); } protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { @@ -83,8 +83,6 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { commonPanel.add(createDataNumberPane(), BorderLayout.CENTER); commonPanel.add(createDataDetailPane(), BorderLayout.SOUTH); - checkFormatVisible(detailed); - return commonPanel; } From de38c12ddbbfa0235b7f9d4d2929fe580c67fce4 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 21 Aug 2020 14:38:55 +0800 Subject: [PATCH 12/32] =?UTF-8?q?MOBILE-28888=20Tab=E6=89=8B=E5=8A=BF?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E8=AE=BE=E8=AE=A1=E5=99=A8=E7=AB=AF=E5=BC=80?= =?UTF-8?q?=E5=8F=91=201.=20=E7=A7=BB=E5=8A=A8=E7=AB=AFTab=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E9=9D=A2=E6=9D=BF=E6=96=B0=E5=A2=9E=E4=B8=89=E4=B8=AA?= =?UTF-8?q?tab=E9=80=9A=E7=94=A8=E5=B1=9E=E6=80=A7=EF=BC=8C=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=A0=87=E9=A2=98=EF=BC=8C=E6=BB=91=E5=8A=A8=E5=88=87?= =?UTF-8?q?=E6=8D=A2=EF=BC=8C=E6=98=BE=E7=A4=BA=E5=9C=86=E7=82=B9=E6=8C=87?= =?UTF-8?q?=E7=A4=BA=E5=99=A8=EF=BC=88=E9=80=9A=E7=94=A8=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=EF=BC=89=202.=20=E5=85=BC=E5=AE=B9=E6=97=A7?= =?UTF-8?q?=E6=A8=A1=E7=89=88=EF=BC=8C=E8=BD=AC=E6=8D=A2Tab=E5=B0=B1?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E5=88=86=E6=95=A3=E7=9A=84=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=88=B0Tab=E5=B1=9E=E6=80=A7=E9=9D=A2=E6=9D=BF=E7=9A=84?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E5=B1=9E=E6=80=A7=203.=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=B8=AD=E8=8B=B1=E6=96=87=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/style/color/NewColorSelectBox.java | 20 +- .../mobile/TabMobileWidgetDefinePane.java | 13 +- .../component/MobileTabCommonSettingPane.java | 198 ++++++++++++++++++ 3 files changed, 222 insertions(+), 9 deletions(-) create mode 100644 designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java diff --git a/designer-base/src/main/java/com/fr/design/style/color/NewColorSelectBox.java b/designer-base/src/main/java/com/fr/design/style/color/NewColorSelectBox.java index 6e3e688c8b..4f291c6398 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/NewColorSelectBox.java +++ b/designer-base/src/main/java/com/fr/design/style/color/NewColorSelectBox.java @@ -30,23 +30,27 @@ public class NewColorSelectBox extends AbstractSelectBox implements UIObs iniListener(); } - private void iniListener(){ + protected void iniListener(){ if(shouldResponseChangeListener()){ this.addSelectChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { - if(uiObserverListener == null){ - return; - } - if (globalNameListener != null && shouldResponseNameListener()){ - globalNameListener.setGlobalName(newColorSelectBoxName); - } - uiObserverListener.doChange(); + attributeChange(); } }); } } + protected void attributeChange() { + if(uiObserverListener == null){ + return; + } + if (globalNameListener != null && shouldResponseNameListener()){ + globalNameListener.setGlobalName(newColorSelectBoxName); + } + uiObserverListener.doChange(); + } + /** * 初始化下拉面板 * @param preferredWidth 面板大小 diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java index 5919985d59..9b0bc18b3b 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java @@ -19,6 +19,7 @@ import com.fr.design.widget.ui.designer.mobile.component.MobileAdvanceInnerPane; import com.fr.design.widget.ui.designer.mobile.component.MobileBookMarkUsePane; import com.fr.design.widget.ui.designer.mobile.component.MobileComponentMarginPane; import com.fr.design.widget.ui.designer.mobile.component.MobileComponentLayoutIntervalPane; +import com.fr.design.widget.ui.designer.mobile.component.MobileTabCommonSettingPane; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.general.cardtag.mobile.MobileTemplateStyle; @@ -34,6 +35,7 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { private MobileComponentMarginPane marginPane; private MobileComponentLayoutIntervalPane intervalPane; private MobileBookMarkUsePane mobileBookMarkUsePane; + private MobileTabCommonSettingPane mobileTabCommonSettingPane; public TabMobileWidgetDefinePane(XCreator xCreator) { this.xCreator = xCreator; @@ -73,6 +75,8 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { mobileBookMarkUsePane = new MobileBookMarkUsePane(); innerAdvancePane.add(mobileBookMarkUsePane, BorderLayout.CENTER); } + mobileTabCommonSettingPane = new MobileTabCommonSettingPane(); + innerAdvancePane.add(mobileTabCommonSettingPane, BorderLayout.SOUTH); innerAdvancePane.add(marginPane, BorderLayout.NORTH); UIExpandablePane advancePane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advanced"), 280, 20, innerAdvancePane); UIExpandablePane layoutPane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Layout"), 280, 20, intervalPane); @@ -88,7 +92,8 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { @Override public void populate(FormDesigner designer) { WCardTagLayout wCardTagLayout = (WCardTagLayout) xCreator.toData(); - templateStyleEditor.setValue((wCardTagLayout).getMobileTemplateStyle()); + MobileTemplateStyle mobileTemplateStyle = wCardTagLayout.getMobileTemplateStyle(); + templateStyleEditor.setValue(mobileTemplateStyle); // 数据 populate 完成后,再设置监听 this.bindListeners2Widgets(); this.addAttributeChangeListener(changeListener); @@ -101,6 +106,9 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { if (mobileBookMarkUsePane != null) { mobileBookMarkUsePane.populate(xCreator); } + if (mobileTabCommonSettingPane != null) { + mobileTabCommonSettingPane.populate(mobileTemplateStyle); + } } @Override @@ -117,5 +125,8 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { if (mobileBookMarkUsePane != null) { mobileBookMarkUsePane.update(xCreator); } + if (mobileTabCommonSettingPane != null) { + mobileTabCommonSettingPane.update(wCardTagLayout.getMobileTemplateStyle()); + } } } diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java new file mode 100644 index 0000000000..e1142117ae --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java @@ -0,0 +1,198 @@ +package com.fr.design.widget.ui.designer.mobile.component; + +import com.fr.design.constants.LayoutConstants; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.designer.beans.events.DesignerEvent; +import com.fr.design.dialog.BasicPane; +import com.fr.design.gui.ibutton.ModeButtonGroup; +import com.fr.design.gui.ibutton.UIRadioButton; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.i18n.Toolkit; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.design.style.color.NewColorSelectBox; +import com.fr.general.cardtag.mobile.MobileTemplateStyle; + +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + +public class MobileTabCommonSettingPane extends BasicPane { + + private UICheckBox showTabTitleCheck; + private UICheckBox tabSlideCheck; + private UICheckBox showTabDotIndicatorCheck; + private ModeButtonGroup buttonGroup; + private NewColorSelectBox initDotColorBox; + private NewColorSelectBox selectDotColorBox; + + public MobileTabCommonSettingPane() { + initComponent(); + } + + private void initComponent() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + + this.showTabTitleCheck = new UICheckBox( + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Tab_Show_Title"), true) { + @Override + protected void initListener() { + this.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + attributeChange(); + } + }); + } + }; + this.tabSlideCheck = new UICheckBox( + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Tab_Slide"), true) { + @Override + protected void initListener() { + this.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + attributeChange(); + } + }); + } + }; + this.showTabDotIndicatorCheck = new UICheckBox( + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Tab_Show_Indicator"), true) { + @Override + protected void initListener() { + this.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + attributeChange(); + } + }); + } + }; + + UILabel label = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Tab_Show_Indicator_type")); + JPanel dotIndicatorShowTypePane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); + addIndicatorShowTypeButton(dotIndicatorShowTypePane); + + UILabel initColorLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Init_Fill")); + UILabel selectColor = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Select_Fill")); + initDotColorBox = new NewColorSelectBox(0){ + @Override + protected void iniListener() { + } + @Override + public void mouseEntered(MouseEvent e) { + super.mousePressed(e); + this.attributeChange(); + } + }; + selectDotColorBox = new NewColorSelectBox(0){ + @Override + protected void iniListener() { + } + + @Override + public void mouseEntered(MouseEvent e) { + super.mousePressed(e); + this.attributeChange(); + } + }; + JPanel initDotColorPane = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{initColorLabel, initDotColorBox}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_MEDIUM); + JPanel selectDotColorPane = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{selectColor, selectDotColorBox}}, TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.VGAP_MEDIUM); + + double[] rowSize = {TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.PREFERRED}; + double[] columnSize = {TableLayout.FILL}; + int[][] rowCount = {{1}, {1}, {1}}; + double[] verticalGaps = {10, 10, 10}; + double[] dotSettingColumnSize = {TableLayout.PREFERRED, TableLayout.FILL}; + + Component[][] components = new Component[][]{ + new Component[]{this.showTabTitleCheck}, + new Component[]{this.tabSlideCheck}, + new Component[]{this.showTabDotIndicatorCheck} + }; + + JPanel tabBaseConfigPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, + IntervalConstants.INTERVAL_L1, IntervalConstants.INTERVAL_L1); + tabBaseConfigPane.setBorder(BorderFactory.createEmptyBorder(0, 0, IntervalConstants.INTERVAL_L1, 0)); + + JPanel dotIndicatorSettingPanel = TableLayoutHelper.createDiffVGapTableLayoutPane(new JComponent[][]{ + {label, dotIndicatorShowTypePane}, + {initColorLabel, initDotColorPane}, + {selectColor, selectDotColorPane}}, rowSize, dotSettingColumnSize, 0, verticalGaps); + dotIndicatorSettingPanel.setBorder( + BorderFactory.createEmptyBorder(0, IntervalConstants.INTERVAL_L2, IntervalConstants.INTERVAL_L1, 0) + ); + + final JPanel jPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); + jPanel.add(tabBaseConfigPane, BorderLayout.NORTH); + jPanel.add(dotIndicatorSettingPanel, BorderLayout.CENTER); + + this.add(jPanel, BorderLayout.CENTER); + + showTabDotIndicatorCheck.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + dotIndicatorSettingPanel.setVisible(showTabDotIndicatorCheck.isSelected()); + } + }); + } + + public void populate(MobileTemplateStyle mobileTemplateStyle) { + this.showTabTitleCheck.setSelected(mobileTemplateStyle.isShowTabTitle()); + this.showTabDotIndicatorCheck.setSelected(mobileTemplateStyle.isShowDotIndicator()); + this.tabSlideCheck.setSelected(mobileTemplateStyle.canSlide()); + Color initDotColor = mobileTemplateStyle.getIndicatorInitialColor(); + Color selectDotColor = mobileTemplateStyle.getIndicatorSelectColor(); + int dotIndicatorShowType = mobileTemplateStyle.getDotIndicatorShowType(); + this.populateColorBox(initDotColorBox, initDotColor, MobileTemplateStyle.DEFAULT_INITIAL_DOT_COLOR); + this.populateColorBox(selectDotColorBox, selectDotColor, MobileTemplateStyle.DEFAULT_SELECT_DOT_COLOR); + if (dotIndicatorShowType != buttonGroup.getCurrentSelected()) { + this.buttonGroup.setSelectButton(dotIndicatorShowType); + } + } + + public void update(MobileTemplateStyle mobileTemplateStyle) { + mobileTemplateStyle.setShowTabTitle(showTabTitleCheck.isSelected()); + mobileTemplateStyle.setShowDotIndicator(showTabDotIndicatorCheck.isSelected()); + mobileTemplateStyle.setCanSlide(tabSlideCheck.isSelected()); + mobileTemplateStyle.setIndicatorInitialColor(initDotColorBox.getSelectObject()); + mobileTemplateStyle.setIndicatorSelectColor(selectDotColorBox.getSelectObject()); + mobileTemplateStyle.setDotIndicatorShowType(buttonGroup.getCurrentSelected()); + WidgetPropertyPane.getInstance().getEditingFormDesigner().getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_EDITED); + } + + @Override + protected String title4PopupWindow() { + return "MobileTabExSettingPane"; + } + + private void addIndicatorShowTypeButton(JPanel dotIndicatorShowTypePane) { + UIRadioButton holderPlaceButton = new UIRadioButton(Toolkit.i18nText("Fine-Design_Mobile_Tab_Holder_Place")); + holderPlaceButton.setSelected(true); + UIRadioButton floatButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Tab_Float")); + dotIndicatorShowTypePane.add(holderPlaceButton); + dotIndicatorShowTypePane.add(floatButton); + dotIndicatorShowTypePane.setBorder( + BorderFactory.createEmptyBorder(0, IntervalConstants.INTERVAL_L1, 0, 0) + ); + buttonGroup = new ModeButtonGroup<>(); + buttonGroup.put(MobileTemplateStyle.TYPE_PLACEHOLDER_DOT_INDICATOR, holderPlaceButton); + buttonGroup.put(MobileTemplateStyle.TYPE_FLOAT_DOT_INDICATOR, floatButton); + } + + private void populateColorBox(NewColorSelectBox colorBox, Color color, Color defaultColor) { + if (color == null) { + color = defaultColor; + } + if (color != colorBox.getSelectObject()) { + colorBox.setSelectObject(color); + } + } +} From e84561a25484eb9b15213559c1e833874ca38cbd Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 21 Aug 2020 15:07:48 +0800 Subject: [PATCH 13/32] =?UTF-8?q?MOBILE-28888=20Tab=E6=89=8B=E5=8A=BF?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E8=AE=BE=E8=AE=A1=E5=99=A8=E7=AB=AF=E5=BC=80?= =?UTF-8?q?=E5=8F=91=201.=20=E7=A7=BB=E5=8A=A8=E7=AB=AFTab=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E9=9D=A2=E6=9D=BF=E6=96=B0=E5=A2=9E=E4=B8=89=E4=B8=AA?= =?UTF-8?q?tab=E9=80=9A=E7=94=A8=E5=B1=9E=E6=80=A7=EF=BC=8C=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=A0=87=E9=A2=98=EF=BC=8C=E6=BB=91=E5=8A=A8=E5=88=87?= =?UTF-8?q?=E6=8D=A2=EF=BC=8C=E6=98=BE=E7=A4=BA=E5=9C=86=E7=82=B9=E6=8C=87?= =?UTF-8?q?=E7=A4=BA=E5=99=A8=EF=BC=88=E9=80=9A=E7=94=A8=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=EF=BC=89=202.=20=E5=85=BC=E5=AE=B9=E6=97=A7?= =?UTF-8?q?=E6=A8=A1=E7=89=88=EF=BC=8C=E8=BD=AC=E6=8D=A2Tab=E6=97=A7?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E5=88=86=E6=95=A3=E7=9A=84=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=88=B0Tab=E5=B1=9E=E6=80=A7=E9=9D=A2=E6=9D=BF=E7=9A=84?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E5=B1=9E=E6=80=A7=203.=20=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E5=85=B1=E7=94=A8pc=E7=AB=AF=E8=BD=AE=E6=92=AD?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=204.=20=E6=96=B0=E5=A2=9E=E4=B8=AD=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E7=BF=BB=E8=AF=91=20(amend=E4=BF=AE=E6=94=B9=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E4=BF=AE=E9=A5=B0=E7=AC=A6=EF=BC=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E8=AF=AF=E4=BF=AE=E6=94=B9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/mobile/component/MobileTabCommonSettingPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java index e1142117ae..38718d2dd7 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java @@ -170,7 +170,7 @@ public class MobileTabCommonSettingPane extends BasicPane { @Override protected String title4PopupWindow() { - return "MobileTabExSettingPane"; + return "MobileTabCommonSettingPane"; } private void addIndicatorShowTypeButton(JPanel dotIndicatorShowTypePane) { From e5d4a52c1d93e7f78b8e06851a156afd94981549 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 21 Aug 2020 15:07:48 +0800 Subject: [PATCH 14/32] =?UTF-8?q?=E5=90=88=E7=90=86import?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/component/MobileTabCommonSettingPane.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java index 38718d2dd7..ad9d856cd0 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java @@ -16,10 +16,14 @@ import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.style.color.NewColorSelectBox; import com.fr.general.cardtag.mobile.MobileTemplateStyle; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.JPanel; +import javax.swing.JComponent; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; From 3f79248f989069c81744b86bd1247bc7f27e0fa4 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 21 Aug 2020 16:23:21 +0800 Subject: [PATCH 15/32] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/component/MobileTabCommonSettingPane.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java index ad9d856cd0..5b07966bb1 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java @@ -90,8 +90,9 @@ public class MobileTabCommonSettingPane extends BasicPane { @Override protected void iniListener() { } + @Override - public void mouseEntered(MouseEvent e) { + public void mouseClicked(MouseEvent e) { super.mousePressed(e); this.attributeChange(); } @@ -102,7 +103,7 @@ public class MobileTabCommonSettingPane extends BasicPane { } @Override - public void mouseEntered(MouseEvent e) { + public void mouseClicked(MouseEvent e) { super.mousePressed(e); this.attributeChange(); } From 8798ac45205dcba229dc6c75c57a4f969525d0f8 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 21 Aug 2020 17:05:40 +0800 Subject: [PATCH 16/32] =?UTF-8?q?DefaultMobileTemplateStyle=20=E7=8E=B0?= =?UTF-8?q?=E5=9C=A8=E4=B9=9F=E6=9C=89=E4=BA=86=E9=80=9A=E7=94=A8=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E5=B1=9E=E6=80=A7=20=E9=9C=80=E8=A6=81=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E7=88=B6=E7=B1=BBcreateJson=E6=96=B9=E6=B3=95=20?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E7=AC=94=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/mobile/component/MobileTabCommonSettingPane.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java index 5b07966bb1..cf4923aed3 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileTabCommonSettingPane.java @@ -93,7 +93,7 @@ public class MobileTabCommonSettingPane extends BasicPane { @Override public void mouseClicked(MouseEvent e) { - super.mousePressed(e); + super.mouseClicked(e); this.attributeChange(); } }; @@ -104,7 +104,7 @@ public class MobileTabCommonSettingPane extends BasicPane { @Override public void mouseClicked(MouseEvent e) { - super.mousePressed(e); + super.mouseClicked(e); this.attributeChange(); } }; From ea120a784d8f74a612d7bbfa59701c22f12f5bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Mon, 24 Aug 2020 10:44:50 +0800 Subject: [PATCH 17/32] =?UTF-8?q?CHART-15259=20=E5=88=87=E6=8D=A2=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=9A=84=E5=88=86=E8=BE=A8=E7=8E=87=E7=A9=BA=E6=8C=87?= =?UTF-8?q?=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/chart/ChartIcon.java | 5 +++-- 1 file changed, 3 insertions(+), 2 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 16e13db70b..3ae8f0b848 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 @@ -1,12 +1,12 @@ package com.fr.design.chart; +import com.fr.base.ScreenResolution; 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.ChartCollection; import com.fr.chartx.attr.ChartProvider; import com.fr.design.ChartTypeInterfaceManager; -import com.fr.design.file.HistoryTemplateListCache; import com.fr.script.Calculator; import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLable; @@ -79,7 +79,8 @@ public class ChartIcon implements Icon, XMLable { BaseChartPainter chartPainter = getChartPainter(); - int resolution = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getJTemplateResolution(); + //插入图表的宽度是固定的,resolution直接获取屏幕分辨率,resolution现在只会影响到老图表 + int resolution = ScreenResolution.getScreenResolution(); Graphics2D g2d = (Graphics2D) g; Paint oldPaint = g2d.getPaint(); From 2a47a15f56553a50a05eec44ae0a87a8b5289c00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Mon, 24 Aug 2020 11:20:20 +0800 Subject: [PATCH 18/32] =?UTF-8?q?CHART-15259=20release=E2=86=92final?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/chart/ChartIcon.java | 5 +++-- 1 file changed, 3 insertions(+), 2 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 16e13db70b..3ae8f0b848 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 @@ -1,12 +1,12 @@ package com.fr.design.chart; +import com.fr.base.ScreenResolution; 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.ChartCollection; import com.fr.chartx.attr.ChartProvider; import com.fr.design.ChartTypeInterfaceManager; -import com.fr.design.file.HistoryTemplateListCache; import com.fr.script.Calculator; import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLable; @@ -79,7 +79,8 @@ public class ChartIcon implements Icon, XMLable { BaseChartPainter chartPainter = getChartPainter(); - int resolution = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getJTemplateResolution(); + //插入图表的宽度是固定的,resolution直接获取屏幕分辨率,resolution现在只会影响到老图表 + int resolution = ScreenResolution.getScreenResolution(); Graphics2D g2d = (Graphics2D) g; Paint oldPaint = g2d.getPaint(); From 1769463d65de0fc421000347e3294f994da04b77 Mon Sep 17 00:00:00 2001 From: hades Date: Mon, 24 Aug 2020 13:54:42 +0800 Subject: [PATCH 19/32] =?UTF-8?q?REPORT-37869=20=E5=85=B1=E5=88=9B=20?= =?UTF-8?q?=E8=BF=9C=E7=A8=8B=E8=AE=BE=E8=AE=A1-=E6=96=AD=E5=BC=80?= =?UTF-8?q?=E5=90=8E=E4=BF=AE=E6=94=B9=E8=BF=87=E7=9A=84=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=9B=9E=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer-base/src/main/java/com/fr/env/RemoteEnvPane.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java index 37c4cd41a1..bc32385b7c 100644 --- a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java +++ b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java @@ -460,7 +460,9 @@ public class RemoteEnvPane extends BasicBeanPane { } catch (Exception e) { FineLoggerFactory.getLogger().error(e.getMessage() , e); } - textField.setText(name); + if (StringUtils.isEmpty(textField.getText())) { + textField.setText(name); + } } }.execute(); } From fd87fbf370e7f76e018b7d8f2c1b201f1ea359a2 Mon Sep 17 00:00:00 2001 From: hades Date: Mon, 24 Aug 2020 14:06:20 +0800 Subject: [PATCH 20/32] =?UTF-8?q?REPORT-37168=20FineQuality=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF-designer.bat=E5=90=AF=E5=8A=A8=EF=BC=8C?= =?UTF-8?q?=E5=BC=80=E5=A7=8B=E5=BD=95=E5=88=B6=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/start/DesignerJavaRuntime.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-realize/src/main/java/com/fr/start/DesignerJavaRuntime.java b/designer-realize/src/main/java/com/fr/start/DesignerJavaRuntime.java index b99f648aed..f65ae11f85 100644 --- a/designer-realize/src/main/java/com/fr/start/DesignerJavaRuntime.java +++ b/designer-realize/src/main/java/com/fr/start/DesignerJavaRuntime.java @@ -44,6 +44,7 @@ public class DesignerJavaRuntime extends AbstractJavaRuntime { private static final String DOCK_NAME_OPTIONS = "-Xdock:name=" + FineDesigner.class.getSimpleName(); private static final String WIN_VM_OPTIONS_PATH = StableUtils.pathJoin(BIN_HOME, "designer.vmoptions"); private static final String[] DEBUG_OPTIONS = new String[]{"-Dfile.encoding=UTF-8", "-Xmx2048m"}; + private static final String WIN_SERVER_PATH = "../server/lib"; static { try { @@ -110,7 +111,7 @@ public class DesignerJavaRuntime extends AbstractJavaRuntime { if (isInstallVersion()) { String[] options = super.getJvmOptions(); // win下环境变量 存在错误的设置会导致问题 直接读vmoptions - if (SupportOSImpl.VM_OPTIONS_ADAPTER.support()) { + if (SupportOSImpl.VM_OPTIONS_ADAPTER.support() && !getClassPath().contains(WIN_SERVER_PATH)) { List optionList = new ArrayList<>(); try (BufferedReader reader = new BufferedReader(new FileReader(new File(WIN_VM_OPTIONS_PATH)))) { String option = null; From b3fbc68bb254579551965f097e783c45c1579d40 Mon Sep 17 00:00:00 2001 From: hades Date: Mon, 24 Aug 2020 15:47:32 +0800 Subject: [PATCH 21/32] =?UTF-8?q?REPORT-37924=E3=80=90=E5=85=B1=E5=88=9B?= =?UTF-8?q?=E3=80=91=E8=BF=9C=E7=A8=8B=E6=97=B6=EF=BC=8C=E5=90=8C=E6=97=B6?= =?UTF-8?q?=E6=8B=96=E5=85=A5=E5=A4=9A=E4=B8=AA=E6=A8=A1=E6=9D=BF=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/data/DesignTableDataManager.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java index f2b1e8e5b3..bce63d6429 100644 --- a/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java +++ b/designer-base/src/main/java/com/fr/design/data/DesignTableDataManager.java @@ -50,6 +50,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -74,7 +75,7 @@ public abstract class DesignTableDataManager { private static java.util.Map dsNameChangedMap = new HashMap(); private static List globalDsListeners = new ArrayList<>(); - private static Map> dsListenersMap = new HashMap>(); + private static Map> dsListenersMap = new ConcurrentHashMap<>(); public static String NO_PARAMETER = "no_paramater_pane"; @@ -96,8 +97,8 @@ public abstract class DesignTableDataManager { */ private static void fireDsChanged() { fireDsChanged(globalDsListeners); - for (Entry> listenerEntry : dsListenersMap.entrySet()) { - List dsListeners = listenerEntry.getValue(); + for (Iterator>> entryIterator = dsListenersMap.entrySet().iterator(); entryIterator.hasNext();) { + List dsListeners = entryIterator.next().getValue(); fireDsChanged(dsListeners); } } From f110f5fbe6b703473f189603c394c1deff201800 Mon Sep 17 00:00:00 2001 From: hades Date: Tue, 25 Aug 2020 19:04:34 +0800 Subject: [PATCH 22/32] =?UTF-8?q?REPORT-37870=E3=80=90=E5=85=B1=E5=88=9B?= =?UTF-8?q?=E3=80=91=E8=BF=9C=E7=A8=8B=E7=9B=AE=E5=BD=95=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E5=9B=9E=E6=9C=AC=E5=9C=B0=EF=BC=8C=E7=82=B9=E5=87=BB=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8-=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E9=A1=B5=E9=9D=A2=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=EF=BC=9B=E5=86=8D=E6=89=93=E5=BC=80=E4=B8=80=E4=B8=AA=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=EF=BC=8C=E6=A8=A1=E6=9D=BF=E5=86=85=E5=AE=B9=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=94=99=E4=B9=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/module/DesignModuleFactory.java | 1 + .../java/com/fr/design/parameter/ParameterDefinitePane.java | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/module/DesignModuleFactory.java b/designer-base/src/main/java/com/fr/design/module/DesignModuleFactory.java index 5881132b39..f3e8c4ebd2 100644 --- a/designer-base/src/main/java/com/fr/design/module/DesignModuleFactory.java +++ b/designer-base/src/main/java/com/fr/design/module/DesignModuleFactory.java @@ -146,6 +146,7 @@ public class DesignModuleFactory { try { return (ParameterDesignerProvider) instance.formParaDesigner.newInstance(); } catch (Exception e) { + FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error("error in form para designer"); } } diff --git a/designer-realize/src/main/java/com/fr/design/parameter/ParameterDefinitePane.java b/designer-realize/src/main/java/com/fr/design/parameter/ParameterDefinitePane.java index 11ae412ece..3429a03275 100644 --- a/designer-realize/src/main/java/com/fr/design/parameter/ParameterDefinitePane.java +++ b/designer-realize/src/main/java/com/fr/design/parameter/ParameterDefinitePane.java @@ -95,7 +95,8 @@ public class ParameterDefinitePane extends JPanel implements ToolBarMenuDockPlus setComponentBg(this); paraDesignEditor = DesignModuleFactory.getFormParaDesigner(); if (paraDesignEditor == null) { - return; + // 为空时 设置默认值 + paraDesignEditor = new FormParaDesigner(); } paraDesignEditor.initWidgetToolbarPane(); From 86413db4701601e71b87f4294dd90f4c5c7ec123 Mon Sep 17 00:00:00 2001 From: hades Date: Wed, 26 Aug 2020 14:56:07 +0700 Subject: [PATCH 23/32] =?UTF-8?q?REPORT-37872=20=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1-=E6=89=93=E4=B8=8D=E5=BC=80=E8=A1=A8?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/designer/creator/XWAbsoluteLayout.java | 6 +++++- .../java/com/fr/design/form/util/FormDesignerUtils.java | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XWAbsoluteLayout.java b/designer-form/src/main/java/com/fr/design/designer/creator/XWAbsoluteLayout.java index 7c852f2820..b98c2a952d 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XWAbsoluteLayout.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XWAbsoluteLayout.java @@ -433,7 +433,11 @@ public class XWAbsoluteLayout extends XLayoutContainer { @Override public XLayoutContainer getTopLayout() { - XLayoutContainer xTopLayout = XCreatorUtils.getParentXLayoutContainer(this).getTopLayout(); + XLayoutContainer parentXLayoutContainer = XCreatorUtils.getParentXLayoutContainer(this); + if (parentXLayoutContainer == null) { + return this; + } + XLayoutContainer xTopLayout = parentXLayoutContainer.getTopLayout(); if (xTopLayout != null && !xTopLayout.isEditable()) { return xTopLayout; } else { diff --git a/designer-form/src/main/java/com/fr/design/form/util/FormDesignerUtils.java b/designer-form/src/main/java/com/fr/design/form/util/FormDesignerUtils.java index 85ec9474db..46377b1adf 100644 --- a/designer-form/src/main/java/com/fr/design/form/util/FormDesignerUtils.java +++ b/designer-form/src/main/java/com/fr/design/form/util/FormDesignerUtils.java @@ -17,6 +17,9 @@ public class FormDesignerUtils { * @return */ public static boolean isAppRelayout(FormDesigner designer) { + if (!designer.getRootComponent().acceptType(WFitLayout.class)) { + return false; + } return ((WFitLayout) designer.getRootComponent().toData()).isAppRelayout(); } From c2708d7684a8df627a8de75d27b20a891c0b7dba Mon Sep 17 00:00:00 2001 From: Yvan Date: Wed, 26 Aug 2020 16:16:39 +0800 Subject: [PATCH 24/32] =?UTF-8?q?REPORT-37950=20=E6=99=AE=E9=80=9A?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8-=E5=A4=9Asheet-=E6=8A=A5=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=BC=A9=E6=94=BE=E5=A4=B1=E6=95=88=201.=20bug=E5=8E=9F?= =?UTF-8?q?=E5=9B=A0=EF=BC=9A=E5=BD=93=E6=96=B0=E5=BB=BA=E4=B8=80=E4=B8=AA?= =?UTF-8?q?Sheet=E5=90=8E=EF=BC=8C=E4=BB=A3=E7=A0=81=E4=BC=9A=E8=B5=B0?= =?UTF-8?q?=E5=88=B0=E8=BF=99=E4=B8=80=E6=AD=A5=EF=BC=8C=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E4=B8=80=E4=B8=AAJFormSliderPane=EF=BC=8C=E7=84=B6=E5=90=8E?= =?UTF-8?q?=E5=9C=A8=E8=BF=9B=E8=A1=8C=E7=BC=A9=E6=94=BE=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9A=84=E6=98=AF=E6=97=A7=E7=9A=84JFormSlid?= =?UTF-8?q?erPane=E4=B8=AD=E7=9A=84showValue=EF=BC=8C=E8=80=8CReportCompon?= =?UTF-8?q?entComposite=E4=B8=ADgetShowValue=E5=8F=96=E5=88=B0=E7=9A=84?= =?UTF-8?q?=E9=83=BD=E6=98=AF=E6=96=B0=E7=9A=84JFormSliderPane=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=80=BC=EF=BC=8C=E6=89=80=E4=BB=A5=E4=BC=9A=E5=8F=91?= =?UTF-8?q?=E7=8E=B0=E6=96=B0=E7=9A=84JFormSliderPane=E4=B8=ADshowValue?= =?UTF-8?q?=E4=B8=80=E7=9B=B4=E4=B8=8D=E5=8F=98=EF=BC=8C=E6=BB=9A=E5=8A=A8?= =?UTF-8?q?=E6=9D=A1=E5=A4=B1=E6=95=88=202.=20=E4=BF=AE=E6=94=B9=E6=80=9D?= =?UTF-8?q?=E8=B7=AF=E4=B8=BA=EF=BC=8C=E6=96=B0=E5=BB=BAsheet=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E4=BB=8D=E7=84=B6=E4=BD=BF=E7=94=A8=E5=8E=9F=E6=9D=A5?= =?UTF-8?q?=E7=9A=84JFormSliderPane=EF=BC=8C=E8=80=8C=E5=9B=A0=E4=B8=BA?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E7=9A=84=E7=BC=A9=E6=94=BE=E5=90=8E=E7=9A=84?= =?UTF-8?q?=E7=BB=98=E5=88=B6=E6=98=AF=E8=B7=9Fresolution=E5=88=86?= =?UTF-8?q?=E8=BE=A8=E7=8E=87=E6=9C=89=E5=85=B3=EF=BC=8C=E6=89=80=E4=BB=A5?= =?UTF-8?q?=E5=85=B1=E7=94=A8JFormSliderPane=E4=B9=8B=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=90=8Csheet=E4=B8=AD=E7=9A=84=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E7=BC=A9=E6=94=BE=E8=BF=98=E6=98=AF=E5=8F=AF=E4=BB=A5=E5=88=86?= =?UTF-8?q?=E5=BC=80=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/mainframe/ReportComponentComposite.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 84ae83838b..66fed7afe2 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 @@ -119,7 +119,8 @@ public class ReportComponentComposite extends JComponent implements RemoveListen templateStateList.add(null); } centerCardPane.editingComponet.setSelection(centerCardPane.editingComponet.getDefaultSelectElement()); - jSliderContainer = JFormSliderPane.getInstance(); + // Yvan: REPORT-37950 普通报表-多sheet-报表块缩放失效 + //jSliderContainer = JFormSliderPane.getInstance(); } if (centerCardPane.editingComponet.elementCasePane == null) { From 4551e17f2e1267aa2f624484b5eef32a270af19f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Wed, 26 Aug 2020 18:20:40 +0800 Subject: [PATCH 25/32] =?UTF-8?q?CHART-15419=20=E7=94=98=E7=89=B9=E5=9B=BE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=A7=E6=95=B0=E6=8D=AE=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/other/VanChartInteractivePane.java | 2 ++ .../designer/other/VanChartGanttConditionPane.java | 14 +++++++++----- .../style/series/VanChartGanttSeriesPane.java | 7 ++++++- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java index 49ed070239..885931cb93 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java @@ -29,6 +29,7 @@ import com.fr.plugin.chart.base.VanChartAttrMarker; import com.fr.plugin.chart.base.VanChartConstants; import com.fr.plugin.chart.base.VanChartTools; import com.fr.plugin.chart.base.VanChartZoom; +import com.fr.plugin.chart.gantt.attr.AttrGanttLabel; import com.fr.plugin.chart.map.line.condition.AttrLineEffect; import com.fr.plugin.chart.scatter.attr.ScatterAttrLabel; import com.fr.plugin.chart.vanchart.VanChart; @@ -436,6 +437,7 @@ public class VanChartInteractivePane extends AbstractVanChartScrollPane { conditionAttr.remove(AttrEffect.class); conditionAttr.remove(AttrLineEffect.class); conditionAttr.remove(AttrFloatColor.class); + conditionAttr.remove(AttrGanttLabel.class); VanChartAttrMarker attrMarker = conditionAttr.getExisted(VanChartAttrMarker.class); if (attrMarker != null && !attrMarker.isCommon()) { diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/other/VanChartGanttConditionPane.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/other/VanChartGanttConditionPane.java index 42428c6317..24a5d45fe9 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/other/VanChartGanttConditionPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/other/VanChartGanttConditionPane.java @@ -12,6 +12,7 @@ import com.fr.plugin.chart.gantt.attr.AttrGanttLabel; import com.fr.plugin.chart.gantt.attr.AttrGanttTooltip; import com.fr.plugin.chart.gantt.attr.AttrGanttTooltipContent; import com.fr.plugin.chart.type.ConditionKeyType; +import com.fr.van.chart.designer.PlotFactory; import com.fr.van.chart.designer.other.condition.item.VanChartLabelConditionPane; import com.fr.van.chart.designer.other.condition.item.VanChartSeriesColorConditionPane; import com.fr.van.chart.designer.other.condition.item.VanChartTooltipConditionPane; @@ -40,16 +41,18 @@ public class VanChartGanttConditionPane extends DataSeriesConditionPane { protected void addBasicAction() { classPaneMap.put(AttrBackground.class, new VanChartSeriesColorConditionPane(this)); classPaneMap.put(AttrAlpha.class, new LabelAlphaPane(this)); - classPaneMap.put(AttrGanttLabel.class, new VanChartLabelConditionPane(this, plot)); - classPaneMap.put(AttrGanttTooltip.class, new VanChartTooltipConditionPane(this, plot){ + if (!PlotFactory.largeDataModel(plot)) { + classPaneMap.put(AttrGanttLabel.class, new VanChartLabelConditionPane(this, plot)); + } + classPaneMap.put(AttrGanttTooltip.class, new VanChartTooltipConditionPane(this, plot) { @Override protected VanChartPlotTooltipPane createTooltipContentsPane() { - return new VanChartPlotTooltipNoCheckPane(getPlot(), null){ + return new VanChartPlotTooltipNoCheckPane(getPlot(), null) { @Override protected AttrTooltip getAttrTooltip() { AttrGanttTooltip attrGanttTooltip = new AttrGanttTooltip(); - ((AttrGanttTooltipContent)attrGanttTooltip.getContent()).getDurationFormat().setEnable(true); + ((AttrGanttTooltipContent) attrGanttTooltip.getContent()).getDurationFormat().setEnable(true); return attrGanttTooltip; } }; @@ -65,7 +68,7 @@ public class VanChartGanttConditionPane extends DataSeriesConditionPane { @Override protected ChartConditionPane createListConditionPane() { - return new ChartConditionPane(){ + return new ChartConditionPane() { @Override protected ConditionKeyType[] conditionKeyTypes() { return ConditionKeyType.Gantt_CONDITION_KEY_TYPES; @@ -75,6 +78,7 @@ public class VanChartGanttConditionPane extends DataSeriesConditionPane { /** * 返回图表class对象 + * * @return class对象 */ public Class class4Correspond() { diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/series/VanChartGanttSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/series/VanChartGanttSeriesPane.java index c17d97692c..c89dff0392 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/series/VanChartGanttSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/series/VanChartGanttSeriesPane.java @@ -44,7 +44,8 @@ public class VanChartGanttSeriesPane extends VanChartAbstractPlotSeriesPane { Component[][] components = new Component[][]{ new Component[]{createGanntStylePane()}, new Component[]{createLinkLinePane()}, - new Component[]{createMarkerPane()} + new Component[]{createMarkerPane()}, + new Component[]{createLargeDataModelPane()} }; contentPane = TableLayoutHelper.createTableLayoutPane(components, row, col); @@ -58,6 +59,10 @@ public class VanChartGanttSeriesPane extends VanChartAbstractPlotSeriesPane { return ganntStylePane; } + protected void checkCompsEnabledWithLarge(Plot plot) { + + } + private JPanel createLinkLinePane(){ lineWidth = new LineComboBox(CoreConstants.STRIKE_LINE_STYLE_ARRAY_4_CHART); colorSelect = new ColorSelectBoxWithOutTransparent(100); From 6f4d11c2878c7642af769de022d1060cea04eec9 Mon Sep 17 00:00:00 2001 From: Yvan Date: Thu, 27 Aug 2020 16:08:20 +0800 Subject: [PATCH 26/32] =?UTF-8?q?REPORT-37262=20=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E8=B4=A6=E5=8F=B7=E5=AF=86=E7=A0=81=E5=AE=89?= =?UTF-8?q?=E5=85=A8=E5=A2=9E=E5=BC=BA=201.=20=E5=81=9A=E7=9A=84=E6=98=AF?= =?UTF-8?q?=E8=BF=99=E4=B8=AA=E8=BF=AD=E4=BB=A3=E4=BB=BB=E5=8A=A1=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E5=AD=90=E4=BB=BB=E5=8A=A1=EF=BC=8C=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=B8=BA=EF=BC=9A=E5=AF=86=E7=A0=81=E8=BE=93=E5=85=A5=E6=97=B6?= =?UTF-8?q?=E5=8F=AF=E6=98=BE=E7=A4=BA=E9=95=BF=E5=BA=A6=EF=BC=8C=E5=86=8D?= =?UTF-8?q?=E6=AC=A1=E6=89=93=E5=BC=80=E6=97=B6=E9=9A=90=E8=97=8F=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E9=95=BF=E5=BA=A6=EF=BC=8C=E7=BB=9F=E4=B8=80=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E4=B8=BA8=E4=BD=8D=E7=9A=84=E5=8A=A0=E5=AF=86?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=EF=BC=8C=E7=82=B9=E5=87=BB=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=A1=86=E5=81=9A=E8=BE=93=E5=85=A5=E6=88=96?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=AF=86=E7=A0=81=E5=8A=A8=E4=BD=9C=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=85=88=E6=B8=85=E7=A9=BA=E5=AF=86=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E5=86=8D=E8=BE=93=E5=85=A5=E5=86=85=E5=AE=B9=EF=BC=8C=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E5=90=8E=E7=94=9F=E6=95=88=202.=20=E5=86=99=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=B8=AAUIPasswordField=E7=9A=84=E5=AD=90=E7=B1=BB?= =?UTF-8?q?=EF=BC=8C=E7=9B=B8=E6=AF=94UIPasswordField=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E4=B8=8A=E8=BF=B0=E5=8A=9F=E8=83=BD=203.=20=E5=B0=86?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E5=9C=BA=E6=99=AF=E4=B8=AD=E7=9A=84=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E6=A1=86=E6=9B=BF=E6=8D=A2=E4=B8=BA=E6=96=B0=E7=9A=84?= =?UTF-8?q?UIPasswordFieldWithFixedLength=204.=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E5=AF=BC=E5=8C=85=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/datapane/connect/JDBCDefPane.java | 18 ++- .../UIPasswordFieldWithFixedLength.java | 106 ++++++++++++++++++ .../main/java/com/fr/env/RemoteEnvPane.java | 17 ++- 3 files changed, 134 insertions(+), 7 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/gui/ipasswordfield/UIPasswordFieldWithFixedLength.java diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java index 5e8199d953..683b38e016 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java @@ -8,7 +8,7 @@ import com.fr.design.border.UITitledBorder; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.ipasswordfield.UIPassWordField; +import com.fr.design.gui.ipasswordfield.UIPasswordFieldWithFixedLength; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.ilable.ActionLabel; import com.fr.design.layout.FRGUIPaneFactory; @@ -24,8 +24,18 @@ import com.fr.general.ComparatorUtils; import com.fr.stable.StringUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.JDialog; +import javax.swing.JFileChooser; +import javax.swing.JPanel; +import javax.swing.JPasswordField; +import javax.swing.SwingConstants; +import javax.swing.SwingUtilities; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; @@ -108,7 +118,7 @@ public class JDBCDefPane extends JPanel { urlTextField = new UITextField(15); userNameTextField = new UITextField(15); userNameTextField.setName(USER_NAME); - passwordTextField = new UIPassWordField(15); + passwordTextField = new UIPasswordFieldWithFixedLength(15); dbtypeButton = new UIButton("."); dbtypeButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Click_Get_Default_URL")); dbtypeButton.addActionListener(dbtypeButtonActionListener); diff --git a/designer-base/src/main/java/com/fr/design/gui/ipasswordfield/UIPasswordFieldWithFixedLength.java b/designer-base/src/main/java/com/fr/design/gui/ipasswordfield/UIPasswordFieldWithFixedLength.java new file mode 100644 index 0000000000..c1cb98ca3d --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/gui/ipasswordfield/UIPasswordFieldWithFixedLength.java @@ -0,0 +1,106 @@ +package com.fr.design.gui.ipasswordfield; + +import com.fr.stable.StringUtils; +import org.jetbrains.annotations.NotNull; + +import javax.swing.text.Document; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; + +/** + * @author Yvan + * @version 10.0 + * Created by Yvan on 2020-08-11 + * 有固定长度的"*"回显的密码框,避免泄露密码长度 + */ +public class UIPasswordFieldWithFixedLength extends UIPassWordField { + /** + * 展示密码,为固定8位长度的特殊字符"*"组成 + */ + private static final String DISPLAY_PASSWORD = "********"; + + /** + * 实际密码 + */ + private String realPassword; + + /** + * 用于判断是否清空密码 + */ + private boolean clearPassword; + + public UIPasswordFieldWithFixedLength() { + this(null, null, 0); + } + + public UIPasswordFieldWithFixedLength(String text) { + this(null, text, 0); + } + + public UIPasswordFieldWithFixedLength(int columns) { + this(null, null, columns); + } + + public UIPasswordFieldWithFixedLength(String text, int columns) { + this(null, text, columns); + } + + public UIPasswordFieldWithFixedLength(Document doc, String txt, int columns) { + super(doc, txt, columns); + initRealPassword(txt); + } + + /** + * 为realPassword赋初值并添加一个鼠标单击事件 + */ + public void initRealPassword(String text) { + this.realPassword = text == null ? StringUtils.EMPTY : text; + this.clearPassword = true; + addShowFixedLengthPasswordListener(); + } + + /** + * 当鼠标点击密码框,第一次做出键入动作时,清空显示密码与实际密码,用户需要重新输入密码 + */ + private void addShowFixedLengthPasswordListener() { + this.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + UIPasswordFieldWithFixedLength.this.clearPassword = true; + } + }); + this.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (clearPassword) { + UIPasswordFieldWithFixedLength.this.setText(StringUtils.EMPTY); + UIPasswordFieldWithFixedLength.this.clearPassword = false; + UIPasswordFieldWithFixedLength.this.updateUI(); + } + } + }); + } + + @Override + public void setText(@NotNull String t) { + this.realPassword = t; + // 看到代码中有些场景是将密码置为空字符串的,所以在这里加个判断 + if (StringUtils.isEmpty(t)) { + super.setText(t); + } else { + super.setText(DISPLAY_PASSWORD); + } + } + + @Override + public char[] getPassword() { + //如果用户刚清空密码框,并输入了新密码,则返回输入内容,否则返回realPassword + String text = new String(super.getPassword()); + if (!StringUtils.isEmpty(text) && StringUtils.isEmpty(realPassword)) { + return text.toCharArray(); + } + return realPassword.toCharArray(); + } +} diff --git a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java index bc32385b7c..54cfddc8d3 100644 --- a/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java +++ b/designer-base/src/main/java/com/fr/env/RemoteEnvPane.java @@ -13,6 +13,7 @@ import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ipasswordfield.UIPassWordField; +import com.fr.design.gui.ipasswordfield.UIPasswordFieldWithFixedLength; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; @@ -26,7 +27,17 @@ import com.fr.workspace.WorkContext; import com.fr.workspace.connect.WorkspaceConnectionInfo; import com.fr.workspace.engine.exception.WorkspaceAuthException; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.BoxLayout; +import javax.swing.JDialog; +import javax.swing.JFileChooser; +import javax.swing.JPanel; +import javax.swing.JTextPane; +import javax.swing.SwingConstants; +import javax.swing.SwingUtilities; +import javax.swing.SwingWorker; +import javax.swing.ToolTipManager; +import javax.swing.UIManager; import javax.swing.border.EmptyBorder; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; @@ -96,7 +107,7 @@ public class RemoteEnvPane extends BasicBeanPane { /** * 密码 */ - private UIPassWordField passwordInput = new UIPassWordField(); + private UIPassWordField passwordInput = new UIPasswordFieldWithFixedLength(); /** * 是否记住密码 */ @@ -108,7 +119,7 @@ public class RemoteEnvPane extends BasicBeanPane { /** * https密钥 */ - private UIPassWordField certSecretKeyInput = new UIPassWordField(); + private UIPassWordField certSecretKeyInput = new UIPasswordFieldWithFixedLength(); /** * 选择证书文件按钮 */ From 2433240bce61db3c66b56a4b96e69dee4b4aa54f Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 27 Aug 2020 18:22:52 +0800 Subject: [PATCH 27/32] =?UTF-8?q?REPORT-38272=20&&=20REPORT-38287=20&&=20R?= =?UTF-8?q?EPORT-37922=E3=80=90frm=E8=AE=BE=E8=AE=A1=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=BC=A9=E6=94=BE=E3=80=91=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E6=8E=A7=E4=BB=B6=E5=A6=82=E6=9E=9C=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E8=BE=83=E5=A4=A7=E7=9A=84=E7=BC=A9=E6=94=BE=E5=B9=85?= =?UTF-8?q?=E5=BA=A6=EF=BC=8C=E4=BC=9A=E9=81=AE=E6=8C=A1=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/beans/models/AddingModel.java | 8 ++--- .../mainframe/EditingMouseListener.java | 29 ++++++++++++++----- .../fr/design/mainframe/FormDesignerUI.java | 8 ++--- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/models/AddingModel.java b/designer-form/src/main/java/com/fr/design/designer/beans/models/AddingModel.java index 637279bf28..c0b6cd400a 100644 --- a/designer-form/src/main/java/com/fr/design/designer/beans/models/AddingModel.java +++ b/designer-form/src/main/java/com/fr/design/designer/beans/models/AddingModel.java @@ -133,13 +133,13 @@ public class AddingModel { Rectangle rect = ComponentUtils.getRelativeBounds(container); if (!ComparatorUtils.equals(container.getOuterLayout(), container.getBackupParent())) { added = container.getLayoutAdapter().addBean(creator, - x + designer.getArea().getHorizontalValue(), - y + designer.getArea().getVerticalValue()); + x + designer.getHorizontalScaleValue(), + y + designer.getVerticalScaleValue() ); return added; } added = container.getLayoutAdapter().addBean(creator, - x + designer.getArea().getHorizontalValue() - rect.x, - y + designer.getArea().getVerticalValue() - rect.y); + x + designer.getHorizontalScaleValue() - rect.x, + y + designer.getVerticalScaleValue() - rect.y); return added; } } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java b/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java index 2fa3dea643..01de4a1dac 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java @@ -11,7 +11,13 @@ import com.fr.design.designer.beans.location.Direction; import com.fr.design.designer.beans.location.Location; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.beans.models.StateModel; -import com.fr.design.designer.creator.*; +import com.fr.design.designer.creator.XChartEditor; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XCreatorUtils; +import com.fr.design.designer.creator.XEditorHolder; +import com.fr.design.designer.creator.XElementCase; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWFitLayout; import com.fr.design.designer.creator.cardlayout.XCardSwitchButton; import com.fr.design.designer.creator.cardlayout.XWCardLayout; import com.fr.design.form.util.XCreatorConstants; @@ -22,14 +28,20 @@ import com.fr.design.icon.IconPathConstants; import com.fr.design.utils.ComponentUtils; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.LayoutUtils; - import com.fr.share.ShareConstants; import com.fr.stable.Constants; - import com.fr.stable.StringUtils; -import javax.swing.*; + +import javax.swing.BorderFactory; +import javax.swing.JComponent; +import javax.swing.JPopupMenu; +import javax.swing.JWindow; +import javax.swing.SwingUtilities; import javax.swing.event.MouseInputAdapter; -import java.awt.*; +import java.awt.Color; +import java.awt.Container; +import java.awt.Cursor; +import java.awt.Rectangle; import java.awt.event.MouseEvent; /** @@ -165,10 +177,13 @@ public class EditingMouseListener extends MouseInputAdapter { if (designer.isDrawLineMode()) { designer.updateDrawLineMode(e); } else { + int relativeX = Math.max(0, designer.getRelativeX(e.getX())); + int relativeY = Math.max(0, designer.getRelativeY(e.getY())); + if (selectionModel.hasSelectionComponent() && selectionModel.getSelection().getRelativeBounds().contains( - designer.getArea().getHorizontalValue() + e.getX(), - designer.getArea().getVerticalValue() + e.getY())) { + designer.getHorizontalScaleValue() + relativeX, + designer.getVerticalScaleValue() + relativeY)) { lastPressEvent = e; lastXCreator = selectionModel.getSelection().getSelectedCreator(); } else { 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 68ea5c2b87..26547229bb 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 @@ -409,8 +409,8 @@ public class FormDesignerUI extends ComponentUI { clipg = g.create( -designer.getHorizontalScaleValue(), -designer.getVerticalScaleValue() + designer.getParaHeight(), - (int) ((parent.getSize().width + designer.getArea().getHorizontalValue()) / designer.getScale()), - (int) ((parent.getSize().height + designer.getArea().getVerticalValue()) / designer.getScale())); + parent.getSize().width + designer.getHorizontalScaleValue(), + parent.getSize().height + designer.getVerticalScaleValue()); designer.paintContent(clipg); paintWatermark((Graphics2D) clipg); @@ -435,8 +435,8 @@ public class FormDesignerUI extends ComponentUI { Graphics clipg1; clipg1 = g.create(-designer.getHorizontalScaleValue(), -designer.getVerticalScaleValue(), - (int) ((parent.getSize().width + designer.getArea().getHorizontalValue()) / designer.getScale()), - (int) ((designer.getParaHeight() + designer.getArea().getVerticalValue()) / designer.getScale())); + parent.getSize().width + designer.getHorizontalScaleValue(), + designer.getParaHeight() + designer.getVerticalScaleValue()); designer.paintPara(clipg1); clipg1.dispose(); From 91c4c7a0f050bc1da0bfd30750e3c1171ae2078f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Thu, 27 Aug 2020 19:05:34 +0800 Subject: [PATCH 28/32] =?UTF-8?q?CHART-15451=20=E6=97=A5=E6=9C=9F=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E9=9C=80=E8=A6=81=E6=98=AF=E4=B8=80=E7=A7=8D=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/chart/auto/AutoTypeCalculate.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/design/chart/auto/AutoTypeCalculate.java b/designer-chart/src/main/java/com/fr/design/chart/auto/AutoTypeCalculate.java index c30679e0ee..c504a50644 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/auto/AutoTypeCalculate.java +++ b/designer-chart/src/main/java/com/fr/design/chart/auto/AutoTypeCalculate.java @@ -102,22 +102,22 @@ public class AutoTypeCalculate { } private static boolean isNumberData(List values) { - for (String value : values) { - if (!isNumberData(value)) { - return false; + for (Pattern pattern : dataPatterns) { + if (isNumberData(values, pattern)) { + return true; } } - return true; + return false; } - private static boolean isNumberData(String value) { - for (Pattern pattern : dataPatterns) { + private static boolean isNumberData(List values, Pattern pattern) { + for (String value : values) { Matcher matcher = pattern.matcher(value); - if (matcher.matches()) { - return true; + if (!matcher.matches()) { + return false; } } - return false; + return true; } private static List calculateField(String tableName, List columns) { From f6f6a11eaed640add7d171cf4e40d65d7c550304 Mon Sep 17 00:00:00 2001 From: pengda Date: Fri, 28 Aug 2020 09:52:20 +0800 Subject: [PATCH 29/32] =?UTF-8?q?REPORT-35386=20=E5=A4=9A=E4=B8=AAtab?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E6=92=A4=E9=94=80=EF=BC=8C=E4=BC=9A=E6=92=A4?= =?UTF-8?q?=E9=94=80=E4=B8=A4=E4=B8=AAtab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/designer/creator/cardlayout/XCardAddButton.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XCardAddButton.java b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XCardAddButton.java index 6909207c35..7718e266f2 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XCardAddButton.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XCardAddButton.java @@ -86,7 +86,6 @@ public class XCardAddButton extends XButton { @Override public void respondClick(EditingMouseListener editingMouseListener, MouseEvent e){ FormDesigner designer = editingMouseListener.getDesigner(); - designer.fireTargetModified(); // addbutton对应的XWCardLayout和XWCardTagLayout暂未存入到xml中,重新打开之后先根据父子层获取 if(cardLayout == null && tagLayout ==null ){ @@ -112,6 +111,8 @@ public class XCardAddButton extends XButton { showNewTab(editingMouseListener,index); tagLayout.setTabsAndAdjust(); LayoutUtils.layoutRootContainer(designer.getRootComponent()); + + designer.fireTargetModified(); } @Override From 28188b2ce8b34063ba8493708dca34b62f05935a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Fri, 28 Aug 2020 10:07:06 +0800 Subject: [PATCH 30/32] =?UTF-8?q?CHART-15451=20=E5=A2=9E=E5=8A=A0=E6=97=A0?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E7=9A=84=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/fr/design/chart/AutoChartTypePane.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/designer-chart/src/main/java/com/fr/design/chart/AutoChartTypePane.java b/designer-chart/src/main/java/com/fr/design/chart/AutoChartTypePane.java index b7974fb6e9..5c5cbcac48 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/AutoChartTypePane.java +++ b/designer-chart/src/main/java/com/fr/design/chart/AutoChartTypePane.java @@ -63,6 +63,9 @@ public class AutoChartTypePane extends ChartWizardPane implements CallbackEvent private AutoProgressBar connectionBar; private SwingWorker worker; + //暂时不做国际化 + private static final String MESSAGE = "当前数据没有匹配到合适的图表,请调整数据后再次尝试。"; + public AutoChartTypePane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); initButtonGroup(); @@ -226,6 +229,9 @@ public class AutoChartTypePane extends ChartWizardPane implements CallbackEvent chartResultModel.addElement(autoChartIcon); } chartViewList.setSelectedIndex(0); + } else { + FineJOptionPane.showMessageDialog(AutoChartTypePane.this, MESSAGE, + Toolkit.i18nText("Fine-Design_Basic_Message"), JOptionPane.INFORMATION_MESSAGE, UIManager.getIcon("OptionPane.informationIcon")); } } catch (Exception e) { if (!(e instanceof CancellationException)) { From ea414756a0eea7028b31b390f8f93bcd87fdaedd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Fri, 28 Aug 2020 10:19:28 +0800 Subject: [PATCH 31/32] =?UTF-8?q?CHART-15451=20=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/chart/AutoChartTypePane.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/design/chart/AutoChartTypePane.java b/designer-chart/src/main/java/com/fr/design/chart/AutoChartTypePane.java index 5c5cbcac48..589028ae52 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/AutoChartTypePane.java +++ b/designer-chart/src/main/java/com/fr/design/chart/AutoChartTypePane.java @@ -63,8 +63,7 @@ public class AutoChartTypePane extends ChartWizardPane implements CallbackEvent private AutoProgressBar connectionBar; private SwingWorker worker; - //暂时不做国际化 - private static final String MESSAGE = "当前数据没有匹配到合适的图表,请调整数据后再次尝试。"; + private static final String MESSAGE = Toolkit.i18nText("Fine-Design_Chart_Auto_No_Match"); public AutoChartTypePane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); From ef6fc5872c77be15e199e36adad83b68b3971a05 Mon Sep 17 00:00:00 2001 From: Yvan Date: Fri, 28 Aug 2020 11:38:48 +0800 Subject: [PATCH 32/32] =?UTF-8?q?REPORT-37915=20=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=88=86=E6=A0=8F=E5=BC=B9=E7=AA=97=E6=98=BE=E7=A4=BA=E6=9C=AA?= =?UTF-8?q?=E9=80=82=E9=85=8D=E5=9B=BD=E9=99=85=E5=8C=96=201.=20=E4=B8=BA?= =?UTF-8?q?=E6=AF=8F=E7=A7=8D=E8=AF=AD=E8=A8=80=E9=83=BD=E9=80=82=E9=85=8D?= =?UTF-8?q?=E4=BA=86=E6=8A=A5=E8=A1=A8=E5=88=86=E6=A0=8F=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E7=A4=BA=E4=BE=8B=E5=9B=BE=E7=89=87=202.=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=B9=E5=BA=94=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=AD=E4=BB=A3=E8=A1=A8=E6=AD=A4=E7=A4=BA?= =?UTF-8?q?=E4=BE=8B=E5=9B=BE=E7=89=87=E7=9A=84=E6=96=87=E4=BB=B6=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/images/reportcolumns/col_ja_JP.png | Bin 0 -> 2507 bytes .../fr/design/images/reportcolumns/col_ko_KR.png | Bin 0 -> 2356 bytes .../images/reportcolumns/{col.png => col_zh.png} | Bin .../fr/design/images/reportcolumns/col_zh_TW.png | Bin 0 -> 2587 bytes .../fr/design/images/reportcolumns/row_ja_JP.png | Bin 0 -> 2748 bytes .../fr/design/images/reportcolumns/row_ko_KR.png | Bin 0 -> 2537 bytes .../images/reportcolumns/{row.png => row_zh.png} | Bin .../fr/design/images/reportcolumns/row_zh_TW.png | Bin 0 -> 2793 bytes 8 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 designer-base/src/main/resources/com/fr/design/images/reportcolumns/col_ja_JP.png create mode 100644 designer-base/src/main/resources/com/fr/design/images/reportcolumns/col_ko_KR.png rename designer-base/src/main/resources/com/fr/design/images/reportcolumns/{col.png => col_zh.png} (100%) create mode 100644 designer-base/src/main/resources/com/fr/design/images/reportcolumns/col_zh_TW.png create mode 100644 designer-base/src/main/resources/com/fr/design/images/reportcolumns/row_ja_JP.png create mode 100644 designer-base/src/main/resources/com/fr/design/images/reportcolumns/row_ko_KR.png rename designer-base/src/main/resources/com/fr/design/images/reportcolumns/{row.png => row_zh.png} (100%) create mode 100644 designer-base/src/main/resources/com/fr/design/images/reportcolumns/row_zh_TW.png diff --git a/designer-base/src/main/resources/com/fr/design/images/reportcolumns/col_ja_JP.png b/designer-base/src/main/resources/com/fr/design/images/reportcolumns/col_ja_JP.png new file mode 100644 index 0000000000000000000000000000000000000000..3a22b64a6076dc831d577a52d79600123d9b019e GIT binary patch literal 2507 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 VxgM1vNUZ<>002ovPDHLkV1l12zQF(h literal 0 HcmV?d00001 diff --git a/designer-base/src/main/resources/com/fr/design/images/reportcolumns/col_ko_KR.png b/designer-base/src/main/resources/com/fr/design/images/reportcolumns/col_ko_KR.png new file mode 100644 index 0000000000000000000000000000000000000000..3041f446bb15b75eaf555d08dae30abe7ea1ddf8 GIT binary patch literal 2356 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 literal 0 HcmV?d00001 diff --git a/designer-base/src/main/resources/com/fr/design/images/reportcolumns/row_ja_JP.png b/designer-base/src/main/resources/com/fr/design/images/reportcolumns/row_ja_JP.png new file mode 100644 index 0000000000000000000000000000000000000000..83480d429516acd8aade8b920c0c7d48b525280c GIT binary patch literal 2748 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 literal 0 HcmV?d00001 diff --git a/designer-base/src/main/resources/com/fr/design/images/reportcolumns/row.png b/designer-base/src/main/resources/com/fr/design/images/reportcolumns/row_zh.png similarity index 100% rename from designer-base/src/main/resources/com/fr/design/images/reportcolumns/row.png rename to designer-base/src/main/resources/com/fr/design/images/reportcolumns/row_zh.png diff --git a/designer-base/src/main/resources/com/fr/design/images/reportcolumns/row_zh_TW.png b/designer-base/src/main/resources/com/fr/design/images/reportcolumns/row_zh_TW.png new file mode 100644 index 0000000000000000000000000000000000000000..935d1059d5ec5efd77171405fd8b19de37ec13dc GIT binary patch literal 2793 zcmV3hf6kat{4Ml5=p`ykbT0uh1p%JA)sRS`ckcJ=Tp&~?# zK}4t&QG&KwF$GNxtwcz~5J^d?D5G5vW?VDis$OE7d8=h^hdDPMtal777u#ckiBHst`}8x_$dL zRZ^@|)CmIG5D>CzgH{x)M!@A{eemD`<>lq6u9xWhfq=VV%QmYkTlW0<^VGF#S9#J$}OTbGgb>({SLI1mi`!NI{yx~ET{QdU+L zldgaN{^aN9NA23Ro{Hgr0!uU@^Pl#~?uF?B|7-@YY(e}CG(eLIu$*|TR%R`i$&2?-Pt z5y9oVe*HR|4Eg!_bocIEYSye7B_$=%qeqXZsHli8Uc5**Zrq^I&`_t>r~D1k>({Se zzx*Mm?zL4$bs1UFOUB2?)8N5_DKIdQ zAL|%Q!T$8|@nJ&3_VV`j<^k5XZ{O(S$B*3m9yxM^qN1XBKm|@FCMNRvpFVveygl-C zaaU|zW(H(rWKf?zeVCZAnK62Q`0yc*^g%WN4$^|Ksi~>dq)8Jt3376B_%R3a!p_AO zy)8bN5kPP3>Ef=~x{R!Y1`XoJzC|odLya6clG?Uy%O*j~mMxi}6DLlj@bGXx4ZSXU zVF>J5*tWxl4dX%A%$YO!cvx5%Z$0^syJG7yvRY(9Pl(U``}b-0?%iefDt_h zvxeThdBd{<81-MhdX?u^L2C4}moHzY6)RS-ItL6x-Et*MBA+0I4!oos5H&CqA_?}g9eMMb41VGjc7cQ{h8lGUYX3e5jty+~k!>nB) zt6A;g)Y43wHjQS?n8EkNqcAaf0T}o2U7% zj;Xf|Sz}^i9IL5Z{SyLkuH3U{4_&)Q(4Y*qG+%>57Se4?| z;;~I{&x(u9YR`7_$WjYgJ+j&DS!r946(NO?_(DV<0>IdGF`lf5iamb(c-p#kD)-HHHh$B!SUqeqW&1VO9}TDNYU(SAZEH}>z!27<0ywTkA> zoy)wq@>ml|!eTGdAqGLRJ61b>Y=YMmq7iXnhF49F$6bm>yQ5K9H8PMu1V zCr>UjyDFwp|Jla(tjIpNaN$B)uwVhTZ{J=&A|7%Fc(Wo6lQjcijRQYs>1@tBud&U^H2gNEjaxeFz{K-iQ$+^xZ(AW^?;|g_RUl?ty@i)jitLBWfXJ z^@wJ6k4lPLi+i-AN7O>xS~N7XxV5MURoq(CV=5XoA|N)aMsP*7S_FiwYVj0p8WFGs zS@GWb#fujjVGz}JK)~oXSOD6UP`7Sf0%_N-T}xPmA>tSU`T6<0F2K@KQc}XN zUg4GD@9%FNHfn1$S+S5MEiH|9?b=1&-rjWV*f9=(JAL|eqd>G{VXzPg3$HCXb?Ow8 z)l{OQoJN}g=s|bv*ug|aVbL2D6%}DuL?Ht3bxTP}p$QWvDAcN6mC-$`Rb4m=&YnG+ zza}IkSche+2!X?g4^u=$gwY||QB|XRR;w){m;sm>7&mSliKl=XX6)R#lcU_I z(WYOE(PTySF&l8})-A%~5OEq*ONj9Ba5k^hYSpLBc(S7E$kZa)TGW#uG&EGbQjHpo zwplgSTU6T+0U@gm8_iRTEM)c6mbYQO#jVALjpnIE7Pl4+EiY~@>OmE^7WJ5lMvVxF z&8iVxQLPpMA*)(EMVm$hY)4i*WEIiaUdmM?{wnS z91;@3W`VjpsMln4&x#P@NGAk96B82&c588QF%JSHBDP~>NKH*85OmU{NvsHNL-1~e z2eGO78jL0@Y^X(x7L~OM+*y2meal?4%YKlZ3L}6SfP#X8vg