Browse Source

REPORT-127437 fix:布局,背景颜色问题修复

newui
lemon 6 months ago
parent
commit
ed8d3bc536
  1. 25
      designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java
  2. 15
      designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java
  3. 2
      designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java
  4. 21
      designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java
  5. 16
      designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java
  6. 6
      designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/PreviewTableDesensitizationPane.java
  7. 23
      designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java
  8. 4
      designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java
  9. 9
      designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java
  10. 5
      designer-base/src/main/java/com/fr/design/dialog/BasicPane.java
  11. 25
      designer-base/src/main/java/com/fr/design/gui/icombobox/UIComboBoxRenderer.java
  12. 7
      designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java
  13. 12
      designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java
  14. 22
      designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java
  15. 2
      designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java
  16. 6
      designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java
  17. 3
      designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecyclePane.java
  18. 2
      designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsOperatorPane.java
  19. 1
      designer-base/src/main/java/com/fr/design/style/AbstractSelectBox.java
  20. 19
      designer-base/src/main/java/com/fr/design/style/FormatPane.java
  21. 3
      designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java
  22. 3
      designer-base/src/main/java/com/fr/design/style/color/DetailColorSelectPane.java
  23. 17
      designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties
  24. 2
      designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java
  25. 2
      designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java
  26. 3
      designer-realize/src/main/java/com/fr/design/condition/ForeGroundPane.java
  27. 3
      designer-realize/src/main/java/com/fr/design/condition/PaddingPane.java
  28. 3
      designer-realize/src/main/java/com/fr/design/condition/PagePane.java
  29. 25
      designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterEditPane.java
  30. 11
      designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterPane.java
  31. 23
      designer-realize/src/main/java/com/fr/design/report/NewReportBackgroundPane.java
  32. 23
      designer-realize/src/main/java/com/fr/design/report/ReportColumnsPane.java
  33. 42
      designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java

25
designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java

@ -1,6 +1,5 @@
package com.fine.theme.light.ui;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.ui.FlatTableHeaderUI;
import com.fr.stable.StringUtils;
@ -17,7 +16,6 @@ import javax.swing.plaf.UIResource;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Graphics;
/**
@ -51,23 +49,14 @@ public class FineTableHeaderUI extends FlatTableHeaderUI {
*/
public static class TableHeaderRenderer extends DefaultTableCellRenderer implements UIResource {
public TableHeaderRenderer() {
setPreferredSize(new Dimension(this.getWidth(), FineUIScale.scale(24)));
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Border var13 = null;
if (hasFocus) {
var13 = DefaultLookup.getBorder(this, this.ui, "TableHeader.focusCellBorder");
}
if (var13 == null) {
var13 = DefaultLookup.getBorder(this, this.ui, "TableHeader.cellBorder");
}
Border border = DefaultLookup.getBorder(this, this.ui, "TableHeader.cellBorder");
this.setText(value == null ? "" : value.toString());
this.setHorizontalAlignment(SwingConstants.LEFT);
this.setBorder(var13);
this.setBorder(border);
return this;
}
}
@ -92,15 +81,17 @@ public class FineTableHeaderUI extends FlatTableHeaderUI {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Border border;
if (column == table.getColumnCount() - 1) {
this.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor")),
UIManager.getBorder("Table.cellNoFocusBorder")));
border = BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor")),
UIManager.getBorder("Table.cellNoFocusBorder"));
} else {
this.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor")),
UIManager.getBorder("Table.cellNoFocusBorder")));
border = BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor")),
UIManager.getBorder("Table.cellNoFocusBorder"));
}
setBackground(UIManager.getColor("Table.background"));
setText(value == null ? StringUtils.BLANK : String.valueOf(value));
setBorder(border);
return this;
}
}

15
designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java

@ -4,10 +4,7 @@ import com.formdev.flatlaf.ui.FlatScrollBarUI;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.UIManager;
import java.awt.BasicStroke;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
/**
@ -27,17 +24,7 @@ public class FineTableScrollBarPaneUI extends FlatScrollBarUI {
@Override
protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) {
super.paintTrack(g, c, trackBounds);
// 获取表头的高度
int gridLineThickness = 1;
Rectangle headerRect = table.getTableHeader().getBounds();
int headerBottomY = headerRect.y + headerRect.height - gridLineThickness;
// 在滚动条上限(表头的下边框位置)绘制一条线
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(UIManager.getColor("defaultBorderColor")); // 设置线条颜色
g2d.setStroke(new BasicStroke(1)); // 设置线条宽度
g2d.drawLine(trackBounds.x, headerBottomY, trackBounds.x + trackBounds.width, headerBottomY);
super.paintTrack(g, c, trackBounds);
}
@Override

2
designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java

@ -44,6 +44,8 @@ public interface FineUIStyle {
String PASTEL_BUTTON = "pastelButton";
String DEFAULT_TABLE = "defaultTable";
String WHITE_BUTTON = "whiteButton";
String ORIGINAL_BUTTON = "originalButton";
/**

21
designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java

@ -5,8 +5,6 @@ import com.fine.theme.light.ui.FineRoundBorder;
import com.fine.theme.utils.FineUIScale;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.BaseUtils;
import com.fr.base.svg.IconUtils;
import com.fr.data.core.db.TableProcedure;
import com.fr.data.impl.AbstractDatabaseConnection;
import com.fr.data.impl.Connection;
@ -72,7 +70,7 @@ public class ConnectionTableProcedurePane extends BasicPane {
}
private void init(SwitchableTableDataPane parent) {
this.setLayout(new BorderLayout(4, 10));
this.setLayout(FRGUIPaneFactory.createScaledBorderLayout(4, 10));
// 初始化数据连接下拉框
initConnectionComboBox(parent);
// 初始化中间的面板
@ -84,8 +82,7 @@ public class ConnectionTableProcedurePane extends BasicPane {
}
private JPanel initCenterPane() {
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
centerPane.setLayout(new BorderLayout(0, 5));
JPanel centerPane = FRGUIPaneFactory.createScaledBorderLayout_S_Pane(0, 6);
// 搜索面板
centerPane.add(createSearchPane(), BorderLayout.NORTH);
// 数据库表视图面板
@ -156,8 +153,7 @@ public class ConnectionTableProcedurePane extends BasicPane {
});
UIScrollPane tableViewListPane = new UIScrollPane(tableViewList);
tableViewListPane.setBorder(new UIRoundedBorder(UIManager.getColor("defaultBorderColor"), 1, UIConstants.ARC));
JPanel tableViewBorderPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
tableViewBorderPane.setLayout(new BorderLayout(0, 5));
JPanel tableViewBorderPane = FRGUIPaneFactory.createScaledBorderLayout_S_Pane(0, 10);
tableViewBorderPane.add(tableViewListPane, BorderLayout.CENTER);
JPanel checkBoxgroupPane = createCheckBoxgroupPane();
if (checkBoxgroupPane != null) {
@ -193,19 +189,18 @@ public class ConnectionTableProcedurePane extends BasicPane {
}
protected JPanel createCheckBoxgroupPane() {
JPanel checkBoxgroupPane = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(2);
checkBoxgroupPane.setLayout(new BorderLayout(20, 0));
JPanel first = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
JPanel checkBoxgroupPane = FRGUIPaneFactory.createScaledBorderLayout_S_Pane(30, 2);
JPanel first = FRGUIPaneFactory.createScaledBorderLayout_S_Pane(2, 0);
tableCheckBox = new UICheckBox();
tableCheckBox.setSelected(true);
tableCheckBox.addActionListener(filter);
first.add(tableCheckBox);
first.add(tableCheckBox, BorderLayout.WEST);
JPanel second = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
JPanel second = FRGUIPaneFactory.createScaledBorderLayout_S_Pane(4, 0);
viewCheckBox = new UICheckBox();
viewCheckBox.setSelected(true);
viewCheckBox.addActionListener(filter);
second.add(viewCheckBox);
second.add(viewCheckBox, BorderLayout.WEST);
// 根据环境是否为中文设置不同的显示
if (GeneralContext.isChineseEnv()) {

16
designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java

@ -7,6 +7,7 @@ import com.fine.theme.icon.LazyIcon;
import com.fine.theme.light.ui.FineTableHeaderUI;
import com.fine.theme.light.ui.FineTableScrollBarPaneUI;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.fine.theme.utils.FineUIUtils;
import com.fr.base.TableData;
import com.fr.data.TableDataSource;
@ -27,6 +28,7 @@ import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.dialog.FineJOptionPane;
import com.fr.design.file.HistoryTemplateListCache;
import com.fr.design.gui.frpane.UITabbedPane;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.iprogressbar.AutoProgressBar;
import com.fr.design.gui.itable.SortableJTable;
@ -90,7 +92,7 @@ public class PreviewTablePane extends BasicPane {
private BasicDialog dialog;
private SwingWorker worker;
private UILabel refreshLabel;
private UIButton refreshLabel;
private static PreviewTablePane THIS;
private EmbeddedTableData previewTableData;
@ -106,31 +108,22 @@ public class PreviewTablePane extends BasicPane {
@Override
public void mouseEntered(MouseEvent e) { // 当鼠标进入时候调用.
mouseEntered = true;
if (!buttonPressed) {
refreshLabel.setBackground(java.awt.Color.WHITE);
refreshLabel.setOpaque(true);
refreshLabel.setBorder(BorderFactory.createLineBorder(java.awt.Color.GRAY));
}
}
@Override
public void mouseExited(MouseEvent e) {
mouseEntered = false;
refreshLabel.setOpaque(false);
refreshLabel.setBorder(BorderFactory.createEmptyBorder());
}
@Override
public void mousePressed(MouseEvent e) {
buttonPressed = true;
refreshLabel.setBackground(java.awt.Color.lightGray);
}
@Override
public void mouseReleased(MouseEvent e) {
buttonPressed = false;
if (mouseEntered) {
refreshLabel.setBackground(java.awt.Color.WHITE);
try {
populate(tableData);
if (dataModel != null) {
@ -210,7 +203,8 @@ public class PreviewTablePane extends BasicPane {
private void initRefreshLabel() {
Icon refreshImage = new LazyIcon("refresh");
refreshLabel = new UILabel(refreshImage);
refreshLabel = new UIButton(refreshImage);
FineUIStyle.setStyle(refreshLabel, FineUIStyle.ORIGINAL_BUTTON);
refreshLabel.addMouseListener(refreshLabelMouseAdapter);
}

6
designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/PreviewTableDesensitizationPane.java

@ -1,7 +1,7 @@
package com.fr.design.data.datapane.preview.desensitization.view;
import com.fine.theme.icon.LazyIcon;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.fine.theme.utils.FineUIStyle;
import com.fr.design.constants.UIConstants;
import com.fr.design.data.datapane.preview.PreviewTablePane;
import com.fr.design.gui.ibutton.UIButton;
@ -13,7 +13,6 @@ import com.fr.design.menu.ToolBarDef;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
@ -106,8 +105,7 @@ public class PreviewTableDesensitizationPane extends JPanel {
previewToggle.setIcon(new LazyIcon("preview"));
previewToggle.setToolTipText(Toolkit.i18nText("Fine-Design_Report_Desensitization_Preview"));
previewToggle.setSelected(false);
previewToggle.setBackground(FlatUIUtils.getUIColor("default.background", new Color(246, 248, 250, 255)));
previewToggle.setBorder(null);
FineUIStyle.setStyle(previewToggle, FineUIStyle.ORIGINAL_BUTTON);
previewToggle.addActionListener(e -> {
// 切换TableModel的脱敏状态
previewTablePane.togglePreviewTableModelDesensitizeStatus();

23
designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java

@ -2,6 +2,7 @@ package com.fr.design.data.tabledata.tabledatapane;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.Parameter;
import com.fr.base.ParameterHelper;
@ -100,7 +101,7 @@ import static com.fine.theme.utils.FineClientProperties.ADAPTIVE_COMBO_BOX;
*/
public class DBTableDataPane extends AbstractTableDataPane<DBTableData> implements SwitchableTableDataPane {
private static final int BOTTOM = 9;
private static final int BOTTOM = 10;
private static final String PREVIEW_BUTTON = Toolkit.i18nText("Fine-Design_Basic_Preview");
private static final String REFRESH_BUTTON = Toolkit.i18nText("Fine-Design_Basic_Refresh");
private ConnectionTableProcedurePane connectionTableProcedurePane;
@ -156,7 +157,7 @@ public class DBTableDataPane extends AbstractTableDataPane<DBTableData> implemen
}
private void init() {
contentPane.setLayout(new BorderLayout(4, 4));
contentPane.setLayout(FRGUIPaneFactory.createScaledBorderLayout(4, 4));
this.sqlTextPane = new SQLEditPane();
this.sqlTextPane.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_SQL);
@ -243,11 +244,11 @@ public class DBTableDataPane extends AbstractTableDataPane<DBTableData> implemen
private void initMainSplitPane() {
Box box = new Box(BoxLayout.Y_AXIS);
JPanel northPane = new JPanel(new BorderLayout(4, 4));
JPanel northPane = new JPanel(FRGUIPaneFactory.createScaledBorderLayout(4, 4));
JToolBar editToolBar = createToolBar();
editToolBar.setBorder(null);
northPane.add(editToolBar, BorderLayout.CENTER);
northPane.setBorder(BorderFactory.createEmptyBorder(0, 0, BOTTOM, 0));
northPane.setBorder(new ScaledEmptyBorder(0, 0, BOTTOM, 0));
RTextScrollPane sqlTextScrollPane = new RTextScrollPane(this.sqlTextPane);
sqlTextScrollPane.setLineNumbersEnabled(true);
@ -255,8 +256,9 @@ public class DBTableDataPane extends AbstractTableDataPane<DBTableData> implemen
sqlTextScrollPane.setPreferredSize(FineUIScale.scale(new Dimension(680, 600)));
JPanel paraMeanPane = new JPanel(new BorderLayout());
paraMeanPane.setPreferredSize(FineUIScale.scale(new Dimension(680, 90)));
paraMeanPane.setBorder(new ScaledEmptyBorder(10, 0, BOTTOM, 0));
UILabel paraMean = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Datasource_Param_DES"));
FineUIStyle.setStyle(paraMean, FineUIStyle.LABEL_TIP);
paraMeanPane.add(paraMean, BorderLayout.CENTER);
@ -265,7 +267,7 @@ public class DBTableDataPane extends AbstractTableDataPane<DBTableData> implemen
box.add(paraMeanPane);
box.add(this.editorPane);
JPanel sqlSplitPane = new JPanel(new BorderLayout(4, 4));
JPanel sqlSplitPane = new JPanel(FRGUIPaneFactory.createScaledBorderLayout(4, 4));
sqlSplitPane.add(box, BorderLayout.CENTER);
@ -275,7 +277,6 @@ public class DBTableDataPane extends AbstractTableDataPane<DBTableData> implemen
this.connectionTableProcedurePane.setMaximumSize(FineUIScale.scale(new Dimension(500, 400)));
JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, this.connectionTableProcedurePane, sqlSplitPane);
mainSplitPane.setBorder(new ScaledEmptyBorder(10, 10, 10, 10));
mainSplitPane.setOneTouchExpandable(true);
contentPane.add(mainSplitPane, BorderLayout.CENTER);
}
@ -339,15 +340,19 @@ public class DBTableDataPane extends AbstractTableDataPane<DBTableData> implemen
private void createToolbarEsdComponents(final UIToolbar editToolBar) {
this.esdSettingsLabel = new UILabel(Toolkit.i18nText("Fine-Design_ESD_Cache_Settings"));
esdSettingsLabel.setBorder(new ScaledEmptyBorder(0, 6, 0,6));
this.esdConfigOption = new UIComboBox(StrategyConfigFrom.values());
this.esdConfigOption.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX);
this.esdEnabled = new UICheckBox(Toolkit.i18nText("Fine-Design_ESD_Enable_Cache"));
esdEnabled.setBorder(new ScaledEmptyBorder(0, 6, 0,6));
this.barErrorTips = new UILabel();
this.barErrorTips.setForeground(Color.RED);
barErrorTips.setBorder(new ScaledEmptyBorder(0, 6, 0,6));
FineUIStyle.setStyle(barErrorTips, FineUIStyle.LABEL_WARNING_TIP);
this.barErrorTips.setVisible(false);
esdSettingsBtn = new UIButton(Toolkit.i18nText("Fine-Design_ESD_Strategy_Config"));
esdSettingsBtn.setPreferredSize(FineUIScale.scale(new Dimension(72, 24)));
esdSettingsBtn.setPreferredSize(new Dimension((int) esdSettingsBtn.getPreferredSize().getWidth(), FineUIScale.scale(24)));
FineUIStyle.setStyle(esdSettingsBtn, FineUIStyle.WHITE_BUTTON);
esdSettingsBtn.addActionListener(new ActionListener() {
@Override

4
designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java

@ -15,6 +15,9 @@ import com.fr.design.gui.itoolbar.UIToolbar;
import com.fr.design.i18n.Toolkit;
import com.fr.stable.StringUtils;
import static com.fine.theme.utils.FineClientProperties.ADAPTIVE_COMBO_BOX;
import static com.fine.theme.utils.FineClientProperties.COMBO_BOX_TYPE;
public class MaxMemRowCountPanel extends UIToolbar {
private static final int ALL_IN_MEMORY = 0;
@ -71,6 +74,7 @@ public class MaxMemRowCountPanel extends UIToolbar {
this.setRollover(true);
this.setBackground(UIConstants.NORMAL_BACKGROUND);
switchCache = new UIComboBox(CACHE_LIST);
switchCache.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX);
switchCache.addActionListener(switchStateL);
numberSpinner = new UISpinner(0, Integer.MAX_VALUE, 1);
numberSpinner.setNumberFieldColumns(3);

9
designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java

@ -92,11 +92,11 @@ public class ProcedureDataPane extends AbstractTableDataPane<StoreProcedure> imp
super();
queryText = new UILabel(StringUtils.EMPTY);
Box box = new Box(BoxLayout.Y_AXIS);
JPanel northpane = new JPanel(new BorderLayout(4, 4));
JPanel northpane = new JPanel(FRGUIPaneFactory.createScaledBorderLayout(4, 0));
JToolBar editToolBar = creatToolBar();
editToolBar.setBorder(null);
northpane.add(editToolBar, BorderLayout.NORTH);
northpane.setBorder(BorderFactory.createEmptyBorder(0, 0, 6, 0));
northpane.setBorder(new ScaledEmptyBorder(0, 0, 10, 0));
storeProcedureContext = new SQLEditPane(SQLEditPane.UNREQUEST_DROPTARGET);
storeProcedureContext.setEditable(false);
@ -107,6 +107,7 @@ public class ProcedureDataPane extends AbstractTableDataPane<StoreProcedure> imp
JPanel namePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
namePane.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Datasource_Stored_Procedure") + ":"));
namePane.add(queryText);
namePane.setBorder(new ScaledEmptyBorder(10, 0, 0, 0));
inAutoeditorPane = new UITableEditorPane<StoreProcedureParameter>(new StoreProcedureTableModel());
autoEditorPane = new UITableEditorPane<StoreProcedureParameter>(new AutoStoreProcedureTableModel());
autoEditorPane.getbuttonPane().setVisible(false);
@ -127,13 +128,12 @@ public class ProcedureDataPane extends AbstractTableDataPane<StoreProcedure> imp
// 左边的Panel,上面是选择DatabaseConnection的ComboBox,下面DatabaseConnection对应的Table
initconnectionTableProcedurePane();
this.setLayout(new BorderLayout(4, 4));
this.setLayout(FRGUIPaneFactory.createScaledBorderLayout(4, 4));
this.connectionTableProcedurePane.setMinimumSize(FineUIScale.scale(new Dimension(230, 400)));
this.connectionTableProcedurePane.setMaximumSize(FineUIScale.scale(new Dimension(500, 400)));
box.setMinimumSize(FineUIScale.scale(new Dimension(300, 400)));
// 使用SplitPane
JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, connectionTableProcedurePane, sqlSplitPane);
mainSplitPane.setBorder(new ScaledEmptyBorder(10, 10, 10, 10));
mainSplitPane.setOneTouchExpandable(true);
this.add(mainSplitPane, BorderLayout.CENTER);
}
@ -172,6 +172,7 @@ public class ProcedureDataPane extends AbstractTableDataPane<StoreProcedure> imp
toolBarDef.addShortCut(new RefreshAction());
toolBarDef.addShortCut(SeparatorDef.DEFAULT);
isShareCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Is_Share_DBTableData"));
isShareCheckBox.setBorder(new ScaledEmptyBorder(0, 6, 0,6));
maxPanel = new MaxMemRowCountPanel();
maxPanel.setBorder(null);
maxPanel.setBackground(null);

5
designer-base/src/main/java/com/fr/design/dialog/BasicPane.java

@ -1,6 +1,7 @@
package com.fr.design.dialog;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.common.annotations.Open;
import com.fr.design.constants.LayoutConstants;
@ -315,14 +316,14 @@ public abstract class BasicPane extends JPanel {
nameTextField = new UITextField();
Name = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Name"));
JPanel northPane = new JPanel(new BorderLayout());
northPane.setBorder(new ScaledEmptyBorder(0,10,0,10));
northPane.setBorder(new ScaledEmptyBorder(0,0,10,0));
northPane.add(row(
LayoutConstants.HGAP_LARGE,
cell(Name).weight(titleRatio),
cell(nameTextField).weight(0.7 - titleRatio),
cell(showfield = new UILabel(" ")).weight(0.3)
).getComponent());
showfield.setForeground(new Color(204, 0, 1));
FineUIStyle.setStyle(showfield, FineUIStyle.LABEL_WARNING_TIP);
showfield.setPreferredSize(new Dimension(FineUIScale.scale(220), showfield.getPreferredSize().height));
this.add(northPane, BorderLayout.NORTH);
this.centerPane = bPane;

25
designer-base/src/main/java/com/fr/design/gui/icombobox/UIComboBoxRenderer.java

@ -1,14 +1,10 @@
package com.fr.design.gui.icombobox;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.DefaultListCellRenderer;
import com.fr.design.constants.UIConstants;
import javax.swing.JList;
import javax.swing.JLabel;
import com.fine.theme.utils.FineUIScale;
/**
*
@ -23,19 +19,8 @@ public class UIComboBoxRenderer extends DefaultListCellRenderer {
super();
}
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
cellHasFocus = cellHasFocus && !this.isEnabled();
JLabel renderer =(JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
renderer.setOpaque(true);
list.setSelectionBackground(UIConstants.NORMAL_BLUE);
list.setSelectionForeground(Color.WHITE);
if (isSelected) {
renderer.setForeground(list.getSelectionForeground());
renderer.setBackground(list.getSelectionBackground());
} else {
renderer.setForeground(list.getForeground());
renderer.setBackground(list.getBackground());
}
return renderer;
@Override
public Dimension getPreferredSize() {
return new Dimension(super.getPreferredSize().width, FineUIScale.scale(24));
}
}

7
designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java

@ -1,6 +1,7 @@
package com.fr.design.gui.ilist;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIScale;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.fr.base.BaseUtils;
import com.fr.data.core.DataCoreUtils;
@ -26,6 +27,7 @@ import javax.swing.ListSelectionModel;
import javax.swing.SwingWorker;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.DragGestureListener;
@ -261,6 +263,11 @@ public class TableViewList extends UIList {
return this;
}
@Override
public Dimension getPreferredSize() {
return new Dimension(super.getPreferredSize().width, FineUIScale.scale(24));
}
}
/**

12
designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java

@ -1,5 +1,7 @@
package com.fr.design.gui.itableeditorpane;
import com.fine.swing.ui.layout.Layouts;
import com.fine.swing.ui.layout.Row;
import com.fine.theme.light.ui.FineRoundBorder;
import com.fine.theme.light.ui.FineTableHeaderUI;
import com.fine.theme.light.ui.FineTableScrollBarPaneUI;
@ -15,13 +17,11 @@ import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.TableModelListener;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Insets;
import java.util.List;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.column;
/**
* 表格编辑面板,一般是两列.- 用泛型实现用的时候请定义T.model里面的T要一样
*
@ -78,7 +78,7 @@ public class UITableEditorPane<T> extends BasicPane {
controlPane.add(content == null ? l : content, BorderLayout.WEST);
scrollPane.getVerticalScrollBar().setUI(new FineTableScrollBarPaneUI(editTable));
pane.add(column(10, cell(controlPane), cell(scrollPane).weight(1)).getComponent());
pane.add(Layouts.column(10, Layouts.cell(controlPane), Layouts.cell(scrollPane).weight(1)).getComponent());
this.editTable.getTableHeader().setUI(new FineTableHeaderUI());
this.editTable.setRowHeight(FineUIScale.scale(24));
}
@ -91,7 +91,7 @@ public class UITableEditorPane<T> extends BasicPane {
buttonPane = new JPanel();
if (action != null) {
buttonPane.setLayout(new GridLayout(1, action.length, 3, 3));
buttonPane.setLayout(new GridLayout(1, action.length, FineUIScale.scale(2), 0));
for (int i = 0; i < action.length; i++) {
final UIButton newButton = new UIButton(action[i]);
newButton.set4ToolbarButton();
@ -99,9 +99,9 @@ public class UITableEditorPane<T> extends BasicPane {
newButton.setText("");
newButton.setName(action[i].getName());
newButton.setToolTipText(action[i].getName());
newButton.setBorder(null);
newButton.setMargin(null);
newButton.setOpaque(false);
newButton.setPreferredSize(FineUIScale.scale(new Dimension(24, 24)));
buttonPane.add(newButton);
}
}

22
designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java

@ -1,5 +1,6 @@
package com.fr.design.layout;
import com.fine.theme.utils.FineUIScale;
import com.fr.design.border.UITitledBorder;
import com.fr.design.gui.ilable.UILabel;
import com.fr.stable.AssistUtils;
@ -114,6 +115,16 @@ public class FRGUIPaneFactory {
return new BorderLayout();
}
/**
* 创建一个适应 DPI 缩放的边框布局
* @param hgap 水平间距
* @param vgap 竖直间距
* @return JPanel对象
*/
public static LayoutManager createScaledBorderLayout(int hgap, int vgap) {
return new BorderLayout(FineUIScale.scale(hgap), FineUIScale.scale(vgap));
}
/**
* 创建一个边框布局间距4,4
*
@ -660,6 +671,17 @@ public class FRGUIPaneFactory {
return jp;
}
/**
* 创建包含水平垂直间距的边框面板S
*
* @return JPanel对象
*/
public static JPanel createScaledBorderLayout_S_Pane(int hgap, int vgap) {
JPanel jp = new JPanel();
jp.setLayout(FRGUIPaneFactory.createScaledBorderLayout(hgap, vgap));
return jp;
}
public static JPanel createBorderLayout_NO_Opaque_Pane() {
JPanel jp = new JPanel();
jp.setOpaque(false);

2
designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java

@ -72,7 +72,7 @@ public class CenterRegionContainerPane extends JPanel {
public CenterRegionContainerPane() {
toolbarPane = new JPanel();
toolbarPane.setBorder(new ScaledEmptyBorder(6, 0, 0, 0));
toolbarPane.setBorder(new ScaledEmptyBorder(10, 0, 0, 0));
toolbarPane.setLayout(FRGUIPaneFactory.createBorderLayout());
eastPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
largeToolbar = getToolBarMenuDock().createLargeToolbar();

6
designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java

@ -334,7 +334,11 @@ public abstract class AbstractSupportSelectTablePane<T extends TableEntity> exte
component.setForeground(tableHeader.getForeground());
component.setBackground(tableHeader.getBackground());
component.setFont(tableHeader.getFont());
component.setBorder(UIManager.getBorder("TableHeader.cellBorder"));
if (column != 0) {
component.setBorder(UIManager.getBorder("TableHeader.cellBorder"));
} else {
component.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor")));
}
return component;
}

3
designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecyclePane.java

@ -123,7 +123,7 @@ public class RecyclePane extends AbstractSupportSelectTablePane<VcsTableEntity>
searchTextField.setPlaceholder(Toolkit.i18nText("Fine-Design_Vcs_Start_Search"));
searchTextField.setColumns(COLUMNS_COUNT);
UILabel searchLabel = new UILabel(ICON_SEARCH);
searchLabel.setBorder(new ScaledEmptyBorder(0, 3, 0, 3));
searchLabel.setBorder(new ScaledEmptyBorder(0, 4, 0, 4));
searchTextField.setBorder(null);
leftPane = row(cell(searchLabel), cell(searchTextField).weight(1)).with(it -> {
it.setBorder(new FineRoundBorder());
@ -148,7 +148,6 @@ public class RecyclePane extends AbstractSupportSelectTablePane<VcsTableEntity>
}
tableTopPane.add(leftPane, BorderLayout.EAST);
tableTopPane.add(rightPane, BorderLayout.WEST);
tableTopPane.setBorder(new ScaledEmptyBorder(0, 0, 10, 0));
}

2
designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsOperatorPane.java

@ -46,7 +46,7 @@ public class VcsOperatorPane extends JPanel {
panel.add(value);
}
panel.setOpaque(false);
add(column(flex(), row(fix(4), cell(panel)), flex())
add(column(flex(), row(fix(6), cell(panel)), flex())
.with(it -> {
it.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor")));
it.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE));

1
designer-base/src/main/java/com/fr/design/style/AbstractSelectBox.java

@ -45,6 +45,7 @@ public abstract class AbstractSelectBox<T> extends AbstractPopBox implements Mou
// 初始化组件布局
JPanel displayPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
displayPane.setBorder(null);
displayPane.setOpaque(false);
displayPane.add(displayComponent, BorderLayout.CENTER);
displayComponent.setSize(new Dimension(preWidth, displayPane.getPreferredSize().height));
// 添加事件监听

19
designer-base/src/main/java/com/fr/design/style/FormatPane.java

@ -22,10 +22,10 @@ import com.fr.general.ComparatorUtils;
import com.fr.stable.ArrayUtils;
import com.fr.stable.StringUtils;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.DefaultListCellRenderer;
import javax.swing.DefaultListModel;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
@ -139,21 +139,24 @@ public class FormatPane extends BasicPane {
patternList.setCellRenderer(new DefaultListCellRenderer(){
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
setOpaque(false);
return this;
JLabel renderer = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
list.setSelectionBackground(UIManager.getColor("List.selectBackgroundColor"));
setOpaque(true);
if (isSelected) {
renderer.setBackground(list.getSelectionBackground());
} else {
renderer.setBackground(list.getBackground());
}
return renderer;
}
});
patternList.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE));
patternList.addListSelectionListener(patternListSelectionListener);
}
private JScrollPane initPatternScrollPanel() {
JScrollPane scrollPane = new JScrollPane(patternList);
patternList.setOpaque(false);
scrollPane.getViewport().setOpaque(false);
scrollPane.getVerticalScrollBar().setOpaque(false);
scrollPane.setBorder(new FineRoundBorder());
scrollPane.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE));
return scrollPane;
}

3
designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java

@ -1,6 +1,7 @@
package com.fr.design.style.background.impl;
import com.fine.theme.light.ui.FineRoundBorder;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.fr.base.Style;
import com.fr.base.background.ImageBackground;
@ -66,7 +67,7 @@ public class ImageBackgroundPane extends BackgroundDetailPane {
this.add(column(
5,
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))),
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))).with(it -> FineUIStyle.setStyle(it, FineUIStyle.LABEL_TIP)),
row(
10,
cell(new JScrollPane(previewPane)).with(it -> {

3
designer-base/src/main/java/com/fr/design/style/color/DetailColorSelectPane.java

@ -12,6 +12,7 @@ import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import com.fine.theme.light.ui.FineRoundBorder;
import com.fine.theme.utils.FineUIStyle;
import com.fine.theme.utils.FineUIUtils;
import com.fr.design.gui.ilable.UILabel;
@ -79,7 +80,7 @@ public class DetailColorSelectPane extends BasicPane {
row(
20,
cell(colorSelectPane.transparentButton).weight(0.3),
cell(new UILabel("<html><font color=gray>" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview") + "</font></html>")).weight(0.53)
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))).weight(0.53).with(it -> FineUIStyle.setStyle(it, FineUIStyle.LABEL_TIP))
),
row(
20,

17
designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties

@ -427,9 +427,10 @@ HelpButton.innerFocusWidth = $?Button.innerFocusWidth
List.border = 0,0,0,0
List.cellMargins = 1,12,1,12
List.selectionInsets = 0,0,0,0
List.selectionArc = 0
List.selectionInsets = 0,4,0,4
List.selectionArc = 2
List.cellFocusColor = @cellFocusColor
List.selectionBackground = fade(#2576EF,12%)
List.cellNoFocusBorder = com.formdev.flatlaf.ui.FlatListCellBorder$Default
List.focusCellHighlightBorder = com.formdev.flatlaf.ui.FlatListCellBorder$Focused
List.focusSelectedCellHighlightBorder = com.formdev.flatlaf.ui.FlatListCellBorder$Selected
@ -742,8 +743,8 @@ GradientBar.recHeight=30
#---- Spinner ----
Spinner.border = com.formdev.flatlaf.ui.FlatRoundBorder
Spinner.background = @componentBackground
Spinner.buttonBackground = darken($Spinner.background,2%)
Spinner.background = $fill.normal
Spinner.buttonBackground = $fill.normal
Spinner.buttonSeparatorColor = $Component.borderColor
Spinner.buttonDisabledSeparatorColor = $Component.disabledBorderColor
Spinner.buttonArrowColor = @buttonArrowColor
@ -1356,3 +1357,11 @@ CellOtherSetPane.height=$Component.defaultHeight
[style]Table.defaultTable = \
background: $Table.default.background
[style]Button.whiteButton = \
border: com.fine.theme.light.ui.FineRoundBorder; \
background: $fill.normal
[style]Button.originalButton = \
border: 4,4,4,4; \
background: null;

2
designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java

@ -159,7 +159,7 @@ public class ITReplaceNorthPanel {
public ITReplaceNorthPanel() {
cardLayout = new CardLayout();
cardPanel = new JPanel(cardLayout);
cardPanel.setBorder(new ScaledEmptyBorder(20, 20, 20, 20));
cardPanel.setBorder(new ScaledEmptyBorder(20, 20, 10, 20));
upContentPanel = new JPanel(null);
upSettingPanel = new JPanel(null);

2
designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java

@ -4,6 +4,7 @@ import java.awt.BorderLayout;
import java.awt.Window;
import com.fine.theme.light.ui.FineTableHeaderUI;
import com.fine.theme.light.ui.FineTableScrollBarPaneUI;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JScrollPane;
@ -61,6 +62,7 @@ public abstract class SmartJTablePane extends BasicPane {
// BasicPane的center放JTable
table = new JTable(model);
this.add(scrollPane = new JScrollPane(table), BorderLayout.CENTER);
scrollPane.getVerticalScrollBar().setUI(new FineTableScrollBarPaneUI(table));
// 鼠标切换选中项时,editingRowIndex也要跟着变
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

3
designer-realize/src/main/java/com/fr/design/condition/ForeGroundPane.java

@ -13,6 +13,8 @@ import java.awt.*;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.row;
import static com.fine.theme.utils.FineClientProperties.ADAPTIVE_COMBO_BOX;
import static com.fine.theme.utils.FineClientProperties.COMBO_BOX_TYPE;
/**
* @author richie
@ -34,6 +36,7 @@ public class ForeGroundPane extends ConditionAttrSingleConditionPane<HighlightAc
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Cell"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Row"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Column") });
this.foreScopeComboBox.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX);
this.foregroundColorPane.setSelectObject(Color.black);
this.setLayout(new BorderLayout());

3
designer-realize/src/main/java/com/fr/design/condition/PaddingPane.java

@ -23,6 +23,8 @@ 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.flex;
import static com.fine.swing.ui.layout.Layouts.row;
import static com.fine.theme.utils.FineClientProperties.ADAPTIVE_COMBO_BOX;
import static com.fine.theme.utils.FineClientProperties.COMBO_BOX_TYPE;
/**
* @author richie
@ -49,6 +51,7 @@ public class PaddingPane extends ConditionAttrSingleConditionPane<HighlightActio
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Cell"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Row"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Current_Column") });
this.paddingScopeComboBox.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX);
this.paddingLeftSpinner.setValue(new Integer(0));
this.paddingRightSpinner.setValue(new Integer(0));
GeneralContext.listenPluginRunningChanged(new PluginEventListener() {

3
designer-realize/src/main/java/com/fr/design/condition/PagePane.java

@ -11,6 +11,8 @@ import java.awt.BorderLayout;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.row;
import static com.fine.theme.utils.FineClientProperties.ADAPTIVE_COMBO_BOX;
import static com.fine.theme.utils.FineClientProperties.COMBO_BOX_TYPE;
/**
* @author richie
@ -30,6 +32,7 @@ public class PagePane extends ConditionAttrSingleConditionPane<HighlightAction>
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Cell_Write_Page_Before_Row"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Cell_Write_Page_After_Column"),
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Cell_Write_Page_Before_Column") });
this.pageComboBox.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX);
this.pageComboBox.setSelectedIndex(0);
this.setLayout(new BorderLayout());

25
designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterEditPane.java

@ -5,9 +5,9 @@ package com.fr.design.headerfooter;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.light.ui.FineRoundBorder;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.BaseUtils;
import com.fr.base.GraphHelper;
import com.fr.base.PaperSize;
import com.fr.base.ScreenResolution;
@ -29,7 +29,6 @@ import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ispinner.UISpinner;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.style.background.BackgroundPane;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Background;
import com.fr.page.ReportSettingsProvider;
import com.fr.report.core.ReportHF;
@ -40,10 +39,8 @@ import com.fr.stable.unit.INCH;
import com.fr.stable.unit.MM;
import com.fr.stable.unit.UNIT;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JToolBar;
import javax.swing.JViewport;
import javax.swing.Scrollable;
import javax.swing.SwingConstants;
@ -67,6 +64,7 @@ import java.awt.geom.Rectangle2D;
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.fix;
import static com.fine.swing.ui.layout.Layouts.row;
/**
@ -133,36 +131,33 @@ public class HeaderFooterEditPane extends JPanel {
private void addCenterPanel() {
JPanel controlContentPane = row(
2,
4,
cell(createContainerSection(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_HF_Left_Section") + ":", leftHFContainer)).weight(0.1),
cell(createContainerSection(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_HF_Center_Section") + ":", centerHFContainer)).weight(0.1),
cell(createContainerSection(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_HF_Right_Section") + ":", rightHFContainer)).weight(0.1)
).getComponent();
initToolbar();
JPanel centerPane =
column(
10,
cell(createToolbar()),
cell(iconToolPanel),
cell(controlContentPane).weight(0.3),
column(
2,
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))).weight(0.1),
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview"))).weight(0.1).with(it -> FineUIStyle.setStyle(it, FineUIStyle.LABEL_TIP)),
cell(scrollPreviewPane).weight(1.2).with(it -> it.setBorder(new FineRoundBorder()))
).weight(0.75)
).with(it -> it.setBorder(new ScaledEmptyBorder(0,10,0,0))).getComponent();
this.add(centerPane, BorderLayout.CENTER);
}
private JToolBar createToolbar() {
private void initToolbar() {
//toolbar.
JToolBar toolbar = new JToolBar();
toolbar.setFloatable(false);
printBackgroundCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_ReportGUI_Print_Background"));
headerUnitFieldPane = new AdjustHeightPane();
footerUnitFieldPane = new AdjustHeightPane();
headFootUnitFieldPane = new AdjustHeightPane();
initIconToolPanel();
toolbar.add(iconToolPanel);
return toolbar;
}
private UIButton initCustomBackgroundButton() {
@ -191,7 +186,7 @@ public class HeaderFooterEditPane extends JPanel {
private void initIconToolPanel() {
iconToolPanel = row(
6,
2,
cell(this.createHFInsertButton(new TextHFElement())),
cell(this.createHFInsertButton(new FormulaHFElement())),
cell(this.createHFInsertButton(new PageNumberHFElement())),
@ -201,11 +196,13 @@ public class HeaderFooterEditPane extends JPanel {
cell(this.createHFInsertButton(new ImageHFElement())),
cell(this.createHFInsertButton(new NewLineHFElement())),
cell(initCustomBackgroundButton()),
fix(6),
cell(printBackgroundCheckBox),
fix(6),
row(
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Height") + ":")),
cell(headFootUnitFieldPane)
).with(it -> it.setBorder(new ScaledEmptyBorder(2,0,2,0)))
)
).getComponent();
}

11
designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterPane.java

@ -59,7 +59,7 @@ public abstract class HeaderFooterPane extends BasicPane {
reportHFYypeList
.addListSelectionListener(reportHFTypeSelectionListener);
reportHFYypeList.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE));
reportHFYypeList.setBorder(BorderFactory.createCompoundBorder(new FineRoundBorder(), new ScaledEmptyBorder(4, 4, 4, 4)));
reportHFYypeList.setBorder(BorderFactory.createCompoundBorder(new FineRoundBorder(), new ScaledEmptyBorder(6, 2, 6, 2)));
JScrollPane hfTypeListScrollPane = new JScrollPane(reportHFYypeList);
leftPane.add(hfTypeListScrollPane, BorderLayout.CENTER);
@ -75,10 +75,10 @@ public abstract class HeaderFooterPane extends BasicPane {
.addElement(new Integer(ReportConstants.REPORTPAGE_EVEN));
// CenterPane.
JPanel centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
JPanel centerPane = FRGUIPaneFactory.createScaledBorderLayout_S_Pane(0, 10);
this.add(centerPane, BorderLayout.CENTER);
JPanel definePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
JPanel definePane = new JPanel(new BorderLayout());
centerPane.add(definePane, BorderLayout.NORTH);
defineCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_HF_Whether_To_Define_The_Selected_Type"), true); //是否定义选中的类型
@ -229,11 +229,6 @@ public abstract class HeaderFooterPane extends BasicPane {
return this;
}
@Override
public Dimension getPreferredSize() {
return new Dimension(super.getPreferredSize().width, FineUIScale.scale(24));
}
};

23
designer-realize/src/main/java/com/fr/design/report/NewReportBackgroundPane.java

@ -3,6 +3,7 @@ package com.fr.design.report;
import com.fine.swing.ui.layout.Layouts;
import com.fine.theme.light.ui.FineRoundBorder;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.theme.ReportTheme;
import com.fr.base.theme.TemplateTheme;
@ -34,9 +35,6 @@ import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Rectangle2D;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.column;
public class NewReportBackgroundPane extends BasicPane {
private final UICheckBox isPrintBackgroundCheckBox;
private final UICheckBox isExportBackgroundCheckBox;
@ -50,16 +48,9 @@ public class NewReportBackgroundPane extends BasicPane {
isPrintBackgroundCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Print_Background"));
isExportBackgroundCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Export_Background"));
add(column(10, cell(profilePane).weight(1), cell(createBottomPane())).getComponent());
add(Layouts.column(10, Layouts.cell(profilePane).weight(1), Layouts.row(10, Layouts.cell(isPrintBackgroundCheckBox), Layouts.cell(isExportBackgroundCheckBox))).getComponent());
}
private JPanel createBottomPane() {
JPanel container = new JPanel();
container.setPreferredSize(new Dimension(container.getPreferredSize().width, FineUIScale.scale(30)));
container.add(isExportBackgroundCheckBox);
container.add(isPrintBackgroundCheckBox);
return container;
}
@Override
protected String title4PopupWindow() {
@ -143,9 +134,9 @@ public class NewReportBackgroundPane extends BasicPane {
}
});
JPanel contentContainer = column(
JPanel contentContainer = Layouts.column(
10,
Layouts.row(10, cell(createLeftPane()).weight(1), cell(createRightPane())).weight(1)
Layouts.row(10, Layouts.cell(createLeftPane()).weight(1), Layouts.cell(createRightPane())).weight(1)
).getComponent();
contentContainer.setPreferredSize(FineUIScale.scale(new Dimension(600, 540)));
@ -169,10 +160,10 @@ public class NewReportBackgroundPane extends BasicPane {
JPanel panel = new JPanel(new BorderLayout());
panel.add(previewPane, BorderLayout.CENTER);
return column(
return Layouts.column(
10,
cell(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Preview"))),
cell(panel).weight(1).with(it -> it.setBorder(new FineRoundBorder()))
Layouts.cell(new UILabel(Toolkit.i18nText("Fine-Design_Basic_Preview"))).with(it -> FineUIStyle.setStyle(it, FineUIStyle.LABEL_TIP)),
Layouts.cell(panel).weight(1).with(it -> it.setBorder(new FineRoundBorder()))
).getComponent();
}

23
designer-realize/src/main/java/com/fr/design/report/ReportColumnsPane.java

@ -1,10 +1,10 @@
package com.fr.design.report;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.GraphHelper;
import com.fr.design.border.UIRoundedBorder;
import com.fr.design.border.UITitledBorder;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.design.gui.ibutton.UIRadioButton;
@ -25,7 +25,6 @@ import com.fr.stable.Constants;
import com.fr.stable.StringUtils;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.SpinnerNumberModel;
import javax.swing.SwingConstants;
@ -36,7 +35,6 @@ import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@ -127,7 +125,6 @@ public class ReportColumnsPane extends BasicPane{
buttonGroupPane.add(onOffButtonGroup);
north.add(buttonGroupPane, BorderLayout.EAST);
this.setBorder(new ScaledEmptyBorder(10, 10, 10, 10));
JPanel northV2 = column(
20,
row(
@ -229,12 +226,12 @@ public class ReportColumnsPane extends BasicPane{
colButton.addActionListener(colChangeListener);
return row(
row(
3,
4,
column(cell(rowButton)),
cell(new UILabel(IOUtils.readIcon("/com/fr/design/images/reportcolumns/" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Row_Icon_File_Name"))))
).weight(0.2),
row(
3,
4,
column(cell(colButton)),
cell(new UILabel(IOUtils.readIcon("/com/fr/design/images/reportcolumns/" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Col_Icon_File_Name"))))
).weight(0.3)
@ -288,14 +285,14 @@ public class ReportColumnsPane extends BasicPane{
toUILabel = new UILabel(COLUMN_ROW_TEXTS[1 - rowOrColumn]);
return row(
row(
3,
4,
cell(maxRadioButton),
cell(maxNumberSpinner),
cell(maxUILabel),
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Report_Columns_Columns_Optional")))
).weight(0.2),
row(
3,
4,
cell(toXRadioButton),
cell(toXSpinner),
cell(toUILabel)
@ -334,23 +331,25 @@ public class ReportColumnsPane extends BasicPane{
*/
private JPanel createRowPane() {
repeatColDataTextField = new UITextField();
copyLabel = new UILabel(REPORT_COLUMN_RAPEAT[rowOrColumn] + ":");
copyLabel = new UILabel(REPORT_COLUMN_RAPEAT[rowOrColumn]);
copyTitleTextField = new UITextField();
JPanel colPane = column(
10,
row(
10,
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column_Data") + ":")).weight(0.12),
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Column_Data"))).weight(0.12),
cell(repeatColDataTextField).weight(0.33),
cell(new UILabel("<html><font color=gray>" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": A2:D5 " + "</font></html>")).weight(0.2),
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": A2:D5 ")).weight(0.2)
.with(it -> FineUIStyle.setStyle(it, FineUIStyle.LABEL_TIP)),
flex(0.35)
),
row(
10,
cell(copyLabel).weight(0.12),
cell(copyTitleTextField).weight(0.33),
cell(new UILabel("<html><font color=gray>" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": 1,2-3,5,18" + "</font></html>")).weight(0.2),
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": 1,2-3,5,18")).weight(0.2)
.with(it -> FineUIStyle.setStyle(it, FineUIStyle.LABEL_TIP)),
flex(0.35)
)
).getComponent();

42
designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java

@ -1,11 +1,11 @@
package com.fr.design.report.freeze;
import com.fine.theme.utils.FineUIStyle;
import com.fr.base.FRContext;
import com.fr.design.constants.UIConstants;
import com.fr.design.dialog.BasicPane;
import com.fr.design.extra.WebViewDlgHelper;
import com.fr.design.gui.frpane.FineTabbedPane;
import com.fr.design.gui.frpane.UITabbedPane;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.ActionLabel;
import com.fr.design.gui.ilable.UILabel;
@ -27,7 +27,6 @@ import java.awt.event.ActionListener;
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.fix;
import static com.fine.swing.ui.layout.Layouts.flex;
import static com.fine.swing.ui.layout.Layouts.row;
import static com.fine.theme.utils.FineUIUtils.wrapComponentWithTitle;
@ -94,7 +93,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
repeatTitleRowPane = new RepeatRowPane();
return row(
2,
4,
cell(useRepeatTitleRCheckBox),
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Title_Start_Row_Form"))),
cell(repeatTitleRowPane),
@ -111,7 +110,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
repeatTitleColPane = new RepeatColPane();
return row(
2,
4,
cell(useRepeatTitleCCheckBox),
cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Title_Start_Column_Form"))),
cell(repeatTitleColPane),
@ -121,7 +120,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
private JPanel initPageRepeatPane() {
return row(
10,
20,
column(
10,
cell(new UILabel(REPEAT_AND_FROZEN_HEAD)).weight(0.5),
@ -138,7 +137,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
private JPanel initPageRepeatFootPane() {
return row(
10,
20,
column(
10,
cell(new UILabel(REPEAT_AND_FROZEN_FOOT)).weight(0.5),
@ -161,7 +160,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
repeatFinisRowPane = new RepeatRowPane();
return row(
2,
4,
cell(useRepeatFinisRCheckBox),
cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Finis_Start_Row_Form"))),
cell(repeatFinisRowPane),
@ -178,7 +177,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
repeatFinisColPane = new RepeatColPane();
return row(
2,
4,
cell(useRepeatFinisCCheckBox),
cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Finis_Start_Column_Form"))),
cell(repeatFinisColPane),
@ -208,7 +207,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
usePageHeadFrozenCCheckBox = new UICheckBox();
return row(
10,
20,
column(
10,
cell(new UILabel(REPEAT_AND_FROZEN_HEAD)).weight(0.5),
@ -217,12 +216,12 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
column(
10,
row(
2,
4,
cell(usePageHeadFrozenRCheckBox),
cell(freezePageRowPane)
).weight(0.5),
row(
2,
4,
cell(usePageHeadFrozenCCheckBox),
cell(freezePageColPane)
).weight(0.5)
@ -239,7 +238,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
freezeFootColPane = new FreezePagePane(false, true);
return row(
10,
20,
column(
10,
cell(new UILabel(REPEAT_AND_FROZEN_FOOT)).weight(0.5),
@ -248,12 +247,12 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
column(
10,
row(
2,
4,
cell(usePageFootFrozenRCheckBox),
cell(freezeFootRowPane)
).weight(0.5),
row(
2,
4,
cell(usePageFootFrozenCCheckBox),
cell(freezeFootColPane)
).weight(0.5)
@ -287,7 +286,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
freezeWriteColPane = new FreezeWriteColPane();
return row(
10,
20,
column(
10,
cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Face_Write_Frozen"))).weight(0.5),
@ -296,12 +295,12 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
column(
10,
row(
2,
4,
cell(useWriteFrozenRCheckBox),
cell(freezeWriteRowPane)
).weight(0.5),
row(
2,
4,
cell(useWriteFrozenCCheckBox),
cell(freezeWriteColPane)
).weight(0.5)
@ -325,15 +324,12 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
).getComponent();
JPanel pagePanel = column(
10,
fix(10),
20,
cell(wrapComponentWithTitle(outrepeatPanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Repeat"))),
cell(wrapComponentWithTitle(outfreezePanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Frozen"))),
cell(new UILabel("<html><font color=gray>"+ Toolkit.i18nText("Fine-Design_Report_Engine_Freeze_Tip") + "</font></html>"))
cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Engine_Freeze_Tip"))).with(it -> FineUIStyle.setStyle(it, FineUIStyle.LABEL_TIP))
).getComponent();
// 重复打印部分
// 重复打印标题的起始行
JPanel labelPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
labelPanel.add(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Select_the_repeated_row_and_column") + ":"));
UILabel warning = new UILabel("(" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_FreezeWarning") + ")");
@ -342,8 +338,6 @@ public class RepeatAndFreezeSettingPane extends BasicPane {
JPanel writeOutrepeatPanel = initWriteFrozenPane();
JPanel writePanel = column(
10,
fix(10),
cell(wrapComponentWithTitle(writeOutrepeatPanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Frozen")))
).getComponent();
addWriteFrozen(writePanel, pagePanel);

Loading…
Cancel
Save