diff --git a/designer-base/src/main/java/com/fr/design/editlock/EditLockUtils.java b/designer-base/src/main/java/com/fr/design/editlock/EditLockUtils.java index 2ab10fb92..4f332a170 100644 --- a/designer-base/src/main/java/com/fr/design/editlock/EditLockUtils.java +++ b/designer-base/src/main/java/com/fr/design/editlock/EditLockUtils.java @@ -74,6 +74,8 @@ public class EditLockUtils { } public static boolean isLocked(LockItem lockItem) { - return WorkContext.getCurrent().get(EditLockOperator.class).isLocked(lockItem); + EditLockOperator operator = WorkContext.getCurrent().get(EditLockOperator.class); + // 启动过程中UILockButton初始化的时候会调用这个方法,但是此时workObjectPool中还没有对象,会报npe + return operator != null && operator.isLocked(lockItem); } } diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/UINumberDragPaneWithPercent.java b/designer-base/src/main/java/com/fr/design/gui/frpane/UINumberDragPaneWithPercent.java new file mode 100644 index 000000000..9a17962b7 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/UINumberDragPaneWithPercent.java @@ -0,0 +1,24 @@ +package com.fr.design.gui.frpane; + +import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPercent; + +/** + * @author Bjorn + * @version 10.0 + * Created by Bjorn on 2021-01-21 + */ +public class UINumberDragPaneWithPercent extends UINumberDragPane { + + public UINumberDragPaneWithPercent(double minValue, double maxValue) { + super(minValue, maxValue); + } + + public UINumberDragPaneWithPercent(double minValue, double maxValue, double dierta) { + super(minValue, maxValue, dierta); + } + + protected UISpinner createUISpinner(double minValue, double maxValue, double dierta) { + return new UISpinnerWithPercent(minValue, maxValue, dierta, minValue); + } +} diff --git a/designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java b/designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java index c60ae2760..454b1e5b9 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java +++ b/designer-base/src/main/java/com/fr/design/gui/ispinner/UISpinner.java @@ -13,15 +13,28 @@ import com.fr.stable.CommonUtils; import com.fr.stable.Constants; import com.fr.stable.StringUtils; -import com.fr.stable.collections.utils.MathUtils; -import javax.swing.*; +import javax.swing.ButtonModel; +import javax.swing.Icon; +import javax.swing.JComponent; +import javax.swing.JPanel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.plaf.ButtonUI; -import java.awt.*; -import java.awt.event.*; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; +import java.awt.event.MouseWheelEvent; +import java.awt.event.MouseWheelListener; public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver { @@ -46,6 +59,9 @@ public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver */ private int numberFieldColumns; + public UISpinner() { + + } public UISpinner(double minValue, double maxValue, double dierta) { init(minValue, maxValue, dierta); @@ -56,7 +72,7 @@ public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver textField.setValue(defaultValue); } - private void init(double minValue, double maxValue, double dierta) { + protected void init(double minValue, double maxValue, double dierta) { this.minValue = minValue; this.maxValue = maxValue; this.dierta = dierta; diff --git a/designer-base/src/main/java/com/fr/design/gui/ispinner/chart/UISpinnerWithPercent.java b/designer-base/src/main/java/com/fr/design/gui/ispinner/chart/UISpinnerWithPercent.java new file mode 100644 index 000000000..5fdc0c3f6 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/gui/ispinner/chart/UISpinnerWithPercent.java @@ -0,0 +1,15 @@ +package com.fr.design.gui.ispinner.chart; + +/** + * @author Bjorn + * @version 10.0 + * Created by Bjorn on 2021-01-21 + */ +public class UISpinnerWithPercent extends UISpinnerWithUnit { + + private static final String UNIT = "%"; + + public UISpinnerWithPercent(double minValue, double maxValue, double dierta, double defaultValue) { + super(minValue, maxValue, dierta, defaultValue, UNIT); + } +} diff --git a/designer-base/src/main/java/com/fr/design/gui/ispinner/chart/UISpinnerWithPx.java b/designer-base/src/main/java/com/fr/design/gui/ispinner/chart/UISpinnerWithPx.java new file mode 100644 index 000000000..44397cbc5 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/gui/ispinner/chart/UISpinnerWithPx.java @@ -0,0 +1,20 @@ +package com.fr.design.gui.ispinner.chart; + +/** + * @author Bjorn + * @version 10.0 + * Created by Bjorn on 2021-01-21 + */ +public class UISpinnerWithPx extends UISpinnerWithUnit { + + private static final String UNIT = "px"; + + public UISpinnerWithPx(double defaultValue) { + this(0, Double.MAX_VALUE, 1, defaultValue); + } + + public UISpinnerWithPx(double minValue, double maxValue, double dierta, double defaultValue) { + super(minValue, maxValue, dierta, defaultValue, UNIT); + this.getTextField().canFillNegativeNumber(false); + } +} diff --git a/designer-base/src/main/java/com/fr/design/gui/ispinner/chart/UISpinnerWithUnit.java b/designer-base/src/main/java/com/fr/design/gui/ispinner/chart/UISpinnerWithUnit.java new file mode 100644 index 000000000..84ac5fbcb --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/gui/ispinner/chart/UISpinnerWithUnit.java @@ -0,0 +1,26 @@ +package com.fr.design.gui.ispinner.chart; + +import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.itextfield.UINumberField; +import com.fr.design.gui.itextfield.UINumberFieldWithUnit; + +/** + * @author Bjorn + * @version 10.0 + * Created by Bjorn on 2021-01-20 + */ +public class UISpinnerWithUnit extends UISpinner { + + private String unit; + + public UISpinnerWithUnit(double minValue, double maxValue, double dierta, double defaultValue, String unit) { + this.unit = unit; + init(minValue, maxValue, dierta); + getTextField().setValue(defaultValue); + } + + @Override + protected UINumberField initNumberField() { + return new UINumberFieldWithUnit(3, unit); + } +} diff --git a/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberField.java b/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberField.java index 12b894ddc..f4437a9c4 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberField.java +++ b/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberField.java @@ -1,16 +1,15 @@ package com.fr.design.gui.itextfield; import com.fr.base.Utils; -import com.fr.design.gui.ilable.UILabel; import com.fr.general.ComparatorUtils; import com.fr.stable.CoreConstants; import com.fr.stable.StringUtils; -import javax.swing.*; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; -import java.awt.*; +import java.awt.Dimension; +import java.awt.Toolkit; /** * Number Field. @@ -193,7 +192,6 @@ public class UINumberField extends UITextField { if (!fillNegativeNumber && strNew.contains("-")) { return true; } - boolean noChange = false; boolean isMinus = strNew.startsWith("-"); strNew = strNew.replaceFirst("-", StringUtils.EMPTY); // 控制能输入负数 String strIntPart; @@ -207,25 +205,27 @@ public class UINumberField extends UITextField { } if (isOverMaxOrMinValue(strIntPart, strDecPart, strNew)) { Toolkit.getDefaultToolkit().beep(); - noChange = true; + return true; } + return checkNumber(strNew, isMinus); + } + protected boolean checkNumber(String strValue, boolean isMinus) { try { - if (!ComparatorUtils.equals(strNew, StringUtils.EMPTY) && !ComparatorUtils.equals(strNew, "-")) {// 控制能输入负数 - double d = Double.parseDouble(strNew) * (isMinus ? -1 : 1); + if (!ComparatorUtils.equals(strValue, StringUtils.EMPTY) && !ComparatorUtils.equals(strValue, "-")) {// 控制能输入负数 + double d = Double.parseDouble(strValue) * (isMinus ? -1 : 1); if (d < minValue || d > maxValue) { throw new Exception(); } } } catch (Exception e) { Toolkit.getDefaultToolkit().beep(); - noChange = true; + return true; } - - return noChange; + return false; } - private boolean isOverMaxOrMinValue(String strIntPart, String strDecPart, String strNew) { + protected boolean isOverMaxOrMinValue(String strIntPart, String strDecPart, String strNew) { boolean checkLength = strIntPart.length() > maxIntegerLength || strDecPart.length() > maxDecimalLength; return checkLength || (strNew.length() > 1 && ComparatorUtils.equals(strNew.substring(0, 1), "0") && !ComparatorUtils.equals(strNew.substring(1, 2), ".")); diff --git a/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberFieldWithUnit.java b/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberFieldWithUnit.java new file mode 100644 index 000000000..e9f412551 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/gui/itextfield/UINumberFieldWithUnit.java @@ -0,0 +1,114 @@ +package com.fr.design.gui.itextfield; + +import com.fr.base.Utils; +import com.fr.general.ComparatorUtils; +import com.fr.stable.StringUtils; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; +import java.awt.Toolkit; + +/** + * @author Bjorn + * @version 10.0 + * Created by Bjorn on 2021-01-20 + * 这个控件不会限制输入的数字大小,但是同样不允许输入数字之外的字符 + */ +public class UINumberFieldWithUnit extends UINumberField { + + private String unit; + + private List unitList = new ArrayList<>(); + + public UINumberFieldWithUnit(int columns, String unit) { + super(columns); + this.unit = unit; + initUnitList(); + } + + //对单位的字符进行组合 + private void initUnitList() { + char[] chars = unit.toCharArray(); + Set set = new LinkedHashSet<>(); + initUnitList(chars, 0, StringUtils.EMPTY, set); + unitList.addAll(set); + Collections.sort(unitList, Comparator.comparing(String::length)); + } + + private void initUnitList(char[] chars, int index, String str, Set set) { + if (index == chars.length) { + return; + } + for (int i = index; i < chars.length; i++) { + String newStr = str + chars[i]; + set.add(newStr); + initUnitList(chars, i + 1, newStr, set); + } + } + + public void setFieldDocument() { + setDocument(new NumberDocumentNoLimit()); + } + + public void setValue(double value) { + this.setText(Utils.doubleToString(value) + unit); + } + + public double getValue() throws NumberFormatException { + try { + String text = this.getText(); + if (StringUtils.isEmpty(text)) { + return 0; + } + + return Double.parseDouble(text.replace(getEndString(text), StringUtils.EMPTY)); + } catch (NumberFormatException numberFormatException) { + return UINumberField.ERROR_VALUE; + } + } + + private String getEndString(String text) { + int size = unitList.size(); + for (int i = size - 1; i >= 0; i--) { + String unit = unitList.get(i); + if (text.endsWith(unit)) { + return unit; + + } + } + return StringUtils.EMPTY; + } + + class NumberDocumentNoLimit extends NumberDocument { + + public boolean checkString(int offset, String s, String str) { + return (ComparatorUtils.equals(s, "F") + || ComparatorUtils.equals(s, "f") + || ComparatorUtils.equals(s, "D") + || ComparatorUtils.equals(s, "d") + || (ComparatorUtils.equals(s, ".") && getMaxDecimalLength() == 0)); + + } + + protected boolean isOverMaxOrMinValue(String strIntPart, String strDecPart, String strNew) { + return super.isOverMaxOrMinValue(strIntPart, strDecPart, strNew.replaceFirst(getEndString(strNew), StringUtils.EMPTY)); + } + + protected boolean checkNumber(String strValue, boolean isMinus) { + try { + if (ComparatorUtils.equals(strValue, StringUtils.EMPTY) || ComparatorUtils.equals(strValue, "-")) { + return false; + } + Double.parseDouble(strValue.replaceFirst(getEndString(strValue), StringUtils.EMPTY)); + } catch (Exception e) { + Toolkit.getDefaultToolkit().beep(); + return true; + } + return false; + } + } +} diff --git a/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java b/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java index 0cd81f783..446ed1e61 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java +++ b/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java @@ -14,6 +14,7 @@ import com.fr.locale.LocaleMarker; import com.fr.locale.LocaleScope; import com.fr.module.Activator; import com.fr.module.extension.Prepare; +import com.fr.plugin.chart.DownloadSourcesHelper; import com.fr.plugin.chart.vanchart.export.ImagePainter; import com.fr.stable.bridge.StableFactory; import com.fr.stable.plugin.ExtraChartDesignClassManagerProvider; @@ -44,7 +45,7 @@ public class ChartDesignerActivator extends Activator implements Prepare { DesignModuleFactory.registerExtraWidgetOptions(ChartTypeInterfaceManager.initWidgetOption()); - ImagePainter.registerDownloadSourcesEvent(new DownloadOnlineSourcesHelper()); + DownloadSourcesHelper.registerDownloadSourcesEvent(new DownloadOnlineSourcesHelper()); ImagePainter.registerDefaultCallbackEvent(HistoryTemplateListCache.getInstance()); ChartTypeInterfaceManager.addPluginChangedListener(); diff --git a/designer-chart/src/main/java/com/fr/design/chart/series/SeriesCondition/LabelAlphaPane.java b/designer-chart/src/main/java/com/fr/design/chart/series/SeriesCondition/LabelAlphaPane.java index 1962ab4a9..5c9176504 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/series/SeriesCondition/LabelAlphaPane.java +++ b/designer-chart/src/main/java/com/fr/design/chart/series/SeriesCondition/LabelAlphaPane.java @@ -5,6 +5,7 @@ import com.fr.chart.base.DataSeriesCondition; import com.fr.design.condition.ConditionAttrSingleConditionPane; import com.fr.design.condition.ConditionAttributesPane; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ilable.UILabel; @@ -32,7 +33,7 @@ public class LabelAlphaPane extends ConditionAttrSingleConditionPane { }; } }; - lineWidth = new UISpinner(0.5, Double.MAX_VALUE, 0.5, 0.5); + lineWidth = new UISpinnerWithPx(0.5, Double.MAX_VALUE, 0.5, 0.5); Component[][] components = new Component[][]{ new Component[]{null, null}, diff --git a/designer-chart/src/main/java/com/fr/van/chart/bubble/component/VanChartBubblePane.java b/designer-chart/src/main/java/com/fr/van/chart/bubble/component/VanChartBubblePane.java index a51f91047..2d95bf272 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/bubble/component/VanChartBubblePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/bubble/component/VanChartBubblePane.java @@ -4,6 +4,7 @@ import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -24,8 +25,8 @@ public class VanChartBubblePane extends BasicBeanPane { private UIButtonGroup displayNegative; public VanChartBubblePane(){ - minDiameter = new UISpinner(0,Double.MAX_VALUE,1,0); - maxDiameter = new UISpinner(0,Double.MAX_VALUE,1,0); + minDiameter = new UISpinnerWithPx(0); + maxDiameter = new UISpinnerWithPx(0); shadow = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Open"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Close")}); displayNegative = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Open"), diff --git a/designer-chart/src/main/java/com/fr/van/chart/column/ColumnBorderAttriPane.java b/designer-chart/src/main/java/com/fr/van/chart/column/ColumnBorderAttriPane.java index c81317a81..af4be834a 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/column/ColumnBorderAttriPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/column/ColumnBorderAttriPane.java @@ -3,6 +3,7 @@ package com.fr.van.chart.column; import com.fr.design.chart.comp.BorderAttriPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import java.awt.Dimension; @@ -19,7 +20,7 @@ public class ColumnBorderAttriPane extends BorderAttriPane { public ColumnBorderAttriPane(String radiusString) { this.add(new UILabel(radiusString + ":")); - radius = new UISpinner(0,1000,1,0); + radius = new UISpinnerWithPx(0,1000,1,0); this.add(radius); radius.setPreferredSize(new Dimension(60, 18)); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnSeriesPane.java index eb2c3914a..b83a20f61 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnSeriesPane.java @@ -3,6 +3,8 @@ package com.fr.van.chart.column; import com.fr.base.background.ImageBackground; import com.fr.chart.chartattr.Plot; import com.fr.chart.chartglyph.ConditionAttr; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.i18n.Toolkit; import com.fr.design.gui.frpane.UINumberDragPane; import com.fr.design.gui.ibutton.UIButtonGroup; @@ -76,10 +78,10 @@ public class VanChartColumnSeriesPane extends VanChartAbstractPlotSeriesPane { private JPanel createSeriesStylePane(double[] row, double[] col) { isFixedWidth = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_YES"), Toolkit.i18nText("Fine-Design_Chart_NO")}); - columnWidth = new UISpinner(0,1000,1,0); + columnWidth = new UISpinnerWithPx(0,1000,1,0); columnWidth.setBorder(BorderFactory.createEmptyBorder(0, (int)TableLayout4VanChartHelper.DESCRIPTION_AREA_WIDTH + TableLayout4VanChartHelper.COMPONENT_INTERVAL,0,0)); - seriesGap = new UINumberDragPane(-100, 100); - categoryGap = new UINumberDragPane(0, 100); + seriesGap = new UINumberDragPaneWithPercent(-100, 100); + categoryGap = new UINumberDragPaneWithPercent(0, 100); isFillWithImage = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_YES"), Toolkit.i18nText("Fine-Design_Chart_NO")}); imagePane = new ImageBackgroundQuickPane(false); imagePane.setBorder(BorderFactory.createEmptyBorder(0,(int)TableLayout4VanChartHelper.DESCRIPTION_AREA_WIDTH + TableLayout4VanChartHelper.COMPONENT_INTERVAL,0,0)); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartAreaSeriesFillColorPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartAreaSeriesFillColorPane.java index 24400cacd..241798bef 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartAreaSeriesFillColorPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartAreaSeriesFillColorPane.java @@ -2,6 +2,7 @@ package com.fr.van.chart.designer.component; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.TableLayout; @@ -36,7 +37,7 @@ public class VanChartAreaSeriesFillColorPane extends BasicPane { }; } }; - transparent = new UINumberDragPane(0, 100); + transparent = new UINumberDragPaneWithPercent(0, 100); JPanel transparentPane = TableLayout4VanChartHelper.createGapTableLayoutPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Alpha"), transparent); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLineTypePane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLineTypePane.java index 10c3308b3..b6119aa64 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLineTypePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartLineTypePane.java @@ -4,6 +4,7 @@ import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.utils.gui.UIComponentUtils; @@ -15,11 +16,11 @@ import com.fr.plugin.chart.type.LineType; import com.fr.van.chart.designer.TableLayout4VanChartHelper; import javax.swing.JPanel; +import java.util.Arrays; import java.awt.BorderLayout; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.util.Arrays; /** * line相关设置 @@ -74,7 +75,7 @@ public class VanChartLineTypePane extends BasicPane { lineTypeComboBox = createLineType(); - lineWidthSpinner = new UISpinner(LINE_WIDTH_MIN_VALUE, Integer.MAX_VALUE, LINE_WIDTH_DIERTA_VALUE, LINE_WIDTH_DEFAULT_VALUE); + lineWidthSpinner = new UISpinnerWithPx(LINE_WIDTH_MIN_VALUE, Integer.MAX_VALUE, LINE_WIDTH_DIERTA_VALUE, LINE_WIDTH_DEFAULT_VALUE); lineTypeComboBox.addActionListener(new ActionListener() { @Override diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTrendLinePane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTrendLinePane.java index eb8bd0f16..dbcdb0e21 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTrendLinePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTrendLinePane.java @@ -7,6 +7,7 @@ import com.fr.design.dialog.BasicPane; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; @@ -61,7 +62,7 @@ public class VanChartTrendLinePane extends BasicPane{ trendLineName = new UITextField(); trendLineColor = new ColorSelectBox(PREFERRED_WIDTH); trendLineStyle = new LineTypeComboBox(new LineType[]{LineType.NONE, LineType.SOLID, LineType.DASHED}); - lineWidthSpinner = new UISpinner(LINE_WIDTH_MIN_VALUE, Integer.MAX_VALUE, LINE_WIDTH_DIERTA_VALUE, LINE_WIDTH_DEFAULT_VALUE); + lineWidthSpinner = new UISpinnerWithPx(LINE_WIDTH_MIN_VALUE, Integer.MAX_VALUE, LINE_WIDTH_DIERTA_VALUE, LINE_WIDTH_DEFAULT_VALUE); trendLineType = new UIComboBox(TYPES); prePeriod = new UISpinner(0, Integer.MAX_VALUE, 1, 0); afterPeriod = new UISpinner(0, Integer.MAX_VALUE, 1, 0); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundPane.java index 9a81b6ece..c51ac0fe9 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundPane.java @@ -4,6 +4,7 @@ import com.fr.base.background.ImageBackground; import com.fr.chart.chartglyph.GeneralInfo; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; @@ -112,7 +113,7 @@ public class VanChartBackgroundPane extends BasicPane { } }); transparentLabel = new UILabel(Toolkit.i18nText("Fine-Design_Report_Alpha")); - transparent = new UINumberDragPane(0, 100); + transparent = new UINumberDragPaneWithPercent(0, 100); } protected Component[][] getPaneComponents() { diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundPaneWithOutImageAndShadow.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundPaneWithOutImageAndShadow.java index 812dd5a09..d854f9917 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundPaneWithOutImageAndShadow.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundPaneWithOutImageAndShadow.java @@ -1,10 +1,15 @@ package com.fr.van.chart.designer.component.background; +import com.fr.design.constants.LayoutConstants; +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.backgroundpane.ColorBackgroundQuickPane; import com.fr.design.mainframe.backgroundpane.NullBackgroundQuickPane; +import com.fr.van.chart.designer.TableLayout4VanChartHelper; +import javax.swing.BorderFactory; import javax.swing.JPanel; import java.awt.Component; @@ -28,10 +33,13 @@ public class VanChartBackgroundPaneWithOutImageAndShadow extends VanChartBackgro double p = TableLayout.PREFERRED; double f = TableLayout.FILL; - double[] columnSize = {p, f}; - double[] rowSize = { p,p,p}; + double[] columnSize = {f, TableLayout4VanChartHelper.SECOND_EDIT_AREA_WIDTH}; + double[] rowSize = {p, p, p}; - return TableLayoutHelper.createTableLayoutPane(getPaneComponents(),rowSize,columnSize); + JPanel tableLayoutPane = TableLayoutHelper.createGapTableLayoutPane(getPaneComponents(), rowSize, columnSize, + TableLayout4VanChartHelper.COMPONENT_INTERVAL, LayoutConstants.VGAP_MEDIUM); + tableLayoutPane.setBorder(BorderFactory.createEmptyBorder(0, 12, 4, 0)); + return tableLayoutPane; } @Override @@ -44,7 +52,7 @@ public class VanChartBackgroundPaneWithOutImageAndShadow extends VanChartBackgro */ @Override public String title4PopupWindow() { - return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Default_Name"); + return Toolkit.i18nText("Fine-Design_Chart_Default_Name"); } }); paneList.add(new ColorBackgroundQuickPane()); @@ -54,11 +62,14 @@ public class VanChartBackgroundPaneWithOutImageAndShadow extends VanChartBackgro @Override protected Component[][] getPaneComponents() { return new Component[][]{ - new Component[]{typeComboBox, null}, - new Component[]{centerPane, null}, + new Component[]{new UILabel(labelName()), typeComboBox}, + new Component[]{null, centerPane}, new Component[]{getTransparentLabel(), transparent}, }; } + protected String labelName() { + return Toolkit.i18nText("Fine-Design_Chart_Background"); + } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundWithOutShadowWithRadiusPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundWithOutShadowWithRadiusPane.java index 807ee6216..e0e834598 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundWithOutShadowWithRadiusPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/background/VanChartBackgroundWithOutShadowWithRadiusPane.java @@ -3,6 +3,7 @@ package com.fr.van.chart.designer.component.background; import com.fr.chart.chartglyph.GeneralInfo; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.i18n.Toolkit; import java.awt.Component; @@ -24,7 +25,7 @@ public class VanChartBackgroundWithOutShadowWithRadiusPane extends VanChartBackg } protected Component[][] getPaneComponents() { - radius = new UISpinner(0, 1000, 1, 0); + radius = new UISpinnerWithPx(0, 1000, 1, 0); return new Component[][]{ new Component[]{null, null}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Report_Fill")), typeComboBox}, diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithAlphaPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithAlphaPane.java index 724cefe92..607bc0da5 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithAlphaPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithAlphaPane.java @@ -1,6 +1,7 @@ package com.fr.van.chart.designer.component.border; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ilable.UILabel; import com.fr.design.utils.gui.UIComponentUtils; import com.fr.design.widget.FRWidgetFactory; @@ -29,7 +30,7 @@ public class VanChartBorderWithAlphaPane extends VanChartBorderPane{ @Override protected void initComponents() { super.initComponents(); - transparent = new UINumberDragPane(0,100); + transparent = new UINumberDragPaneWithPercent(0,100); } protected void initContent() { diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithRadiusPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithRadiusPane.java index d6fdf9c69..d92f3c0ee 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithRadiusPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithRadiusPane.java @@ -4,6 +4,7 @@ import com.fr.chart.base.AttrBorder; import com.fr.chart.chartglyph.GeneralInfo; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.i18n.Toolkit; import com.fr.design.utils.gui.UIComponentUtils; import com.fr.design.widget.FRWidgetFactory; @@ -34,7 +35,7 @@ public class VanChartBorderWithRadiusPane extends VanChartBorderPane { @Override protected void initComponents() { super.initComponents(); - radius = new UISpinner(0,1000,1,0); + radius = new UISpinnerWithPx(0,1000,1,0); } @Override diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithShapePane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithShapePane.java index f40a51f12..292ae55ac 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithShapePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/border/VanChartBorderWithShapePane.java @@ -7,6 +7,7 @@ import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icombobox.LineComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.gui.xcombox.MarkerComboBox; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; @@ -58,7 +59,7 @@ public class VanChartBorderWithShapePane extends BasicPane { }); lineColorBox = new ColorSelectBox(100); borderShape = new MarkerComboBox(MarkerFactory.getLabelShapeMarkers()); - borderRadius = new UISpinner(0, 1000, 1, 0); + borderRadius = new UISpinnerWithPx(0, 1000, 1, 0); } private void createBorderPane() { diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/marker/VanChartCommonMarkerPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/marker/VanChartCommonMarkerPane.java index 444bebfaa..e2cdf0cb0 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/marker/VanChartCommonMarkerPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/marker/VanChartCommonMarkerPane.java @@ -4,6 +4,7 @@ import com.fr.chart.chartglyph.Marker; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.gui.xcombox.MarkerComboBox; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; @@ -89,7 +90,7 @@ public class VanChartCommonMarkerPane extends BasicBeanPane }; } }; - radius = new UISpinner(0, 100, 0.5, 0); + radius = new UISpinnerWithPx(0, 100, 0.5, 0); double p = TableLayout.PREFERRED; diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartFieldListPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartFieldListPane.java index 6e0e587be..61d7cfb25 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartFieldListPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartFieldListPane.java @@ -162,7 +162,7 @@ public class VanChartFieldListPane extends JPanel { tableField.setPreferredSize(new Dimension(FIELD_ADD_W, tableFieldNameList.size() * FIELD_ADD_H)); - return TableLayout4VanChartHelper.createExpandablePaneWithTitleTopGap("数据集字段", tableField); + return TableLayout4VanChartHelper.createExpandablePaneWithTitleTopGap(Toolkit.i18nText("Fine-Design_Report_Table_Field"), tableField); } protected List getDefaultFieldButtonList() { diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartRichTextPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartRichTextPane.java index b7c4e968d..d2d0769ee 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartRichTextPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/component/richText/VanChartRichTextPane.java @@ -1,6 +1,7 @@ package com.fr.van.chart.designer.component.richText; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.ui.ModernUIPane; import com.fr.plugin.chart.base.AttrTooltipContent; @@ -38,7 +39,8 @@ public class VanChartRichTextPane extends BasicBeanPane { } private JPanel createFieldContentPane() { - JPanel fieldPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + JPanel fieldPane = new JPanel(); + fieldPane.setLayout(FRGUIPaneFactory.create2ColumnGridLayout()); // 新增字段目录 JPanel fieldListContent = new JPanel(); @@ -48,12 +50,12 @@ public class VanChartRichTextPane extends BasicBeanPane { JScrollPane fieldListScrollPane = new JScrollPane(fieldListContent); fieldListScrollPane.setPreferredSize(new Dimension(FIELD_PANE_W, FIELD_PANE_H)); fieldListScrollPane.setHorizontalScrollBar(null); - fieldListScrollPane.setBorder(BorderFactory.createTitledBorder("添加字段")); + fieldListScrollPane.setBorder(BorderFactory.createTitledBorder(Toolkit.i18nText("Fine-Design_Report_Add_Field"))); // 字段格式和汇总 JScrollPane fieldAttrScrollPane = new JScrollPane(fieldAttrPane); fieldAttrScrollPane.setPreferredSize(new Dimension(FIELD_PANE_W, FIELD_PANE_H)); - fieldAttrScrollPane.setBorder(BorderFactory.createTitledBorder("字段设置")); + fieldAttrScrollPane.setBorder(BorderFactory.createTitledBorder(Toolkit.i18nText("Fine-Design_Report_Field_Setting"))); fieldPane.add(fieldListScrollPane); fieldPane.add(fieldAttrScrollPane); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartPlotLegendPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartPlotLegendPane.java index 8a0a62f62..5a16aa4c8 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartPlotLegendPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartPlotLegendPane.java @@ -4,11 +4,12 @@ import com.fr.base.BaseUtils; import com.fr.chart.chartattr.Plot; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.frpane.UIBubbleFloatPane; +import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ibutton.UIToggleButton; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -65,7 +66,7 @@ public class VanChartPlotLegendPane extends BasicPane { //区域显示策略 恢复用注释。下面4行删除。 private UIButtonGroup customSize; - private UISpinner maxProportion; + private UINumberDragPane maxProportion; private JPanel maxProportionPane; //区域显示策略 恢复用注释。取消注释。 //private LimitPane limitPane; @@ -294,7 +295,7 @@ public class VanChartPlotLegendPane extends BasicPane { private JPanel createDisplayStrategy() { //区域显示策略 恢复用注释。开始删除。 - maxProportion = new UISpinner(0, 100, 1, 30); + maxProportion = new UINumberDragPaneWithPercent(0, 100, 1); customSize = new UIButtonGroup<>(new String[]{Toolkit.i18nText("Fine-Design_Chart_Auto"), Toolkit.i18nText("Fine-Design_Chart_Custom")}); JPanel limitSizePane = TableLayout4VanChartHelper.createGapTableLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Area_Size"), customSize); @@ -402,7 +403,7 @@ public class VanChartPlotLegendPane extends BasicPane { legend.setLayout(layoutButton.getSelectedItem()); //区域显示策略 恢复用注释。下面2行删除。 legend.setCustomSize(customSize.getSelectedIndex() == 1); - legend.setMaxHeight(maxProportion.getValue()); + legend.setMaxHeight(maxProportion.updateBean()); //区域显示策略 恢复用注释。取消注释。 //legend.setLimitAttribute(limitPane.updateBean()); legend.setFloatPercentX(customFloatPositionPane.getFloatPosition_x()); @@ -427,7 +428,7 @@ public class VanChartPlotLegendPane extends BasicPane { layoutButton.setSelectedItem(legend.getLayout()); //区域显示策略 恢复用注释。下面2行删除。 customSize.setSelectedIndex(legend.isCustomSize() ? 1 : 0); - maxProportion.setValue(legend.getMaxHeight()); + maxProportion.populateBean(legend.getMaxHeight()); //区域显示策略 恢复用注释。取消注释。 //limitPane.populateBean(legend.getLimitAttribute()); if (highlightButton != null) { diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartTitlePane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartTitlePane.java index 1c02f342c..59652a4af 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartTitlePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartTitlePane.java @@ -7,11 +7,12 @@ import com.fr.chart.base.TextAttr; import com.fr.chartx.config.info.constant.ConfigType; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UIBubbleFloatPane; +import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ibutton.UIToggleButton; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.chart.PaneTitleConstants; @@ -64,7 +65,7 @@ public class VanChartTitlePane extends AbstractVanChartScrollPane { //区域显示策略 恢复用注释。下面3行删除。 private UIButtonGroup limitSize; - private UISpinner maxProportion; + private UINumberDragPane maxProportion; private JPanel maxProportionPane; //区域显示策略 恢复用注释。取消注释。 //private LimitPane limitPane; @@ -183,7 +184,7 @@ public class VanChartTitlePane extends AbstractVanChartScrollPane { private JPanel createDisplayStrategy() { //区域显示策略 恢复用注释。开始删除。 - maxProportion = new UISpinner(0, 100, 1, 30); + maxProportion = new UINumberDragPaneWithPercent(0, 100, 1); limitSize = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Limit"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Not_Limit")}); JPanel limitSizePane = TableLayout4VanChartHelper.createGapTableLayoutPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Area_Size"), limitSize); @@ -320,7 +321,7 @@ public class VanChartTitlePane extends AbstractVanChartScrollPane { customFloatPositionPane.setFloatPosition_y(title.getFloatPercentY()); //区域显示策略 恢复用注释。下面2行删除。 limitSize.setSelectedIndex(title.isLimitSize() ? 0 : 1); - maxProportion.setValue(title.getMaxHeight()); + maxProportion.populateBean(title.getMaxHeight()); //区域显示策略 恢复用注释。取消注释。 //limitPane.populateBean(title.getLimitAttribute()); @@ -357,7 +358,7 @@ public class VanChartTitlePane extends AbstractVanChartScrollPane { title.setFloating(customFloatPositionButton.isSelected()); //区域显示策略 恢复用注释。下面2行删除。 title.setLimitSize(limitSize.getSelectedIndex() == 0); - title.setMaxHeight(maxProportion.getValue()); + title.setMaxHeight(maxProportion.updateBean()); //区域显示策略 恢复用注释。取消注释。 //title.setLimitAttribute(limitPane.updateBean()); title.setFloatPercentX(customFloatPositionPane.getFloatPosition_x()); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java index 955be0a8c..9fb0c7e31 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartBaseAxisPane.java @@ -8,11 +8,11 @@ import com.fr.chart.chartattr.Title; import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ibutton.UIToggleButton; import com.fr.design.gui.icombobox.LineComboBox; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.style.FormatPane; import com.fr.design.i18n.Toolkit; @@ -97,7 +97,7 @@ public class VanChartBaseAxisPane extends FurtherBasicBeanPane { //区域显示策略 恢复用注释。下面3行删除。 protected UIButtonGroup axisLimitSize; - protected UISpinner maxProportion; + protected UINumberDragPane maxProportion; protected JPanel maxProportionPane; //区域显示策略 恢复用注释。取消注释。 //private LimitPane limitPane; @@ -465,7 +465,7 @@ public class VanChartBaseAxisPane extends FurtherBasicBeanPane { protected JPanel createDisplayStrategy() { //区域显示策略 恢复用注释。删除到return,即除了注释的代码都删除。 - maxProportion = new UISpinner(0, 100, 1, 30); + maxProportion = new UINumberDragPaneWithPercent(0, 100, 1); axisLimitSize = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Limit"), Toolkit.i18nText("Fine-Design_Chart_Not_Limit")}); JPanel limitSizePane = TableLayout4VanChartHelper.createGapTableLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Area_Size"), axisLimitSize); @@ -767,7 +767,7 @@ public class VanChartBaseAxisPane extends FurtherBasicBeanPane { axisLimitSize.setSelectedIndex(axis.isLimitSize() ? 0 : 1); } if (maxProportion != null) { - maxProportion.setValue(axis.getMaxHeight()); + maxProportion.populateBean(axis.getMaxHeight()); } //区域显示策略 恢复用注释。取消注释。 @@ -909,7 +909,7 @@ public class VanChartBaseAxisPane extends FurtherBasicBeanPane { axis.setLimitSize(axisLimitSize.getSelectedIndex() == 0); } if (maxProportion != null) { - axis.setMaxHeight(maxProportion.getValue()); + axis.setMaxHeight(maxProportion.updateBean()); } //区域显示策略 恢复用注释。取消注释。 // if (limitPane != null) { diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartAlertValuePane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartAlertValuePane.java index ca59824f6..387d974d2 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartAlertValuePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartAlertValuePane.java @@ -10,6 +10,7 @@ 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.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.i18n.Toolkit; import com.fr.design.gui.style.FRFontPane; import com.fr.design.layout.FRGUIPaneFactory; @@ -90,7 +91,7 @@ public class VanChartAlertValuePane extends BasicBeanPane { alertValue.setPreferredSize(new Dimension(VALUE_WD, HT)); alertLineStyle = new LineTypeComboBox(new LineType[]{LineType.SOLID, LineType.DASHED}); - lineWidthSpinner = new UISpinner(LINE_WIDTH_MIN_VALUE, Integer.MAX_VALUE, LINE_WIDTH_DIERTA_VALUE, LINE_WIDTH_DEFAULT_VALUE); + lineWidthSpinner = new UISpinnerWithPx(LINE_WIDTH_MIN_VALUE, Integer.MAX_VALUE, LINE_WIDTH_DIERTA_VALUE, LINE_WIDTH_DEFAULT_VALUE); alertLineColor = new ColorSelectBox(PREFERRED_WIDTH); alertTextPosition = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Axis_Top"), Toolkit.i18nText("Fine-Design_Chart_Axis_Bottom")}); alertText = new TinyFormulaPane(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartCustomIntervalBackgroundPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartCustomIntervalBackgroundPane.java index 81aa8d276..ef6dc0e11 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartCustomIntervalBackgroundPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/background/VanChartCustomIntervalBackgroundPane.java @@ -5,6 +5,7 @@ import com.fr.base.Utils; import com.fr.design.beans.BasicBeanPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; @@ -52,7 +53,7 @@ public class VanChartCustomIntervalBackgroundPane extends BasicBeanPane { protected void initComponents() { textAttrPane = new ChartTextAttrPane(); colorSelectBox4button = new ColorSelectBoxWithOutTransparent(100); - transparent = new UINumberDragPane(0, 100); + transparent = new UINumberDragPaneWithPercent(0, 100); } protected Component[][] getUsedComponents() { diff --git a/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java index 8a48837cb..aab8f3cf2 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java @@ -3,9 +3,11 @@ package com.fr.van.chart.gauge; import com.fr.chart.chartattr.Plot; import com.fr.chart.chartglyph.ConditionAttr; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -257,12 +259,12 @@ public class VanChartGaugeSeriesPane extends VanChartAbstractPlotSeriesPane { } private Component[] getThermometerWidth() { - thermometerWidth = new UISpinner(0, Double.MAX_VALUE, 0.1, 10); + thermometerWidth = new UISpinnerWithPx(0, Double.MAX_VALUE, 0.1, 10); return new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Thermometer_Width")),thermometerWidth}; } private Component[] getChutePercent() { - chutePercent = new UINumberDragPane(0, 100, 1); + chutePercent = new UINumberDragPaneWithPercent(0, 100, 1); return new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Chute_Percent")),chutePercent}; } diff --git a/designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/style/VanChartHeatMapSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/style/VanChartHeatMapSeriesPane.java index 1e06db777..0dd9cea31 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/style/VanChartHeatMapSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/style/VanChartHeatMapSeriesPane.java @@ -3,9 +3,11 @@ package com.fr.van.chart.heatmap.designer.style; import com.fr.chart.chartattr.Plot; import com.fr.chart.chartglyph.ConditionAttr; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -31,7 +33,7 @@ import java.awt.Component; public class VanChartHeatMapSeriesPane extends VanChartMapSeriesPane { private UISpinner radius; - private UISpinner blur; + private UINumberDragPane blur; private UINumberDragPane minOpacity; private UINumberDragPane maxOpacity; @@ -119,8 +121,8 @@ public class VanChartHeatMapSeriesPane extends VanChartMapSeriesPane { } private JPanel createHeatPointStylePane() { - radius = new UISpinner(0, Double.MAX_VALUE, 1, 30); - blur = new UISpinner(0, 100, 1, 30); + radius = new UISpinnerWithPx(0, Double.MAX_VALUE, 1, 30); + blur = new UINumberDragPaneWithPercent(0, 100, 1); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; @@ -130,8 +132,8 @@ public class VanChartHeatMapSeriesPane extends VanChartMapSeriesPane { Component[][] components = new Component[][]{ new Component[]{null, null, null}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Heat_Map_Radius")), radius, null}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Heat_Map_Blur")), blur, new UILabel("%")} + new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Heat_Map_Radius")), radius, null}, + new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Heat_Map_Blur")), blur, null} }; JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(components, row, col); @@ -141,8 +143,8 @@ public class VanChartHeatMapSeriesPane extends VanChartMapSeriesPane { } private JPanel createOpacityPane() { - maxOpacity = new UINumberDragPane(0, 100); - minOpacity = new UINumberDragPane(0, 100); + maxOpacity = new UINumberDragPaneWithPercent(0, 100); + minOpacity = new UINumberDragPaneWithPercent(0, 100); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; @@ -169,7 +171,7 @@ public class VanChartHeatMapSeriesPane extends VanChartMapSeriesPane { if (plot instanceof VanChartHeatMapPlot) { VanChartHeatMapPlot heatMapPlot = (VanChartHeatMapPlot) plot; radius.setValue(heatMapPlot.getRadius()); - blur.setValue(heatMapPlot.getBlur()); + blur.populateBean(heatMapPlot.getBlur()); maxOpacity.populateBean(heatMapPlot.getMaxOpacity()); minOpacity.populateBean(heatMapPlot.getMinOpacity()); getVanChartValueColorPane().populateBean((VanChartRangeLegend) plot.getLegend()); @@ -187,7 +189,7 @@ public class VanChartHeatMapSeriesPane extends VanChartMapSeriesPane { if (plot instanceof VanChartHeatMapPlot) { VanChartHeatMapPlot heatMapPlot = (VanChartHeatMapPlot) plot; heatMapPlot.setRadius(radius.getValue()); - heatMapPlot.setBlur(blur.getValue()); + heatMapPlot.setBlur(blur.updateBean()); heatMapPlot.setMaxOpacity(maxOpacity.updateBean()); heatMapPlot.setMinOpacity(minOpacity.updateBean()); getVanChartValueColorPane().updateBean((VanChartRangeLegend) plot.getLegend()); diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/VanChartMapSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/VanChartMapSeriesPane.java index 8f5a3d178..2d1cb2304 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/VanChartMapSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/VanChartMapSeriesPane.java @@ -5,6 +5,7 @@ import com.fr.chart.chartattr.Plot; import com.fr.chart.chartglyph.ConditionAttr; import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; @@ -321,7 +322,7 @@ public class VanChartMapSeriesPane extends VanChartColorValueSeriesPane { //不透明度 protected JPanel createAlphaPane() { - setTransparent(new UINumberDragPane(0, 100)); + setTransparent(new UINumberDragPaneWithPercent(0, 100)); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] columnSize = {f, TableLayout4VanChartHelper.EDIT_AREA_WIDTH}; diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/series/VanChartMapAnchorMarkerPane.java b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/series/VanChartMapAnchorMarkerPane.java index c7ddda38b..d34a89b5d 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/series/VanChartMapAnchorMarkerPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/designer/style/series/VanChartMapAnchorMarkerPane.java @@ -3,6 +3,7 @@ package com.fr.van.chart.map.designer.style.series; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; @@ -20,7 +21,7 @@ public class VanChartMapAnchorMarkerPane extends BasicBeanPane{ } private void initComponents(){ - lineWidth = new UISpinner(0, MAX_WIDTH, STEP, 0.5); + lineWidth = new UISpinnerWithPx(0, MAX_WIDTH, STEP, 0.5); bending = new UINumberDragPane(0, 100); - lineAlphaPane = new UINumberDragPane(0, 100); + lineAlphaPane = new UINumberDragPaneWithPercent(0, 100); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; diff --git a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieSeriesPane.java index 4fa61802d..6c1575cfd 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/multilayer/style/VanChartMultiPieSeriesPane.java @@ -1,6 +1,7 @@ package com.fr.van.chart.multilayer.style; import com.fr.chart.chartattr.Plot; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; @@ -46,7 +47,7 @@ public class VanChartMultiPieSeriesPane extends VanChartPieSeriesPane { com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Gradual_Deep")}); startAngle = new UISpinner(MIN_ANGLE, MAX_ANGLE, 1, 0); endAngle = new UISpinner(MIN_ANGLE, MAX_ANGLE, 1, 0); - innerRadius = new UISpinner(0, 100, 1, 0); + innerRadius = new UINumberDragPaneWithPercent(0, 100, 1); supportRotation = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Open"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Close")}); supportDrill = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Open"), @@ -72,7 +73,7 @@ public class VanChartMultiPieSeriesPane extends VanChartPieSeriesPane { gradualLevel.setSelectedIndex(multiPiePlot.isLight() ? 0 : 1); startAngle.setValue(multiPiePlot.getStartAngle()); endAngle.setValue(multiPiePlot.getEndAngle()); - innerRadius.setValue(multiPiePlot.getInnerRadiusPercent()); + innerRadius.populateBean(multiPiePlot.getInnerRadiusPercent()); supportDrill.setSelectedIndex(multiPiePlot.isSupportDrill() ? 0 : 1); supportRotation.setSelectedIndex(multiPiePlot.isSupportRotation() ? 0 : 1); } @@ -85,7 +86,7 @@ public class VanChartMultiPieSeriesPane extends VanChartPieSeriesPane { multiPiePlot.setLight(gradualLevel.getSelectedIndex() == 0); multiPiePlot.setStartAngle(startAngle.getValue()); multiPiePlot.setEndAngle(endAngle.getValue()); - multiPiePlot.setInnerRadiusPercent(innerRadius.getValue()); + multiPiePlot.setInnerRadiusPercent(innerRadius.updateBean()); multiPiePlot.setSupportDrill(supportDrill.getSelectedIndex() == 0); multiPiePlot.setSupportRotation(supportRotation.getSelectedIndex() == 0); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/pie/RadiusCardLayoutPane.java b/designer-chart/src/main/java/com/fr/van/chart/pie/RadiusCardLayoutPane.java index 4932eddb4..7befd40e7 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/pie/RadiusCardLayoutPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/pie/RadiusCardLayoutPane.java @@ -4,9 +4,10 @@ import com.fr.chart.chartattr.Plot; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; +import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; - import com.fr.plugin.chart.attr.radius.VanChartRadiusPlot; import com.fr.plugin.chart.base.VanChartRadius; import com.fr.plugin.chart.type.RadiusType; @@ -14,11 +15,11 @@ import com.fr.van.chart.layout.VanChartCardLayoutPane; import javax.swing.BorderFactory; import javax.swing.JPanel; +import java.util.HashMap; +import java.util.Map; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; -import java.util.HashMap; -import java.util.Map; /** * Created by hufan on 2016/10/25. @@ -40,8 +41,8 @@ public class RadiusCardLayoutPane extends BasicBeanPane { Map paneList = new HashMap(); - radiusType = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Auto"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Fixed")}); - radius = new UISpinner(MIN_RADIUS, MAX_RADIUS, 1, 100); + radiusType = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Auto"), Toolkit.i18nText("Fine-Design_Chart_Fixed")}); + radius = new UISpinnerWithPx(100); radiusContent = new JPanel(new BorderLayout()); radiusContent.add(radius, BorderLayout.CENTER); diff --git a/designer-chart/src/main/java/com/fr/van/chart/pie/VanChartPieSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/pie/VanChartPieSeriesPane.java index a6a1a5e28..6253190da 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/pie/VanChartPieSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/pie/VanChartPieSeriesPane.java @@ -2,6 +2,8 @@ package com.fr.van.chart.pie; import com.fr.chart.chartattr.Plot; +import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; @@ -27,7 +29,7 @@ public class VanChartPieSeriesPane extends VanChartAbstractPlotSeriesPane { protected UISpinner startAngle; protected UISpinner endAngle; - protected UISpinner innerRadius; + protected UINumberDragPane innerRadius; private UIButtonGroup supportRotation; public VanChartPieSeriesPane(ChartStylePane parent, Plot plot) { @@ -52,7 +54,7 @@ public class VanChartPieSeriesPane extends VanChartAbstractPlotSeriesPane { protected JPanel createSeriesStylePane(double[] row, double[] col) { startAngle = new UISpinner(MIN_ANGLE, MAX_ANGLE, 1, 0); endAngle = new UISpinner(MIN_ANGLE, MAX_ANGLE, 1, 0); - innerRadius = new UISpinner(0, 100, 1, 0); + innerRadius = new UINumberDragPaneWithPercent(0, 100, 1); supportRotation = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_On"), Toolkit.i18nText("Fine-Design_Chart_Off")}, new Boolean[]{true, false}); @@ -86,7 +88,7 @@ public class VanChartPieSeriesPane extends VanChartAbstractPlotSeriesPane { PiePlot4VanChart piePlot4VanChart = (PiePlot4VanChart) plot; startAngle.setValue(piePlot4VanChart.getStartAngle()); endAngle.setValue(piePlot4VanChart.getEndAngle()); - innerRadius.setValue(piePlot4VanChart.getInnerRadiusPercent()); + innerRadius.populateBean(piePlot4VanChart.getInnerRadiusPercent()); supportRotation.setSelectedIndex(piePlot4VanChart.isSupportRotation() == true ?0:1); } } @@ -107,7 +109,7 @@ public class VanChartPieSeriesPane extends VanChartAbstractPlotSeriesPane { PiePlot4VanChart piePlot4VanChart = (PiePlot4VanChart)plot; piePlot4VanChart.setStartAngle(startAngle.getValue()); piePlot4VanChart.setEndAngle(endAngle.getValue()); - piePlot4VanChart.setInnerRadiusPercent(innerRadius.getValue()); + piePlot4VanChart.setInnerRadiusPercent(innerRadius.updateBean()); piePlot4VanChart.setSupportRotation(supportRotation.getSelectedItem()); } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/StructureNodeStylePane.java b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/StructureNodeStylePane.java index 610c616d9..333646c3c 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/StructureNodeStylePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/StructureNodeStylePane.java @@ -3,13 +3,15 @@ package com.fr.van.chart.structure.desinger.style; import com.fr.base.background.ImageBackground; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; +import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.backgroundpane.ImageBackgroundQuickPane; - import com.fr.plugin.chart.base.AttrNode; import com.fr.van.chart.designer.TableLayout4VanChartHelper; import com.fr.van.chart.designer.component.background.VanChartMarkerBackgroundPane; @@ -42,38 +44,46 @@ public class StructureNodeStylePane extends BasicBeanPane { double[] columnSize = {f, e}; double[] rowSize = {p, p, p, p, p}; - nodeRadiusType = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Automatic"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Custom")}); - nodeRadius = new UISpinner(0,Double.MAX_VALUE,0.5,0); - nodeBorderWidth = new UISpinner(0,Double.MAX_VALUE,0.5,0); - nodeBorderColor = new VanChartMarkerBackgroundPane(); - nodeOpacity = new UINumberDragPane(0,100); + nodeRadiusType = new UIButtonGroup<>(new String[]{Toolkit.i18nText("Fine-Design_Chart_Automatic"), + Toolkit.i18nText("Fine-Design_Chart_Custom")}); + nodeRadius = new UISpinnerWithPx(0, Double.MAX_VALUE, 0.5, 0); + nodeBorderWidth = new UISpinnerWithPx(0, Double.MAX_VALUE, 0.5, 0); + nodeBorderColor = new VanChartMarkerBackgroundPane() { + protected Component[][] getPaneComponents() { + return new Component[][]{ + new Component[]{null, null}, + new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Node_Radius")), typeComboBox}, + new Component[]{null, centerPane}, + }; + } + }; + nodeOpacity = new UINumberDragPaneWithPercent(0, 100); JPanel jPanel = new JPanel(new BorderLayout()); - jPanel.add(TableLayout4VanChartHelper.createGapTableLayoutPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Node_Radius"), nodeRadiusType), BorderLayout.NORTH); + jPanel.add(TableLayout4VanChartHelper.createGapTableLayoutPane(Toolkit.i18nText("Fine-Design_Chart_Node_Radius"), nodeRadiusType), BorderLayout.NORTH); nodeRadiusPane = TableLayout4VanChartHelper.createGapTableLayoutPane("", nodeRadius); jPanel.add(nodeRadiusPane, BorderLayout.CENTER); Component[][] components1 = new Component[][]{ new Component[]{null, null}, new Component[]{jPanel, null}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Border_Width")), nodeBorderWidth}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Widget_Style_Border_Color")), nodeBorderColor}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Alpha")), nodeOpacity} + new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Border_Width")), nodeBorderWidth}, + new Component[]{nodeBorderColor, null}, + new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Report_Alpha")), nodeOpacity} }; JPanel panel1 = TableLayout4VanChartHelper.createGapTableLayoutPane(components1, rowSize, columnSize); - useImage = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_YES"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_NO")}); + useImage = new UIButtonGroup<>(new String[]{Toolkit.i18nText("Fine-Design_Chart_YES"), + Toolkit.i18nText("Fine-Design_Chart_NO")}); imagePane = new ImageBackgroundQuickPane(false); - imagePane.setBorder(BorderFactory.createEmptyBorder(0,(int)TableLayout4VanChartHelper.DESCRIPTION_AREA_WIDTH + TableLayout4VanChartHelper.COMPONENT_INTERVAL,0,0)); + imagePane.setBorder(BorderFactory.createEmptyBorder(0, (int) TableLayout4VanChartHelper.DESCRIPTION_AREA_WIDTH + TableLayout4VanChartHelper.COMPONENT_INTERVAL, 0, 0)); Component[][] components = new Component[][]{ - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Filled_With_Image")),useImage}, + new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Filled_With_Image")), useImage}, }; JPanel useImagePane = TableLayoutHelper.createTableLayoutPane(components, new double[]{p}, columnSize); - JPanel panel2 = new JPanel(new BorderLayout(0,6)); + JPanel panel2 = new JPanel(new BorderLayout(0, 6)); panel2.add(useImagePane, BorderLayout.NORTH); panel2.add(imagePane, BorderLayout.CENTER); @@ -91,7 +101,7 @@ public class StructureNodeStylePane extends BasicBeanPane { } }); - this.setLayout(new BorderLayout(0,6)); + this.setLayout(new BorderLayout(0, 6)); this.add(panel1, BorderLayout.NORTH); this.add(panel2, BorderLayout.CENTER); } @@ -112,7 +122,7 @@ public class StructureNodeStylePane extends BasicBeanPane { nodeBorderColor.populate(ob.getBorderColor()); nodeOpacity.populateBean(ob.getOpacity()); useImage.setSelectedIndex(ob.isUseImage() ? 0 : 1); - if(ob.getImageBackground() != null) { + if (ob.getImageBackground() != null) { imagePane.populateBean(ob.getImageBackground()); } checkRadius(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureSeriesPane.java index ee2cda46a..daa0eaa6e 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/style/VanChartStructureSeriesPane.java @@ -3,9 +3,12 @@ package com.fr.van.chart.structure.desinger.style; import com.fr.chart.chartattr.Plot; import com.fr.chart.chartglyph.ConditionAttr; import com.fr.design.gui.frpane.UINumberDragPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; +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.ChartStylePane; @@ -43,7 +46,7 @@ public class VanChartStructureSeriesPane extends VanChartAbstractPlotSeriesPane double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] columnSize = {f}; - double[] rowSize = {p,p,p}; + double[] rowSize = {p, p, p}; Component[][] components = new Component[][]{ new Component[]{createLinkPane()}, new Component[]{createNodePane()} @@ -57,10 +60,10 @@ public class VanChartStructureSeriesPane extends VanChartAbstractPlotSeriesPane private JPanel createLinkPane() { linkColor = new ColorSelectBox(100); - linkWidthType = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Automatic"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Custom")}); - linkWidth = new UISpinner(0,Double.MAX_VALUE,0.5,0); - linkOpacity = new UINumberDragPane(0,100); + linkWidthType = new UIButtonGroup(new String[]{Toolkit.i18nText("Fine-Design_Chart_Automatic"), + Toolkit.i18nText("Fine-Design_Chart_Custom")}); + linkWidth = new UISpinnerWithPx(0, Double.MAX_VALUE, 0.5, 0); + linkOpacity = new UINumberDragPaneWithPercent(0, 100); linkWidthType.addChangeListener(new ChangeListener() { @Override @@ -73,10 +76,10 @@ public class VanChartStructureSeriesPane extends VanChartAbstractPlotSeriesPane double f = TableLayout.FILL; double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; double[] columnSize = {f, e}; - double[] rowSize = {p,p,p,p}; + double[] rowSize = {p, p, p, p}; JPanel jPanel = new JPanel(new BorderLayout()); - jPanel.add(TableLayout4VanChartHelper.createGapTableLayoutPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tree_Width")+" ", linkWidthType), BorderLayout.NORTH); + jPanel.add(TableLayout4VanChartHelper.createGapTableLayoutPane(Toolkit.i18nText("Fine-Design_Report_Tree_Width") + " ", linkWidthType), BorderLayout.NORTH); linkWidthPane = TableLayout4VanChartHelper.createGapTableLayoutPane(" ", linkWidth); jPanel.add(linkWidthPane, BorderLayout.CENTER); @@ -104,8 +107,8 @@ public class VanChartStructureSeriesPane extends VanChartAbstractPlotSeriesPane @Override public void populateBean(Plot plot) { super.populateBean(plot); - if(plot instanceof VanChartStructurePlot){ - VanChartStructurePlot structurePlot = (VanChartStructurePlot)plot; + if (plot instanceof VanChartStructurePlot) { + VanChartStructurePlot structurePlot = (VanChartStructurePlot) plot; linkColor.setSelectObject(structurePlot.getLinkColor()); linkWidthType.setSelectedIndex(structurePlot.isAutoLinkWidth() ? 0 : 1); linkWidth.setValue(structurePlot.getLinkWidth()); @@ -117,8 +120,8 @@ public class VanChartStructureSeriesPane extends VanChartAbstractPlotSeriesPane @Override public void updateBean(Plot plot) { super.updateBean(plot); - if(plot instanceof VanChartStructurePlot){ - VanChartStructurePlot structurePlot = (VanChartStructurePlot)plot; + if (plot instanceof VanChartStructurePlot) { + VanChartStructurePlot structurePlot = (VanChartStructurePlot) plot; structurePlot.setLinkColor(linkColor.getSelectObject()); structurePlot.setAutoLinkWidth(linkWidthType.getSelectedIndex() == 0); structurePlot.setLinkWidth(linkWidth.getValue()); @@ -126,16 +129,16 @@ public class VanChartStructureSeriesPane extends VanChartAbstractPlotSeriesPane } } - protected void populateCondition(ConditionAttr defaultAttr){ - if(nodeStylePane != null){ + protected void populateCondition(ConditionAttr defaultAttr) { + if (nodeStylePane != null) { AttrNode attrNode = defaultAttr.getExisted(AttrNode.class); nodeStylePane.populateBean(attrNode); } } - protected void updateCondition(ConditionAttr defaultAttr){ - if(nodeStylePane != null){ - AttrNode attrNode =defaultAttr.getExisted(AttrNode.class); + protected void updateCondition(ConditionAttr defaultAttr) { + if (nodeStylePane != null) { + AttrNode attrNode = defaultAttr.getExisted(AttrNode.class); if (attrNode != null) { defaultAttr.remove(attrNode); defaultAttr.addDataSeriesCondition(nodeStylePane.updateBean()); diff --git a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudSeriesPane.java b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudSeriesPane.java index 4e9c612c0..543b8139f 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudSeriesPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/style/VanChartWordCloudSeriesPane.java @@ -4,10 +4,12 @@ import com.fr.base.Utils; import com.fr.base.background.ImageBackground; import com.fr.base.background.ImageFileBackground; import com.fr.chart.chartattr.Plot; +import com.fr.design.constants.LayoutConstants; 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.gui.ispinner.UISpinner; +import com.fr.design.gui.ispinner.chart.UISpinnerWithPx; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.backgroundpane.ImageBackgroundQuickPane; @@ -61,7 +63,7 @@ public class VanChartWordCloudSeriesPane extends VanChartColorValueSeriesPane { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] columnSize = {f}; - double[] rowSize = {p,p,p}; + double[] rowSize = {p, p, p}; Component[][] components = new Component[][]{ new Component[]{createWordCloudStylePane()}, }; @@ -71,42 +73,43 @@ public class VanChartWordCloudSeriesPane extends VanChartColorValueSeriesPane { return contentPane; } - private JPanel createWordCloudStylePane(){ + private JPanel createWordCloudStylePane() { double labelSize = LABEL_SIZE; double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; - double[] centerC = {labelSize,f,p,f}; + double[] centerC = {labelSize, f, p, f}; double[] centerR = {p}; - minRotation = new UISpinner(-MAX_ROTATION,MAX_ROTATION,1,0); + minRotation = new UISpinner(-MAX_ROTATION, MAX_ROTATION, 1, 0); maxRotation = new - UISpinner(-MAX_ROTATION,MAX_ROTATION,1,0); + UISpinner(-MAX_ROTATION, MAX_ROTATION, 1, 0); Component[][] centerComps = new Component[][]{ new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Rotation_Angle")), minRotation, new UILabel("-"), maxRotation}, }; - JPanel centerPanel = TableLayout4VanChartHelper.createGapTableLayoutPane(centerComps,centerR,centerC); + JPanel centerPanel = TableLayout4VanChartHelper.createGapTableLayoutPane(centerComps, centerR, centerC); double[] northC = {f, e}; - double[] northR = {p,p}; + double[] northR = {p, p}; fontNameComboBox = new UIComboBox(Utils.getAvailableFontFamilyNames4Report()); defineFontSize = new UIButtonGroup(new String[]{AUTO_FONT_SIZE, CUSTOM_FONT_SIZE}); Component[][] northComps = new Component[][]{ new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Font")), fontNameComboBox}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Custom")), defineFontSize } + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Custom")), defineFontSize} }; - JPanel northPanel = TableLayout4VanChartHelper.createGapTableLayoutPane(northComps,northR,northC); + JPanel northPanel = TableLayout4VanChartHelper.createGapTableLayoutPane(northComps, northR, northC); - minFontSize = new UISpinner(0,Double.MAX_VALUE,1,10); - maxFontSize = new UISpinner(0,Double.MAX_VALUE,1,100); + minFontSize = new UISpinnerWithPx(10); + maxFontSize = new UISpinnerWithPx(100); Component[][] fontComps = new Component[][]{ new Component[]{null, minFontSize, new UILabel("-"), maxFontSize}, }; - fontPanel = TableLayout4VanChartHelper.createGapTableLayoutPane(fontComps,centerR,centerC); + fontPanel = TableLayoutHelper.createGapTableLayoutPane(fontComps, centerR, centerC, + 6, LayoutConstants.VGAP_LARGE); double[] columnSize = {f}; double[] rowSize = {p, p, p, p}; @@ -132,27 +135,27 @@ public class VanChartWordCloudSeriesPane extends VanChartColorValueSeriesPane { private JPanel createCloudShapePane() { cloudShape = new UIComboBox(CloudShapeType.getTypes()); - imageBackgroundQuickPane = new ImageBackgroundQuickPane(false){ + imageBackgroundQuickPane = new ImageBackgroundQuickPane(false) { @Override public Dimension getPreferredSize() { - if(cloudShape.getSelectedItem() == CloudShapeType.DEFAULT){ - return new Dimension(0,0); + if (cloudShape.getSelectedItem() == CloudShapeType.DEFAULT) { + return new Dimension(0, 0); } else { return super.getPreferredSize(); } } }; - JPanel panel = new JPanel(new BorderLayout(0,4)); + JPanel panel = new JPanel(new BorderLayout(0, 4)); panel.add(cloudShape, BorderLayout.NORTH); panel.add(imageBackgroundQuickPane, BorderLayout.CENTER); cloudShape.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { - CloudShapeType type = (CloudShapeType)cloudShape.getSelectedItem(); + CloudShapeType type = (CloudShapeType) cloudShape.getSelectedItem(); String path = type.getImageUrl(); - if(path != null) { + if (path != null) { ImageFileBackground imageBackground = new ImageFileBackground(IOUtils.readImage(path)); imageBackgroundQuickPane.populateBean(imageBackground); } else { @@ -181,8 +184,8 @@ public class VanChartWordCloudSeriesPane extends VanChartColorValueSeriesPane { @Override public void populateBean(Plot plot) { super.populateBean(plot); - if(plot instanceof VanChartWordCloudPlot){ - VanChartWordCloudPlot wordCloudPlot = (VanChartWordCloudPlot)plot; + if (plot instanceof VanChartWordCloudPlot) { + VanChartWordCloudPlot wordCloudPlot = (VanChartWordCloudPlot) plot; fontNameComboBox.setSelectedItem(wordCloudPlot.getFont().getFamily()); minRotation.setValue(wordCloudPlot.getMinRotation()); maxRotation.setValue(wordCloudPlot.getMaxRotation()); @@ -193,7 +196,7 @@ public class VanChartWordCloudSeriesPane extends VanChartColorValueSeriesPane { cloudShape.setSelectedItem(wordCloudPlot.getShapeType()); ImageBackground imageBackground = wordCloudPlot.getShapeImage(); - if(imageBackground != null) { + if (imageBackground != null) { imageBackgroundQuickPane.populateBean(imageBackground); } } @@ -209,8 +212,8 @@ public class VanChartWordCloudSeriesPane extends VanChartColorValueSeriesPane { @Override public void updateBean(Plot plot) { super.updateBean(plot); - if(plot instanceof VanChartWordCloudPlot){ - VanChartWordCloudPlot wordCloudPlot = (VanChartWordCloudPlot)plot; + if (plot instanceof VanChartWordCloudPlot) { + VanChartWordCloudPlot wordCloudPlot = (VanChartWordCloudPlot) plot; wordCloudPlot.setFont(FRFont.getInstance(fontNameComboBox.getSelectedItem().toString(), Font.PLAIN, 9)); wordCloudPlot.setMinRotation(minRotation.getValue()); wordCloudPlot.setMaxRotation(maxRotation.getValue()); @@ -220,7 +223,7 @@ public class VanChartWordCloudSeriesPane extends VanChartColorValueSeriesPane { wordCloudPlot.setMaxFontSize(maxFontSize.getValue()); wordCloudPlot.setShapeType((CloudShapeType) cloudShape.getSelectedItem()); - if(wordCloudPlot.getShapeType() != CloudShapeType.DEFAULT) { + if (wordCloudPlot.getShapeType() != CloudShapeType.DEFAULT) { wordCloudPlot.setShapeImage((ImageBackground) imageBackgroundQuickPane.updateBean()); } else { wordCloudPlot.setShapeImage(null);