diff --git a/designer-base/src/main/java/com/fine/theme/light/ui/FineSliderUI.java b/designer-base/src/main/java/com/fine/theme/light/ui/FineSliderUI.java index a8f150fb44..43aa163fc8 100644 --- a/designer-base/src/main/java/com/fine/theme/light/ui/FineSliderUI.java +++ b/designer-base/src/main/java/com/fine/theme/light/ui/FineSliderUI.java @@ -50,6 +50,11 @@ public class FineSliderUI extends FlatSliderUI { defaultLabelHeight = FineUIUtils.getAndScaleInt("Slider.labelHeight", DEFAULT_LABEL_HEIGHT); } + @Override + protected Color getTrackColor() { + return trackColor; + } + @Override protected void calculateLabelRect() { diff --git a/designer-base/src/main/java/com/fine/theme/utils/FineComponentsFactory.java b/designer-base/src/main/java/com/fine/theme/utils/FineComponentsFactory.java index 80cc69c932..2e8e71d393 100644 --- a/designer-base/src/main/java/com/fine/theme/utils/FineComponentsFactory.java +++ b/designer-base/src/main/java/com/fine/theme/utils/FineComponentsFactory.java @@ -1,12 +1,22 @@ package com.fine.theme.utils; import com.fine.theme.icon.LazyIcon; +import com.formdev.flatlaf.util.ScaledEmptyBorder; +import com.fr.data.core.FormatField; +import com.fr.design.border.UIRoundedBorder; import com.fr.design.gui.ibutton.UIButtonGroup; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.i18n.Toolkit; import com.fr.stable.Constants; +import javax.swing.BorderFactory; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JPanel; +import javax.swing.border.Border; +import javax.swing.border.TitledBorder; + +import java.awt.Color; import static com.fine.swing.ui.layout.Layouts.cell; import static com.fine.swing.ui.layout.Layouts.flex; @@ -62,4 +72,24 @@ public class FineComponentsFactory { flex(), cell(confirmButton), cell(cancelButton)).getComponent(); } + /** + * 创建示例文本,圆角边框&浅灰背景 + * + * @return 示例文本Label + */ + public static UILabel createSampleLabel() { + Color labelColor = FineUIUtils.getUIColor("Label.tipColor", "inactiveCaption"); + Border interBorder = new UIRoundedBorder(labelColor, 0, 4); + + Border border = BorderFactory.createTitledBorder(interBorder, Toolkit.i18nText("Fine-Design_Report_Base_StyleFormat_Sample"), + TitledBorder.ABOVE_TOP, 0, null, labelColor); + + UILabel sampleLabel = new UILabel(FormatField.getInstance().getFormatValue()); + sampleLabel.setHorizontalAlignment(UILabel.CENTER); + sampleLabel.setBorder(BorderFactory.createCompoundBorder(border, new ScaledEmptyBorder(2, 0, 8, 0))); + FineUIStyle.setStyle(sampleLabel, FineUIStyle.LABEL_TIP); + + return sampleLabel; + } + } diff --git a/designer-base/src/main/java/com/fine/theme/utils/FineLayoutBuilder.java b/designer-base/src/main/java/com/fine/theme/utils/FineLayoutBuilder.java index 7115b3afea..2c46d446ae 100644 --- a/designer-base/src/main/java/com/fine/theme/utils/FineLayoutBuilder.java +++ b/designer-base/src/main/java/com/fine/theme/utils/FineLayoutBuilder.java @@ -6,6 +6,8 @@ import com.fine.swing.ui.layout.Row; import com.fine.swing.ui.layout.Spacer; import com.fr.design.constants.LayoutConstants; import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.i18n.Toolkit; import com.fr.log.FineLoggerFactory; import com.fr.stable.collections.combination.Pair; diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/datacenter/DCTableDataJSBridge.java b/designer-base/src/main/java/com/fr/design/data/tabledata/datacenter/DCTableDataJSBridge.java index c5f25d68aa..9cc7b780fc 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/datacenter/DCTableDataJSBridge.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/datacenter/DCTableDataJSBridge.java @@ -6,6 +6,7 @@ import com.fr.datacenters.tabledata.bean.DCTableDataBean; import com.fr.datacenters.tabledata.filter.DCFilter; import com.fr.datacenters.tabledata.parameter.DCParameter; import com.fr.design.bridge.exec.JSBridge; +import com.fr.design.data.DesignTableDataManager; import com.fr.design.dialog.DialogActionListener; import com.fr.design.dialog.UIDialog; import com.fr.design.formula.FormulaFactory; @@ -135,6 +136,16 @@ public class DCTableDataJSBridge { }).setVisible(true); } + /** + * 当前所有数据集名称 + */ + @JSBridge + public void getDatasetNames(final JsFunction callback) { + JxUIPane.DEFAULT_EXECUTOR.submit(() -> + callback.invoke(window, EmbedJson.encode( + DesignTableDataManager.getAllDSNames(DesignTableDataManager.getEditingTableDataSource())))); + } + /** * 解析公式参数 */ diff --git a/designer-base/src/main/java/com/fr/design/gui/style/FormatPane.java b/designer-base/src/main/java/com/fr/design/gui/style/FormatPane.java index 8ab812e9dc..7d3f7d5a9b 100644 --- a/designer-base/src/main/java/com/fr/design/gui/style/FormatPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/style/FormatPane.java @@ -1,9 +1,9 @@ package com.fr.design.gui.style; +import com.fine.theme.utils.FineComponentsFactory; import com.fine.theme.utils.FineLayoutBuilder; import com.fine.theme.utils.FineUIScale; import com.fine.theme.utils.FineUIStyle; -import com.fine.theme.utils.FineUIUtils; import com.fr.base.CoreDecimalFormat; import com.fr.base.Style; import com.fr.base.TextFormat; @@ -12,8 +12,6 @@ import com.fr.data.core.FormatField.FormatContents; import com.fr.design.event.UIObserverListener; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.i18n.Toolkit; -import com.fr.design.border.UIRoundedBorder; -import com.fr.design.constants.UIConstants; import com.fr.design.event.GlobalNameListener; import com.fr.design.event.GlobalNameObserver; import com.fr.design.gui.icombobox.TextFontComboBox; @@ -28,13 +26,10 @@ import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.math.RoundingMode; -import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.SwingConstants; -import javax.swing.border.Border; -import javax.swing.border.TitledBorder; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.text.Format; @@ -161,14 +156,7 @@ public class FormatPane extends AbstractBasicStylePane implements GlobalNameObse } private void initSampleLabel() { - Color labelColor = FineUIUtils.getUIColor("Label.tipColor", "inactiveCaption"); - Border interBorder = new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 4); - String title = Toolkit.i18nText("Fine-Design_Report_Base_StyleFormat_Sample"); - Border border = BorderFactory.createTitledBorder(interBorder, title, TitledBorder.LEFT, 0, null, labelColor); - sampleLabel = new UILabel(FormatField.getInstance().getFormatValue()); - sampleLabel.setHorizontalAlignment(UILabel.CENTER); - sampleLabel.setBorder(border); - FineUIStyle.setStyle(sampleLabel, FineUIStyle.LABEL_TIP); + sampleLabel = FineComponentsFactory.createSampleLabel(); } diff --git a/designer-base/src/main/java/com/fr/design/gui/style/TextFormatPane.java b/designer-base/src/main/java/com/fr/design/gui/style/TextFormatPane.java index a86bc70e05..e2d65aa91c 100644 --- a/designer-base/src/main/java/com/fr/design/gui/style/TextFormatPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/style/TextFormatPane.java @@ -1,15 +1,13 @@ package com.fr.design.gui.style; +import com.fine.theme.utils.FineComponentsFactory; import com.fine.theme.utils.FineUIStyle; -import com.fine.theme.utils.FineUIUtils; import com.fr.base.CoreDecimalFormat; import com.fr.base.Style; import com.fr.base.TextFormat; import com.fr.data.core.FormatField; import com.fr.data.core.FormatField.FormatContents; -import com.fr.design.border.UIRoundedBorder; import com.fr.design.constants.LayoutConstants; -import com.fr.design.constants.UIConstants; import com.fr.design.event.GlobalNameListener; import com.fr.design.event.GlobalNameObserver; import com.fr.design.event.UIObserverListener; @@ -22,17 +20,11 @@ import com.fr.design.i18n.Toolkit; import com.fr.general.ComparatorUtils; import com.fr.stable.StringUtils; -import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JList; -import javax.swing.UIManager; -import javax.swing.border.Border; -import javax.swing.border.TitledBorder; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; -import java.awt.FontMetrics; -import java.awt.Graphics; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.math.RoundingMode; @@ -112,14 +104,7 @@ public class TextFormatPane extends AbstractBasicStylePane implements GlobalName } private void initPreviewLabel4GeneralFormat() { - Color labelColor = FineUIUtils.getUIColor("Label.tipColor", "inactiveCaption"); - Border interBorder = new UIRoundedBorder(UIConstants.LINE_COLOR, 0, 4); - String title = Toolkit.i18nText("Fine-Design_Report_Base_StyleFormat_Sample"); - Border border = BorderFactory.createTitledBorder(interBorder, title, TitledBorder.ABOVE_TOP, 0, null, labelColor); - previewLabel = new UILabel(FormatField.getInstance().getFormatValue()); - previewLabel.setHorizontalAlignment(UILabel.CENTER); - previewLabel.setBorder(border); - FineUIStyle.setStyle(previewLabel, FineUIStyle.LABEL_TIP); + previewLabel = FineComponentsFactory.createSampleLabel(); } protected void initLayout() { diff --git a/designer-base/src/main/java/com/fr/design/layout/TableLayoutHelper.java b/designer-base/src/main/java/com/fr/design/layout/TableLayoutHelper.java index 5e31ba2f7f..e172b9f117 100644 --- a/designer-base/src/main/java/com/fr/design/layout/TableLayoutHelper.java +++ b/designer-base/src/main/java/com/fr/design/layout/TableLayoutHelper.java @@ -370,7 +370,7 @@ public class TableLayoutHelper { JPanel secondMenu = createTableLayoutPane(components, rowSize, columnSize); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; - double[] column = {LayoutConstants.CHART_ATTR_TOMARGIN, f}; + double[] column = {LayoutConstants.HORIZONTAL_GAP, f}; double[] row = {p, p}; StringBuilder resultText = new StringBuilder(); for (String text : title) { diff --git a/designer-base/src/main/java/com/fr/design/style/AlphaPane.java b/designer-base/src/main/java/com/fr/design/style/AlphaPane.java index 4560f84dfd..329fef1b64 100644 --- a/designer-base/src/main/java/com/fr/design/style/AlphaPane.java +++ b/designer-base/src/main/java/com/fr/design/style/AlphaPane.java @@ -1,9 +1,7 @@ package com.fr.design.style; import java.awt.BorderLayout; -import java.awt.Dimension; -import javax.swing.BorderFactory; import javax.swing.JFormattedTextField; import javax.swing.JPanel; import javax.swing.JSlider; @@ -14,6 +12,7 @@ import javax.swing.event.ChangeListener; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; +import com.fine.theme.utils.FineLayoutBuilder; import com.fr.base.Utils; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.islider.UISlider; @@ -46,18 +45,11 @@ public class AlphaPane extends JPanel { this.setLayout(FRGUIPaneFactory.createBorderLayout()); // 透明选项 - JPanel alphaPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); - alphaPane.setBorder(BorderFactory.createEmptyBorder()); - this.add(alphaPane, BorderLayout.CENTER); - - alphaPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Alpha") + ":")); - - alphaPane.add(alphaSlider = new UISlider(UISlider.HORIZONTAL, 0, ALPHA_FLOAT, START_VALUE)); - alphaSlider.setPreferredSize(new Dimension(80, 20)); - + alphaSlider = new UISlider(UISlider.HORIZONTAL, 0, ALPHA_FLOAT, START_VALUE); valueSpinner = new UIBasicSpinner(new SpinnerListModel(values)); - alphaPane.add(valueSpinner); - + JPanel alphaPane = FineLayoutBuilder.createHorizontalLayout(10, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Alpha")), + alphaSlider, valueSpinner); + JFormattedTextField field = GUICoreUtils.getSpinnerTextField(valueSpinner); field.setText(checkFormat(START_VALUE)); if (field != null) { @@ -65,9 +57,8 @@ public class AlphaPane extends JPanel { field.setHorizontalAlignment(UITextField.LEFT); field.getDocument().addDocumentListener(textListener); } - - valueSpinner.setPreferredSize(new Dimension(60, 18)); alphaSlider.addChangeListener(changeListener); + this.add(alphaPane, BorderLayout.CENTER); } DocumentListener textListener = new DocumentListener() { diff --git a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java index 86c7700ed4..27962c4082 100644 --- a/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java +++ b/designer-base/src/main/java/com/fr/design/web/CustomIconPane.java @@ -6,6 +6,7 @@ import com.fr.base.GraphHelper; import com.fr.base.Icon; import com.fr.base.IconManager; import com.fr.design.border.FineBorderFactory; +import com.fr.design.constants.LayoutConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.FineJOptionPane; @@ -419,7 +420,7 @@ public class CustomIconPane extends BasicPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); UIButton browseButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Custom_Icon_SelectIcon")); browseButton.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Click_this_button")); - nameTextField = new UITextField(20); + nameTextField = new UITextField(); nameTextField.setPreferredSize(FineUIScale.createScaleDimension(172, 24)); browseButton.addActionListener(e -> onBrowseButtonClicked(SwingUtilities.getWindowAncestor(EditIconDialog.this))); @@ -446,16 +447,14 @@ public class CustomIconPane extends BasicPane { showImageLabel = new UILabel(); showImageLabel.setPreferredSize(FineUIScale.createScaleDimension(50, 50)); - JPanel centerPane = column(10, - row( - cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name") + ":")).weight(1.2), - cell(nameTextField).weight(3) + JPanel centerPane = column(LayoutConstants.VERTICAL_GAP, + row(40, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name") + ":")), + cell(nameTextField) ), - row( - cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Icon") + ":")).weight(1.2), - row( - cell(showImageLabel), column(fix(13), cell(browseButton), fix(13)).weight(1) - ).weight(3) + row(40, + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Icon") + ":")), + row(cell(showImageLabel), column(fix(13), cell(browseButton), fix(13)).weight(1)).weight(1) ) ).getComponent(); this.add(centerPane, BorderLayout.WEST); diff --git a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java index bf6ad6c4fd..b5d3f0f5c4 100644 --- a/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java +++ b/designer-base/src/main/java/com/fr/widgettheme/theme/edit/widget/WidgetStyleEditPane.java @@ -5,6 +5,7 @@ import com.fr.base.theme.TemplateTheme; import com.fr.design.beans.BasicBeanPane; import com.fr.design.designer.IntervalConstants; import com.fr.design.gui.frpane.FontSizeComboPane; +import com.fr.design.gui.frpane.UINumberDragPaneWithPercent; import com.fr.design.gui.frpane.UIPercentDragPane; import com.fr.design.gui.ibutton.UIColorButton; import com.fr.design.gui.ibutton.UIToggleButton; @@ -67,7 +68,7 @@ public class WidgetStyleEditPane extends BasicBeanPane< * 控件背景和透明度配置面板 */ protected NewColorSelectBox widgetBgColorSelectBox; - protected UIPercentDragPane widgetBgAlphaDragPane; + protected UINumberDragPaneWithPercent widgetBgAlphaDragPane; /** * 图标颜色 */ @@ -130,7 +131,7 @@ public class WidgetStyleEditPane extends BasicBeanPane< colorSelectBox = new NewColorSelectBox(WidgetThemeDisplayConstants.THEME_WIDGET_COMPONENT_WIDTH, true); colorSelectBox.setSelectObject(WidgetThemeDisplayConstants.DEFAULT_THEME_COLOR); widgetBgColorSelectBox = new NewColorSelectBox(WidgetThemeDisplayConstants.THEME_WIDGET_COMPONENT_WIDTH, true); - widgetBgAlphaDragPane = new UIPercentDragPane(); + widgetBgAlphaDragPane = new UINumberDragPaneWithPercent(0, 100, 1); initLineBox(); borderRadiusSpinner = new UISpinner(0, Integer.MAX_VALUE, 1); iconColorSelectBox = new NewColorSelectBox(WidgetThemeDisplayConstants.THEME_WIDGET_COMPONENT_WIDTH, true); diff --git a/designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties b/designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties index 746a5da6f8..34e9f8e3c5 100644 --- a/designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties +++ b/designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties @@ -147,6 +147,7 @@ tooltip.normal=#3F506A tooltip.disabled=#A3ADBD hover.deep=#e2fbe6 fill.deep=#F6F9FE +track.normal=#DADEE7 #---- Button ---- @@ -731,7 +732,7 @@ Slider.trackWidth = 2 Slider.thumbSize = 12,12 Slider.focusWidth=0 Slider.trackValueColor=$brand.normal -Slider.trackColor=$border.divider +Slider.trackColor=$track.normal Slider.thumbColor=$fill.normal Slider.thumbBorderColor=$border.divider Slider.tickColor = @disabledForeground 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 2b51b3b9e4..dee0ee5708 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 @@ -24,7 +24,7 @@ import java.awt.Graphics2D; * 图表的缩略图Icon, 在选择图表类型界面 用到. */ public class ChartIcon implements Icon, XMLable { - private static final int WIDTH = FineUIScale.scale(215); + private static final int WIDTH = FineUIScale.scale(210); private static final int HEIGHT = FineUIScale.scale(100); diff --git a/designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java b/designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java index 1cfdde0a19..dd773eea1d 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java +++ b/designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java @@ -7,6 +7,7 @@ import com.fine.swing.ui.layout.Column; import com.fine.theme.utils.FineLayoutBuilder; import com.fine.theme.utils.FineUIStyle; import com.fine.theme.utils.FineUIUtils; +import com.formdev.flatlaf.ui.FlatUIUtils; import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.chart.chartdata.CallbackEvent; import com.fr.chart.chartattr.ChartCollection; @@ -24,7 +25,6 @@ import com.fr.log.FineLoggerFactory; import com.fr.stable.ArrayUtils; import com.fr.van.chart.config.DefaultStyleHelper4Van; -import javax.swing.BorderFactory; import javax.swing.DefaultListCellRenderer; import javax.swing.DefaultListModel; import javax.swing.JLayer; @@ -74,6 +74,7 @@ public class ChartTypePane extends ChartCommonWizardPane implements CallbackEven JLayer typeScrollPane = FineUIUtils.createCollapsibleScrollBarLayer(mainTypeList); iconViewList = new JList(); + iconViewList.setBorder(null); iconListModel = new DefaultListModel(); iconViewList.setModel(iconListModel); @@ -104,20 +105,20 @@ public class ChartTypePane extends ChartCommonWizardPane implements CallbackEven ChartIcon chartIcon = (ChartIcon) value; UILabel centerImg = new UILabel(chartIcon); UILabel text = new UILabel(getChartName(chartIcon), SwingConstants.CENTER); - - Column component = column( - fix(5), - cell(centerImg), cell(text), - fix(5) - ).getComponent(); - Color borderColor = isSelected ? FineUIUtils.getUIColor("defaultHighlightBorderColor", "Component.focusedBorderColor") - : FineUIUtils.getUIColor("defaultBorderColor", "Component.borderColor"); + Color borderColor = isSelected ? FineUIUtils.getUIColor("defaultHighlightBorderColor", "Component.focusedBorderColor") : + FineUIUtils.getUIColor("defaultBorderColor", "Component.borderColor"); + Color fillColor = FlatUIUtils.getUIColor("fill.normal", Color.WHITE); UIRoundedBorder roundedBorder = new UIRoundedBorder(borderColor, 1, 5); - component.setBorder(BorderFactory.createCompoundBorder( - new ScaledEmptyBorder(0, 10, 10, 0), roundedBorder)); - component.setBackground(Color.WHITE); - return component; - + Column component = column( + fix(5), cell(centerImg), cell(text), fix(5) + ).with(it -> { + it.setOpaque(true); + it.setBorder(roundedBorder); + it.setBackground(fillColor); + }).getComponent(); + JPanel pane = FineLayoutBuilder.asBorderLayoutWrapped(component); + pane.setBorder(new ScaledEmptyBorder(0, 10, 10, 0)); + return pane; } return this; } diff --git a/designer-chart/src/main/java/com/fr/design/chart/axis/ChartAlertValuePane.java b/designer-chart/src/main/java/com/fr/design/chart/axis/ChartAlertValuePane.java index 59250c9725..465d146677 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/axis/ChartAlertValuePane.java +++ b/designer-chart/src/main/java/com/fr/design/chart/axis/ChartAlertValuePane.java @@ -1,5 +1,6 @@ package com.fr.design.chart.axis; +import com.fine.theme.utils.FineLayoutBuilder; import com.fr.base.BaseFormula; import com.fr.base.Utils; import com.fr.chart.chartattr.ChartAlertValue; @@ -13,25 +14,31 @@ import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; import com.fr.design.style.AlphaPane; import com.fr.design.style.FRFontPane; import com.fr.design.style.color.ColorSelectBox; import com.fr.design.utils.DesignUtils; -import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.FRFont; import com.fr.stable.Constants; import com.fr.stable.CoreConstants; -import javax.swing.*; -import java.awt.*; +import javax.swing.ButtonGroup; +import javax.swing.JPanel; +import javax.swing.SwingUtilities; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Font; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.theme.utils.FineUIUtils.wrapComponentWithTitle; + /** * 图表 坐标轴 警戒线值 编辑界面. (默认 位置居左居右) * @author kunsnat E-mail:kunsnat@gmail.com @@ -55,30 +62,14 @@ public class ChartAlertValuePane extends BasicBeanPane { public ChartAlertValuePane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - - JPanel pane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - this.add(pane, BorderLayout.CENTER); - - JPanel alertLinePane =FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - pane.add(alertLinePane); - - alertLinePane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alert_Line_Setting"))); - - JPanel valuePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - alertLinePane.add(valuePane); - - valuePane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alert_Value") + ":")); - + + // 警戒线 textField = new UITextField(); - textField.setColumns(4); - valuePane.add(textField); - textField.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { showFormulaPane(); } }); - textField.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { e.consume(); @@ -86,34 +77,29 @@ public class ChartAlertValuePane extends BasicBeanPane { } }); - JPanel lineStylePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - alertLinePane.add(lineStylePane); - - lineStylePane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Line_Style") + ":")); lineCombo = new LineComboBox(CoreConstants.STRIKE_LINE_STYLE_ARRAY_4_CHART); - lineStylePane.add(lineCombo); - - JPanel lineColorPane =FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - alertLinePane.add(lineColorPane); - - lineColorPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alert_Line_Color") + ":")); colorBox = new ColorSelectBox(80); - lineColorPane.add(colorBox); - alphaPane = new AlphaPane(); - alertLinePane.add(alphaPane); - - JPanel tipPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - pane.add(tipPane); - - tipPane.setBorder(GUICoreUtils.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alert_Tip") + ":", null)); - - JPanel centerPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - tipPane.add(centerPane); - + + JPanel alertLinePane = column(10, + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alert_Value"))).weight(1), + cell(textField).weight(4) + ), + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Line_Style"))).weight(1), + cell(lineCombo).weight(4) + ), + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alert_Line_Color"))).weight(1), + cell(colorBox).weight(4) + ), + cell(alphaPane) + ).getComponent(); + + // 提示文字 fontNameBox = new UIComboBox(); - fontNameBox.setPreferredSize(new Dimension(80,20)); - + fontNameBox.addItem("SimSun"); // TODO 这边字体中没有在列表内 String[] names = DesignUtils.getAvailableFontFamilyNames4Report(); for(int i = 0; i < names.length; i++) { @@ -121,25 +107,31 @@ public class ChartAlertValuePane extends BasicBeanPane { } fontSizeBox = new UIComboBox(); - fontSizeBox.setPreferredSize(new Dimension(80,20)); Integer[] sizes = FRFontPane.Font_Sizes; for(int i = 0; i < sizes.length; i++) { fontSizeBox.addItem(sizes[i]); } - - double t = TableLayout.FILL; - double[] rowSize = {t, t, t, t, t}; - double[] columnSize = {0.1, 0.2, 0.5, 0.2}; - Component[][] components= { - {null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Content") + ":"), contentField = new UITextField(3)}, - {null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Font") + ":"), fontNameBox}, - {null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Font_Size") + ":"), fontSizeBox}, - {null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Layout") + ": "), leftButton = new UIRadioButton(getLeftName())}, - {null, null, rightButton = new UIRadioButton(getRightName())}, - + leftButton = new UIRadioButton(getLeftName()); + rightButton = new UIRadioButton(getRightName()); + Component[][] components = { + {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Content") ), contentField = new UITextField()}, + {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Font")), fontNameBox}, + {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Font_Size") ), fontSizeBox}, + {new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Layout")), + FineLayoutBuilder.createHorizontalLayout(10, leftButton, rightButton)}, + }; - JPanel tablePane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); - centerPane.add(tablePane); + + JPanel tipPane = FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1, 4}); + + JPanel pane = column(10, + cell(wrapComponentWithTitle(alertLinePane, + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alert_Line_Setting") + )), + cell(wrapComponentWithTitle(tipPane, + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alert_Tip"))) + ).getComponent(); + this.add(pane, BorderLayout.CENTER); ButtonGroup bg = new ButtonGroup(); bg.add(leftButton); diff --git a/designer-chart/src/main/java/com/fr/design/chart/report/GisMapDataPane.java b/designer-chart/src/main/java/com/fr/design/chart/report/GisMapDataPane.java index ae46f709e6..a503cea781 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/report/GisMapDataPane.java +++ b/designer-chart/src/main/java/com/fr/design/chart/report/GisMapDataPane.java @@ -1,5 +1,7 @@ package com.fr.design.chart.report; +import com.fine.theme.utils.FineLayoutBuilder; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.chart.chartdata.TopDefinitionProvider; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; @@ -7,18 +9,17 @@ import com.fr.chart.chartdata.GisMapReportDefinition; import com.fr.chart.chartdata.GisMapTableDefinition; import com.fr.chart.chartdata.TopDefinition; import com.fr.design.beans.FurtherBasicBeanPane; -import com.fr.design.constants.LayoutConstants; import com.fr.design.dialog.BasicScrollPane; import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.frpane.UIComboBoxPane; import com.fr.design.gui.ilable.BoldFontTextLabel; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.chart.gui.data.DataContentsPane; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Component; import java.util.ArrayList; import java.util.List; @@ -102,17 +103,13 @@ public class GisMapDataPane extends DataContentsPane{ contentPane.add(dataFromPane = new UIComboBoxPane() { protected void initLayout() { - this.setLayout(new BorderLayout(LayoutConstants.HGAP_LARGE,6)); + this.setLayout(FRGUIPaneFactory.createScaledBorderLayout(0, 10)); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = { p,f }; - double[] rowSize = { p}; Component[][] components = new Component[][]{ - new Component[]{new BoldFontTextLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Source") + ":"), jcb}, + new Component[]{new BoldFontTextLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Data_Source")), jcb}, } ; - JPanel northPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 0); + JPanel northPane = FineLayoutBuilder.commonLeftRightLayout(components); this.add(northPane, BorderLayout.NORTH); this.add(cardPane, BorderLayout.CENTER); @@ -134,7 +131,7 @@ public class GisMapDataPane extends DataContentsPane{ } }, BorderLayout.CENTER); - dataFromPane.setBorder(BorderFactory.createEmptyBorder(10 ,0, 0, 0)); + dataFromPane.setBorder(new ScaledEmptyBorder(10 ,0, 0, 0)); return contentPane; } diff --git a/designer-chart/src/main/java/com/fr/design/chart/report/GisMapReportDataContentPane.java b/designer-chart/src/main/java/com/fr/design/chart/report/GisMapReportDataContentPane.java index 583b0a54fc..7d904136b2 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/report/GisMapReportDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/design/chart/report/GisMapReportDataContentPane.java @@ -1,12 +1,12 @@ package com.fr.design.chart.report; +import com.fine.theme.utils.FineLayoutBuilder; import com.fr.base.BaseFormula; import com.fr.base.Utils; import com.fr.chart.chartdata.BaseSeriesDefinition; import com.fr.chart.chartdata.GisMapReportDefinition; import com.fr.chart.chartdata.SeriesDefinition; import com.fr.design.beans.FurtherBasicBeanPane; -import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.UIConstants; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; @@ -17,25 +17,26 @@ import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itable.UITableEditor; import com.fr.design.gui.itextfield.UITextField; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; import javax.swing.JComponent; import javax.swing.JPanel; import javax.swing.JTable; -import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.BorderLayout; import java.awt.Component; -import java.awt.Dimension; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.util.ArrayList; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.row; + /** * 属性表gis地图单元格数据源设置界面 * @@ -55,37 +56,25 @@ public class GisMapReportDataContentPane extends FurtherBasicBeanPane(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Address"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_LatLng")}); lnglatOrder = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Longitude_First"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Latitude_First")}); addressPane = new DefaultTinyFormulaPane(); addressNamePane = new DefaultTinyFormulaPane(); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = new double[]{p, f}; - double[] rowSize = new double[]{p, p, p}; - - orderPane = new JPanel(new BorderLayout(LayoutConstants.VGAP_MEDIUM, 0)) { - @Override - public Dimension getPreferredSize() { - if (this.isVisible()) { - return super.getPreferredSize(); - } else { - return new Dimension(0, 0); - } - } - }; - orderPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_LatLng_Order")), BorderLayout.WEST); - orderPane.add(lnglatOrder, BorderLayout.CENTER); + orderPane = FineLayoutBuilder.createHorizontalLayout(0, new double[]{1.2, 3}, + new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_LatLng_Order")), lnglatOrder); orderPane.setVisible(false); lnglatOrder.setSelectedIndex(0); addressType.setSelectedIndex(0); - Component[][] components = new Component[][]{ - new Component[]{addressType, addressPane}, - new Component[]{orderPane, null}, - new Component[]{new UILabel(" " +com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Address_Name")+":", SwingConstants.RIGHT), addressNamePane}, - }; - JPanel northPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + JPanel northPane = column(10, + row(10, + cell(addressType).weight(1), cell(addressPane).weight(1) + ), + cell(orderPane), + row( + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Address_Name"))).weight(1.2), cell(addressNamePane).weight(3) + ) + ).getComponent(); this.add(northPane, BorderLayout.NORTH); diff --git a/designer-chart/src/main/java/com/fr/design/chart/report/GisMapTableDataContentPane.java b/designer-chart/src/main/java/com/fr/design/chart/report/GisMapTableDataContentPane.java index 723a91f880..532f9e6b5b 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/report/GisMapTableDataContentPane.java +++ b/designer-chart/src/main/java/com/fr/design/chart/report/GisMapTableDataContentPane.java @@ -1,10 +1,10 @@ package com.fr.design.chart.report; +import com.fine.theme.utils.FineLayoutBuilder; import com.fr.base.Utils; import com.fr.chart.base.ChartConstants; import com.fr.chart.chartdata.GisMapTableDefinition; import com.fr.chart.chartdata.SeriesDefinition; -import com.fr.design.constants.LayoutConstants; import com.fr.data.impl.NameTableData; import com.fr.design.data.tabledata.wrapper.TableDataWrapper; import com.fr.design.beans.FurtherBasicBeanPane; @@ -16,17 +16,20 @@ import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itable.UITableEditor; import com.fr.design.gui.itextfield.UITextField; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.chart.gui.data.DatabaseTableDataPane; import com.fr.stable.ArrayUtils; import com.fr.stable.StringUtils; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JTable; +import javax.swing.SwingConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Component; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.event.ItemEvent; @@ -34,6 +37,10 @@ import java.awt.event.ItemListener; import java.util.ArrayList; import java.util.List; +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; +import static com.fine.swing.ui.layout.Layouts.row; + /** * 属性表gis地图数据集数据源定义面板 * @author eason @@ -54,26 +61,20 @@ public class GisMapTableDataContentPane extends FurtherBasicBeanPane(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_GIS_Address"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_LatLng")}); - lnglatOrder = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Longitude_First"),com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Latitude_First")}); + addressType = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_GIS_Address"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_LatLng")}); + lnglatOrder = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Longitude_First"),com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Latitude_First")}); addressType.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { @@ -82,22 +83,8 @@ public class GisMapTableDataContentPane extends FurtherBasicBeanPane implements UIOb Component[][] components = new Component[][]{ new Component[]{isAutoRefresh, null}, - new Component[]{GUICoreUtils.createFlowPane(new Component[]{ + new Component[]{FineLayoutBuilder.createHorizontalLayout(10, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Time_Interval")), autoRefreshTime, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Time_Seconds")) - }, 1)}, + )}, new Component[]{new UILabel("" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Not_Support_Img_And_Cell") + ""), null}, }; autoRefreshPane = TableLayoutHelper.createTableLayoutPane4Chart(new String[]{"Fine-Design_Chart_Data_Check"}, components, rowSize, columnSize); diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartAxisLabelPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartAxisLabelPane.java index 390ff1004c..0beb5a3d50 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartAxisLabelPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartAxisLabelPane.java @@ -1,12 +1,14 @@ package com.fr.design.mainframe.chart.gui.style; +import com.fine.swing.ui.layout.Row; +import com.fine.theme.utils.FineLayoutBuilder; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.BaseFormula; import com.fr.base.Style; import com.fr.base.Utils; import com.fr.chart.base.ChartBaseUtils; import com.fr.chart.base.TextAttr; import com.fr.chart.chartattr.Axis; -import com.fr.design.constants.LayoutConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; @@ -16,14 +18,16 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UIBasicSpinner; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.style.NumberDragBar; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; -import javax.swing.*; +import javax.swing.JPanel; +import javax.swing.SpinnerNumberModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Container; +import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; @@ -155,33 +159,26 @@ public class ChartAxisLabelPane extends BasicPane implements UIObserver{ } private JPanel getWrapShowWayPane() { - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {LayoutConstants.CHART_ATTR_TOMARGIN, p, p, f}; - double[] rowSize = {p, p, p, p}; - Component[][] components = new Component[][]{ - new Component[]{null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Axis_Label_Show")), showWay, null}, - new Component[]{null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Text_Rotation")), labelOrientationChoose, null}, - new Component[]{null, orientationSpinner, orientationBar, null}, - new Component[]{null, textAttrPane, null, null}, + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Axis_Label_Show")), showWay}, + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Text_Rotation")), labelOrientationChoose}, + new Component[]{null, createorientionRow()}, + new Component[]{textAttrPane, null, null}, }; - return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + return FineLayoutBuilder.compatibleTableLayout(10, components,new double[]{1.2, 3}); } - private JPanel getIntervalShowWayPane() { - - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {f}; - double[] rowSize = {p, p, p}; + private Row createorientionRow() { + return FineLayoutBuilder.createHorizontalLayout(10, new double[]{1, 1.5}, orientationSpinner, orientationBar); + } + private JPanel getIntervalShowWayPane() { Component[][] components = new Component[][]{ new Component[]{getCombox()}, new Component[]{getTowChoose()}, new Component[]{getOther()} }; - return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + return FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1}); } private JPanel getTowChoose() { @@ -192,46 +189,30 @@ public class ChartAxisLabelPane extends BasicPane implements UIObserver{ custom.setSelected(false); customLabelSamleTime.setVisible(true); customLabelSamleTime.setEnabled(false); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {LayoutConstants.CHART_ATTR_TOMARGIN, f}; - double[] rowSize = {p, p}; - JPanel customPane = TableLayoutHelper.createTableLayoutPane(new Component[][]{ - new Component[]{custom, customLabelSamleTime, null}, - }, new double[]{p}, new double[]{p, p, f}); + JPanel customPane = FineLayoutBuilder.createHorizontalLayout(10, custom, customLabelSamleTime); Component[][] components = new Component[][]{ - new Component[]{null, auto,}, - new Component[]{null, customPane} + new Component[]{auto,}, + new Component[]{customPane} }; - return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + return FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1}); } private JPanel getCombox() { - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {LayoutConstants.CHART_ATTR_TOMARGIN, p, p, f}; - double[] rowSize = {p}; - Component[][] components = new Component[][]{ - new Component[]{null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Axis_Label_Show")), showWay, null} + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Axis_Label_Show")), showWay} }; - return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + return FineLayoutBuilder.commonLeftRightLayout(components); } private JPanel getOther() { - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {LayoutConstants.CHART_ATTR_TOMARGIN, p, p, f}; - double[] rowSize = {p, p, p}; - Component[][] components = new Component[][]{ - new Component[]{null, new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Text_Rotation")), labelOrientationChoose, null}, - new Component[]{null, orientationSpinner, orientationBar, null}, - new Component[]{null, textAttrPane, null, null}, + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Text_Rotation")), labelOrientationChoose}, + new Component[]{null, createorientionRow()}, + new Component[]{textAttrPane, null, null}, }; - return TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + return FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1.2, 3}); } private void checkShowWay() { @@ -246,18 +227,13 @@ public class ChartAxisLabelPane extends BasicPane implements UIObserver{ } else { labelPane = getWrapShowWayPane(); } - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] row = {p, p}; - double[] col = {f}; - showWayPane = TableLayoutHelper.createTableLayoutPane(new Component[][]{ - new Component[]{isLabelShow}, new Component[]{labelPane}}, row, col); + labelPane.setBorder(new ScaledEmptyBorder(0, 10, 0, 0)); + showWayPane = FineLayoutBuilder.createVerticalLayout(10, isLabelShow, labelPane); + this.add(showWayPane, BorderLayout.CENTER); this.validate(); } - - private void checkOrientationField() { if (labelOrientationChoose.getSelectedIndex() != 2) { orientationBar.setVisible(false); @@ -283,23 +259,17 @@ public class ChartAxisLabelPane extends BasicPane implements UIObserver{ customLabelSamleTime.registerChangeListener(this.observerListener); orientationSpinner.registerChangeListener(this.observerListener); labelOrientationChoose.registerChangeListener(this.observerListener); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {LayoutConstants.CHART_ATTR_TOMARGIN, p, p, f}; - double[] rowSize = {p, p, p, p}; Component[][] components = new Component[][]{ - new Component[]{null,new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Label_Interval")), labelSampleChoose, customLabelSamleTime}, - new Component[]{null,new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Text_Rotation")), labelOrientationChoose, null}, - new Component[]{null,orientationSpinner, orientationBar, null}, - new Component[]{null,textAttrPane, null, null}, + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Label_Interval")), + FineLayoutBuilder.createHorizontalLayout(10,labelSampleChoose, customLabelSamleTime)}, + new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_StyleAlignment_Text_Rotation")), labelOrientationChoose}, + new Component[]{null, createorientionRow()}, + new Component[]{textAttrPane, null}, }; - labelPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); - - double[] row = {p,p}; - double[] col = {f}; - return TableLayoutHelper.createTableLayoutPane(new Component[][]{ - new Component[]{isLabelShow}, new Component[]{labelPane}}, row, col); + labelPane = FineLayoutBuilder.commonLeftRightLayout(components); + labelPane.setBorder(new ScaledEmptyBorder(0, 10, 0, 0)); + return FineLayoutBuilder.createVerticalLayout(10, isLabelShow, labelPane); } private void checkCustomSampleField() { diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartAxisTitlePane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartAxisTitlePane.java index f2d9446297..59ede28610 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartAxisTitlePane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartAxisTitlePane.java @@ -1,25 +1,23 @@ package com.fr.design.mainframe.chart.gui.style; +import com.fine.theme.utils.FineComponentsFactory; +import com.fine.theme.utils.FineLayoutBuilder; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.BaseFormula; -import com.fr.base.BaseUtils; import com.fr.base.Style; import com.fr.base.Utils; import com.fr.chart.chartattr.Axis; import com.fr.chart.chartattr.Title; -import com.fr.design.constants.LayoutConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; import com.fr.general.FRFont; import com.fr.stable.Constants; import com.fr.stable.StableUtils; -import javax.swing.Icon; import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Component; @@ -46,36 +44,26 @@ public class ChartAxisTitlePane extends BasicPane{ axisTitleContentPane = new DefaultTinyFormulaPane(); axisTitleAttrPane = new ChartTextAttrPane(); axisTitleAttrPane.populate(FRFont.getInstance("Microsoft YaHei", Font.PLAIN, 9)); - Icon[] alignmentIconArray = {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal.png"), - BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal.png"), - BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal.png")}; - Integer[] alignment = new Integer[] { Constants.LEFT, Constants.CENTER, Constants.RIGHT }; - titleAlignmentPane = new UIButtonGroup(alignmentIconArray, alignment); + titleAlignmentPane = FineComponentsFactory.createHorizontalAlignmentButtonGroup(); titleAlignmentPane.setSelectedItem(Constants.CENTER); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = { LayoutConstants.CHART_ATTR_TOMARGIN, f }; - double[] rowSize = { p, p, p, p}; Component[][] components = new Component[][]{ - new Component[]{null,axisTitleContentPane}, - new Component[]{null,axisTitleAttrPane}, - new Component[]{null,new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alignment_Style"))}, - new Component[]{null,titleAlignmentPane,}, + new Component[]{axisTitleContentPane}, + new Component[]{axisTitleAttrPane}, + new Component[]{FineLayoutBuilder.createHorizontalLayout(0, new double[]{1.2, 3}, + new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alignment_Style")), titleAlignmentPane)}, }; - titlePane = TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize); - + titlePane = FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1}); + titlePane.setBorder(new ScaledEmptyBorder(0, 10, 0, 0)); + isAxisTitleVisable.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { checkTitleUse(); } }); - double[] row = {p,p}; - double[] col = {f}; this.setLayout(new BorderLayout()); - JPanel panel = TableLayoutHelper.createTableLayoutPane(new Component[][]{ - new Component[]{isAxisTitleVisable}, new Component[]{titlePane}}, row, col); + JPanel panel = FineLayoutBuilder.createVerticalLayout(10, isAxisTitleVisable, titlePane); this.add(panel, BorderLayout.CENTER); } diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartDataPointLabel4GisPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartDataPointLabel4GisPane.java index 6b22c287f5..83caf2986d 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartDataPointLabel4GisPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartDataPointLabel4GisPane.java @@ -1,23 +1,24 @@ package com.fr.design.mainframe.chart.gui.style; +import com.fine.theme.utils.FineLayoutBuilder; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.Utils; import com.fr.chart.base.AttrContents; import com.fr.chart.base.ChartConstants; import com.fr.chart.base.DataSeriesCondition; -import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.BoldFontTextLabel; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.general.FRFont; import com.fr.stable.StringUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -49,31 +50,18 @@ public class ChartDataPointLabel4GisPane extends ChartDatapointLabelPane{ initFormatListener(); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - - double[] columnSize = { p, f }; - double[] rowSize = { p,p,p,p,p,p}; - - JPanel delimiterPane = new JPanel(new BorderLayout(LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM)); - delimiterPane.add(new BoldFontTextLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Delimiter_Symbol")), BorderLayout.WEST); - delimiterPane.add(divideComoBox, BorderLayout.CENTER); - Component[][] components = new Component[][]{ new Component[]{isAddress, null}, new Component[]{isAddressName, null}, new Component[]{isAddressTittle, null}, new Component[]{isDatapointValue, valueFormatButton}, - new Component[]{delimiterPane, null}, + new Component[]{new BoldFontTextLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Delimiter_Symbol")), divideComoBox}, new Component[]{textFontPane, null} }; - labelPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); - - double[] row = {p,p}; - double[] col = {LayoutConstants.CHART_ATTR_TOMARGIN, f}; - JPanel panel = TableLayoutHelper.createTableLayoutPane(new Component[][]{ - new Component[]{isLabelShow,null},new Component[]{null, labelPane}}, row, col); + labelPane = FineLayoutBuilder.commonLeftRightLayout(components); + labelPane.setBorder(new ScaledEmptyBorder(0, 10, 0, 0)); + JPanel panel = FineLayoutBuilder.createVerticalLayout(10, isLabelShow, labelPane); this.setLayout(new BorderLayout()); this.add(panel, BorderLayout.CENTER) ; diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartDatapointLabelPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartDatapointLabelPane.java index 8e198ea6c5..65cf34c868 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartDatapointLabelPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/ChartDatapointLabelPane.java @@ -1,5 +1,7 @@ package com.fr.design.mainframe.chart.gui.style; +import com.fine.theme.utils.FineLayoutBuilder; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.CoreDecimalFormat; import com.fr.base.FRContext; import com.fr.base.Style; @@ -180,11 +182,8 @@ public class ChartDatapointLabelPane extends BasicPane{ components[6] = new Component[]{textFontPane,null}; labelPane = TableLayoutHelper.createTableLayoutPane(components,rowSize2,columnSize); } - - double[] row = {p,p}; - double[] col = {LayoutConstants.CHART_ATTR_TOMARGIN, f}; - panel = TableLayoutHelper.createTableLayoutPane(new Component[][]{ - new Component[]{isLabelShow,null},new Component[]{null, labelPane}}, row, col); + labelPane.setBorder(new ScaledEmptyBorder(0, 10, 0, 0)); + panel = FineLayoutBuilder.createVerticalLayout(10, isLabelShow, labelPane ); this.setLayout(new BorderLayout()); this.add(panel,BorderLayout.CENTER) ; diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/axis/ChartAxisPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/axis/ChartAxisPane.java index af1af8af31..8c83565d17 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/axis/ChartAxisPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/axis/ChartAxisPane.java @@ -6,6 +6,7 @@ import com.fr.design.chart.ChartPlotFactory; import com.fr.design.chart.axis.AxisStyleObject; import com.fr.design.chart.axis.ChartStyleAxisPane; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; +import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.chart.PaneTitleConstants; import com.fr.design.mainframe.chart.gui.ChartStylePane; import com.fr.design.mainframe.chart.gui.style.ThirdTabPane; @@ -13,6 +14,7 @@ import com.fr.design.mainframe.chart.gui.style.legend.AutoSelectedPane; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.ComparatorUtils; +import java.awt.BorderLayout; import java.util.ArrayList; import java.util.List; @@ -28,6 +30,15 @@ public class ChartAxisPane extends ThirdTabPane implements AutoSelectedPa super(plot, parent); } + @Override + protected void initLayout() { + this.setLayout(FRGUIPaneFactory.createScaledBorderLayout(0, 10)); + if (!paneList.isEmpty()) { + this.add(tabPane, BorderLayout.NORTH); + } + this.add(centerPane, BorderLayout.CENTER); + } + @Override protected List initPaneList(Plot plot, AbstractAttrNoScrollPane parent) { List paneList = new ArrayList(); diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java index 35b57d09d7..80e626d661 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.chart.gui.style.axis; +import com.fine.theme.utils.FineLayoutBuilder; import com.fr.base.BaseFormula; import com.fr.base.Utils; import com.fr.chart.base.AxisUnitType; @@ -10,13 +11,11 @@ import com.fr.chart.chartattr.NumberAxis; import com.fr.chart.chartattr.Plot; import com.fr.design.chart.ChartSwingUtils; import com.fr.design.chart.axis.MinMaxValuePane; -import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.style.FormatPane; -import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.chart.gui.style.ChartAxisLabelPane; @@ -34,7 +33,6 @@ import javax.swing.JPanel; import javax.swing.JSeparator; import java.awt.BorderLayout; import java.awt.Component; -import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -153,15 +151,11 @@ public class ChartValuePane extends ChartAxisUsePane{ //构造数据定义界面 private JPanel createDataDefinePane(){ - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = { LayoutConstants.CHART_ATTR_TOMARGIN,p,f}; - double[] rowSize = { p, p}; Component[][] component = new Component[][]{ - new Component[]{null,initMinMaxValue(),null}, - new Component[]{null, addLogarithmicPane2ValuePane(), addLogText()}, + new Component[]{initMinMaxValue(),null}, + new Component[]{addLogarithmicPane2ValuePane(), addLogText()}, }; - return TableLayoutHelper.createTableLayoutPane(component, rowSize, columnSize); + return FineLayoutBuilder.compatibleTableLayout(10, component, new double[]{1, 1}); } // 返回最大最小值界面. 雷达轴 有切换按钮. @@ -175,15 +169,13 @@ public class ChartValuePane extends ChartAxisUsePane{ // 返回对数相关界面. 百分比 没有此界面. protected JPanel addLogarithmicPane2ValuePane() { - JPanel labelLogPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); - labelLogPane.add(logBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Logarithmic")+":")); - labelLogPane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Log_Base"))); - + logBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Logarithmic")); logBaseField = new UITextField(4); logBaseField.setText("10"); - logBaseField.setPreferredSize(new Dimension(55, 20)); + JPanel labelLogPane = FineLayoutBuilder.createHorizontalLayout(10, logBox, + new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Log_Base"))); - logBox.addActionListener(new ActionListener() { + logBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { checkLogUse(); } @@ -195,13 +187,7 @@ public class ChartValuePane extends ChartAxisUsePane{ } private JPanel addLogText() { - JPanel labelLogPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); - - if(logBaseField != null) { - labelLogPane.add(logBaseField); - } - - return labelLogPane; + return FineLayoutBuilder.createHorizontalLayout(10, logBaseField); } protected JPanel getAxisTitlePane(){ diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/legend/ChartLegendPane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/legend/ChartLegendPane.java index 4c5a7b6e42..9ec2b0e947 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/legend/ChartLegendPane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/legend/ChartLegendPane.java @@ -1,15 +1,14 @@ package com.fr.design.mainframe.chart.gui.style.legend; +import com.fine.theme.utils.FineLayoutBuilder; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.BaseUtils; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Legend; import com.fr.chart.chartattr.Plot; -import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.BoldFontTextLabel; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.chart.PaneTitleConstants; import com.fr.design.mainframe.chart.gui.style.ChartBackgroundNoImagePane; import com.fr.design.mainframe.chart.gui.style.ChartBorderPane; @@ -18,8 +17,11 @@ import com.fr.design.dialog.BasicScrollPane; import com.fr.stable.Constants; -import javax.swing.*; -import java.awt.*; +import javax.swing.Icon; +import javax.swing.JPanel; +import javax.swing.JSeparator; +import java.awt.BorderLayout; +import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -70,24 +72,17 @@ public class ChartLegendPane extends BasicScrollPane{ location.setAllToolTips(textArray); backgroundPane = new ChartBackgroundNoImagePane(); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = { LayoutConstants.CHART_ATTR_TOMARGIN, f }; - double[] rowSize = { p,p,p,p,p,p}; - Component[][] components = new Component[][]{ - new Component[]{null,textAttrPane}, + new Component[]{textAttrPane}, new Component[]{new JSeparator(),null}, new Component[]{new BoldFontTextLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Layout")),location} , new Component[]{new JSeparator(),null}, new Component[]{borderPane,null}, new Component[]{backgroundPane,null} }; - legendPane = TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize); - double[] col = {f}; - double[] row = {p, p}; - JPanel panel = TableLayoutHelper.createTableLayoutPane(new Component[][]{ - new Component[]{isLegendVisible},new Component[]{legendPane},},row,col); + legendPane = FineLayoutBuilder.commonLeftRightLayout(components); + legendPane.setBorder(new ScaledEmptyBorder(0, 10, 0, 0)); + JPanel panel = FineLayoutBuilder.createVerticalLayout(10, isLegendVisible, legendPane); this.setLayout(new BorderLayout()); this.add(panel,BorderLayout.CENTER); isLegendVisible.addActionListener(new ActionListener() { diff --git a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/title/ChartTitlePane.java b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/title/ChartTitlePane.java index cc3f828098..a76cf5c2f3 100644 --- a/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/title/ChartTitlePane.java +++ b/designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/title/ChartTitlePane.java @@ -1,30 +1,27 @@ package com.fr.design.mainframe.chart.gui.style.title; +import com.fine.theme.utils.FineComponentsFactory; +import com.fine.theme.utils.FineLayoutBuilder; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.BaseFormula; -import com.fr.base.BaseUtils; import com.fr.base.Utils; import com.fr.chart.base.TextAttr; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.Title; -import com.fr.design.constants.LayoutConstants; import com.fr.design.dialog.BasicScrollPane; import com.fr.design.formula.DefaultTinyFormulaPane; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.BoldFontTextLabel; -import com.fr.design.layout.TableLayout; -import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.chart.PaneTitleConstants; import com.fr.design.mainframe.chart.gui.style.ChartBackgroundNoImagePane; import com.fr.design.mainframe.chart.gui.style.ChartBorderPane; import com.fr.design.mainframe.chart.gui.style.ChartTextAttrPane; -import com.fr.stable.Constants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; -import javax.swing.Icon; import javax.swing.JPanel; import javax.swing.JSeparator; import java.awt.BorderLayout; @@ -57,16 +54,12 @@ public class ChartTitlePane extends BasicScrollPane { isTitleVisable = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Title_Visible")); titlePane = createTitlePane(); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {f}; - double[] rowSize = {p, p}; Component[][] components = new Component[][]{ new Component[]{isTitleVisable}, new Component[]{titlePane} } ; - JPanel panel = TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize); + JPanel panel = FineLayoutBuilder.compatibleTableLayout(10, components,new double[]{1}); this.setLayout(new BorderLayout()); this.add(panel,BorderLayout.CENTER); @@ -83,10 +76,6 @@ public class ChartTitlePane extends BasicScrollPane { backgroundPane = new ChartBackgroundNoImagePane(); chartDefaultAttrPane = createDefaultAttrPane(); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {p, f}; - double[] rowSize = {p,p,p,p,p}; Component[][] components = new Component[][]{ new Component[]{chartDefaultAttrPane,null}, new Component[]{new JSeparator(),null}, @@ -94,29 +83,22 @@ public class ChartTitlePane extends BasicScrollPane { new Component[]{backgroundPane,null} } ; - return TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize); + return FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1, 0}); } private JPanel createDefaultAttrPane(){ titleContent = new DefaultTinyFormulaPane(); textAttrPane = new ChartTextAttrPane(); - Icon[] alignmentIconArray = {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal.png"), - BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal.png"), - BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal.png")}; - Integer[] alignment = new Integer[]{Constants.LEFT, Constants.CENTER, Constants.RIGHT}; - alignmentPane = new UIButtonGroup(alignmentIconArray, alignment); + alignmentPane = FineComponentsFactory.createHorizontalAlignmentButtonGroup(); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {LayoutConstants.CHART_ATTR_TOMARGIN, p, f}; - double[] rowSize = {p, p,p}; Component[][] components = new Component[][]{ - new Component[]{null,titleContent,null}, - new Component[]{null,textAttrPane,null}, - new Component[]{null,new BoldFontTextLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alignment_Style") + ":"),alignmentPane} , + new Component[]{titleContent,null}, + new Component[]{textAttrPane,null}, + new Component[]{new BoldFontTextLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Alignment_Style")), alignmentPane} , } ; - - return TableLayoutHelper.createTableLayoutPane(components,rowSize,columnSize); + JPanel attrPane = FineLayoutBuilder.commonLeftRightLayout(components); + attrPane.setBorder(new ScaledEmptyBorder(0, 10, 0, 0)); + return attrPane; } // 检查标题界面是否可用. diff --git a/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java b/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java index 385e0122be..3605694488 100644 --- a/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java +++ b/designer-realize/src/main/java/com/fanruan/boot/env/DesignEnvComponent.java @@ -2,6 +2,7 @@ package com.fanruan.boot.env; import com.fanruan.boot.FSProperties; import com.fanruan.boot.KVProperties; +import com.fanruan.boot.LoggerProperties; import com.fanruan.boot.SchedulerCoreComponent; import com.fanruan.carina.Carina; import com.fanruan.carina.annotions.FineComponent; @@ -10,6 +11,7 @@ import com.fanruan.carina.annotions.Start; import com.fanruan.carina.annotions.Stop; import com.fanruan.carina.annotions.Supplemental; import com.fanruan.config.ConfigProviderFactory; +import com.fanruan.config.LocalConfigSource; import com.fanruan.config.realm.ConfigRealm; import com.fanruan.dao.context.DBContextProvider; import com.fanruan.dao.context.DBContextStarter; @@ -25,6 +27,7 @@ import com.fanruan.kv.factory.KVStoreFactory; import com.fanruan.kv.manager.CarinaKVManager; import com.fanruan.kv.store.KVStore; import com.fanruan.kv.store.KVStoreHolder; +import com.fanruan.repository.LocalConfigSourceShell; import com.fanruan.workplace.http.RepositoryManager; import com.fr.cbb.dialect.security.InsecurityElementFactory; import com.fr.cluster.ClusterBridge; @@ -63,12 +66,12 @@ import com.fr.intelli.record.Focus; import com.fr.intelli.record.FocusInterceptor; import com.fr.intelli.record.PerformancePoint; import com.fr.intelli.record.PerformancePointInterceptor; +import com.fr.invoke.Reflect; import com.fr.io.base.ResourcePaths; import com.fr.io.repository.ResourceRepository; import com.fr.io.repository.ResourceRepositoryWrapper; import com.fr.io.utils.ResourceIOUtils; import com.fr.log.FineLoggerFactory; - import com.fr.record.analyzer.AnalyzerConfiguration; import com.fr.record.analyzer.AnalyzerMutableGroup; import com.fr.record.analyzer.DBMetrics; @@ -80,7 +83,6 @@ import com.fr.security.encryption.SystemEncryptionManager; import com.fr.security.encryption.core.EncryptionScaffold; import com.fr.security.encryption.provider.SecuritySeedProvider; import com.fr.security.encryption.storage.keys.LoadSeedSecurityKey; - import com.fr.stable.StringUtils; import com.fr.stable.db.DBContext; import com.fr.stable.db.properties.FineMicroServicesDBProperties; @@ -88,6 +90,7 @@ import com.fr.stable.db.session.DBSession; import com.fr.stable.project.ProjectConstants; import com.fr.tenant.context.TenantContext; import com.fr.tenant.context.provider.CurrentTenantKey; +import com.fr.third.apache.logging.log4j.Level; import com.fr.third.apache.logging.log4j.core.config.Configurator; import com.fr.third.net.bytebuddy.implementation.MethodDelegation; import com.fr.third.net.bytebuddy.matcher.ElementMatchers; @@ -100,8 +103,6 @@ import com.fr.transaction.HibernateTransactor; import com.fr.transaction.RemoteTransactor; import com.fr.transaction.TransactorFactory; import com.fr.workspace.WorkContext; -import com.fanruan.config.LocalConfigSource; -import com.fanruan.repository.LocalConfigSourceShell; import java.net.URI; import java.sql.Connection; @@ -245,9 +246,14 @@ public class DesignEnvComponent { */ private void startLogger() { // 获取本地的日志级别配置 - Log4jConfigFactory.getInstance().setRootLevel(Log4jConfig.getInstance().getRootLevel()); + Level localLogPreferLevel = Log4jConfig.getInstance().getRootLevel(); + // 刷新到本地配置 + Log4jConfigFactory.getInstance().setRootLevel(localLogPreferLevel); URI uri = Log4jUtils.buildUserConfigURI(StringUtils.EMPTY); FRLogger.getLogger().config(uri); + // 刷新到carina的配置,防止 portal service 启动的时候覆盖了 + // 配置对象都是默认都文件读取的,设计器本地启动的阶段反射修改一下 + Reflect.on(Carina.properties(LoggerProperties.class)).set("level", localLogPreferLevel.name()); // 日志配置更新的监听在FRLogger里面,fbp去掉了但是设计器本地还是需要这个监听的,初始化的时候监听一下 listenConfig(); } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/UpdateDataWorker.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/UpdateDataWorker.java index 8a237d4d9c..284c290f6d 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/UpdateDataWorker.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/UpdateDataWorker.java @@ -1,6 +1,5 @@ package com.fr.design.mainframe.cell.settingpane.desensitization.model; -import com.fr.data.desensitize.rule.DesensitizationRuleManager; import com.fr.data.desensitize.rule.base.DesensitizationRule; import com.fr.data.desensitize.rule.base.DesensitizationRuleSource; import com.fr.workspace.server.repository.authority.RemoteAuthorityRepository; @@ -26,7 +25,7 @@ public class UpdateDataWorker extends SwingWorker, Void> { protected Map doInBackground() { Map result = new HashMap<>(); Map allRoles = RemoteAuthorityRepository.getInstance().getAllRoles4Desensitization(); - Map> allRules = DesensitizationRuleManager.getInstance().getAllRules(); + Map> allRules = RemoteAuthorityRepository.getInstance().getAllRoles().getSourceRuleMap(); result.put(ROLE_KEY, allRoles); result.put(RULE_KEY, allRules);