From 18a2dcf5fca755e5da036e70dcca6af17b685aeb Mon Sep 17 00:00:00 2001 From: lemon Date: Sun, 11 Aug 2024 13:44:25 +0800 Subject: [PATCH 1/5] =?UTF-8?q?REPORT-127437=20fix:=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=20jtable=20=E6=BB=9A=E5=8A=A8=E6=9D=A1/UI=E5=B8=83=E5=B1=80/?= =?UTF-8?q?=E8=A1=A8=E8=BA=AB=E7=BB=84=E4=BB=B6=20=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../theme/light/ui/FineTableHeaderUI.java | 107 +++++++++++++++++ .../light/ui/FineTableScrollBarPaneUI.java | 53 +++++++++ .../com/fine/theme/utils/FineUIStyle.java | 2 + .../data/datapane/preview/CopyableJTable.java | 3 - .../datapane/preview/PreviewTablePane.java | 12 +- .../view/PreviewTableDesensitizationPane.java | 14 ++- .../TableDataDesensitizationTableModel.java | 50 ++++---- .../gui/icombocheckbox/UIComboCheckBox.java | 35 ++++-- .../fr/design/gui/itable/SortableJTable.java | 3 + .../com/fr/design/gui/itable/TableSorter.java | 4 +- .../itableeditorpane/ParameterTableModel.java | 14 +-- .../itableeditorpane/UITableEditorPane.java | 105 ++--------------- .../com/fr/design/mainframe/DottedLine.java | 2 +- .../ui/AbstractSupportSelectTablePane.java | 1 + .../vcs/ui/ToolTipTableCellRenderer.java | 4 +- .../design/mainframe/vcs/ui/VcsNewPane.java | 1 + .../write/submit/DBManipulationPane.java | 44 +++++-- .../light/ui/laf/FineLightLaf.properties | 12 +- .../storybook/components/TableStoryBoard.java | 111 ++++++++++++++++++ .../replace/ui/ITReplaceSouthPanel.java | 1 - .../actions/replace/ui/ITTableButton.java | 13 -- .../actions/replace/ui/ITTableEditor.java | 1 - .../actions/replace/ui/ITTableEditorPane.java | 30 +++-- .../cell/smartaction/SmartJTablePane.java | 5 +- .../submit/SmartInsertDBManipulationPane.java | 8 +- 25 files changed, 431 insertions(+), 204 deletions(-) create mode 100644 designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java create mode 100644 designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java create mode 100644 designer-base/src/test/java/com/fr/design/gui/storybook/components/TableStoryBoard.java diff --git a/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java new file mode 100644 index 0000000000..35a5f48c1d --- /dev/null +++ b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java @@ -0,0 +1,107 @@ +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; +import sun.swing.DefaultLookup; + +import javax.swing.BorderFactory; +import javax.swing.JComponent; +import javax.swing.JTable; +import javax.swing.SwingConstants; +import javax.swing.UIManager; +import javax.swing.border.Border; +import javax.swing.plaf.ComponentUI; +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; + +/** + * 应用于 JTable 的UI + * + * @author lemon + * @since + * Created on + */ +public class FineTableHeaderUI extends FlatTableHeaderUI { + + @Override + public void installUI(JComponent c) { + super.installUI(c); + JTableHeader header = (JTableHeader) c; + header.setDefaultRenderer(new TableHeaderRenderer()); + JTable table = header.getTable(); + + FineUIStyle.setStyle(table, FineUIStyle.DEFAULT_TABLE); + table.getTableHeader().getTable().setDefaultRenderer(Object.class, new TableRenderer()); + } + + + @Override + public void paint(Graphics g, JComponent c) { + super.paint(g, c); + } + + /** + * 表头 render + */ + 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"); + } + + this.setText(value == null ? "" : value.toString()); + this.setHorizontalAlignment(SwingConstants.LEFT); + this.setBorder(var13); + return this; + } + } + + + /** + * UI + * @param c + * @return + */ + public static ComponentUI createUI(JComponent c) { + return new FineTableHeaderUI(); + } + + /** + * 表身 render + */ + public static class TableRenderer extends DefaultTableCellRenderer { + public TableRenderer() { + setHorizontalAlignment(SwingConstants.LEFT); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + if (column == table.getColumnCount() - 1) { + this.setBorder(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"))); + } + setBackground(UIManager.getColor("Table.background")); + setText(value == null ? StringUtils.BLANK : String.valueOf(value)); + return this; + } + } +} diff --git a/designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java new file mode 100644 index 0000000000..354a0240a0 --- /dev/null +++ b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java @@ -0,0 +1,53 @@ +package com.fine.theme.light.ui; + +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; + +/** + * 应用于 JTable 的垂直滚动条UI + * + * @author lemon + * @since + * Created on 2024/08/11 + */ +public class FineTableScrollBarPaneUI extends FlatScrollBarUI { + + private final JTable table; + + public FineTableScrollBarPaneUI(JTable table) { + this.table = table; + } + + @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); + } + + @Override + protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { + // 确保滚动条滑块不会超过表头区域 + Rectangle headerRect = table.getTableHeader().getBounds(); + int headerHeight = headerRect.height; + thumbBounds.y = Math.max(thumbBounds.y, headerHeight); + + super.paintThumb(g, c, thumbBounds); + } + +} diff --git a/designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java b/designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java index 5e15fffb0b..dbddf1d261 100644 --- a/designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java +++ b/designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java @@ -42,6 +42,8 @@ public interface FineUIStyle { String PURE_TREE = "pureTree"; String PASTEL_BUTTON = "pastelButton"; + String DEFAULT_TABLE = "defaultTable"; + /** * 添加组件的样式类,类似css,该方法会接在原样式后方 diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/CopyableJTable.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/CopyableJTable.java index 65e4123b5c..6071fa3daa 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/CopyableJTable.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/CopyableJTable.java @@ -7,7 +7,6 @@ import com.fr.log.FineLoggerFactory; import com.fr.stable.os.OperatingSystem; import javax.swing.*; -import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumnModel; @@ -211,8 +210,6 @@ public class CopyableJTable extends SortableJTable { Component comp = super.prepareRenderer(renderer, row, column); if (isChoose(row, column)) { comp.setBackground(selectBackGround); - } else { - comp.setBackground(this.getBackground()); } return comp; } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java index ef7a81fb93..707befa4f8 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java @@ -4,6 +4,8 @@ package com.fr.design.data.datapane.preview; 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.FineUIUtils; import com.fr.base.TableData; @@ -308,8 +310,10 @@ public class PreviewTablePane extends BasicPane { private JComponent initCenterPane() { preveiwTable = new CopyableJTable(new TableSorter()); preveiwTable.setRowSelectionAllowed(false); - preveiwTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); - return new JScrollPane(preveiwTable); + preveiwTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); + JScrollPane scrollPane = new JScrollPane(preveiwTable); + scrollPane.getVerticalScrollBar().setUI(new FineTableScrollBarPaneUI(preveiwTable)); + return scrollPane; } private void initDialog() { @@ -403,7 +407,7 @@ public class PreviewTablePane extends BasicPane { public static void resetPreviewTable() { getInstance().preveiwTable = new SortableJTable(new TableSorter()); getInstance().preveiwTable.setRowSelectionAllowed(false); - getInstance().preveiwTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); + getInstance().preveiwTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); PreviewTablePane.progressBar.close(); getInstance().repaint(); } @@ -511,7 +515,7 @@ public class PreviewTablePane extends BasicPane { * @return */ private DefaultTableCellRenderer getDefaultTableCellRenderer() { - return new DefaultTableCellRenderer() { + return new FineTableHeaderUI.TableRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { JComponent comp = (JComponent) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/PreviewTableDesensitizationPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/PreviewTableDesensitizationPane.java index 8cfdebd201..f96438bee5 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/PreviewTableDesensitizationPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/PreviewTableDesensitizationPane.java @@ -1,18 +1,19 @@ package com.fr.design.data.datapane.preview.desensitization.view; import com.fine.theme.icon.LazyIcon; +import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.design.constants.UIConstants; import com.fr.design.data.datapane.preview.PreviewTablePane; -import com.fr.design.gui.ibutton.UIToggleButton; +import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itoolbar.UIToolbar; import com.fr.design.i18n.Toolkit; import com.fr.design.menu.SeparatorDef; import com.fr.design.menu.ToolBarDef; -import javax.swing.Icon; 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; @@ -47,7 +48,7 @@ public class PreviewTableDesensitizationPane extends JPanel { /** * 脱敏效果预览按钮 */ - private UIToggleButton previewToggle; + private UIButton previewToggle; public PreviewTableDesensitizationPane(PreviewTablePane previewTablePane) { @@ -100,10 +101,13 @@ public class PreviewTableDesensitizationPane extends JPanel { * * @return */ - private UIToggleButton initPreviewButton() { - previewToggle = new UIToggleButton(new Icon[]{new LazyIcon("preview"), new LazyIcon("preview")}, true); + private UIButton initPreviewButton() { + previewToggle = new UIButton(); + 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); previewToggle.addActionListener(e -> { // 切换TableModel的脱敏状态 previewTablePane.togglePreviewTableModelDesensitizeStatus(); diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java index 5ee8127b7a..5605f2d911 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java @@ -1,6 +1,8 @@ package com.fr.design.data.datapane.preview.desensitization.view.setting; 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.fr.data.desensitize.base.DesensitizationTableData; import com.fr.data.desensitize.base.TableDataDesensitizationItem; @@ -346,26 +348,10 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter } - private class ParameterValueRenderer extends DefaultTableCellRenderer { + private class ParameterValueRenderer extends FineTableHeaderUI.TableRenderer { private static final long serialVersionUID = 1L; private ValueEditorPane editor; private UILabel disableLable; - public ParameterValueRenderer(int paraUseType) { this(ValueEditorPaneFactory.createVallueEditorPaneWithUseType(paraUseType)); } @@ -243,15 +241,13 @@ public class ParameterTableModel extends UITableModelAdapter public ParameterValueRenderer(ValueEditorPane valueEditorPane) { disableLable = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Set_Paramete_Name")); FineUIStyle.setStyle(disableLable, FineUIStyle.LABEL_WARNING_TIP); - disableLable.setHorizontalAlignment(SwingConstants.LEFT); disableLable.setOpaque(true); - disableLable.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); - disableLable.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor"))); - + disableLable.setHorizontalAlignment(SwingConstants.LEFT); editor = valueEditorPane; } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + JComponent component = ((JComponent) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column)); if (table.isCellEditable(row, column)) { if (value == null) { editor.populate(""); @@ -260,6 +256,8 @@ public class ParameterTableModel extends UITableModelAdapter } return editor; } else { + disableLable.setBorder(component.getBorder()); + disableLable.setBackground(component.getBackground()); return disableLable; } } diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java index 0293386aa1..a3923f6554 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java @@ -1,40 +1,26 @@ package com.fr.design.gui.itableeditorpane; import com.fine.theme.light.ui.FineRoundBorder; +import com.fine.theme.light.ui.FineTableHeaderUI; +import com.fine.theme.light.ui.FineTableScrollBarPaneUI; import com.fine.theme.utils.FineUIScale; -import com.formdev.flatlaf.ui.FlatUIUtils; -import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.general.GeneralUtils; -import com.fr.stable.StringUtils; -import javax.swing.BorderFactory; -import javax.swing.JComponent; -import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; -import javax.swing.SwingConstants; -import javax.swing.UIManager; import javax.swing.event.TableModelListener; -import javax.swing.table.DefaultTableCellRenderer; import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; import java.awt.GridLayout; import java.awt.Insets; -import java.awt.event.AdjustmentEvent; -import java.awt.event.AdjustmentListener; 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; /** * 表格编辑面板,一般是两列.键-值 用泛型实现,用的时候请定义T.model里面的T要一样 @@ -47,7 +33,7 @@ public class UITableEditorPane extends BasicPane { * */ private static final long serialVersionUID = 6855793816972735815L; - protected static JTable editTable; + protected JTable editTable; // 放置action 的按钮. protected UITableModelAdapter tableModel; private String leftLabelName; @@ -91,39 +77,12 @@ public class UITableEditorPane extends BasicPane { controlPane.add(buttonPane, BorderLayout.EAST); controlPane.add(content == null ? l : content, BorderLayout.WEST); - pane.add(column(cell(controlPane), cell(buildScrollTablePane(scrollPane)).weight(1)).getComponent()); - - this.editTable.getTableHeader().setDefaultRenderer(new TableHeaderRenderer()); - this.editTable.setDefaultRenderer(Object.class, new TableRenderer()); + scrollPane.getVerticalScrollBar().setUI(new FineTableScrollBarPaneUI(editTable)); + pane.add(column(10, cell(controlPane), cell(scrollPane).weight(1)).getComponent()); + this.editTable.getTableHeader().setUI(new FineTableHeaderUI()); this.editTable.setRowHeight(FineUIScale.scale(24)); } - /** - * 组合 jtable 和垂直滚动条 - * @param scrollPane - * @return - */ - protected JPanel buildScrollTablePane(JScrollPane scrollPane) { - verticalScrollBar = column( - cell(new UILabel()).with(it -> { - it.setBorder(BorderFactory.createMatteBorder(1, 0, 0, 1, UIManager.getColor("defaultBorderColor"))); - it.setPreferredSize(new Dimension(scrollPane.getVerticalScrollBar().getWidth(), (int) editTable.getTableHeader().getPreferredSize().getHeight())); - }), - cell(scrollPane.getVerticalScrollBar()).weight(1).with(it -> { - it.setBorder(BorderFactory.createMatteBorder(1, 0, 1, 1, UIManager.getColor("defaultBorderColor"))); - }) - ).getComponent(); - scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { - @Override - public void adjustmentValueChanged(AdjustmentEvent e) { - verticalScrollBar.setVisible(editTable.getHeight() > scrollPane.getViewport().getHeight()); - verticalScrollBar.repaint(); - } - }); - - return row(cell(scrollPane).weight(1), cell(verticalScrollBar)).getComponent(); - } - public UITableModelAdapter getTableModel() { return tableModel; } @@ -211,7 +170,7 @@ public class UITableEditorPane extends BasicPane { /** * @return jTable */ - public static JTable getEditTable() { + public JTable getEditTable() { return editTable; } @@ -234,54 +193,4 @@ public class UITableEditorPane extends BasicPane { editTable.getTableHeader().setResizingAllowed(resizingAllowed); } - /** - * 设置 TableHeader 文字左对齐 - */ - public static class TableHeaderRenderer extends DefaultTableCellRenderer { - public TableHeaderRenderer() { - setHorizontalAlignment(SwingConstants.LEFT); - setPreferredSize(new Dimension(this.getWidth(), FineUIScale.scale(24))); - } - - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); - if (column == table.getColumnCount() - 1) { - ((JComponent) component).setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor"))); - } else { - ((JComponent) component).setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor"))); - } - return component; - } - } - - /** - * 设置 Table 表身格式 - */ - public static class TableRenderer extends DefaultTableCellRenderer { - public TableRenderer() { - } - - @Override - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { - Component component = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); - if(component instanceof JLabel) { - String toolTipText = GeneralUtils.objectToString(value); - if (StringUtils.isNotEmpty(toolTipText)) { - ((JLabel) component).setToolTipText(toolTipText); - } - } - if (column == table.getColumnCount() - 1) { - ((JComponent) component).setBorder(BorderFactory.createCompoundBorder( - BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor")), - new ScaledEmptyBorder(0,4,0,0))); - } else { - ((JComponent) component).setBorder(BorderFactory.createCompoundBorder( - BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor")), - new ScaledEmptyBorder(0,4,0,0))); - } - component.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); - return component; - } - } } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DottedLine.java b/designer-base/src/main/java/com/fr/design/mainframe/DottedLine.java index 9382b03f89..4e37a87830 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DottedLine.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DottedLine.java @@ -1 +1 @@ -package com.fr.design.mainframe; import com.fr.design.constants.UIConstants; import com.fr.design.gui.iscrollbar.UIScrollBar; import javax.swing.*; import java.awt.*; import java.awt.geom.GeneralPath; import java.awt.geom.Path2D; /** * Author : daisy * Date: 13-9-11 * Time: 上午10:14 */ public class DottedLine extends JPanel { public static final int HEIGHT = 3; private static final int BLUE_WIDTH = 12;//蓝色线长度,白色线长度是其半 private int direction = UIScrollBar.HORIZONTAL; public DottedLine(int direction, int width) { //水平方向的虚线框 if (direction == UIScrollBar.HORIZONTAL) { this.setPreferredSize(new Dimension(width, HEIGHT)); } else { this.setPreferredSize(new Dimension(HEIGHT, width)); } this.direction = direction; this.setBackground(new Color(255, 255, 255));//设置白色背景 } public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; //如果是水平方向的 if (direction == UIScrollBar.HORIZONTAL) { paintHorizontal(g2d); } else { paintVertical(g2d); } } private void paintHorizontal(Graphics2D g2d) { int totalWidth = getWidth(); int paintX = 0; while (paintX < totalWidth) { int endX = paintX + BLUE_WIDTH; if (endX > totalWidth) { endX = totalWidth; } int[] x = new int[]{paintX, endX, endX, paintX, paintX}; int[] y = new int[]{0, 0, HEIGHT, HEIGHT, 0}; paintBlueArea(g2d, x, y); paintX += BLUE_WIDTH + BLUE_WIDTH / 2; } } private void paintVertical(Graphics2D g2d) { int totalHeight = getHeight(); int paintY = 0; while (paintY < totalHeight) { int endY = paintY + BLUE_WIDTH; if (endY > totalHeight) { endY = totalHeight; } int[] x = new int[]{0, HEIGHT, HEIGHT, 0, 0}; int[] y = new int[]{paintY, paintY, endY, endY, paintY}; paintBlueArea(g2d, x, y); paintY += BLUE_WIDTH + BLUE_WIDTH / 2; } } private void paintBlueArea(Graphics2D g2d, int[] x, int[] y) { g2d.setPaint(UIConstants.DOTTED_LINE_COLOR); GeneralPath generalPath = new GeneralPath(Path2D.WIND_EVEN_ODD, x.length); generalPath.moveTo(x[0], y[0]); for (int index = 1; index < x.length; index++) { generalPath.lineTo(x[index], y[index]); } generalPath.closePath(); g2d.fill(generalPath); } } \ No newline at end of file +package com.fr.design.mainframe; import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.design.constants.UIConstants; import com.fr.design.gui.iscrollbar.UIScrollBar; import javax.swing.*; import java.awt.*; import java.awt.geom.GeneralPath; import java.awt.geom.Path2D; /** * Author : daisy * Date: 13-9-11 * Time: 上午10:14 */ public class DottedLine extends JPanel { public static final int HEIGHT = 3; private static final int BLUE_WIDTH = 12;//蓝色线长度,白色线长度是其半 private int direction = UIScrollBar.HORIZONTAL; public DottedLine(int direction, int width) { //水平方向的虚线框 if (direction == UIScrollBar.HORIZONTAL) { this.setPreferredSize(new Dimension(width, HEIGHT)); } else { this.setPreferredSize(new Dimension(HEIGHT, width)); } this.direction = direction; this.setBackground(new Color(255, 255, 255));//设置白色背景 } public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; //如果是水平方向的 if (direction == UIScrollBar.HORIZONTAL) { paintHorizontal(g2d); } else { paintVertical(g2d); } } private void paintHorizontal(Graphics2D g2d) { int totalWidth = getWidth(); int paintX = 0; while (paintX < totalWidth) { int endX = paintX + BLUE_WIDTH; if (endX > totalWidth) { endX = totalWidth; } int[] x = new int[]{paintX, endX, endX, paintX, paintX}; int[] y = new int[]{0, 0, HEIGHT, HEIGHT, 0}; paintBlueArea(g2d, x, y); paintX += BLUE_WIDTH + BLUE_WIDTH / 2; } } private void paintVertical(Graphics2D g2d) { int totalHeight = getHeight(); int paintY = 0; while (paintY < totalHeight) { int endY = paintY + BLUE_WIDTH; if (endY > totalHeight) { endY = totalHeight; } int[] x = new int[]{0, HEIGHT, HEIGHT, 0, 0}; int[] y = new int[]{paintY, paintY, endY, endY, paintY}; paintBlueArea(g2d, x, y); paintY += BLUE_WIDTH + BLUE_WIDTH / 2; } } private void paintBlueArea(Graphics2D g2d, int[] x, int[] y) { g2d.setPaint(FlatUIUtils.getUIColor("DottedLine.defaultColor", new Color(37,118,239,1))); GeneralPath generalPath = new GeneralPath(Path2D.WIND_EVEN_ODD, x.length); generalPath.moveTo(x[0], y[0]); for (int index = 1; index < x.length; index++) { generalPath.lineTo(x[index], y[index]); } generalPath.closePath(); g2d.fill(generalPath); } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java index 5810a02dd5..39c8631a0f 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java @@ -366,6 +366,7 @@ public abstract class AbstractSupportSelectTablePane exte setColumnClass(classes); this.setDefaultEditor(Boolean.class, new BooleanEditor()); this.setDefaultRenderer(Boolean.class, new BooleanRenderer()); + this.setDefaultRenderer(UILabel.class, new ToolTipTableCellRenderer()); this.createTable().getColumnModel().getColumn(0).setCellRenderer(new BooleanRenderer()); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ToolTipTableCellRenderer.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ToolTipTableCellRenderer.java index bfb10e2057..7cfb7bd550 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ToolTipTableCellRenderer.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/ToolTipTableCellRenderer.java @@ -1,11 +1,11 @@ package com.fr.design.mainframe.vcs.ui; +import com.fine.theme.light.ui.FineTableHeaderUI; import com.fr.general.GeneralUtils; import com.fr.stable.StringUtils; import javax.swing.JTable; import javax.swing.JLabel; -import javax.swing.table.DefaultTableCellRenderer; import java.awt.*; @@ -16,7 +16,7 @@ import java.awt.*; * @since 11.0 * Created on 2023/7/21 */ -public class ToolTipTableCellRenderer extends DefaultTableCellRenderer { +public class ToolTipTableCellRenderer extends FineTableHeaderUI.TableRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsNewPane.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsNewPane.java index c58f496a2e..f0615bfa49 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsNewPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsNewPane.java @@ -127,6 +127,7 @@ public class VcsNewPane extends RecyclePane { this.operatorPane = createOperatorPane(); this.model.setDefaultEditor(VcsOperatorPane.class, new VcsCellEditor(createOperatorPane())); this.model.setDefaultRenderer(VcsOperatorPane.class, new VcsCellRender(createOperatorPane())); + this.model.setDefaultRenderer(UILabel.class, new ToolTipTableCellRenderer()); } diff --git a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java index 605d84b40e..cbf69a64d5 100644 --- a/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java +++ b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java @@ -3,6 +3,7 @@ package com.fr.design.write.submit; import com.fine.swing.ui.layout.Layouts; import com.fine.theme.icon.LazyIcon; import com.fine.swing.ui.layout.Spacer; +import com.fine.theme.light.ui.FineTableHeaderUI; import com.fine.theme.utils.FineUIScale; import com.fine.theme.utils.FineUIUtils; import com.fr.base.BaseFormula; @@ -54,12 +55,15 @@ import com.fr.write.config.InsertConfig; import com.fr.write.config.IntelliDMLConfig; import com.fr.write.config.UpdateConfig; +import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.AbstractCellEditor; +import javax.swing.BorderFactory; import javax.swing.DefaultCellEditor; import javax.swing.DefaultComboBoxModel; import javax.swing.Icon; +import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; @@ -69,17 +73,14 @@ import javax.swing.JTree; import javax.swing.ListSelectionModel; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; +import javax.swing.UIManager; +import javax.swing.plaf.UIResource; import javax.swing.table.AbstractTableModel; -import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellEditor; +import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.tree.DefaultTreeCellRenderer; import javax.swing.tree.DefaultTreeModel; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusAdapter; @@ -169,9 +170,7 @@ public class DBManipulationPane extends BasicBeanPane { keyColumnValuesTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); keyColumnValuesTable.setPreferredScrollableViewportSize(FineUIScale.scale(new Dimension(280, 150))); keyColumnValuesTable.setShowHorizontalLines(true); - DefaultTableCellRenderer headerRenderer = new DefaultTableCellRenderer(); - headerRenderer.setHorizontalAlignment(SwingConstants.LEFT); - keyColumnValuesTable.getTableHeader().setDefaultRenderer(headerRenderer); + keyColumnValuesTable.getTableHeader().setUI(new FineTableHeaderUI()); northPane.add(column(10, cell(FineUIUtils.wrapComponentWithTitle(typePane, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Write_Submit_Type"))), @@ -697,7 +696,7 @@ public class DBManipulationPane extends BasicBeanPane { private void initJTableColumn() { TableColumn column0 = this.keyColumnValuesTable.getColumnModel().getColumn(0); column0.setMaxWidth(50); - column0.setCellRenderer(new ColumnNameTableCellRenderer()); + column0.setCellRenderer(new BooleanRenderer()); TableColumn column1 = this.keyColumnValuesTable.getColumnModel().getColumn(1); column1.setCellRenderer(new ColumnNameTableCellRenderer()); @@ -1183,7 +1182,7 @@ public class DBManipulationPane extends BasicBeanPane { /* * ColumnNameTableCellRenderer */ - public static class ColumnNameTableCellRenderer extends DefaultTableCellRenderer { + public static class ColumnNameTableCellRenderer extends FineTableHeaderUI.TableRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); @@ -1199,7 +1198,7 @@ public class DBManipulationPane extends BasicBeanPane { /* * ColumnValueTableCellRenderer */ - private static class ColumnValueTableCellRenderer extends DefaultTableCellRenderer { + private static class ColumnValueTableCellRenderer extends FineTableHeaderUI.TableRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); @@ -1220,4 +1219,25 @@ public class DBManipulationPane extends BasicBeanPane { return this; } } + + /** + * checkBox 的 cellRender + */ + public static class BooleanRenderer extends UICheckBox implements TableCellRenderer, UIResource { + public BooleanRenderer() { + super(); + setHorizontalAlignment(JLabel.CENTER); + setBorderPainted(true); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + setSelected((value != null && ((Boolean) value).booleanValue())); + setUI(getUICheckBoxUI()); + setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor"))); + setBackground(Color.WHITE); + return this; + } + } } 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 5310524e57..b78c2c2806 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 @@ -893,7 +893,7 @@ Table.scrollPaneBorder = com.formdev.flatlaf.ui.FlatBorder Table.ascendingSortIcon = com.formdev.flatlaf.icons.FlatAscendingSortIcon Table.descendingSortIcon = com.formdev.flatlaf.icons.FlatDescendingSortIcon Table.sortIconColor = @icon -Table.cellMargins = 2,3,2,3 +Table.cellMargins = 2,6,2,3 Table.cellFocusColor = @cellFocusColor Table.cellNoFocusBorder = com.formdev.flatlaf.ui.FlatTableCellBorder$Default Table.focusCellHighlightBorder = com.formdev.flatlaf.ui.FlatTableCellBorder$Focused @@ -908,13 +908,14 @@ Table.dropCellForeground = @dropCellForeground Table.dropLineColor = @dropLineColor Table.dropLineShortColor = @dropLineShortColor Table.gridColor = darken($Table.background,8%) +Table.default.background = $default.background #---- TableHeader ---- TableHeader.height = 25 TableHeader.cellBorder = com.formdev.flatlaf.ui.FlatTableHeaderBorder -TableHeader.cellMargins = 2,3,2,3 +TableHeader.cellMargins = 2,6,2,3 TableHeader.focusCellBackground = $TableHeader.background TableHeader.background = @componentBackground TableHeader.showTrailingVerticalLine = false @@ -1143,6 +1144,10 @@ Tree.icon.closedColor = @icon Tree.icon.openColor = @icon Tree.hash = darken($Tree.background,10%) +# ---- DottedLine ---- +DottedLine.defaultColor=@BrandColor + + #---- West ---- West.border = $defaultBorderColor #---- ExpandablePane ---- @@ -1333,3 +1338,6 @@ CellOtherSetPane.height=$Component.defaultHeight [style]Tree.pureTree = \ background: $fill.normal + +[style]Table.defaultTable = \ + background: $Table.default.background \ No newline at end of file diff --git a/designer-base/src/test/java/com/fr/design/gui/storybook/components/TableStoryBoard.java b/designer-base/src/test/java/com/fr/design/gui/storybook/components/TableStoryBoard.java new file mode 100644 index 0000000000..e2ff6554f6 --- /dev/null +++ b/designer-base/src/test/java/com/fr/design/gui/storybook/components/TableStoryBoard.java @@ -0,0 +1,111 @@ +package com.fr.design.gui.storybook.components; + +import com.fine.theme.light.ui.FineRoundBorder; +import com.fine.theme.light.ui.FineTableHeaderUI; +import com.fine.theme.light.ui.FineTableScrollBarPaneUI; +import com.fr.design.gui.icontainer.UIScrollPane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.storybook.StoryBoard; + +import javax.swing.BorderFactory; +import javax.swing.JCheckBox; +import javax.swing.JComponent; +import javax.swing.JLabel; +import javax.swing.JTable; +import javax.swing.UIManager; +import javax.swing.plaf.UIResource; +import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableCellRenderer; + +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; + +import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; + +public class TableStoryBoard extends StoryBoard { + public TableStoryBoard() { + super("表格"); + + DefaultTableModel model1 = new DefaultTableModel(new Object[][] { + {"1", "Alice", "Female", "Engineering"}, + {"2", "Bob", "Male", "Marketing"}, + {"3", "Carol", "Female", "Design"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"}, + {"4", "Dave", "Male", "Finance"} + }, new String[] {"ID", "Name", "Gender", "Department"}); + JTable table1 = new JTable(model1); + table1.getTableHeader().setUI(new FineTableHeaderUI()); + + DefaultTableModel model2 = new DefaultTableModel(new Object[][] { + {"1", "Alice", "Female", "Engineering"}, + {"2", "Bob", "Male", "Marketing"}, + {"3", "Carol", "Female", "Design"}, + {"4", "Dave", "Male", "Finance"} + }, new String[] {"ID", "Name", "Gender", "Department"}); + JTable table2 = new JTable(model2); + table2.getTableHeader().setUI(new FineTableHeaderUI()); + + DefaultTableModel model3 = new DefaultTableModel(new Object[][] { + {false, "1", "Alice", "Female", "Engineering"}, + {false, "2", "Bob", "Male", "Marketing"}, + {false, "3", "Carol", "Female", "Design"}, + {false, "4", "Dave", "Male", "Finance"} + }, new String[] {"选中", "ID", "Name", "Gender", "Department"}) { + private static final long serialVersionUID = 1L; + Class[] types = new Class[]{Boolean.class, UILabel.class, UILabel.class, UILabel.class, UILabel.class}; + + public Class getColumnClass(int columnIndex) { + return types[columnIndex]; + } + }; + JTable table3 = new JTable(model3); + table3.getTableHeader().setUI(new FineTableHeaderUI()); + table3.getTableHeader().getColumnModel().getColumn(0).setCellRenderer(new BooleanRenderer()); + + add(column(20, cell(new UIScrollPane(table1)).with(this::setFixSize).with(it -> it.getVerticalScrollBar().setUI(new FineTableScrollBarPaneUI(table1))), + cell(new UIScrollPane(table2)).with(this::setFixSize), + cell(new UIScrollPane(table3)).with(this::setFixSize)).getComponent()); + } + + + private void setFixSize(JComponent component) { + component.setPreferredSize(new Dimension(component.getWidth(), 150)); + component.setBorder(new FineRoundBorder()); + } + + public static class BooleanRenderer extends JCheckBox implements TableCellRenderer, UIResource { + public BooleanRenderer() { + super(); + setHorizontalAlignment(JLabel.CENTER); + setOpaque(false); + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, + boolean isSelected, boolean hasFocus, int row, int column) { + setSelected((value != null && ((Boolean) value).booleanValue())); + setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor"))); + setBackground(Color.WHITE); + return this; + } + } +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java index a549c0fa5e..ef1c13e9c7 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceSouthPanel.java @@ -3,7 +3,6 @@ package com.fr.design.actions.replace.ui; import javax.swing.BorderFactory; import javax.swing.RowSorter; import javax.swing.table.TableRowSorter; -import java.awt.Color; /** * 下面板 diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java index a84faf432c..87210a62d9 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableButton.java @@ -1,17 +1,8 @@ package com.fr.design.actions.replace.ui; import com.fine.theme.icon.LazyIcon; -import com.fr.base.TRL; import com.fr.design.actions.replace.info.base.ITContent; -import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.gui.ibutton.UIButton; -import com.fr.design.i18n.Toolkit; -import com.fr.design.mainframe.DesignerContext; -import com.fr.design.mainframe.JTemplate; -import com.fr.file.FILE; -import com.fr.file.FILEFactory; -import com.fr.general.GeneralUtils; -import com.fr.stable.StringUtils; import javax.swing.AbstractCellEditor; @@ -21,10 +12,6 @@ import javax.swing.UIManager; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import java.awt.Component; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import static com.fr.design.actions.replace.ui.ITTableEditorPane.getEditTable; /** * 放进表格中的定位按钮 diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditor.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditor.java index 527a74b1ed..ce571d193f 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditor.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditor.java @@ -60,7 +60,6 @@ public class ITTableEditor extends UITableModelAdapter { }); - this.setDefaultRenderer(UILabel.class, new UITableEditorPane.TableRenderer()); this.setDefaultEditor(ITTableButton.class, new ITTableButton()); this.setDefaultRenderer(ITTableButton.class, new ITTableButton()); this.setDefaultEditor(Boolean.class, new ITBooleanEditor()); diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java index bb36379e02..132f1cd85c 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITTableEditorPane.java @@ -1,21 +1,25 @@ package com.fr.design.actions.replace.ui; 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.FineUIStyle; import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.base.TRL; import com.fr.design.actions.replace.info.base.ITContent; +import com.fr.design.dialog.BasicPane; import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.itableeditorpane.UITableEditAction; -import com.fr.design.gui.itableeditorpane.UITableEditorPane; import com.fr.design.gui.itableeditorpane.UITableModelAdapter; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.share.ui.base.MouseClickListener; import com.fr.general.GeneralUtils; import com.fr.stable.StringUtils; +import sun.swing.DefaultLookup; import javax.swing.BorderFactory; @@ -28,10 +32,8 @@ import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; -import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; -import java.awt.Dimension; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.List; @@ -47,13 +49,15 @@ import static com.fine.swing.ui.layout.Layouts.cell; * @since * Created On */ -public class ITTableEditorPane extends UITableEditorPane { +public class ITTableEditorPane extends BasicPane { + public static JTable editTable; + private UITableModelAdapter tableModel; private String leftLabelName; private JPanel buttonPane; public ITTableEditorPane(UITableModelAdapter model) { - super(model); - + this.tableModel = model; + this.initComponent(model.createAction()); } @@ -65,6 +69,7 @@ public class ITTableEditorPane extends UITableEditorPane { public void initComponent(UITableEditAction[] action) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); editTable = tableModel.createTable(); + FineUIStyle.setStyle(editTable, FineUIStyle.DEFAULT_TABLE); editTable.addMouseListener(new MouseClickListener() { @Override public void mouseClicked(MouseEvent e) { @@ -88,9 +93,10 @@ public class ITTableEditorPane extends UITableEditorPane { } }); - UIScrollPane scrollPane = new UIScrollPane(editTable); - add(cell(buildScrollTablePane(scrollPane)).weight(1).getComponent()); + UIScrollPane scrollPane = new UIScrollPane(editTable); + scrollPane.getVerticalScrollBar().setUI(new FineTableScrollBarPaneUI(editTable)); + add(cell(scrollPane).weight(1).getComponent()); } /** @@ -136,7 +142,7 @@ public class ITTableEditorPane extends UITableEditorPane { /** * 表头渲染 */ - public static class ITHeaderRenderer implements TableCellRenderer { + public static class ITHeaderRenderer extends FineTableHeaderUI.TableHeaderRenderer { JTableHeader tableHeader; final UICheckBox selectBox; private boolean ascSort = true; @@ -221,8 +227,8 @@ public class ITTableEditorPane extends UITableEditorPane { component.setForeground(tableHeader.getForeground()); component.setBackground(tableHeader.getBackground()); component.setFont(tableHeader.getFont()); - if (column == table.getColumnCount() - 1) { - component.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor"))); + if (column != ITReplaceSouthPanel.CHECKBOX_INDEX) { + component.setBorder(DefaultLookup.getBorder(this, this.ui, "TableHeader.cellBorder")); } else { component.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, UIManager.getColor("defaultBorderColor"))); } @@ -239,7 +245,7 @@ public class ITTableEditorPane extends UITableEditorPane { * @param table */ public static void makeFace(JTable table) { - table.getTableHeader().setBackground(FlatUIUtils.getUIColor("TableHeader.background", Color.WHITE)); + table.getTableHeader().setUI(new FineTableHeaderUI()); table.getTableHeader().setDefaultRenderer(new ITHeaderRenderer(table)); } diff --git a/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java b/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java index c55f9a6974..51c23b615a 100644 --- a/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java +++ b/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java @@ -3,6 +3,7 @@ package com.fr.design.cell.smartaction; import java.awt.BorderLayout; import java.awt.Window; +import com.fine.theme.light.ui.FineTableHeaderUI; import com.fr.design.gui.ilable.UILabel; import javax.swing.JScrollPane; @@ -73,9 +74,7 @@ public abstract class SmartJTablePane extends BasicPane { } } }); - DefaultTableCellRenderer headerRenderer = new DefaultTableCellRenderer(); - headerRenderer.setHorizontalAlignment(SwingConstants.LEFT); - table.getTableHeader().setDefaultRenderer(headerRenderer); + table.getTableHeader().setUI(new FineTableHeaderUI()); setCellRenderer(); actionReportPane.addSelectionChangeListener(gridSelectionChangeL); diff --git a/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java b/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java index 38b4546c43..7ced9bf8e9 100644 --- a/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java +++ b/designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java @@ -1,6 +1,7 @@ package com.fr.design.write.submit; import com.fine.theme.icon.LazyIcon; +import com.fine.theme.light.ui.FineTableHeaderUI; import com.fr.cache.list.IntList; import com.fr.data.ClassSubmitJob; import com.fr.design.actions.UpdateAction; @@ -40,7 +41,6 @@ import javax.swing.JTable; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; -import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableColumn; import java.awt.BorderLayout; import java.awt.Component; @@ -355,7 +355,7 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane { column0.setMaxWidth(LEFT_COLUMN_MAX_WIDTH); ColumnNameTableCellRenderer cellRenderer = new ColumnNameTableCellRenderer(); cellRenderer.setHorizontalAlignment(SwingConstants.LEFT); - column0.setCellRenderer(cellRenderer); + column0.setCellRenderer(new BooleanRenderer()); /* * 设置Column 1的Renderer */ @@ -554,7 +554,7 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane { /* * ColumnValueTableCellRenderer */ - private class SelectedColumnValueTableCellRenderer extends DefaultTableCellRenderer { + private class SelectedColumnValueTableCellRenderer extends FineTableHeaderUI.TableRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); @@ -577,7 +577,7 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane { } } - private class ColumnRowGroupCellRenderer2 extends DefaultTableCellRenderer { + private class ColumnRowGroupCellRenderer2 extends FineTableHeaderUI.TableRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); From c0d9cada810e32518680413547a0136f10bdac3b Mon Sep 17 00:00:00 2001 From: "Richard.Fang" Date: Mon, 12 Aug 2024 17:25:48 +0800 Subject: [PATCH 2/5] =?UTF-8?q?REPORT-127436=E3=80=90NewUI=E3=80=91fix:?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E9=AA=8C=E6=94=B6=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/file/OpenRecentReportMenuDef.java | 4 +- .../design/actions/file/SwitchExistEnv.java | 4 +- .../fr/design/constants/LayoutConstants.java | 4 ++ .../datapane/TableDataCreatorProducer.java | 4 ++ .../data/datapane/TreeTableDataDictPane.java | 46 +++++++++++-------- .../tabledatapane/FileTableDataPane.java | 2 +- .../AbstractTemplateServerSettingPane.java | 9 ++-- .../com/fr/design/editor/ValueEditorPane.java | 19 ++++++-- .../gui/frpane/EditingStringListPane.java | 9 +--- .../ImageBackgroundQuickPane.java | 8 ++-- .../TextureBackgroundQuickPane.java | 17 +++++-- .../mainframe/toolbar/ToolBarMenuDock.java | 34 ++++++-------- .../action/RemoteDesignAuthManagerAction.java | 4 +- .../com/fr/design/report/WatermarkPane.java | 5 +- .../src/main/java/com/fr/env/EnvListPane.java | 5 +- .../com/fine/theme/icon/cell/cellSelect.svg | 16 +++++++ .../theme/icon/cell/cellSelect_disable.svg | 16 +++++++ .../filetree/filetype/txtFile_disable.svg | 8 ++++ .../com/fine/theme/icon/toolbar/createCpt.svg | 12 ++--- .../theme/icon/toolbar/createCpt_disable.svg | 12 ++--- .../fine/theme/light/ui/fine_light.icon.json | 9 ++++ .../com/fr/design/actions/NewFormAction.java | 3 +- .../java/com/fr/design/mainframe/JForm.java | 3 +- .../online/OnlineWidgetPopupPreviewPane.java | 4 +- .../file/export/ExcelExportAction.java | 4 +- .../file/export/PageExcelExportAction.java | 4 +- .../export/PageToSheetExcelExportAction.java | 4 +- .../actions/file/export/TextExportAction.java | 4 +- .../server/TemplateThemeManagerAction.java | 4 +- .../fr/design/expand/ExpandFatherPane.java | 2 +- .../design/headerfooter/HeaderFooterPane.java | 6 +-- .../com/fr/design/mainframe/JWorkBook.java | 6 +-- .../cell/settingpane/CellExpandAttrPane.java | 11 +++-- .../cell/settingpane/CellOtherSetPane.java | 8 ++-- .../design/sort/common/SortColumnRowPane.java | 5 +- .../sort/common/SortUIExpandablePane.java | 14 ++++-- .../expressionpane/CustomSequencePane.java | 10 ++-- .../fr/design/webattr/PageToolBarPane.java | 17 ++----- .../fr/design/webattr/PageWebSettingPane.java | 18 +++----- .../fr/design/webattr/ServerFitAttrPane.java | 1 - .../com/fr/design/webattr/WebCssPane.java | 8 ++-- .../java/com/fr/design/webattr/WebJsPane.java | 5 +- .../fr/design/webattr/WriteToolBarPane.java | 9 ++-- .../main/java/com/fr/start/MainDesigner.java | 13 +++--- 44 files changed, 234 insertions(+), 176 deletions(-) create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_disable.svg mode change 100755 => 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg mode change 100755 => 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg diff --git a/designer-base/src/main/java/com/fr/design/actions/file/OpenRecentReportMenuDef.java b/designer-base/src/main/java/com/fr/design/actions/file/OpenRecentReportMenuDef.java index 7533cb133a..799594c4e1 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/OpenRecentReportMenuDef.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/OpenRecentReportMenuDef.java @@ -1,10 +1,10 @@ package com.fr.design.actions.file; +import com.fine.theme.icon.LazyIcon; import java.awt.event.ActionEvent; import java.io.File; import java.util.List; -import com.fr.base.BaseUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.actions.UpdateAction; import com.fr.design.gui.imenu.UIMenu; @@ -62,7 +62,7 @@ public class OpenRecentReportMenuDef extends MenuDef { public OpenRecentReportAction(String cptName) { this.setName(cptName); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/base/images/oem/logo.png")); + this.setSmallIcon(new LazyIcon("logo")); } /** diff --git a/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java b/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java index accb907e20..25070013f3 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java @@ -46,11 +46,11 @@ public class SwitchExistEnv extends MenuDef { DesignerWorkspaceInfo env = DesignerEnvManager.getEnvManager().getWorkspaceInfo(envName); switch (env.getType()) { case Local: { - this.setSmallIcon("com/fr/design/images/data/bind/localconnect"); + this.setSmallIcon(new LazyIcon("localConnect")); break; } case Remote: { - this.setSmallIcon("com/fr/design/images/data/bind/distanceconnect"); + this.setSmallIcon(new LazyIcon("remoteConnect")); break; } } diff --git a/designer-base/src/main/java/com/fr/design/constants/LayoutConstants.java b/designer-base/src/main/java/com/fr/design/constants/LayoutConstants.java index 13bf91003c..8b2fd695a0 100644 --- a/designer-base/src/main/java/com/fr/design/constants/LayoutConstants.java +++ b/designer-base/src/main/java/com/fr/design/constants/LayoutConstants.java @@ -17,6 +17,10 @@ public class LayoutConstants { * 水平间隙 */ public static final int HGAP_SMALL = 1; + /** + * 水平间隙 + */ + public static final int HGAP_MEDIUM = 2; /** * 水平间隙 */ diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java index f452784acc..1e86bdc6f3 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java @@ -84,6 +84,10 @@ public class TableDataCreatorProducer { return merge(creators, ExtraDesignClassManager.getInstance().getReportTableDataCreators()); } + /** + * 服务器数据集 + * @return TableDataNameObjectCreator[] + */ public TableDataNameObjectCreator[] createServerTableDataCreator() { TableDataNameObjectCreator dataBase = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_DS_Database_Query"), new LazyIcon("server_database"), DBTableData.class, diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java index 910a4c00c2..040c0ce9fb 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java @@ -34,6 +34,7 @@ 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.swing.ui.layout.Layouts.fix; public class TreeTableDataDictPane extends BasicPane implements Previewable { @@ -52,6 +53,7 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable { private ValueEditorPane originFieldDependsOnParentPane; private ValueEditorPane parentFieldPane; private ValueEditorPane originFieldDependsOnLengthPane; + private static final double TITLE_RATIO = 0.2; public TreeTableDataDictPane() { this(StringUtils.EMPTY); @@ -69,13 +71,13 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable { } }); JPanel tableFlowPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - tableFlowPane.add(row(LayoutConstants.HGAP_LARGE, - cell(selectTableDataLabel).weight(0.12), + tableFlowPane.add(row( + cell(selectTableDataLabel).weight(TITLE_RATIO), row(LayoutConstants.HGAP_LARGE, - cell(tableDataNameComboBox).weight(0.9), - cell(new PreviewLabel(this)).weight(0.1) - ).weight(0.3), - flex(0.58) + cell(tableDataNameComboBox).weight(1), + cell(new PreviewLabel(this)) + ).weight(0.4), + flex(0.6 - TITLE_RATIO) ).getComponent()); //中心面板 @@ -118,23 +120,27 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable { makeParentEnable(); //树数据集面板 - centerPane.add(column(10, + centerPane.add(column( cell(parentMarkRadio), - row(LayoutConstants.HGAP_LARGE, - cell(originFieldDependsOnParentLabel).weight(0.12), - cell(originFieldDependsOnParentPane).weight(0.3), - flex(0.58) + fix(10), + row( + cell(originFieldDependsOnParentLabel).weight(TITLE_RATIO), + cell(originFieldDependsOnParentPane).weight(0.4), + flex(0.6 - TITLE_RATIO) ), - row(LayoutConstants.HGAP_LARGE, - cell(parentFieldLabel).weight(0.12), - cell(parentFieldPane).weight(0.3), - flex(0.58) + fix(6), + row( + cell(parentFieldLabel).weight(TITLE_RATIO), + cell(parentFieldPane).weight(0.4), + flex(0.6 - TITLE_RATIO) ), + fix(20), cell(lengthMarkRadio), - row(LayoutConstants.HGAP_LARGE, - cell(originFieldDependsOnLengthLabel).weight(0.12), - cell(originFieldDependsOnLengthPane).weight(0.3), - flex(0.58) + fix(10), + row( + cell(originFieldDependsOnLengthLabel).weight(TITLE_RATIO), + cell(originFieldDependsOnLengthPane).weight(0.4), + flex(0.6 - TITLE_RATIO) ) ).getComponent()); @@ -172,7 +178,7 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable { } }); - this.add(column(LayoutConstants.VERTICAL_GAP, cell(tableFlowPane),cell(centerPane), cell(previewPanel)).getComponent()); + this.add(column(LayoutConstants.VGAP_HUGER, cell(tableFlowPane),cell(centerPane), cell(previewPanel)).getComponent()); } protected void setTableDataNameComboBox(String treeName) { diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java index 93cd98ffcd..972c65d30c 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java @@ -219,7 +219,7 @@ public class FileTableDataPane extends AbstractTableDataPane { cell(urlText).weight(urlWidthRatio), cell(testConnection).weight(0.75 - urlWidthRatio) ), - cell(tips).weight(1) + cell(tips) ).with(it -> it.setBorder(new ScaledEmptyBorder(0,0,0,10))).getComponent(); } diff --git a/designer-base/src/main/java/com/fr/design/dialog/AbstractTemplateServerSettingPane.java b/designer-base/src/main/java/com/fr/design/dialog/AbstractTemplateServerSettingPane.java index 6ae979c303..87fc1efa3c 100644 --- a/designer-base/src/main/java/com/fr/design/dialog/AbstractTemplateServerSettingPane.java +++ b/designer-base/src/main/java/com/fr/design/dialog/AbstractTemplateServerSettingPane.java @@ -1,8 +1,6 @@ package com.fr.design.dialog; -import com.fine.theme.utils.FineUIScale; import com.formdev.flatlaf.util.ScaledEmptyBorder; -import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.utils.gui.GUICoreUtils; @@ -15,6 +13,7 @@ import java.awt.event.ItemListener; 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.swing.ui.layout.Layouts.flex; /** * 封装了"为该模版单独设置、采用服务器设置"选项功能的设置面板 @@ -42,10 +41,10 @@ public abstract class AbstractTemplateServerSettingPane extends BasicPane { chooseComboBox.addItemListener(itemListener); //以下设置,部分面板通用 UILabel belowSetLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Blow_Set")); - buttonPane = row( - FineUIScale.scale(32), + buttonPane = row(32, cell(belowSetLabel), - cell(chooseComboBox) + cell(chooseComboBox).weight(1), + flex() ).with(it -> it.setBorder(new ScaledEmptyBorder(0,10,0,0))).getComponent(); this.setLayout(new BorderLayout()); this.contentPane = getContentPane(); diff --git a/designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java b/designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java index 354dc0313e..5822570e1a 100644 --- a/designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java +++ b/designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java @@ -1,5 +1,6 @@ package com.fr.design.editor; +import com.fine.theme.utils.FineUIScale; import com.fr.base.BaseFormula; import com.fr.design.DesignerEnvManager; import com.fr.design.dialog.BasicPane; @@ -22,8 +23,16 @@ import com.fr.general.ComparatorUtils; import com.fr.stable.StringUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Color; +import java.awt.Rectangle; +import java.awt.BorderLayout; +import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; @@ -61,13 +70,13 @@ public class ValueEditorPane extends BasicPane implements UIObserver, GlobalName this.cards = cards; // Frank:布局 - this.setLayout(new BorderLayout(2, 0)); + this.setLayout(new BorderLayout()); centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); arrowButton = new UIButton(); arrowButton.set4ToolbarButton(); setCurrentEditor(0); - centerPane.setPreferredSize(new Dimension(centerPaneWidth, centerPane.getPreferredSize().height)); - arrowButton.setPreferredSize(new Dimension(20, centerPane.getPreferredSize().height)); + centerPane.setPreferredSize(new Dimension(FineUIScale.scale(centerPaneWidth), centerPane.getPreferredSize().height)); + arrowButton.setPreferredSize(new Dimension(FineUIScale.scale(24), centerPane.getPreferredSize().height)); final Color beforeColor = arrowButton.getBackground(); menu = createPopMenu(); diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/EditingStringListPane.java b/designer-base/src/main/java/com/fr/design/gui/frpane/EditingStringListPane.java index 63d1d8e69f..cd9f7c0367 100644 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/EditingStringListPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/EditingStringListPane.java @@ -98,13 +98,8 @@ public abstract class EditingStringListPane extends BasicBeanPane> moveDownButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Utils_Move_Down"), new LazyIcon("move_down")); moveDownButton.setDisabledIcon(new LazyIcon("move_down").disabled()); - return row(LayoutConstants.HORIZONTAL_GAP, - flex(), - cell(addButton), - cell(modifyButton), - cell(removeButton), - cell(moveUpButton), - cell(moveDownButton) + return row(flex(), + row(6, cell(addButton), cell(modifyButton), cell(removeButton), cell(moveUpButton), cell(moveDownButton)) ).getComponent(); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ImageBackgroundQuickPane.java b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ImageBackgroundQuickPane.java index e1496ff3d6..3a6f619e85 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ImageBackgroundQuickPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ImageBackgroundQuickPane.java @@ -1,10 +1,10 @@ package com.fr.design.mainframe.backgroundpane; +import com.fine.theme.light.ui.FineRoundBorder; +import com.fine.theme.utils.FineUIScale; import com.fr.base.Style; import com.fr.base.background.ImageFileBackground; import com.fr.base.frpx.pack.PictureCollection; -import com.fr.design.border.UIRoundedBorder; -import com.fr.design.constants.UIConstants; import com.fr.design.event.UIObserverListener; import com.fr.design.gui.frpane.ImgChooseWrapper; import com.fr.design.gui.ibutton.UIButton; @@ -52,8 +52,8 @@ public class ImageBackgroundQuickPane extends BackgroundQuickPane { previewPane = new ImagePreviewPane(); JPanel borderPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - borderPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 5)); - borderPane.setPreferredSize(new Dimension(0, 145)); + borderPane.setBorder(new FineRoundBorder()); + borderPane.setPreferredSize(FineUIScale.scale(new Dimension(0, 145))); borderPane.add(previewPane, BorderLayout.CENTER); this.add(borderPane, BorderLayout.NORTH); previewPane.addChangeListener(imageSizeChangeListener); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/TextureBackgroundQuickPane.java b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/TextureBackgroundQuickPane.java index e9aed06acd..4597f8fa93 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/TextureBackgroundQuickPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/TextureBackgroundQuickPane.java @@ -1,19 +1,28 @@ package com.fr.design.mainframe.backgroundpane; +import com.fine.theme.light.ui.FineRoundBorder; import com.fr.base.GraphHelper; import com.fr.base.background.TextureBackground; import com.fr.design.constants.UIConstants; -import com.fr.design.border.UIRoundedBorder; import com.fr.design.event.UIObserverListener; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.general.Background; import com.fr.general.ComparatorUtils; -import javax.swing.*; +import javax.swing.JPanel; +import javax.swing.ButtonGroup; +import javax.swing.JToggleButton; +import javax.swing.BorderFactory; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; +import java.awt.TexturePaint; +import java.awt.BorderLayout; +import java.awt.GridLayout; +import java.awt.Dimension; +import java.awt.Cursor; +import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Rectangle2D; @@ -27,7 +36,7 @@ public class TextureBackgroundQuickPane extends BackgroundQuickPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); JPanel borderPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - borderPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 5)); + borderPane.setBorder(new FineRoundBorder()); JPanel contentPane = new JPanel(); borderPane.add(contentPane, BorderLayout.NORTH); this.add(borderPane, BorderLayout.NORTH); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 83ca502a1e..b5d45a3202 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -406,8 +406,8 @@ public abstract class ToolBarMenuDock { insertMenu(menuDef, MenuHandler.FILE); return menuDef; } + // 文件 MenuDef menuDef = new MenuDef(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_File"), 'F'); - ShortCut[] scs = new ShortCut[0]; if (!DesignerMode.isAuthorityEditing()) { scs = createNewFileShortCuts(); @@ -415,12 +415,13 @@ public abstract class ToolBarMenuDock { if (!ArrayUtils.isEmpty(scs)) { menuDef.addShortCut(scs); } - + // 打开 menuDef.addShortCut(openTemplateAction()); - + // 最近打开的 menuDef.addShortCut(new OpenRecentReportMenuDef()); if (!DesignModeContext.isDuchampMode()) { + // 关闭 addCloseCurrentTemplateAction(menuDef); } @@ -491,31 +492,24 @@ public abstract class ToolBarMenuDock { protected MenuDef createServerMenuDef(ToolBarMenuDockPlus plus) { MenuDef menuDef = new MenuDef(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic__M_Server"), 'S'); - if (!DesignerMode.isAuthorityEditing()) { - menuDef.addShortCut( - new ConnectionListAction(), - createGlobalTDAction() - ); + // 定义数据连接、服务器数据集 + menuDef.addShortCut(new ConnectionListAction(), createGlobalTDAction()); } - - - menuDef.addShortCut( - new PlatformManagerAction() - ); - + // 报表平台管理 + menuDef.addShortCut(new PlatformManagerAction()); if (shouldShowRemoteAuth()) { + // 远程设计权限管理 menuDef.addShortCut(new RemoteDesignAuthManagerAction()); } - if (!DesignerMode.isAuthorityEditing()) { + // 插件管理 addPluginManagerAction(menuDef); + // 函数管理器 menuDef.addShortCut(new FunctionManagerAction()); - + // 全局参数 menuDef.addShortCut(new GlobalParameterAction()); } - - return menuDef; } @@ -530,9 +524,7 @@ public abstract class ToolBarMenuDock { } } if (shouldShowPlugin()) { - menuDef.addShortCut( - new PluginManagerAction() - ); + menuDef.addShortCut(new PluginManagerAction()); } } diff --git a/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java b/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java index 30112dc7a3..5b00029226 100644 --- a/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java +++ b/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java @@ -1,6 +1,6 @@ package com.fr.design.remote.action; -import com.fr.base.svg.IconUtils; +import com.fine.theme.icon.LazyIcon; import com.fr.design.actions.UpdateAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; @@ -27,7 +27,7 @@ public class RemoteDesignAuthManagerAction extends UpdateAction { public RemoteDesignAuthManagerAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Authority_Manager")); // 远程设计权限管理 - this.setSmallIcon("com/fr/design/remote/images/icon_Remote_Design_Auth_Manager_normal@1x"); + this.setSmallIcon(new LazyIcon("remoteDesignAuthManager")); } diff --git a/designer-base/src/main/java/com/fr/design/report/WatermarkPane.java b/designer-base/src/main/java/com/fr/design/report/WatermarkPane.java index 3f8cd7cc84..1a16042124 100644 --- a/designer-base/src/main/java/com/fr/design/report/WatermarkPane.java +++ b/designer-base/src/main/java/com/fr/design/report/WatermarkPane.java @@ -1,7 +1,6 @@ package com.fr.design.report; 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.BaseFormula; @@ -52,7 +51,6 @@ import static com.fine.theme.utils.FineUIUtils.wrapComponentWithTitle; * Created by plough on 2018/5/15. */ public class WatermarkPane extends BasicPane { - private static final int MAX_WIDTH = 216; // 水印预览面板 private WatermarkPreviewPane watermarkPreviewPane; @@ -88,7 +86,6 @@ public class WatermarkPane extends BasicPane { JPanel previewPaneWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); //预览外边框,宽度跟随全局权重 previewPaneWrapper.setBorder(new FineRoundBorder()); - previewPaneWrapper.setPreferredSize(FineUIScale.scale(new Dimension(-1,415))); previewPaneWrapper.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); watermarkPreviewPane = new WatermarkPreviewPane(); watermarkPreviewPane.setOpaque(false); @@ -96,7 +93,7 @@ public class WatermarkPane extends BasicPane { leftPane = column( LayoutConstants.VGAP_SMALL, cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Style_Preview"))), - cell(previewPaneWrapper) + cell(previewPaneWrapper).weight(1) ).getComponent(); // 分割线下方,左侧预览,右侧配置 diff --git a/designer-base/src/main/java/com/fr/env/EnvListPane.java b/designer-base/src/main/java/com/fr/env/EnvListPane.java index 454388e124..a9ccf08b8c 100644 --- a/designer-base/src/main/java/com/fr/env/EnvListPane.java +++ b/designer-base/src/main/java/com/fr/env/EnvListPane.java @@ -1,5 +1,6 @@ package com.fr.env; +import com.fine.theme.icon.LazyIcon; import com.fr.design.DesignerEnvManager; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.env.DesignerWorkspaceInfo; @@ -57,9 +58,9 @@ public class EnvListPane extends JListControlPane { */ @Override public NameableCreator[] createNameableCreators() { - NameableCreator local = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Local_Workspace"), "com/fr/design/images/data/bind/localconnect.png", + NameableCreator local = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Local_Workspace"), new LazyIcon("localConnect"), LocalDesignerWorkspaceInfo.class, LocalEnvPane.class); - NameableCreator remote = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Env_Remote_Server"), "com/fr/design/images/data/bind/distanceconnect.png", + NameableCreator remote = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Env_Remote_Server"), new LazyIcon("remoteConnect"), RemoteDesignerWorkspaceInfo.class, RemoteEnvPane.class); return new NameableCreator[]{local, remote}; } diff --git a/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect.svg b/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect.svg new file mode 100644 index 0000000000..46c490c2e5 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect_disable.svg new file mode 100644 index 0000000000..f1c2d764ca --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect_disable.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_disable.svg new file mode 100644 index 0000000000..122eceed9a --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_disable.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg old mode 100755 new mode 100644 index 819a90d662..ef1d588c06 --- a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg @@ -1,11 +1,5 @@ - - - + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg old mode 100755 new mode 100644 index 3fbc7e166d..d1eeea5d78 --- a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg @@ -1,11 +1,5 @@ - - - + + + diff --git a/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json b/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json index d51a85d4d5..f33c0d53d3 100644 --- a/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json +++ b/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json @@ -96,6 +96,7 @@ "xmlFile": "filetree/filetype/xmlFile.svg", "csvFile": "filetree/filetype/csvFile.svg", "svgFile": "filetree/filetype/svgFile.svg", + "txtFile": "filetree/filetype/txtFile.svg", "cellattr": "propertiestab/cellattr.svg", "cellattr_disabled": "propertiestab/cellattr_disabled.svg", "cellattr_selected": "propertiestab/cellattr_selected.svg", @@ -106,6 +107,7 @@ "conditionattr_disabled": "propertiestab/conditionattr_disabled.svg", "conditionattr_selected": "propertiestab/conditionattr_selected.svg", "floatelement": "propertiestab/floatelement.svg", + "floatelement_disabled": "propertiestab/floatelement_disabled.svg", "floatelement_popup": "propertiestab/floatelement_popup.svg", "floatelement_selected": "propertiestab/floatelement_selected.svg", "hyperlink": "propertiestab/hyperlink.svg", @@ -195,9 +197,13 @@ "notification": "notification/notification.svg", "notification_dot": "notification/notification_dot.svg", "createCpt": "toolbar/createCpt.svg", + "createFvs": "toolbar/createFvs.svg", "createOther": "toolbar/createOther.svg", + "createFrm": "toolbar/createFrm.svg", "openTemplate": "toolbar/openTemplate.svg", "switchEnv": "toolbar/switchEnv.svg", + "localConnect": "toolbar/localConnect.svg", + "remoteConnect": "toolbar/remoteConnect.svg", "export": "toolbar/export.svg", "monochrome_undo": "toolbar/monochrome_undo.svg", "monochrome_redo": "toolbar/monochrome_redo.svg", @@ -227,6 +233,7 @@ "replace": "toolbar/replace.svg", "monochromeServerDatabase": "toolbar/monochromeServerDatabase.svg", "platform": "toolbar/platform.svg", + "remoteDesignAuthManager": "toolbar/remoteDesignAuthManager.svg", "pluginManager": "toolbar/pluginManager.svg", "functionManager": "toolbar/functionManager.svg", "serverConfigManager": "toolbar/serverConfigManager.svg", @@ -263,6 +270,7 @@ "pages": "toolbar/pages.svg", "new_line": "toolbar/newLine.svg", "selected_all": "toolbar/selectedAll.svg", + "templateThemeManager": "toolbar/templateThemeManager.svg", "cellelement_small": "cellelement.svg", "forbid": "expand/forbid.svg", "horizontal_expand": "expand/horizontal.svg", @@ -300,6 +308,7 @@ "cellHyperLinkAttr": "cell/cellHyperLinkAttr.svg", "cellPresentAttr": "cell/cellPresentAttr.svg", "cellElementAttr": "cell/cellElementAttr.svg", + "cellSelect": "cell/cellSelect.svg", "move": "filetree/move.svg", "monochrome_copy": "filetree/monochrome_copy.svg", "monochrome_paste": "filetree/monochrome_paste.svg", diff --git a/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java b/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java index d619c73007..e11cd71a15 100644 --- a/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java +++ b/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java @@ -1,6 +1,7 @@ package com.fr.design.actions; +import com.fine.theme.icon.LazyIcon; import com.fr.design.menu.MenuKeySet; import com.fr.design.widget.ui.designer.NewFormPane; @@ -12,7 +13,7 @@ public class NewFormAction extends UpdateAction { public NewFormAction() { this.setMenuKeySet(NEW_FORM); this.setName(getMenuKeySet().getMenuName()); - this.setSmallIcon("/com/fr/design/images/buttonicon/new_form3"); + this.setSmallIcon(new LazyIcon("createFrm")); this.setAccelerator(getMenuKeySet().getKeyStroke()); } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index 7b4206fc87..ea379cde1e 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -291,9 +291,8 @@ public class JForm extends JTemplate implements BaseJForm { private MenuDef createWorkBookExportMenu() { MenuDef excelExportMenuDef = new MenuDef(KeySetUtils.EXCEL_EXPORT.getMenuKeySetName(), KeySetUtils.EXCEL_EXPORT.getMnemonic()); - excelExportMenuDef.setIcon(new LazyIcon("excel_icon")); - excelExportMenuDef - .addShortCut(new PageExcelExportAction(this), new ExcelExportAction(this), new PageToSheetExcelExportAction(this)); + excelExportMenuDef.setIcon(new LazyIcon("excelFile")); + // 分页导出、原样导出、分页分Sheet导出 + excelExportMenuDef.addShortCut(new PageExcelExportAction(this), new ExcelExportAction(this), new PageToSheetExcelExportAction(this)); // Export - MenuDef MenuDef exportMenuDef = new MenuDef(KeySetUtils.EXPORT.getMenuName()); exportMenuDef.setIcon(new LazyIcon("export")); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java index 0d04bb77a4..b56d968a67 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java @@ -14,7 +14,6 @@ import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.theme.utils.DefaultThemedTemplateCellElementCase; import com.fr.design.sort.cellexpand.CellExpandSortPane; import com.fr.general.ComparatorUtils; -import com.fr.general.IOUtils; import com.fr.report.cell.TemplateCellElement; import com.fr.report.cell.cellattr.CellExpandAttr; import com.fr.report.elementcase.TemplateElementCase; @@ -30,6 +29,7 @@ import java.awt.Rectangle; import static com.fine.swing.ui.layout.Layouts.cell; import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.column; import static com.fine.swing.ui.layout.Layouts.fix; /** @@ -110,12 +110,17 @@ public class CellExpandAttrPane extends AbstractCellAttrPane { UILabel up = new UILabel(Toolkit.i18nText("Fine-Design_Report_ExpandD_Up_Father_Cell"), SwingConstants.LEFT); return Layouts.column(LayoutConstants.VERTICAL_GAP, row(cell(direction).weight(1.2), cell(expandDirectionButton).weight(3.0)), - row(cell(left).weight(1.2), cell(leftFatherPane).weight(3.0)), - row(cell(up).weight(1.2), cell(rightFatherPane).weight(3.0)) + row(cell(getTopAlignLabelPane(left)).weight(1.2), cell(leftFatherPane).weight(3.0)), + row(cell(getTopAlignLabelPane(up)).weight(1.2), cell(rightFatherPane).weight(3.0)) ).with(it -> it.setBorder(new ScaledEmptyBorder(0, 0, 10, 0)) ).getComponent(); } + private JPanel getTopAlignLabelPane(UILabel label) { + return column(LayoutConstants.VERTICAL_GAP, cell(label)) + .with(it -> it.setBorder(new ScaledEmptyBorder(3, 0, 0, 0))).getComponent(); + } + private JPanel seniorPane() { return Layouts.column(LayoutConstants.VERTICAL_GAP, cell(horizontalExpandableCheckBox), diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java index 150b4d8512..0483a4662d 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe.cell.settingpane; import com.fine.swing.ui.layout.Layouts; +import com.fine.theme.utils.FineUIStyle; import com.fine.theme.utils.FineUIUtils; import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.Style; @@ -151,10 +152,11 @@ public class CellOtherSetPane extends AbstractCellAttrPane { JPanel scopePane = initScopePane(); // 带超链的提示信息 - UILabel label = new UILabel(); + UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_Report_Desensitization_Tip")); + FineUIStyle.setStyle(label, FineUIStyle.LABEL_TIP); LocaleMark dataMaskMark = LocaleCenter.getMark(DataMaskMark.class); MessageWithLink hyperlink = new MessageWithLink( - Toolkit.i18nText("Fine-Design_Report_Desensitization_Tip"), + "", Toolkit.i18nText("Fine-Design_Report_Desensitization_Hyperlink"), dataMaskMark.getValue(), StringUtils.EMPTY, @@ -166,7 +168,7 @@ public class CellOtherSetPane extends AbstractCellAttrPane { groupsPane = new CellDesensitizationGroupsPane(this); return Layouts.column(LayoutConstants.VERTICAL_GAP, cell(scopePane), - cell(hyperlink), + row(cell(label), cell(hyperlink)), cell(groupsPane) ).getComponent(); } diff --git a/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java b/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java index eaf2bbdd00..ae91d1c2cf 100644 --- a/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java +++ b/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java @@ -4,7 +4,6 @@ import com.fine.swing.ui.layout.Layouts; import com.fine.theme.icon.LazyIcon; import com.fr.base.Style; import com.fr.base.background.ColorBackground; -import com.fr.base.svg.IconUtils; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; import com.fr.design.file.HistoryTemplateListCache; @@ -48,8 +47,8 @@ public class SortColumnRowPane extends JPanel implements UIObserver { private CellSelection oldSelection; private SelectionListener gridSelectionChangeListener; UIObserverListener uiObserverListener; - private final static Icon DISABLED_ICON = IconUtils.readIcon("/com/fr/design/images/buttonicon/select_disabled.svg"); - private final static Icon ENABLE_ICON = IconUtils.readIcon("/com/fr/design/images/buttonicon/select_normal.svg"); + private final static Icon DISABLED_ICON = new LazyIcon("cellSelect").disabled(); + private final static Icon ENABLE_ICON = new LazyIcon("cellSelect"); private boolean enabled; SelectActionListener selectActionListener; diff --git a/designer-realize/src/main/java/com/fr/design/sort/common/SortUIExpandablePane.java b/designer-realize/src/main/java/com/fr/design/sort/common/SortUIExpandablePane.java index 99aa57a4a6..f9d34df0f3 100644 --- a/designer-realize/src/main/java/com/fr/design/sort/common/SortUIExpandablePane.java +++ b/designer-realize/src/main/java/com/fr/design/sort/common/SortUIExpandablePane.java @@ -2,7 +2,6 @@ package com.fr.design.sort.common; import com.fine.swing.ui.layout.Layouts; import com.fine.theme.icon.LazyIcon; -import com.fine.theme.light.ui.FineRoundBorder; import com.fine.theme.utils.FineUIScale; import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.border.FineBorderFactory; @@ -12,13 +11,17 @@ import com.fr.design.event.UIObserverListener; import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import javax.swing.BorderFactory; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; 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.flex; +import static com.fine.swing.ui.layout.Layouts.fix; public class SortUIExpandablePane extends JPanel { @@ -42,7 +45,6 @@ public class SortUIExpandablePane extends JPanel { this.contentPane = contentPane; initComponents(); wrapPane.setBorder(FineBorderFactory.createWrappedRoundBorder()); - wrapPane.setBackground(Color.WHITE); } @@ -103,7 +105,9 @@ public class SortUIExpandablePane extends JPanel { }); this.setLayout(new BorderLayout()); this.add(Layouts.row( - cell(iconUiLabel), cell(tipUILabel), flex(), cell(closeButton) + fix(LayoutConstants.HGAP_LARGE), + cell(iconUiLabel), fix(LayoutConstants.HGAP_MEDIUM), cell(tipUILabel), flex(), cell(closeButton), + fix(LayoutConstants.HGAP_LARGE) ) .getComponent(), BorderLayout.CENTER); this.setPreferredSize(new Dimension(contentPane.sortItemPaneWidth + FineUIScale.scale(7), FineUIScale.scale(24))); diff --git a/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java b/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java index a67cd5aa6f..c5beaa1f6e 100644 --- a/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java +++ b/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java @@ -3,19 +3,23 @@ package com.fr.design.sort.expressionpane; import com.fine.swing.ui.layout.Layouts; import com.fine.theme.icon.LazyIcon; import com.fine.theme.utils.FineUIScale; +import com.fr.design.constants.LayoutConstants; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.mainframe.DesignerContext; import com.fr.report.core.sort.sortexpression.CustomSequenceSortExpression; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Cursor; +import java.awt.Dimension; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.List; import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.fix; public class CustomSequencePane extends JPanel { @@ -51,7 +55,7 @@ public class CustomSequencePane extends JPanel { button.addMouseListener(mouseAdapter); textField.addMouseListener(mouseAdapter); this.add(Layouts.row( - cell(textField).weight(6), cell(button).weight(1) + cell(textField).weight(6), fix(LayoutConstants.HGAP_LARGE), cell(button).weight(1) ).getComponent()); } diff --git a/designer-realize/src/main/java/com/fr/design/webattr/PageToolBarPane.java b/designer-realize/src/main/java/com/fr/design/webattr/PageToolBarPane.java index 4667755370..181bb9dc26 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/PageToolBarPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/PageToolBarPane.java @@ -28,7 +28,6 @@ import com.fr.web.attr.ReportWebAttr; import com.fr.design.i18n.Toolkit; import java.awt.BorderLayout; -import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputMethodEvent; @@ -48,6 +47,7 @@ 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.swing.ui.layout.Layouts.fix; import static com.fine.theme.utils.FineUIUtils.wrapBoldLabelWithUnderline; public class PageToolBarPane extends AbstractEditToolBarPane { @@ -110,23 +110,16 @@ public class PageToolBarPane extends AbstractEditToolBarPane { JPanel northPanel = column(LayoutConstants.VERTICAL_GAP, //报表显示位置:居中展示-左展示 row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_Location"))).weight(0.15), - cell(centerRadioButton).weight(0.2), - cell(leftRadioButton).weight(0.15), - flex(0.5) + row(cell(centerRadioButton), fix(12), cell(leftRadioButton), flex()).weight(0.85) ), //页面:以图片方式显示-iframe嵌入时自动缩放-重方式输出格子 row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Page"))).weight(0.15), - cell(isShowAsImageBox).weight(0.2), - cell(isAutoScaleBox).weight(0.25), - cell(isTDHeavyBox).weight(0.2), - flex(0.2) + row(cell(isShowAsImageBox), fix(12), cell(isAutoScaleBox), fix(12), cell(isTDHeavyBox),flex()).weight(0.85) ), //分页设置:按行分页-每页显示行数 row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Paging_Settings"))).weight(0.15), - cell(isPageFixedRowBox).weight(0.2), - cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Rows_Per_Page"))).weight(0.15), - cell(pageFixedRowCountTextField).weight(0.2), - flex(0.3) + row(cell(isPageFixedRowBox), fix(20), cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Rows_Per_Page"))), + fix(10), cell(pageFixedRowCountTextField),flex()).weight(0.85) ), //提示 cell(tipLabel), diff --git a/designer-realize/src/main/java/com/fr/design/webattr/PageWebSettingPane.java b/designer-realize/src/main/java/com/fr/design/webattr/PageWebSettingPane.java index 1adc107ed2..f4fd1ec66e 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/PageWebSettingPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/PageWebSettingPane.java @@ -33,6 +33,7 @@ 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.swing.ui.layout.Layouts.fix; public class PageWebSettingPane extends WebSettingPane { private UIRadioButton centerRadioButton; @@ -110,23 +111,18 @@ public class PageWebSettingPane extends WebSettingPane { //报表显示位置 row( cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_Location"))).weight(0.15), - cell(centerRadioButton).weight(0.2), - cell(leftRadioButton).weight(0.15), - flex(0.5) + row( cell(centerRadioButton), fix(12), cell(leftRadioButton), flex()).weight(0.85) + ), //页面 row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Page"))).weight(0.15), - cell(isShowAsImageBox).weight(0.2), - cell(isAutoScaleBox).weight(0.25), - cell(isTDHeavyBox).weight(0.2), - flex(0.2) + row(cell(isShowAsImageBox), fix(12), cell(isAutoScaleBox), fix(12), cell(isTDHeavyBox), flex()).weight(0.85) ), //分页设置 row( - cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Paging_Settings"))).weight(0.15), cell(isPageFixedRowBox).weight(0.2), - cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Rows_Per_Page"))).weight(0.15), - cell(pageFixedRowCountTextField).weight(0.2), - flex(0.3) + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Paging_Settings"))).weight(0.15), + row(cell(isPageFixedRowBox), fix(20), cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Rows_Per_Page"))) + , fix(12), cell(pageFixedRowCountTextField), flex()).weight(0.85) ), //提示 cell(tipLabel) diff --git a/designer-realize/src/main/java/com/fr/design/webattr/ServerFitAttrPane.java b/designer-realize/src/main/java/com/fr/design/webattr/ServerFitAttrPane.java index 4e2245bb44..33da70327f 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/ServerFitAttrPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/ServerFitAttrPane.java @@ -13,7 +13,6 @@ import com.fr.report.fit.ReportFitConfig; import com.fr.transaction.Configurations; import com.fr.transaction.Worker; -import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java index 992fa8b289..01226abb5b 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java @@ -29,6 +29,7 @@ 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; +import static com.fine.swing.ui.layout.Layouts.fix; public class WebCssPane extends BasicPane { private UITextField localText; @@ -63,9 +64,10 @@ public class WebCssPane extends BasicPane { JPanel workPanel = new JPanel(new BorderLayout()); workPanel.add(column(LayoutConstants.VERTICAL_GAP, - row(LayoutConstants.VERTICAL_GAP, - cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Disk_File"))), - cell(localText).weight(0.8), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Disk_File"))), + fix(LayoutConstants.HORIZONTAL_GAP), + cell(localText).weight(1), + fix(LayoutConstants.HGAP_LARGE), cell(chooseFile) ), cell(info), diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java index 230af34a8e..6d05c9e550 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java @@ -43,6 +43,7 @@ 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; +import static com.fine.swing.ui.layout.Layouts.fix; public class WebJsPane extends BasicPane { private UITextField localText; @@ -98,9 +99,9 @@ public class WebJsPane extends BasicPane { info2 = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JS_WARNING2", ProjectConstants.WEBAPP_NAME)); FineUIStyle.setStyle(info2, FineUIStyle.LABEL_WARNING_TIP); JPanel outNorth = column(LayoutConstants.VERTICAL_GAP, - row(LayoutConstants.HORIZONTAL_GAP, cell(localFileRadioButton), cell(localText).weight(0.8), cell(chooseFile)), + row(cell(localFileRadioButton), fix(LayoutConstants.HORIZONTAL_GAP), cell(localText).weight(1), fix(LayoutConstants.HGAP_LARGE), cell(chooseFile)), cell(info1), - row(LayoutConstants.HORIZONTAL_GAP, cell(urlFileRadioButton), cell(urlText).weight(0.8), cell(testConnection)), + row(cell(urlFileRadioButton), fix(LayoutConstants.HORIZONTAL_GAP), cell(urlText).weight(1), fix(LayoutConstants.HGAP_LARGE), cell(testConnection)), cell(info2) ).getComponent(); JPanel workPanel = new JPanel(new BorderLayout()); diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java index 1a6ecb0da8..37641c18a1 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java @@ -1,7 +1,6 @@ package com.fr.design.webattr; import com.fine.theme.icon.LazyIcon; -import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.ConfigManager; import com.fr.config.Configuration; import com.fr.design.ExtraDesignClassManager; @@ -27,9 +26,11 @@ import com.fr.transaction.Configurations; import com.fr.transaction.Worker; import com.fr.web.attr.ReportWebAttr; -import javax.swing.*; +import javax.swing.ButtonGroup; +import javax.swing.JPanel; +import javax.swing.SwingUtilities; -import java.awt.*; +import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; @@ -89,7 +90,7 @@ public class WriteToolBarPane extends AbstractEditToolBarPane { colorBox.setSelected(false); colorBox.addActionListener(colorListener); colorButton = new UINoThemeColorButton(new LazyIcon("background")); - JPanel backgroundPane = row(cell(colorBox), fix(LayoutConstants.HGAP_SMALL), cell(colorButton)).getComponent(); + JPanel backgroundPane = row(cell(colorBox), fix(LayoutConstants.HGAP_LARGE), cell(colorButton)).getComponent(); //勾选框 unloadCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unload_Check")); diff --git a/designer-realize/src/main/java/com/fr/start/MainDesigner.java b/designer-realize/src/main/java/com/fr/start/MainDesigner.java index 8ab42ec873..7190c450d0 100644 --- a/designer-realize/src/main/java/com/fr/start/MainDesigner.java +++ b/designer-realize/src/main/java/com/fr/start/MainDesigner.java @@ -250,18 +250,17 @@ public class MainDesigner extends BaseDesigner { if (!DesignerMode.isAuthorityEditing()) { menuDef.addShortCut(SeparatorDef.DEFAULT); - if (WorkContext.getCurrent().isRoot()) { - menuDef.addShortCut( - new ServerConfigManagerAction() - ); + // 服务器配置 + menuDef.addShortCut(new ServerConfigManagerAction()); JTemplate jt = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); if (JTemplate.isValid(jt)) { + // 模板主题管理 menuDef.addShortCut(new TemplateThemeManagerAction()); } - menuDef.addShortCut( - new WidgetManagerAction() - ); + // 控件管理 + menuDef.addShortCut(new WidgetManagerAction()); + // 图标预定义配色、图标空数据提示、地图配置 menuDef.addShortCut(new ChartPreStyleAction(), new ChartEmptyDataStyleAction(), new ChartMapEditorAction()); } From 44f272a289373d2d3ca43b7854aad07249c79afd Mon Sep 17 00:00:00 2001 From: "Richard.Fang" Date: Mon, 12 Aug 2024 17:25:48 +0800 Subject: [PATCH 3/5] =?UTF-8?q?REPORT-127436=E3=80=90NewUI=E3=80=91fix:?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E9=AA=8C=E6=94=B6=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/file/OpenRecentReportMenuDef.java | 4 +- .../design/actions/file/SwitchExistEnv.java | 4 +- .../fr/design/constants/LayoutConstants.java | 4 ++ .../datapane/TableDataCreatorProducer.java | 4 ++ .../data/datapane/TreeTableDataDictPane.java | 46 +++++++++++-------- .../tabledatapane/FileTableDataPane.java | 2 +- .../AbstractTemplateServerSettingPane.java | 9 ++-- .../java/com/fr/design/dialog/BasicPane.java | 10 +++- .../com/fr/design/editor/ValueEditorPane.java | 19 ++++++-- .../gui/frpane/EditingStringListPane.java | 9 +--- .../ImageBackgroundQuickPane.java | 8 ++-- .../TextureBackgroundQuickPane.java | 17 +++++-- .../mainframe/toolbar/ToolBarMenuDock.java | 34 ++++++-------- .../action/RemoteDesignAuthManagerAction.java | 4 +- .../com/fr/design/report/WatermarkPane.java | 5 +- .../src/main/java/com/fr/env/EnvListPane.java | 5 +- .../com/fine/theme/icon/cell/cellSelect.svg | 16 +++++++ .../theme/icon/cell/cellSelect_disable.svg | 16 +++++++ .../filetree/filetype/txtFile_disable.svg | 8 ++++ .../com/fine/theme/icon/toolbar/createCpt.svg | 12 ++--- .../theme/icon/toolbar/createCpt_disable.svg | 12 ++--- .../fine/theme/light/ui/fine_light.icon.json | 9 ++++ .../com/fr/design/actions/NewFormAction.java | 3 +- .../java/com/fr/design/mainframe/JForm.java | 3 +- .../online/OnlineWidgetPopupPreviewPane.java | 4 +- .../file/export/ExcelExportAction.java | 4 +- .../file/export/PageExcelExportAction.java | 4 +- .../export/PageToSheetExcelExportAction.java | 4 +- .../actions/file/export/TextExportAction.java | 4 +- .../server/TemplateThemeManagerAction.java | 4 +- .../fr/design/expand/ExpandFatherPane.java | 2 +- .../design/headerfooter/HeaderFooterPane.java | 6 +-- .../com/fr/design/mainframe/JWorkBook.java | 6 +-- .../cell/settingpane/CellExpandAttrPane.java | 11 +++-- .../cell/settingpane/CellOtherSetPane.java | 8 ++-- .../design/sort/common/SortColumnRowPane.java | 5 +- .../sort/common/SortUIExpandablePane.java | 14 ++++-- .../expressionpane/CustomSequencePane.java | 10 ++-- .../fr/design/webattr/PageToolBarPane.java | 17 ++----- .../fr/design/webattr/PageWebSettingPane.java | 18 +++----- .../fr/design/webattr/ServerFitAttrPane.java | 1 - .../com/fr/design/webattr/WebCssPane.java | 8 ++-- .../java/com/fr/design/webattr/WebJsPane.java | 5 +- .../fr/design/webattr/WriteToolBarPane.java | 9 ++-- .../main/java/com/fr/start/MainDesigner.java | 13 +++--- 45 files changed, 242 insertions(+), 178 deletions(-) create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_disable.svg mode change 100755 => 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg mode change 100755 => 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg diff --git a/designer-base/src/main/java/com/fr/design/actions/file/OpenRecentReportMenuDef.java b/designer-base/src/main/java/com/fr/design/actions/file/OpenRecentReportMenuDef.java index 7533cb133a..799594c4e1 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/OpenRecentReportMenuDef.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/OpenRecentReportMenuDef.java @@ -1,10 +1,10 @@ package com.fr.design.actions.file; +import com.fine.theme.icon.LazyIcon; import java.awt.event.ActionEvent; import java.io.File; import java.util.List; -import com.fr.base.BaseUtils; import com.fr.design.DesignerEnvManager; import com.fr.design.actions.UpdateAction; import com.fr.design.gui.imenu.UIMenu; @@ -62,7 +62,7 @@ public class OpenRecentReportMenuDef extends MenuDef { public OpenRecentReportAction(String cptName) { this.setName(cptName); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/base/images/oem/logo.png")); + this.setSmallIcon(new LazyIcon("logo")); } /** diff --git a/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java b/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java index accb907e20..25070013f3 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/SwitchExistEnv.java @@ -46,11 +46,11 @@ public class SwitchExistEnv extends MenuDef { DesignerWorkspaceInfo env = DesignerEnvManager.getEnvManager().getWorkspaceInfo(envName); switch (env.getType()) { case Local: { - this.setSmallIcon("com/fr/design/images/data/bind/localconnect"); + this.setSmallIcon(new LazyIcon("localConnect")); break; } case Remote: { - this.setSmallIcon("com/fr/design/images/data/bind/distanceconnect"); + this.setSmallIcon(new LazyIcon("remoteConnect")); break; } } diff --git a/designer-base/src/main/java/com/fr/design/constants/LayoutConstants.java b/designer-base/src/main/java/com/fr/design/constants/LayoutConstants.java index 13bf91003c..8b2fd695a0 100644 --- a/designer-base/src/main/java/com/fr/design/constants/LayoutConstants.java +++ b/designer-base/src/main/java/com/fr/design/constants/LayoutConstants.java @@ -17,6 +17,10 @@ public class LayoutConstants { * 水平间隙 */ public static final int HGAP_SMALL = 1; + /** + * 水平间隙 + */ + public static final int HGAP_MEDIUM = 2; /** * 水平间隙 */ diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java index f452784acc..1e86bdc6f3 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TableDataCreatorProducer.java @@ -84,6 +84,10 @@ public class TableDataCreatorProducer { return merge(creators, ExtraDesignClassManager.getInstance().getReportTableDataCreators()); } + /** + * 服务器数据集 + * @return TableDataNameObjectCreator[] + */ public TableDataNameObjectCreator[] createServerTableDataCreator() { TableDataNameObjectCreator dataBase = new TableDataNameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_DS_Database_Query"), new LazyIcon("server_database"), DBTableData.class, diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java index 910a4c00c2..040c0ce9fb 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java @@ -34,6 +34,7 @@ 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.swing.ui.layout.Layouts.fix; public class TreeTableDataDictPane extends BasicPane implements Previewable { @@ -52,6 +53,7 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable { private ValueEditorPane originFieldDependsOnParentPane; private ValueEditorPane parentFieldPane; private ValueEditorPane originFieldDependsOnLengthPane; + private static final double TITLE_RATIO = 0.2; public TreeTableDataDictPane() { this(StringUtils.EMPTY); @@ -69,13 +71,13 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable { } }); JPanel tableFlowPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - tableFlowPane.add(row(LayoutConstants.HGAP_LARGE, - cell(selectTableDataLabel).weight(0.12), + tableFlowPane.add(row( + cell(selectTableDataLabel).weight(TITLE_RATIO), row(LayoutConstants.HGAP_LARGE, - cell(tableDataNameComboBox).weight(0.9), - cell(new PreviewLabel(this)).weight(0.1) - ).weight(0.3), - flex(0.58) + cell(tableDataNameComboBox).weight(1), + cell(new PreviewLabel(this)) + ).weight(0.4), + flex(0.6 - TITLE_RATIO) ).getComponent()); //中心面板 @@ -118,23 +120,27 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable { makeParentEnable(); //树数据集面板 - centerPane.add(column(10, + centerPane.add(column( cell(parentMarkRadio), - row(LayoutConstants.HGAP_LARGE, - cell(originFieldDependsOnParentLabel).weight(0.12), - cell(originFieldDependsOnParentPane).weight(0.3), - flex(0.58) + fix(10), + row( + cell(originFieldDependsOnParentLabel).weight(TITLE_RATIO), + cell(originFieldDependsOnParentPane).weight(0.4), + flex(0.6 - TITLE_RATIO) ), - row(LayoutConstants.HGAP_LARGE, - cell(parentFieldLabel).weight(0.12), - cell(parentFieldPane).weight(0.3), - flex(0.58) + fix(6), + row( + cell(parentFieldLabel).weight(TITLE_RATIO), + cell(parentFieldPane).weight(0.4), + flex(0.6 - TITLE_RATIO) ), + fix(20), cell(lengthMarkRadio), - row(LayoutConstants.HGAP_LARGE, - cell(originFieldDependsOnLengthLabel).weight(0.12), - cell(originFieldDependsOnLengthPane).weight(0.3), - flex(0.58) + fix(10), + row( + cell(originFieldDependsOnLengthLabel).weight(TITLE_RATIO), + cell(originFieldDependsOnLengthPane).weight(0.4), + flex(0.6 - TITLE_RATIO) ) ).getComponent()); @@ -172,7 +178,7 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable { } }); - this.add(column(LayoutConstants.VERTICAL_GAP, cell(tableFlowPane),cell(centerPane), cell(previewPanel)).getComponent()); + this.add(column(LayoutConstants.VGAP_HUGER, cell(tableFlowPane),cell(centerPane), cell(previewPanel)).getComponent()); } protected void setTableDataNameComboBox(String treeName) { diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java index 93cd98ffcd..972c65d30c 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/FileTableDataPane.java @@ -219,7 +219,7 @@ public class FileTableDataPane extends AbstractTableDataPane { cell(urlText).weight(urlWidthRatio), cell(testConnection).weight(0.75 - urlWidthRatio) ), - cell(tips).weight(1) + cell(tips) ).with(it -> it.setBorder(new ScaledEmptyBorder(0,0,0,10))).getComponent(); } diff --git a/designer-base/src/main/java/com/fr/design/dialog/AbstractTemplateServerSettingPane.java b/designer-base/src/main/java/com/fr/design/dialog/AbstractTemplateServerSettingPane.java index 6ae979c303..87fc1efa3c 100644 --- a/designer-base/src/main/java/com/fr/design/dialog/AbstractTemplateServerSettingPane.java +++ b/designer-base/src/main/java/com/fr/design/dialog/AbstractTemplateServerSettingPane.java @@ -1,8 +1,6 @@ package com.fr.design.dialog; -import com.fine.theme.utils.FineUIScale; import com.formdev.flatlaf.util.ScaledEmptyBorder; -import com.fr.design.constants.LayoutConstants; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.utils.gui.GUICoreUtils; @@ -15,6 +13,7 @@ import java.awt.event.ItemListener; 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.swing.ui.layout.Layouts.flex; /** * 封装了"为该模版单独设置、采用服务器设置"选项功能的设置面板 @@ -42,10 +41,10 @@ public abstract class AbstractTemplateServerSettingPane extends BasicPane { chooseComboBox.addItemListener(itemListener); //以下设置,部分面板通用 UILabel belowSetLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Blow_Set")); - buttonPane = row( - FineUIScale.scale(32), + buttonPane = row(32, cell(belowSetLabel), - cell(chooseComboBox) + cell(chooseComboBox).weight(1), + flex() ).with(it -> it.setBorder(new ScaledEmptyBorder(0,10,0,0))).getComponent(); this.setLayout(new BorderLayout()); this.contentPane = getContentPane(); diff --git a/designer-base/src/main/java/com/fr/design/dialog/BasicPane.java b/designer-base/src/main/java/com/fr/design/dialog/BasicPane.java index 4345de09ea..1555b01d42 100644 --- a/designer-base/src/main/java/com/fr/design/dialog/BasicPane.java +++ b/designer-base/src/main/java/com/fr/design/dialog/BasicPane.java @@ -4,6 +4,7 @@ import com.fine.theme.utils.FineUIScale; import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.common.annotations.Open; import com.fr.design.constants.LayoutConstants; +import com.fr.design.data.tabledata.tabledatapane.TreeTableDataPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.i18n.DesignSizeI18nManager; @@ -305,6 +306,11 @@ public abstract class BasicPane extends JPanel { private PropertyChangeAdapter changeListener; public NamePane(BasicPane bPane) { + double titleRatio = 0.12; + // 树数据集标题较长,权重设置为0.2保证列对齐 + if(bPane instanceof TreeTableDataPane){ + titleRatio = 0.2; + } this.setLayout(new BorderLayout()); nameTextField = new UITextField(); Name = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Name")); @@ -312,8 +318,8 @@ public abstract class BasicPane extends JPanel { northPane.setBorder(new ScaledEmptyBorder(0,10,0,10)); northPane.add(row( LayoutConstants.HGAP_LARGE, - cell(Name).weight(0.12), - cell(nameTextField).weight(0.58), + 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)); diff --git a/designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java b/designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java index 354dc0313e..5822570e1a 100644 --- a/designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java +++ b/designer-base/src/main/java/com/fr/design/editor/ValueEditorPane.java @@ -1,5 +1,6 @@ package com.fr.design.editor; +import com.fine.theme.utils.FineUIScale; import com.fr.base.BaseFormula; import com.fr.design.DesignerEnvManager; import com.fr.design.dialog.BasicPane; @@ -22,8 +23,16 @@ import com.fr.general.ComparatorUtils; import com.fr.stable.StringUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import javax.swing.JPopupMenu; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Color; +import java.awt.Rectangle; +import java.awt.BorderLayout; +import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; @@ -61,13 +70,13 @@ public class ValueEditorPane extends BasicPane implements UIObserver, GlobalName this.cards = cards; // Frank:布局 - this.setLayout(new BorderLayout(2, 0)); + this.setLayout(new BorderLayout()); centerPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); arrowButton = new UIButton(); arrowButton.set4ToolbarButton(); setCurrentEditor(0); - centerPane.setPreferredSize(new Dimension(centerPaneWidth, centerPane.getPreferredSize().height)); - arrowButton.setPreferredSize(new Dimension(20, centerPane.getPreferredSize().height)); + centerPane.setPreferredSize(new Dimension(FineUIScale.scale(centerPaneWidth), centerPane.getPreferredSize().height)); + arrowButton.setPreferredSize(new Dimension(FineUIScale.scale(24), centerPane.getPreferredSize().height)); final Color beforeColor = arrowButton.getBackground(); menu = createPopMenu(); diff --git a/designer-base/src/main/java/com/fr/design/gui/frpane/EditingStringListPane.java b/designer-base/src/main/java/com/fr/design/gui/frpane/EditingStringListPane.java index 63d1d8e69f..cd9f7c0367 100644 --- a/designer-base/src/main/java/com/fr/design/gui/frpane/EditingStringListPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/frpane/EditingStringListPane.java @@ -98,13 +98,8 @@ public abstract class EditingStringListPane extends BasicBeanPane> moveDownButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Utils_Move_Down"), new LazyIcon("move_down")); moveDownButton.setDisabledIcon(new LazyIcon("move_down").disabled()); - return row(LayoutConstants.HORIZONTAL_GAP, - flex(), - cell(addButton), - cell(modifyButton), - cell(removeButton), - cell(moveUpButton), - cell(moveDownButton) + return row(flex(), + row(6, cell(addButton), cell(modifyButton), cell(removeButton), cell(moveUpButton), cell(moveDownButton)) ).getComponent(); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ImageBackgroundQuickPane.java b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ImageBackgroundQuickPane.java index e1496ff3d6..3a6f619e85 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ImageBackgroundQuickPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/ImageBackgroundQuickPane.java @@ -1,10 +1,10 @@ package com.fr.design.mainframe.backgroundpane; +import com.fine.theme.light.ui.FineRoundBorder; +import com.fine.theme.utils.FineUIScale; import com.fr.base.Style; import com.fr.base.background.ImageFileBackground; import com.fr.base.frpx.pack.PictureCollection; -import com.fr.design.border.UIRoundedBorder; -import com.fr.design.constants.UIConstants; import com.fr.design.event.UIObserverListener; import com.fr.design.gui.frpane.ImgChooseWrapper; import com.fr.design.gui.ibutton.UIButton; @@ -52,8 +52,8 @@ public class ImageBackgroundQuickPane extends BackgroundQuickPane { previewPane = new ImagePreviewPane(); JPanel borderPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - borderPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 5)); - borderPane.setPreferredSize(new Dimension(0, 145)); + borderPane.setBorder(new FineRoundBorder()); + borderPane.setPreferredSize(FineUIScale.scale(new Dimension(0, 145))); borderPane.add(previewPane, BorderLayout.CENTER); this.add(borderPane, BorderLayout.NORTH); previewPane.addChangeListener(imageSizeChangeListener); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/TextureBackgroundQuickPane.java b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/TextureBackgroundQuickPane.java index e9aed06acd..4597f8fa93 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/TextureBackgroundQuickPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/backgroundpane/TextureBackgroundQuickPane.java @@ -1,19 +1,28 @@ package com.fr.design.mainframe.backgroundpane; +import com.fine.theme.light.ui.FineRoundBorder; import com.fr.base.GraphHelper; import com.fr.base.background.TextureBackground; import com.fr.design.constants.UIConstants; -import com.fr.design.border.UIRoundedBorder; import com.fr.design.event.UIObserverListener; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.general.Background; import com.fr.general.ComparatorUtils; -import javax.swing.*; +import javax.swing.JPanel; +import javax.swing.ButtonGroup; +import javax.swing.JToggleButton; +import javax.swing.BorderFactory; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; -import java.awt.*; +import java.awt.TexturePaint; +import java.awt.BorderLayout; +import java.awt.GridLayout; +import java.awt.Dimension; +import java.awt.Cursor; +import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Rectangle2D; @@ -27,7 +36,7 @@ public class TextureBackgroundQuickPane extends BackgroundQuickPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); JPanel borderPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - borderPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 5)); + borderPane.setBorder(new FineRoundBorder()); JPanel contentPane = new JPanel(); borderPane.add(contentPane, BorderLayout.NORTH); this.add(borderPane, BorderLayout.NORTH); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 83ca502a1e..b5d45a3202 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -406,8 +406,8 @@ public abstract class ToolBarMenuDock { insertMenu(menuDef, MenuHandler.FILE); return menuDef; } + // 文件 MenuDef menuDef = new MenuDef(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_File"), 'F'); - ShortCut[] scs = new ShortCut[0]; if (!DesignerMode.isAuthorityEditing()) { scs = createNewFileShortCuts(); @@ -415,12 +415,13 @@ public abstract class ToolBarMenuDock { if (!ArrayUtils.isEmpty(scs)) { menuDef.addShortCut(scs); } - + // 打开 menuDef.addShortCut(openTemplateAction()); - + // 最近打开的 menuDef.addShortCut(new OpenRecentReportMenuDef()); if (!DesignModeContext.isDuchampMode()) { + // 关闭 addCloseCurrentTemplateAction(menuDef); } @@ -491,31 +492,24 @@ public abstract class ToolBarMenuDock { protected MenuDef createServerMenuDef(ToolBarMenuDockPlus plus) { MenuDef menuDef = new MenuDef(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic__M_Server"), 'S'); - if (!DesignerMode.isAuthorityEditing()) { - menuDef.addShortCut( - new ConnectionListAction(), - createGlobalTDAction() - ); + // 定义数据连接、服务器数据集 + menuDef.addShortCut(new ConnectionListAction(), createGlobalTDAction()); } - - - menuDef.addShortCut( - new PlatformManagerAction() - ); - + // 报表平台管理 + menuDef.addShortCut(new PlatformManagerAction()); if (shouldShowRemoteAuth()) { + // 远程设计权限管理 menuDef.addShortCut(new RemoteDesignAuthManagerAction()); } - if (!DesignerMode.isAuthorityEditing()) { + // 插件管理 addPluginManagerAction(menuDef); + // 函数管理器 menuDef.addShortCut(new FunctionManagerAction()); - + // 全局参数 menuDef.addShortCut(new GlobalParameterAction()); } - - return menuDef; } @@ -530,9 +524,7 @@ public abstract class ToolBarMenuDock { } } if (shouldShowPlugin()) { - menuDef.addShortCut( - new PluginManagerAction() - ); + menuDef.addShortCut(new PluginManagerAction()); } } diff --git a/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java b/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java index 30112dc7a3..5b00029226 100644 --- a/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java +++ b/designer-base/src/main/java/com/fr/design/remote/action/RemoteDesignAuthManagerAction.java @@ -1,6 +1,6 @@ package com.fr.design.remote.action; -import com.fr.base.svg.IconUtils; +import com.fine.theme.icon.LazyIcon; import com.fr.design.actions.UpdateAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; @@ -27,7 +27,7 @@ public class RemoteDesignAuthManagerAction extends UpdateAction { public RemoteDesignAuthManagerAction() { this.setName(Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Authority_Manager")); // 远程设计权限管理 - this.setSmallIcon("com/fr/design/remote/images/icon_Remote_Design_Auth_Manager_normal@1x"); + this.setSmallIcon(new LazyIcon("remoteDesignAuthManager")); } diff --git a/designer-base/src/main/java/com/fr/design/report/WatermarkPane.java b/designer-base/src/main/java/com/fr/design/report/WatermarkPane.java index 3f8cd7cc84..1a16042124 100644 --- a/designer-base/src/main/java/com/fr/design/report/WatermarkPane.java +++ b/designer-base/src/main/java/com/fr/design/report/WatermarkPane.java @@ -1,7 +1,6 @@ package com.fr.design.report; 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.BaseFormula; @@ -52,7 +51,6 @@ import static com.fine.theme.utils.FineUIUtils.wrapComponentWithTitle; * Created by plough on 2018/5/15. */ public class WatermarkPane extends BasicPane { - private static final int MAX_WIDTH = 216; // 水印预览面板 private WatermarkPreviewPane watermarkPreviewPane; @@ -88,7 +86,6 @@ public class WatermarkPane extends BasicPane { JPanel previewPaneWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); //预览外边框,宽度跟随全局权重 previewPaneWrapper.setBorder(new FineRoundBorder()); - previewPaneWrapper.setPreferredSize(FineUIScale.scale(new Dimension(-1,415))); previewPaneWrapper.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE)); watermarkPreviewPane = new WatermarkPreviewPane(); watermarkPreviewPane.setOpaque(false); @@ -96,7 +93,7 @@ public class WatermarkPane extends BasicPane { leftPane = column( LayoutConstants.VGAP_SMALL, cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Widget_Style_Preview"))), - cell(previewPaneWrapper) + cell(previewPaneWrapper).weight(1) ).getComponent(); // 分割线下方,左侧预览,右侧配置 diff --git a/designer-base/src/main/java/com/fr/env/EnvListPane.java b/designer-base/src/main/java/com/fr/env/EnvListPane.java index 454388e124..a9ccf08b8c 100644 --- a/designer-base/src/main/java/com/fr/env/EnvListPane.java +++ b/designer-base/src/main/java/com/fr/env/EnvListPane.java @@ -1,5 +1,6 @@ package com.fr.env; +import com.fine.theme.icon.LazyIcon; import com.fr.design.DesignerEnvManager; import com.fr.design.dialog.FineJOptionPane; import com.fr.design.env.DesignerWorkspaceInfo; @@ -57,9 +58,9 @@ public class EnvListPane extends JListControlPane { */ @Override public NameableCreator[] createNameableCreators() { - NameableCreator local = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Local_Workspace"), "com/fr/design/images/data/bind/localconnect.png", + NameableCreator local = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Local_Workspace"), new LazyIcon("localConnect"), LocalDesignerWorkspaceInfo.class, LocalEnvPane.class); - NameableCreator remote = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Env_Remote_Server"), "com/fr/design/images/data/bind/distanceconnect.png", + NameableCreator remote = new NameObjectCreator(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Env_Remote_Server"), new LazyIcon("remoteConnect"), RemoteDesignerWorkspaceInfo.class, RemoteEnvPane.class); return new NameableCreator[]{local, remote}; } diff --git a/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect.svg b/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect.svg new file mode 100644 index 0000000000..46c490c2e5 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect_disable.svg new file mode 100644 index 0000000000..f1c2d764ca --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/cell/cellSelect_disable.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_disable.svg new file mode 100644 index 0000000000..122eceed9a --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_disable.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg old mode 100755 new mode 100644 index 819a90d662..ef1d588c06 --- a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt.svg @@ -1,11 +1,5 @@ - - - + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg old mode 100755 new mode 100644 index 3fbc7e166d..d1eeea5d78 --- a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createCpt_disable.svg @@ -1,11 +1,5 @@ - - - + + + diff --git a/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json b/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json index d51a85d4d5..f33c0d53d3 100644 --- a/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json +++ b/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json @@ -96,6 +96,7 @@ "xmlFile": "filetree/filetype/xmlFile.svg", "csvFile": "filetree/filetype/csvFile.svg", "svgFile": "filetree/filetype/svgFile.svg", + "txtFile": "filetree/filetype/txtFile.svg", "cellattr": "propertiestab/cellattr.svg", "cellattr_disabled": "propertiestab/cellattr_disabled.svg", "cellattr_selected": "propertiestab/cellattr_selected.svg", @@ -106,6 +107,7 @@ "conditionattr_disabled": "propertiestab/conditionattr_disabled.svg", "conditionattr_selected": "propertiestab/conditionattr_selected.svg", "floatelement": "propertiestab/floatelement.svg", + "floatelement_disabled": "propertiestab/floatelement_disabled.svg", "floatelement_popup": "propertiestab/floatelement_popup.svg", "floatelement_selected": "propertiestab/floatelement_selected.svg", "hyperlink": "propertiestab/hyperlink.svg", @@ -195,9 +197,13 @@ "notification": "notification/notification.svg", "notification_dot": "notification/notification_dot.svg", "createCpt": "toolbar/createCpt.svg", + "createFvs": "toolbar/createFvs.svg", "createOther": "toolbar/createOther.svg", + "createFrm": "toolbar/createFrm.svg", "openTemplate": "toolbar/openTemplate.svg", "switchEnv": "toolbar/switchEnv.svg", + "localConnect": "toolbar/localConnect.svg", + "remoteConnect": "toolbar/remoteConnect.svg", "export": "toolbar/export.svg", "monochrome_undo": "toolbar/monochrome_undo.svg", "monochrome_redo": "toolbar/monochrome_redo.svg", @@ -227,6 +233,7 @@ "replace": "toolbar/replace.svg", "monochromeServerDatabase": "toolbar/monochromeServerDatabase.svg", "platform": "toolbar/platform.svg", + "remoteDesignAuthManager": "toolbar/remoteDesignAuthManager.svg", "pluginManager": "toolbar/pluginManager.svg", "functionManager": "toolbar/functionManager.svg", "serverConfigManager": "toolbar/serverConfigManager.svg", @@ -263,6 +270,7 @@ "pages": "toolbar/pages.svg", "new_line": "toolbar/newLine.svg", "selected_all": "toolbar/selectedAll.svg", + "templateThemeManager": "toolbar/templateThemeManager.svg", "cellelement_small": "cellelement.svg", "forbid": "expand/forbid.svg", "horizontal_expand": "expand/horizontal.svg", @@ -300,6 +308,7 @@ "cellHyperLinkAttr": "cell/cellHyperLinkAttr.svg", "cellPresentAttr": "cell/cellPresentAttr.svg", "cellElementAttr": "cell/cellElementAttr.svg", + "cellSelect": "cell/cellSelect.svg", "move": "filetree/move.svg", "monochrome_copy": "filetree/monochrome_copy.svg", "monochrome_paste": "filetree/monochrome_paste.svg", diff --git a/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java b/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java index d619c73007..e11cd71a15 100644 --- a/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java +++ b/designer-form/src/main/java/com/fr/design/actions/NewFormAction.java @@ -1,6 +1,7 @@ package com.fr.design.actions; +import com.fine.theme.icon.LazyIcon; import com.fr.design.menu.MenuKeySet; import com.fr.design.widget.ui.designer.NewFormPane; @@ -12,7 +13,7 @@ public class NewFormAction extends UpdateAction { public NewFormAction() { this.setMenuKeySet(NEW_FORM); this.setName(getMenuKeySet().getMenuName()); - this.setSmallIcon("/com/fr/design/images/buttonicon/new_form3"); + this.setSmallIcon(new LazyIcon("createFrm")); this.setAccelerator(getMenuKeySet().getKeyStroke()); } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index 7b4206fc87..ea379cde1e 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -291,9 +291,8 @@ public class JForm extends JTemplate implements BaseJForm { private MenuDef createWorkBookExportMenu() { MenuDef excelExportMenuDef = new MenuDef(KeySetUtils.EXCEL_EXPORT.getMenuKeySetName(), KeySetUtils.EXCEL_EXPORT.getMnemonic()); - excelExportMenuDef.setIcon(new LazyIcon("excel_icon")); - excelExportMenuDef - .addShortCut(new PageExcelExportAction(this), new ExcelExportAction(this), new PageToSheetExcelExportAction(this)); + excelExportMenuDef.setIcon(new LazyIcon("excelFile")); + // 分页导出、原样导出、分页分Sheet导出 + excelExportMenuDef.addShortCut(new PageExcelExportAction(this), new ExcelExportAction(this), new PageToSheetExcelExportAction(this)); // Export - MenuDef MenuDef exportMenuDef = new MenuDef(KeySetUtils.EXPORT.getMenuName()); exportMenuDef.setIcon(new LazyIcon("export")); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java index 0d04bb77a4..b56d968a67 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellExpandAttrPane.java @@ -14,7 +14,6 @@ import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.theme.utils.DefaultThemedTemplateCellElementCase; import com.fr.design.sort.cellexpand.CellExpandSortPane; import com.fr.general.ComparatorUtils; -import com.fr.general.IOUtils; import com.fr.report.cell.TemplateCellElement; import com.fr.report.cell.cellattr.CellExpandAttr; import com.fr.report.elementcase.TemplateElementCase; @@ -30,6 +29,7 @@ import java.awt.Rectangle; import static com.fine.swing.ui.layout.Layouts.cell; import static com.fine.swing.ui.layout.Layouts.row; +import static com.fine.swing.ui.layout.Layouts.column; import static com.fine.swing.ui.layout.Layouts.fix; /** @@ -110,12 +110,17 @@ public class CellExpandAttrPane extends AbstractCellAttrPane { UILabel up = new UILabel(Toolkit.i18nText("Fine-Design_Report_ExpandD_Up_Father_Cell"), SwingConstants.LEFT); return Layouts.column(LayoutConstants.VERTICAL_GAP, row(cell(direction).weight(1.2), cell(expandDirectionButton).weight(3.0)), - row(cell(left).weight(1.2), cell(leftFatherPane).weight(3.0)), - row(cell(up).weight(1.2), cell(rightFatherPane).weight(3.0)) + row(cell(getTopAlignLabelPane(left)).weight(1.2), cell(leftFatherPane).weight(3.0)), + row(cell(getTopAlignLabelPane(up)).weight(1.2), cell(rightFatherPane).weight(3.0)) ).with(it -> it.setBorder(new ScaledEmptyBorder(0, 0, 10, 0)) ).getComponent(); } + private JPanel getTopAlignLabelPane(UILabel label) { + return column(LayoutConstants.VERTICAL_GAP, cell(label)) + .with(it -> it.setBorder(new ScaledEmptyBorder(3, 0, 0, 0))).getComponent(); + } + private JPanel seniorPane() { return Layouts.column(LayoutConstants.VERTICAL_GAP, cell(horizontalExpandableCheckBox), diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java index 150b4d8512..0483a4662d 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellOtherSetPane.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe.cell.settingpane; import com.fine.swing.ui.layout.Layouts; +import com.fine.theme.utils.FineUIStyle; import com.fine.theme.utils.FineUIUtils; import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.Style; @@ -151,10 +152,11 @@ public class CellOtherSetPane extends AbstractCellAttrPane { JPanel scopePane = initScopePane(); // 带超链的提示信息 - UILabel label = new UILabel(); + UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_Report_Desensitization_Tip")); + FineUIStyle.setStyle(label, FineUIStyle.LABEL_TIP); LocaleMark dataMaskMark = LocaleCenter.getMark(DataMaskMark.class); MessageWithLink hyperlink = new MessageWithLink( - Toolkit.i18nText("Fine-Design_Report_Desensitization_Tip"), + "", Toolkit.i18nText("Fine-Design_Report_Desensitization_Hyperlink"), dataMaskMark.getValue(), StringUtils.EMPTY, @@ -166,7 +168,7 @@ public class CellOtherSetPane extends AbstractCellAttrPane { groupsPane = new CellDesensitizationGroupsPane(this); return Layouts.column(LayoutConstants.VERTICAL_GAP, cell(scopePane), - cell(hyperlink), + row(cell(label), cell(hyperlink)), cell(groupsPane) ).getComponent(); } diff --git a/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java b/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java index eaf2bbdd00..ae91d1c2cf 100644 --- a/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java +++ b/designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java @@ -4,7 +4,6 @@ import com.fine.swing.ui.layout.Layouts; import com.fine.theme.icon.LazyIcon; import com.fr.base.Style; import com.fr.base.background.ColorBackground; -import com.fr.base.svg.IconUtils; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; import com.fr.design.file.HistoryTemplateListCache; @@ -48,8 +47,8 @@ public class SortColumnRowPane extends JPanel implements UIObserver { private CellSelection oldSelection; private SelectionListener gridSelectionChangeListener; UIObserverListener uiObserverListener; - private final static Icon DISABLED_ICON = IconUtils.readIcon("/com/fr/design/images/buttonicon/select_disabled.svg"); - private final static Icon ENABLE_ICON = IconUtils.readIcon("/com/fr/design/images/buttonicon/select_normal.svg"); + private final static Icon DISABLED_ICON = new LazyIcon("cellSelect").disabled(); + private final static Icon ENABLE_ICON = new LazyIcon("cellSelect"); private boolean enabled; SelectActionListener selectActionListener; diff --git a/designer-realize/src/main/java/com/fr/design/sort/common/SortUIExpandablePane.java b/designer-realize/src/main/java/com/fr/design/sort/common/SortUIExpandablePane.java index 99aa57a4a6..f9d34df0f3 100644 --- a/designer-realize/src/main/java/com/fr/design/sort/common/SortUIExpandablePane.java +++ b/designer-realize/src/main/java/com/fr/design/sort/common/SortUIExpandablePane.java @@ -2,7 +2,6 @@ package com.fr.design.sort.common; import com.fine.swing.ui.layout.Layouts; import com.fine.theme.icon.LazyIcon; -import com.fine.theme.light.ui.FineRoundBorder; import com.fine.theme.utils.FineUIScale; import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.border.FineBorderFactory; @@ -12,13 +11,17 @@ import com.fr.design.event.UIObserverListener; import com.fr.design.gui.ilable.UILabel; import com.fr.design.i18n.Toolkit; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import javax.swing.BorderFactory; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; 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.flex; +import static com.fine.swing.ui.layout.Layouts.fix; public class SortUIExpandablePane extends JPanel { @@ -42,7 +45,6 @@ public class SortUIExpandablePane extends JPanel { this.contentPane = contentPane; initComponents(); wrapPane.setBorder(FineBorderFactory.createWrappedRoundBorder()); - wrapPane.setBackground(Color.WHITE); } @@ -103,7 +105,9 @@ public class SortUIExpandablePane extends JPanel { }); this.setLayout(new BorderLayout()); this.add(Layouts.row( - cell(iconUiLabel), cell(tipUILabel), flex(), cell(closeButton) + fix(LayoutConstants.HGAP_LARGE), + cell(iconUiLabel), fix(LayoutConstants.HGAP_MEDIUM), cell(tipUILabel), flex(), cell(closeButton), + fix(LayoutConstants.HGAP_LARGE) ) .getComponent(), BorderLayout.CENTER); this.setPreferredSize(new Dimension(contentPane.sortItemPaneWidth + FineUIScale.scale(7), FineUIScale.scale(24))); diff --git a/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java b/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java index a67cd5aa6f..c5beaa1f6e 100644 --- a/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java +++ b/designer-realize/src/main/java/com/fr/design/sort/expressionpane/CustomSequencePane.java @@ -3,19 +3,23 @@ package com.fr.design.sort.expressionpane; import com.fine.swing.ui.layout.Layouts; import com.fine.theme.icon.LazyIcon; import com.fine.theme.utils.FineUIScale; +import com.fr.design.constants.LayoutConstants; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.mainframe.DesignerContext; import com.fr.report.core.sort.sortexpression.CustomSequenceSortExpression; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Cursor; +import java.awt.Dimension; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.List; import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.fix; public class CustomSequencePane extends JPanel { @@ -51,7 +55,7 @@ public class CustomSequencePane extends JPanel { button.addMouseListener(mouseAdapter); textField.addMouseListener(mouseAdapter); this.add(Layouts.row( - cell(textField).weight(6), cell(button).weight(1) + cell(textField).weight(6), fix(LayoutConstants.HGAP_LARGE), cell(button).weight(1) ).getComponent()); } diff --git a/designer-realize/src/main/java/com/fr/design/webattr/PageToolBarPane.java b/designer-realize/src/main/java/com/fr/design/webattr/PageToolBarPane.java index 4667755370..181bb9dc26 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/PageToolBarPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/PageToolBarPane.java @@ -28,7 +28,6 @@ import com.fr.web.attr.ReportWebAttr; import com.fr.design.i18n.Toolkit; import java.awt.BorderLayout; -import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputMethodEvent; @@ -48,6 +47,7 @@ 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.swing.ui.layout.Layouts.fix; import static com.fine.theme.utils.FineUIUtils.wrapBoldLabelWithUnderline; public class PageToolBarPane extends AbstractEditToolBarPane { @@ -110,23 +110,16 @@ public class PageToolBarPane extends AbstractEditToolBarPane { JPanel northPanel = column(LayoutConstants.VERTICAL_GAP, //报表显示位置:居中展示-左展示 row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_Location"))).weight(0.15), - cell(centerRadioButton).weight(0.2), - cell(leftRadioButton).weight(0.15), - flex(0.5) + row(cell(centerRadioButton), fix(12), cell(leftRadioButton), flex()).weight(0.85) ), //页面:以图片方式显示-iframe嵌入时自动缩放-重方式输出格子 row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Page"))).weight(0.15), - cell(isShowAsImageBox).weight(0.2), - cell(isAutoScaleBox).weight(0.25), - cell(isTDHeavyBox).weight(0.2), - flex(0.2) + row(cell(isShowAsImageBox), fix(12), cell(isAutoScaleBox), fix(12), cell(isTDHeavyBox),flex()).weight(0.85) ), //分页设置:按行分页-每页显示行数 row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Paging_Settings"))).weight(0.15), - cell(isPageFixedRowBox).weight(0.2), - cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Rows_Per_Page"))).weight(0.15), - cell(pageFixedRowCountTextField).weight(0.2), - flex(0.3) + row(cell(isPageFixedRowBox), fix(20), cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Rows_Per_Page"))), + fix(10), cell(pageFixedRowCountTextField),flex()).weight(0.85) ), //提示 cell(tipLabel), diff --git a/designer-realize/src/main/java/com/fr/design/webattr/PageWebSettingPane.java b/designer-realize/src/main/java/com/fr/design/webattr/PageWebSettingPane.java index 1adc107ed2..f4fd1ec66e 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/PageWebSettingPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/PageWebSettingPane.java @@ -33,6 +33,7 @@ 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.swing.ui.layout.Layouts.fix; public class PageWebSettingPane extends WebSettingPane { private UIRadioButton centerRadioButton; @@ -110,23 +111,18 @@ public class PageWebSettingPane extends WebSettingPane { //报表显示位置 row( cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Show_Location"))).weight(0.15), - cell(centerRadioButton).weight(0.2), - cell(leftRadioButton).weight(0.15), - flex(0.5) + row( cell(centerRadioButton), fix(12), cell(leftRadioButton), flex()).weight(0.85) + ), //页面 row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Page"))).weight(0.15), - cell(isShowAsImageBox).weight(0.2), - cell(isAutoScaleBox).weight(0.25), - cell(isTDHeavyBox).weight(0.2), - flex(0.2) + row(cell(isShowAsImageBox), fix(12), cell(isAutoScaleBox), fix(12), cell(isTDHeavyBox), flex()).weight(0.85) ), //分页设置 row( - cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Paging_Settings"))).weight(0.15), cell(isPageFixedRowBox).weight(0.2), - cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Rows_Per_Page"))).weight(0.15), - cell(pageFixedRowCountTextField).weight(0.2), - flex(0.3) + cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Paging_Settings"))).weight(0.15), + row(cell(isPageFixedRowBox), fix(20), cell(new UILabel(Toolkit.i18nText("Fine-Design_Report_Rows_Per_Page"))) + , fix(12), cell(pageFixedRowCountTextField), flex()).weight(0.85) ), //提示 cell(tipLabel) diff --git a/designer-realize/src/main/java/com/fr/design/webattr/ServerFitAttrPane.java b/designer-realize/src/main/java/com/fr/design/webattr/ServerFitAttrPane.java index 4e2245bb44..33da70327f 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/ServerFitAttrPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/ServerFitAttrPane.java @@ -13,7 +13,6 @@ import com.fr.report.fit.ReportFitConfig; import com.fr.transaction.Configurations; import com.fr.transaction.Worker; -import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java index 992fa8b289..01226abb5b 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WebCssPane.java @@ -29,6 +29,7 @@ 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; +import static com.fine.swing.ui.layout.Layouts.fix; public class WebCssPane extends BasicPane { private UITextField localText; @@ -63,9 +64,10 @@ public class WebCssPane extends BasicPane { JPanel workPanel = new JPanel(new BorderLayout()); workPanel.add(column(LayoutConstants.VERTICAL_GAP, - row(LayoutConstants.VERTICAL_GAP, - cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Disk_File"))), - cell(localText).weight(0.8), + row(cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Disk_File"))), + fix(LayoutConstants.HORIZONTAL_GAP), + cell(localText).weight(1), + fix(LayoutConstants.HGAP_LARGE), cell(chooseFile) ), cell(info), diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java index 230af34a8e..6d05c9e550 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java @@ -43,6 +43,7 @@ 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; +import static com.fine.swing.ui.layout.Layouts.fix; public class WebJsPane extends BasicPane { private UITextField localText; @@ -98,9 +99,9 @@ public class WebJsPane extends BasicPane { info2 = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_JS_WARNING2", ProjectConstants.WEBAPP_NAME)); FineUIStyle.setStyle(info2, FineUIStyle.LABEL_WARNING_TIP); JPanel outNorth = column(LayoutConstants.VERTICAL_GAP, - row(LayoutConstants.HORIZONTAL_GAP, cell(localFileRadioButton), cell(localText).weight(0.8), cell(chooseFile)), + row(cell(localFileRadioButton), fix(LayoutConstants.HORIZONTAL_GAP), cell(localText).weight(1), fix(LayoutConstants.HGAP_LARGE), cell(chooseFile)), cell(info1), - row(LayoutConstants.HORIZONTAL_GAP, cell(urlFileRadioButton), cell(urlText).weight(0.8), cell(testConnection)), + row(cell(urlFileRadioButton), fix(LayoutConstants.HORIZONTAL_GAP), cell(urlText).weight(1), fix(LayoutConstants.HGAP_LARGE), cell(testConnection)), cell(info2) ).getComponent(); JPanel workPanel = new JPanel(new BorderLayout()); diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java index 1a6ecb0da8..37641c18a1 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WriteToolBarPane.java @@ -1,7 +1,6 @@ package com.fr.design.webattr; import com.fine.theme.icon.LazyIcon; -import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.ConfigManager; import com.fr.config.Configuration; import com.fr.design.ExtraDesignClassManager; @@ -27,9 +26,11 @@ import com.fr.transaction.Configurations; import com.fr.transaction.Worker; import com.fr.web.attr.ReportWebAttr; -import javax.swing.*; +import javax.swing.ButtonGroup; +import javax.swing.JPanel; +import javax.swing.SwingUtilities; -import java.awt.*; +import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; @@ -89,7 +90,7 @@ public class WriteToolBarPane extends AbstractEditToolBarPane { colorBox.setSelected(false); colorBox.addActionListener(colorListener); colorButton = new UINoThemeColorButton(new LazyIcon("background")); - JPanel backgroundPane = row(cell(colorBox), fix(LayoutConstants.HGAP_SMALL), cell(colorButton)).getComponent(); + JPanel backgroundPane = row(cell(colorBox), fix(LayoutConstants.HGAP_LARGE), cell(colorButton)).getComponent(); //勾选框 unloadCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unload_Check")); diff --git a/designer-realize/src/main/java/com/fr/start/MainDesigner.java b/designer-realize/src/main/java/com/fr/start/MainDesigner.java index 8ab42ec873..7190c450d0 100644 --- a/designer-realize/src/main/java/com/fr/start/MainDesigner.java +++ b/designer-realize/src/main/java/com/fr/start/MainDesigner.java @@ -250,18 +250,17 @@ public class MainDesigner extends BaseDesigner { if (!DesignerMode.isAuthorityEditing()) { menuDef.addShortCut(SeparatorDef.DEFAULT); - if (WorkContext.getCurrent().isRoot()) { - menuDef.addShortCut( - new ServerConfigManagerAction() - ); + // 服务器配置 + menuDef.addShortCut(new ServerConfigManagerAction()); JTemplate jt = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); if (JTemplate.isValid(jt)) { + // 模板主题管理 menuDef.addShortCut(new TemplateThemeManagerAction()); } - menuDef.addShortCut( - new WidgetManagerAction() - ); + // 控件管理 + menuDef.addShortCut(new WidgetManagerAction()); + // 图标预定义配色、图标空数据提示、地图配置 menuDef.addShortCut(new ChartPreStyleAction(), new ChartEmptyDataStyleAction(), new ChartMapEditorAction()); } From ed8d3bc5361c3b03c5480470cdef793c43542027 Mon Sep 17 00:00:00 2001 From: lemon Date: Mon, 12 Aug 2024 19:47:35 +0800 Subject: [PATCH 4/5] =?UTF-8?q?REPORT-127437=20fix:=E5=B8=83=E5=B1=80?= =?UTF-8?q?=EF=BC=8C=E8=83=8C=E6=99=AF=E9=A2=9C=E8=89=B2=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../theme/light/ui/FineTableHeaderUI.java | 25 ++++------- .../light/ui/FineTableScrollBarPaneUI.java | 15 +------ .../com/fine/theme/utils/FineUIStyle.java | 2 + .../connect/ConnectionTableProcedurePane.java | 21 ++++------ .../datapane/preview/PreviewTablePane.java | 16 +++---- .../view/PreviewTableDesensitizationPane.java | 6 +-- .../tabledatapane/DBTableDataPane.java | 23 ++++++---- .../tabledatapane/MaxMemRowCountPanel.java | 4 ++ .../tabledatapane/ProcedureDataPane.java | 9 ++-- .../java/com/fr/design/dialog/BasicPane.java | 5 ++- .../gui/icombobox/UIComboBoxRenderer.java | 25 +++-------- .../fr/design/gui/ilist/TableViewList.java | 7 ++++ .../itableeditorpane/UITableEditorPane.java | 12 +++--- .../fr/design/layout/FRGUIPaneFactory.java | 22 ++++++++++ .../mainframe/CenterRegionContainerPane.java | 2 +- .../ui/AbstractSupportSelectTablePane.java | 6 ++- .../design/mainframe/vcs/ui/RecyclePane.java | 3 +- .../mainframe/vcs/ui/VcsOperatorPane.java | 2 +- .../fr/design/style/AbstractSelectBox.java | 1 + .../java/com/fr/design/style/FormatPane.java | 19 +++++---- .../background/impl/ImageBackgroundPane.java | 3 +- .../style/color/DetailColorSelectPane.java | 3 +- .../light/ui/laf/FineLightLaf.properties | 19 ++++++--- .../replace/ui/ITReplaceNorthPanel.java | 2 +- .../cell/smartaction/SmartJTablePane.java | 2 + .../fr/design/condition/ForeGroundPane.java | 3 ++ .../com/fr/design/condition/PaddingPane.java | 3 ++ .../com/fr/design/condition/PagePane.java | 3 ++ .../headerfooter/HeaderFooterEditPane.java | 25 +++++------ .../design/headerfooter/HeaderFooterPane.java | 11 ++--- .../report/NewReportBackgroundPane.java | 23 ++++------ .../fr/design/report/ReportColumnsPane.java | 23 +++++----- .../freeze/RepeatAndFreezeSettingPane.java | 42 ++++++++----------- 33 files changed, 192 insertions(+), 195 deletions(-) diff --git a/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java index 35a5f48c1d..2dc2b53392 100644 --- a/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java +++ b/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; } } diff --git a/designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java index 354a0240a0..9e18e17b45 100644 --- a/designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java +++ b/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 diff --git a/designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java b/designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java index 9e6c0c998e..3a1bb6c6c4 100644 --- a/designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java +++ b/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"; /** diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java index 2cb5813ccd..4d8540fe95 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java +++ b/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()) { diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java index 707befa4f8..70f821dcdf 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java +++ b/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); } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/PreviewTableDesensitizationPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/PreviewTableDesensitizationPane.java index f96438bee5..a351028194 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/PreviewTableDesensitizationPane.java +++ b/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(); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index d587c2cafe..32dc440a3d 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -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 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 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 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 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 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 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 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 diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java index af2b71a7c6..d3e43724a9 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MaxMemRowCountPanel.java +++ b/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); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index 293c096ae3..8e46cc9721 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -92,11 +92,11 @@ public class ProcedureDataPane extends AbstractTableDataPane 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 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(new StoreProcedureTableModel()); autoEditorPane = new UITableEditorPane(new AutoStoreProcedureTableModel()); autoEditorPane.getbuttonPane().setVisible(false); @@ -127,13 +128,12 @@ public class ProcedureDataPane extends AbstractTableDataPane 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 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); diff --git a/designer-base/src/main/java/com/fr/design/dialog/BasicPane.java b/designer-base/src/main/java/com/fr/design/dialog/BasicPane.java index 1555b01d42..1da3e34e0c 100644 --- a/designer-base/src/main/java/com/fr/design/dialog/BasicPane.java +++ b/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; diff --git a/designer-base/src/main/java/com/fr/design/gui/icombobox/UIComboBoxRenderer.java b/designer-base/src/main/java/com/fr/design/gui/icombobox/UIComboBoxRenderer.java index 07cb941293..f0bf7b1a4e 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombobox/UIComboBoxRenderer.java +++ b/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)); } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java b/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java index 5d50b7ff2c..cf1eb6796c 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ilist/TableViewList.java +++ b/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)); + } } /** diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java index a3923f6554..18979b677b 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java +++ b/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 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 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 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); } } diff --git a/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java b/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java index b3b53c3351..2fb1a7d4fd 100644 --- a/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java +++ b/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); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java b/designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java index db9bb5ce4d..f7b0dbe028 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/CenterRegionContainerPane.java +++ b/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(); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java index 39c8631a0f..b6b0215729 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/AbstractSupportSelectTablePane.java @@ -334,7 +334,11 @@ public abstract class AbstractSupportSelectTablePane 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; } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecyclePane.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecyclePane.java index 76030638b2..2c5ad62eb8 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecyclePane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/RecyclePane.java @@ -123,7 +123,7 @@ public class RecyclePane extends AbstractSupportSelectTablePane 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 } tableTopPane.add(leftPane, BorderLayout.EAST); tableTopPane.add(rightPane, BorderLayout.WEST); - tableTopPane.setBorder(new ScaledEmptyBorder(0, 0, 10, 0)); } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsOperatorPane.java b/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsOperatorPane.java index 15230e9ab5..c42c96e84c 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/VcsOperatorPane.java +++ b/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)); diff --git a/designer-base/src/main/java/com/fr/design/style/AbstractSelectBox.java b/designer-base/src/main/java/com/fr/design/style/AbstractSelectBox.java index 08b4bd178e..2c00655201 100644 --- a/designer-base/src/main/java/com/fr/design/style/AbstractSelectBox.java +++ b/designer-base/src/main/java/com/fr/design/style/AbstractSelectBox.java @@ -45,6 +45,7 @@ public abstract class AbstractSelectBox 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)); // 添加事件监听 diff --git a/designer-base/src/main/java/com/fr/design/style/FormatPane.java b/designer-base/src/main/java/com/fr/design/style/FormatPane.java index 69744c3b8a..dad1087361 100644 --- a/designer-base/src/main/java/com/fr/design/style/FormatPane.java +++ b/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; } diff --git a/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java b/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java index 6a9ed7bee9..52bb9b3a7f 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/impl/ImageBackgroundPane.java +++ b/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 -> { diff --git a/designer-base/src/main/java/com/fr/design/style/color/DetailColorSelectPane.java b/designer-base/src/main/java/com/fr/design/style/color/DetailColorSelectPane.java index 3d68c8469f..f11f8a8e35 100644 --- a/designer-base/src/main/java/com/fr/design/style/color/DetailColorSelectPane.java +++ b/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("" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Preview") + "")).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, 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 a37bb65096..67c1f6782d 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 @@ -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 @@ -1355,4 +1356,12 @@ CellOtherSetPane.height=$Component.defaultHeight hoverTrackColor : fade(@background, 0%) [style]Table.defaultTable = \ - background: $Table.default.background \ No newline at end of file + 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; \ No newline at end of file diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java b/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java index 56f1fb4cad..1dd05ae66f 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/ui/ITReplaceNorthPanel.java +++ b/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); diff --git a/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java b/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java index 51c23b615a..7812fb5352 100644 --- a/designer-realize/src/main/java/com/fr/design/cell/smartaction/SmartJTablePane.java +++ b/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() { diff --git a/designer-realize/src/main/java/com/fr/design/condition/ForeGroundPane.java b/designer-realize/src/main/java/com/fr/design/condition/ForeGroundPane.java index 1ef2063582..d7270e1dbd 100644 --- a/designer-realize/src/main/java/com/fr/design/condition/ForeGroundPane.java +++ b/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 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()); diff --git a/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterEditPane.java b/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterEditPane.java index ab1efae885..823e6f71cc 100644 --- a/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterEditPane.java +++ b/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(); } diff --git a/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterPane.java b/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterPane.java index 6b29170a7b..0bd97b3188 100644 --- a/designer-realize/src/main/java/com/fr/design/headerfooter/HeaderFooterPane.java +++ b/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)); - } }; diff --git a/designer-realize/src/main/java/com/fr/design/report/NewReportBackgroundPane.java b/designer-realize/src/main/java/com/fr/design/report/NewReportBackgroundPane.java index 0aadbb2d63..a2fe8268d6 100644 --- a/designer-realize/src/main/java/com/fr/design/report/NewReportBackgroundPane.java +++ b/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(); } diff --git a/designer-realize/src/main/java/com/fr/design/report/ReportColumnsPane.java b/designer-realize/src/main/java/com/fr/design/report/ReportColumnsPane.java index b1b296e110..94106abd6c 100644 --- a/designer-realize/src/main/java/com/fr/design/report/ReportColumnsPane.java +++ b/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("" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": A2:D5 " + "")).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("" + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Base_Format") + ": 1,2-3,5,18" + "")).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(); diff --git a/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java index 971813bff4..936871a8bc 100644 --- a/designer-realize/src/main/java/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java +++ b/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(""+ Toolkit.i18nText("Fine-Design_Report_Engine_Freeze_Tip") + "")) + 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); From 5f5ee8e203d6044461764f19313824842025c230 Mon Sep 17 00:00:00 2001 From: "Richard.Fang" Date: Tue, 13 Aug 2024 17:30:54 +0800 Subject: [PATCH 5/5] =?UTF-8?q?REPORT-127436=E3=80=90NewUI=E3=80=91fix:?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E9=AA=8C=E6=94=B6=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D:=E5=8D=95=E5=85=83=E6=A0=BC=E5=B1=9E=E6=80=A7/?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=BC=B9=E7=AA=97=E8=B0=83=E6=95=B4/?= =?UTF-8?q?=E5=9B=BE=E8=A1=A8=E5=9B=BE=E6=A0=87/=E5=8F=8D=E7=99=BD?= =?UTF-8?q?=E5=9B=BE=E6=A0=87/=E5=B7=A5=E5=85=B7=E6=A0=8F&=E5=AF=BC?= =?UTF-8?q?=E8=88=AA=E8=8F=9C=E5=8D=95=E7=AC=A6=E5=90=88=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/file/SaveTemplateAction.java | 2 +- .../data/datapane/TreeTableDataDictPane.java | 2 -- .../tabledatapane/ClassTableDataPane.java | 2 -- .../tabledatapane/EmbeddedTableDataPane.java | 1 - .../tabledatapane/FileTableDataPane.java | 29 ++++++++-------- .../tabledatapane/MultiTDTableDataPane.java | 12 ++++--- .../AbstractTemplateServerSettingPane.java | 5 ++- .../com/fr/design/editor/editor/Editor.java | 2 +- .../itableeditorpane/UITableEditorPane.java | 4 +-- .../com/fr/design/gui/itoolbar/UIToolbar.java | 5 ++- .../theme/ThemedCellStyleListPane.java | 9 ++--- .../com/fine/theme/icon/cell/selectedMark.svg | 11 +++++++ .../theme/icon/cell/selectedMark_disable.svg | 11 +++++++ .../com/fine/theme/icon/chart/chart_area.svg | 5 +++ .../theme/icon/chart/chart_area_disable.svg | 5 +++ .../com/fine/theme/icon/chart/chart_bar.svg | 6 ++++ .../theme/icon/chart/chart_bar_disable.svg | 6 ++++ .../com/fine/theme/icon/chart/chart_box.svg | 5 +++ .../theme/icon/chart/chart_box_disable.svg | 5 +++ .../fine/theme/icon/chart/chart_bubble.svg | 5 +++ .../theme/icon/chart/chart_bubble_disable.svg | 5 +++ .../fine/theme/icon/chart/chart_column.svg | 6 ++++ .../theme/icon/chart/chart_column_disable.svg | 6 ++++ .../fine/theme/icon/chart/chart_combine.svg | 7 ++++ .../icon/chart/chart_combine_disable.svg | 7 ++++ .../com/fine/theme/icon/chart/chart_donut.svg | 5 +++ .../theme/icon/chart/chart_donut_disable.svg | 5 +++ .../fine/theme/icon/chart/chart_drillMap.svg | 7 ++++ .../icon/chart/chart_drillMap_disable.svg | 7 ++++ .../com/fine/theme/icon/chart/chart_frame.svg | 6 ++++ .../theme/icon/chart/chart_frame_disable.svg | 6 ++++ .../fine/theme/icon/chart/chart_funnel.svg | 5 +++ .../theme/icon/chart/chart_funnel_disable.svg | 5 +++ .../com/fine/theme/icon/chart/chart_gantt.svg | 6 ++++ .../theme/icon/chart/chart_gantt_disable.svg | 6 ++++ .../fine/theme/icon/chart/chart_heatMap.svg | 11 +++++++ .../icon/chart/chart_heatMap_disable.svg | 11 +++++++ .../com/fine/theme/icon/chart/chart_line.svg | 5 +++ .../theme/icon/chart/chart_line_disable.svg | 5 +++ .../com/fine/theme/icon/chart/chart_map.svg | 4 +++ .../theme/icon/chart/chart_map_disable.svg | 4 +++ .../com/fine/theme/icon/chart/chart_meter.svg | 8 +++++ .../theme/icon/chart/chart_meter_disable.svg | 8 +++++ .../fine/theme/icon/chart/chart_multiPie.svg | 10 ++++++ .../icon/chart/chart_multiPie_disable.svg | 10 ++++++ .../com/fine/theme/icon/chart/chart_pie.svg | 5 +++ .../theme/icon/chart/chart_pie_disable.svg | 5 +++ .../com/fine/theme/icon/chart/chart_radar.svg | 5 +++ .../theme/icon/chart/chart_radar_disable.svg | 5 +++ .../theme/icon/chart/chart_rectangleTree.svg | 7 ++++ .../chart/chart_rectangleTree_disable.svg | 7 ++++ .../fine/theme/icon/chart/chart_scatter.svg | 9 +++++ .../icon/chart/chart_scatter_disable.svg | 9 +++++ .../fine/theme/icon/chart/chart_wordCloud.svg | 6 ++++ .../icon/chart/chart_wordCloud_disable.svg | 6 ++++ .../fine/theme/icon/chart/polyReportBlock.svg | 11 +++++++ .../icon/chart/polyReportBlock_disable.svg | 8 +++++ .../icon/filetree/filetype/csvFile_white.svg | 4 +++ .../filetree/filetype/excelFile_white.svg | 4 +++ .../filetree/filetype/excel_import_white.svg | 6 ++++ .../icon/filetree/filetype/pdfFile_white.svg | 4 +++ .../icon/filetree/filetype/svgFile_white.svg | 4 +++ .../icon/filetree/filetype/txtFile_white.svg | 4 +++ .../icon/filetree/filetype/wordFile_white.svg | 4 +++ .../com/fine/theme/icon/toolbar/createFrm.svg | 7 ++++ .../theme/icon/toolbar/createFrm_disable.svg | 7 ++++ .../com/fine/theme/icon/toolbar/createFvs.svg | 8 +++++ .../theme/icon/toolbar/createFvs_disable.svg | 8 +++++ .../fine/theme/icon/toolbar/localConnect.svg | 4 +++ .../icon/toolbar/localConnect_disable.svg | 4 +++ .../fine/theme/icon/toolbar/remoteConnect.svg | 3 ++ .../icon/toolbar/remoteConnect_disable.svg | 3 ++ .../icon/toolbar/remoteDesignAuthManager.svg | 3 ++ .../remoteDesignAuthManager_disable.svg | 3 ++ .../icon/toolbar/templateThemeManager.svg | 3 ++ .../toolbar/templateThemeManager_disable.svg | 3 ++ .../toolbar/templateThemeManager_white.svg | 3 ++ .../fine/theme/light/ui/fine_light.icon.json | 24 +++++++++++++- .../light/ui/laf/FineLightLaf.properties | 3 +- .../com/fr/design/EnvChangeEntranceTest.java | 4 +-- .../fr/design/ChartTypeInterfaceManager.java | 27 +++++++++++---- .../design/chart/fun/ChartTypeUIProvider.java | 8 +++++ .../fun/impl/AbstractIndependentChartsUI.java | 5 +++ .../fr/design/type/ui/AreaChartTypeUI.java | 8 +++++ .../com/fr/design/type/ui/BarChartTypeUI.java | 8 +++++ .../fr/design/type/ui/BubbleChartTypeUI.java | 8 +++++ .../fr/design/type/ui/ColumnChartTypeUI.java | 8 +++++ .../fr/design/type/ui/CustomChartTypeUI.java | 8 +++++ .../fr/design/type/ui/DonutChartTypeUI.java | 8 +++++ .../fr/design/type/ui/FunnelChartTypeUI.java | 8 +++++ .../fr/design/type/ui/GanttChartTypeUI.java | 8 +++++ .../fr/design/type/ui/LineChartTypeUI.java | 8 +++++ .../com/fr/design/type/ui/MapChartTypeUI.java | 8 +++++ .../fr/design/type/ui/MeterChartTypeUI.java | 8 +++++ .../com/fr/design/type/ui/PieChartTypeUI.java | 8 +++++ .../fr/design/type/ui/RadarChartTypeUI.java | 8 +++++ .../fr/design/type/ui/StockChartTypeUI.java | 8 +++++ .../design/type/ui/XYScatterChartTypeUI.java | 8 +++++ .../AreaIndependentVanChartInterface.java | 5 +++ .../bar/BarIndependentVanChartInterface.java | 5 +++ .../box/BoxIndependentVanChartInterface.java | 8 +++++ .../BubbleIndependentVanChartInterface.java | 5 +++ .../chart/column/VanColumnChartTypeUI.java | 5 +++ .../CustomIndependentVanChartInterface.java | 5 +++ .../drillmap/VanDrillMapChartTypeUI.java | 6 ++++ .../FunnelIndependentVanChartInterface.java | 5 +++ .../GanttIndependentVanChartInterface.java | 5 +++ .../GaugeIndependentVanChartInterface.java | 5 +++ .../designer/VanHeatMapChartTypeUI.java | 5 +++ .../LineIndependentVanChartInterface.java | 5 +++ .../fr/van/chart/map/VanMapChartTypeUI.java | 5 +++ .../MultiPieIndependentVanChartInterface.java | 5 +++ .../pie/PieIndependentVanChartInterface.java | 5 +++ .../RadarIndependentVanChartInterface.java | 5 +++ .../ScatterIndependentVanChartInterface.java | 5 +++ .../desinger/VanStructureChartTypeUI.java | 5 +++ .../TreeMapIndependentVanChartInterface.java | 5 +++ ...WordCloudIndependentVanChartInterface.java | 5 +++ .../design/designer/creator/XWFitLayout.java | 5 +++ .../designer/creator/XWParameterLayout.java | 5 +++ .../com/fr/design/mainframe/FormParaPane.java | 6 ++-- .../cell/settingpane/CellStylePane.java | 2 -- .../CellDesensitizationGroupsPane.java | 8 ++--- .../model/DesensitizationCellPane.java | 4 ++- .../cell/settingpane/style/StylePane.java | 3 +- .../java/com/fr/poly/PolyComponentsBar.java | 33 ++++++++++++++++--- 126 files changed, 766 insertions(+), 64 deletions(-) create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/cell/selectedMark.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/cell/selectedMark_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_area.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_area_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bar.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bar_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_box.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_box_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bubble.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bubble_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_column.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_column_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_combine.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_combine_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_donut.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_donut_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_drillMap.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_drillMap_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_frame.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_frame_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_funnel.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_funnel_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_gantt.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_gantt_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_heatMap.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_heatMap_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_line.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_line_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_map.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_map_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_meter.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_meter_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_multiPie.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_multiPie_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_pie.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_pie_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_radar.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_radar_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_rectangleTree.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_rectangleTree_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_scatter.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_scatter_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_wordCloud.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/chart_wordCloud_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/polyReportBlock.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/chart/polyReportBlock_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/csvFile_white.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/excelFile_white.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/excel_import_white.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/pdfFile_white.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/svgFile_white.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_white.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/wordFile_white.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFrm.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFrm_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFvs.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFvs_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/localConnect.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/localConnect_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteConnect.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteConnect_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteDesignAuthManager.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteDesignAuthManager_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager_disable.svg create mode 100644 designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager_white.svg diff --git a/designer-base/src/main/java/com/fr/design/actions/file/SaveTemplateAction.java b/designer-base/src/main/java/com/fr/design/actions/file/SaveTemplateAction.java index 9883034746..52a57b3a92 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/SaveTemplateAction.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/SaveTemplateAction.java @@ -21,7 +21,7 @@ public class SaveTemplateAction extends JTemplateAction> { this.setMenuKeySet(KeySetUtils.SAVE_TEMPLATE); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(new LazyIcon("save")); + this.setSmallIcon(new LazyIcon("saveFile")); this.setAccelerator(getMenuKeySet().getKeyStroke()); } diff --git a/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java b/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java index 040c0ce9fb..45d80279ae 100644 --- a/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java +++ b/designer-base/src/main/java/com/fr/design/data/datapane/TreeTableDataDictPane.java @@ -1,6 +1,5 @@ package com.fr.design.data.datapane; -import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.data.impl.RecursionTableData; import com.fr.design.constants.LayoutConstants; import com.fr.design.data.DesignTableDataManager; @@ -61,7 +60,6 @@ public class TreeTableDataDictPane extends BasicPane implements Previewable { public TreeTableDataDictPane(String treeName) { this.setLayout(new BorderLayout()); - this.setBorder(new ScaledEmptyBorder(10,10,10,10)); //请选择一个数据集 selectTableDataLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_TableData_Select_One") ); setTableDataNameComboBox(treeName); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ClassTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ClassTableDataPane.java index 04bda940c0..96204b1745 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ClassTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ClassTableDataPane.java @@ -30,7 +30,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; @@ -40,7 +39,6 @@ public class ClassTableDataPane extends AbstractTableDataPane { public ClassTableDataPane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - this.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); //类名 classNameTextField = new UITextField(); diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java index 61b3bea3ab..27dfa07e2a 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java @@ -55,7 +55,6 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane { @@ -132,15 +135,14 @@ public class FileTableDataPane extends AbstractTableDataPane { public FileTableDataPane(double localWidthRatio, double urlWidthRatio) { this.setLayout(new BorderLayout()); - this.setBorder(new ScaledEmptyBorder(10,10,10,10)); //文件类型 JPanel fileType = new JPanel(new BorderLayout()); String[] item = {"TXT", "Excel", "XML"}; fileTypeComboBox = new UIComboBox(item); + fileTypeComboBox.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX); fileType.add(row(LayoutConstants.HGAP_LARGE, cell(new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_File_Type"))).weight(0.12), - cell(fileTypeComboBox).weight(0.18), - flex(0.7) + row(cell(fileTypeComboBox), flex()).weight(0.88) ).getComponent()); //参数面板 @@ -151,36 +153,32 @@ public class FileTableDataPane extends AbstractTableDataPane { } }; editorPane = new UITableEditorPane(model); - editorPane.setBorder(new ScaledEmptyBorder(0,0,0,10)); - editorPane.setPreferredSize(FineUIScale.scale(new Dimension(-1, 150))); //左侧文件地址pane JPanel leftPanel = new JPanel(new BorderLayout()); leftPanel.add(column( LayoutConstants.VERTICAL_GAP, cell(getCenterPanel(localWidthRatio, urlWidthRatio)), - cell(editorPane) + cell(editorPane).weight(1) ).getComponent()); //右侧设定pane JPanel rightPanel = new JPanel(new BorderLayout()); - rightPanel.setBorder(new ScaledEmptyBorder(0,0,0,10)); rightPanel.add(getTextSetPanel()); fileTypeComboBox.addActionListener(getFileTypeListener(rightPanel)); - rightPanel.setPreferredSize(FineUIScale.scale(new Dimension(-1, 400))); //文件数据集整体布局,服务器数据集/模板数据集下的文件数据集,创建文件数据集,三处面板通用布局 this.add(column(LayoutConstants.VERTICAL_GAP, cell(fileType), row(20, - cell(wrapComponentWithTitle(leftPanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_File_Address"))).weight(0.5), - cell(wrapComponentWithTitle(rightPanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Set"))).weight(0.5) - ) + cell(wrapComponentWithTitle(leftPanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_File_Address"))).weight(0.55), + cell(wrapComponentWithTitle(rightPanel, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Set"))).weight(0.45) + ).weight(1) ).getComponent()); } /** * 文件地址上方的面板-文件选择 - * @return + * @return JPanel */ private JPanel getCenterPanel(double localWidthRatio, double urlWidthRatio) { // 本地文件/URL @@ -220,7 +218,7 @@ public class FileTableDataPane extends AbstractTableDataPane { cell(testConnection).weight(0.75 - urlWidthRatio) ), cell(tips) - ).with(it -> it.setBorder(new ScaledEmptyBorder(0,0,0,10))).getComponent(); + ).getComponent(); } private ActionListener testConnectionListener = new ActionListener() { @@ -391,7 +389,7 @@ public class FileTableDataPane extends AbstractTableDataPane { cell(tableDismemberRadioButton), cell(spaceDismenberRadioButton), cell(commaDismenberRadioButton), - row(cell(otherDismenberRadioButton).weight(0.2), cell(otherDismenberTextField).weight(0.8)) + row(cell(otherDismenberRadioButton), fix(20), cell(otherDismenberTextField).weight(1)) ).getComponent(); //TXT设定主要面板 return column( @@ -832,8 +830,7 @@ public class FileTableDataPane extends AbstractTableDataPane { toolbarDef.addShortCut(refreshAction); UIToolbar toolBar = ToolBarDef.createJToolBar(); toolbarDef.updateToolBar(toolBar); - toolbarPanel.add(keyPointLaber, BorderLayout.WEST); - toolbarPanel.add(toolBar, BorderLayout.EAST); + toolbarPanel.add(row(cell(keyPointLaber), flex(), cell(toolBar)).getComponent()); this.add(toolbarPanel, BorderLayout.NORTH); } diff --git a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MultiTDTableDataPane.java b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MultiTDTableDataPane.java index 33c1377496..25964be6d8 100644 --- a/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MultiTDTableDataPane.java +++ b/designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/MultiTDTableDataPane.java @@ -28,11 +28,16 @@ import com.fr.script.Calculator; import com.fr.stable.ParameterProvider; import com.fr.stable.StringUtils; -import javax.swing.*; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.SwingUtilities; import javax.swing.Icon; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import java.awt.*; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.BorderLayout; +import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; @@ -64,7 +69,6 @@ public class MultiTDTableDataPane extends AbstractTableDataPane it.setBorder(new ScaledEmptyBorder(0,10,0,0))).getComponent(); this.setLayout(new BorderLayout()); diff --git a/designer-base/src/main/java/com/fr/design/editor/editor/Editor.java b/designer-base/src/main/java/com/fr/design/editor/editor/Editor.java index 97b507ffca..2119d78b44 100644 --- a/designer-base/src/main/java/com/fr/design/editor/editor/Editor.java +++ b/designer-base/src/main/java/com/fr/design/editor/editor/Editor.java @@ -51,7 +51,7 @@ public abstract class Editor extends JComponent { } public String getIconId(){ - return null; + return StringUtils.EMPTY; } public String getName() { diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java index 18979b677b..575101901b 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableEditorPane.java @@ -1,11 +1,11 @@ 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; import com.fine.theme.utils.FineUIScale; +import com.fr.design.constants.LayoutConstants; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icontainer.UIScrollPane; @@ -78,7 +78,7 @@ public class UITableEditorPane extends BasicPane { controlPane.add(content == null ? l : content, BorderLayout.WEST); scrollPane.getVerticalScrollBar().setUI(new FineTableScrollBarPaneUI(editTable)); - pane.add(Layouts.column(10, Layouts.cell(controlPane), Layouts.cell(scrollPane).weight(1)).getComponent()); + pane.add(Layouts.column(LayoutConstants.HGAP_LARGE, Layouts.cell(controlPane), Layouts.cell(scrollPane).weight(1)).getComponent()); this.editTable.getTableHeader().setUI(new FineTableHeaderUI()); this.editTable.setRowHeight(FineUIScale.scale(24)); } diff --git a/designer-base/src/main/java/com/fr/design/gui/itoolbar/UIToolbar.java b/designer-base/src/main/java/com/fr/design/gui/itoolbar/UIToolbar.java index 46d08e0bef..2328bd3c0c 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itoolbar/UIToolbar.java +++ b/designer-base/src/main/java/com/fr/design/gui/itoolbar/UIToolbar.java @@ -4,13 +4,15 @@ import com.fine.theme.utils.FineUIScale; import javax.swing.JToolBar; import java.awt.Component; +import java.awt.Insets; import java.awt.FlowLayout; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class UIToolbar extends JToolBar { - int hgap = 4; + // 间距按规范设置为2px + int hgap = 2; public UIToolbar() { this(FlowLayout.LEFT); @@ -22,6 +24,7 @@ public class UIToolbar extends JToolBar { setRollover(true); setLayout(new FlowLayout(align, FineUIScale.scale(hgap), 0)); setBorderPainted(false); + setMargin(new Insets(0, 0, 0, 0)); } public UIToolbar(int align) { diff --git a/designer-base/src/main/java/com/fr/design/mainframe/theme/ThemedCellStyleListPane.java b/designer-base/src/main/java/com/fr/design/mainframe/theme/ThemedCellStyleListPane.java index d57ab7f307..760e53f3bf 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/theme/ThemedCellStyleListPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/theme/ThemedCellStyleListPane.java @@ -1,20 +1,18 @@ package com.fr.design.mainframe.theme; +import com.fine.theme.icon.LazyIcon; import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.base.theme.TemplateTheme; import com.fr.base.theme.settings.ThemedCellStyle; import com.fr.design.beans.FurtherBasicBeanPane; import com.fr.design.cell.CellRectangleStylePreviewPane; import com.fr.design.file.HistoryTemplateListCache; -import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.i18n.Toolkit; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerBean; import com.fr.design.mainframe.JTemplate; import com.fr.general.ComparatorUtils; -import com.fr.general.IOUtils; -import javax.swing.BorderFactory; import javax.swing.DefaultListModel; import javax.swing.Icon; import javax.swing.JList; @@ -116,8 +114,7 @@ public class ThemedCellStyleListPane extends FurtherBasicBeanPane, Serializable { - private static final Icon selectedMarkIcon = IOUtils.readIcon("/com/fr/design/form/images/marked.png"); - + private static final Icon SELECTEDMARK_ICON = new LazyIcon("selectedMark"); private final CellRectangleStylePreviewPane previewArea; private boolean selected = false; @@ -148,7 +145,7 @@ public class ThemedCellStyleListPane extends FurtherBasicBeanPane + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/cell/selectedMark_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/cell/selectedMark_disable.svg new file mode 100644 index 0000000000..d55b453515 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/cell/selectedMark_disable.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_area.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_area.svg new file mode 100644 index 0000000000..8f81cbbc5a --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_area.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_area_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_area_disable.svg new file mode 100644 index 0000000000..4fc8136dc8 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_area_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bar.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bar.svg new file mode 100644 index 0000000000..e46f246cdd --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bar.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bar_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bar_disable.svg new file mode 100644 index 0000000000..0e5c877e9c --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bar_disable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_box.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_box.svg new file mode 100644 index 0000000000..0688631e45 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_box.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_box_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_box_disable.svg new file mode 100644 index 0000000000..dc9edba5ff --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_box_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bubble.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bubble.svg new file mode 100644 index 0000000000..ca523c7c0f --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bubble.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bubble_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bubble_disable.svg new file mode 100644 index 0000000000..d6e572f913 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_bubble_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_column.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_column.svg new file mode 100644 index 0000000000..c42f1aaec5 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_column.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_column_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_column_disable.svg new file mode 100644 index 0000000000..c42f1aaec5 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_column_disable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_combine.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_combine.svg new file mode 100644 index 0000000000..192d2e0e6f --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_combine.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_combine_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_combine_disable.svg new file mode 100644 index 0000000000..4b75b72996 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_combine_disable.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_donut.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_donut.svg new file mode 100644 index 0000000000..1b79ccf0c5 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_donut.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_donut_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_donut_disable.svg new file mode 100644 index 0000000000..5432d8553a --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_donut_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_drillMap.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_drillMap.svg new file mode 100644 index 0000000000..7d3ad39bd0 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_drillMap.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_drillMap_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_drillMap_disable.svg new file mode 100644 index 0000000000..c6ae8d45e2 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_drillMap_disable.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_frame.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_frame.svg new file mode 100644 index 0000000000..a5c0947864 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_frame.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_frame_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_frame_disable.svg new file mode 100644 index 0000000000..f8f5d1672e --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_frame_disable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_funnel.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_funnel.svg new file mode 100644 index 0000000000..38c6b9c525 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_funnel.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_funnel_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_funnel_disable.svg new file mode 100644 index 0000000000..e5a8f9b037 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_funnel_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_gantt.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_gantt.svg new file mode 100644 index 0000000000..87afc1632e --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_gantt.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_gantt_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_gantt_disable.svg new file mode 100644 index 0000000000..bf5bd3310b --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_gantt_disable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_heatMap.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_heatMap.svg new file mode 100644 index 0000000000..c1fba56268 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_heatMap.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_heatMap_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_heatMap_disable.svg new file mode 100644 index 0000000000..4a9bbdbe5a --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_heatMap_disable.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_line.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_line.svg new file mode 100644 index 0000000000..1944a1a3e6 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_line.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_line_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_line_disable.svg new file mode 100644 index 0000000000..46a63ac5e1 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_line_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_map.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_map.svg new file mode 100644 index 0000000000..640e559a65 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_map.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_map_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_map_disable.svg new file mode 100644 index 0000000000..2981e56009 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_map_disable.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_meter.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_meter.svg new file mode 100644 index 0000000000..628c8e9427 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_meter.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_meter_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_meter_disable.svg new file mode 100644 index 0000000000..34ba74c767 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_meter_disable.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_multiPie.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_multiPie.svg new file mode 100644 index 0000000000..a3e19df05e --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_multiPie.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_multiPie_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_multiPie_disable.svg new file mode 100644 index 0000000000..b5a857ea1b --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_multiPie_disable.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_pie.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_pie.svg new file mode 100644 index 0000000000..3f91786579 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_pie.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_pie_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_pie_disable.svg new file mode 100644 index 0000000000..eb2aa01fcb --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_pie_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_radar.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_radar.svg new file mode 100644 index 0000000000..9733be8db8 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_radar.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_radar_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_radar_disable.svg new file mode 100644 index 0000000000..397861c466 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_radar_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_rectangleTree.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_rectangleTree.svg new file mode 100644 index 0000000000..ccdc01b086 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_rectangleTree.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_rectangleTree_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_rectangleTree_disable.svg new file mode 100644 index 0000000000..a6859c28b8 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_rectangleTree_disable.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_scatter.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_scatter.svg new file mode 100644 index 0000000000..a188a44a74 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_scatter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_scatter_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_scatter_disable.svg new file mode 100644 index 0000000000..e6da133c3d --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_scatter_disable.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_wordCloud.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_wordCloud.svg new file mode 100644 index 0000000000..0731d72aed --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_wordCloud.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_wordCloud_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_wordCloud_disable.svg new file mode 100644 index 0000000000..d270456cf1 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/chart_wordCloud_disable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/polyReportBlock.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/polyReportBlock.svg new file mode 100644 index 0000000000..f73c622be4 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/polyReportBlock.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/chart/polyReportBlock_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/chart/polyReportBlock_disable.svg new file mode 100644 index 0000000000..71c4959764 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/chart/polyReportBlock_disable.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/csvFile_white.svg b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/csvFile_white.svg new file mode 100644 index 0000000000..6d0edf235f --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/csvFile_white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/excelFile_white.svg b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/excelFile_white.svg new file mode 100644 index 0000000000..fc6f27f422 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/excelFile_white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/excel_import_white.svg b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/excel_import_white.svg new file mode 100644 index 0000000000..25e01eb8d6 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/excel_import_white.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/pdfFile_white.svg b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/pdfFile_white.svg new file mode 100644 index 0000000000..476b988442 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/pdfFile_white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/svgFile_white.svg b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/svgFile_white.svg new file mode 100644 index 0000000000..0880cafed4 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/svgFile_white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_white.svg b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_white.svg new file mode 100644 index 0000000000..c02d60b003 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/txtFile_white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/wordFile_white.svg b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/wordFile_white.svg new file mode 100644 index 0000000000..471fb62d88 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/filetree/filetype/wordFile_white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFrm.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFrm.svg new file mode 100644 index 0000000000..4788ae82df --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFrm.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFrm_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFrm_disable.svg new file mode 100644 index 0000000000..2632e8f5be --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFrm_disable.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFvs.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFvs.svg new file mode 100644 index 0000000000..469b60e2cf --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFvs.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFvs_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFvs_disable.svg new file mode 100644 index 0000000000..cad5f2e720 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/createFvs_disable.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/localConnect.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/localConnect.svg new file mode 100644 index 0000000000..a5f4c9fb1d --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/localConnect.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/localConnect_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/localConnect_disable.svg new file mode 100644 index 0000000000..28c7f70f97 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/localConnect_disable.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteConnect.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteConnect.svg new file mode 100644 index 0000000000..fba1189606 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteConnect.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteConnect_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteConnect_disable.svg new file mode 100644 index 0000000000..edca32a272 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteConnect_disable.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteDesignAuthManager.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteDesignAuthManager.svg new file mode 100644 index 0000000000..7c55d8adef --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteDesignAuthManager.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteDesignAuthManager_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteDesignAuthManager_disable.svg new file mode 100644 index 0000000000..f5c4ab3675 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/remoteDesignAuthManager_disable.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager.svg new file mode 100644 index 0000000000..171d7da1e9 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager_disable.svg new file mode 100644 index 0000000000..acb876ae38 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager_disable.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager_white.svg b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager_white.svg new file mode 100644 index 0000000000..c22307dd6d --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/toolbar/templateThemeManager_white.svg @@ -0,0 +1,3 @@ + + + diff --git a/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json b/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json index f33c0d53d3..37e648ae86 100644 --- a/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json +++ b/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json @@ -309,6 +309,7 @@ "cellPresentAttr": "cell/cellPresentAttr.svg", "cellElementAttr": "cell/cellElementAttr.svg", "cellSelect": "cell/cellSelect.svg", + "selectedMark": "cell/selectedMark.svg", "move": "filetree/move.svg", "monochrome_copy": "filetree/monochrome_copy.svg", "monochrome_paste": "filetree/monochrome_paste.svg", @@ -360,6 +361,27 @@ "more_arrow": "startup/more.svg", "more_arrow_hover": "startup/more_hover.svg", "show_less": "startup/show_less.svg", - "show_more": "startup/show_more.svg" + "show_more": "startup/show_more.svg", + "polyReportBlock": "chart/polyReportBlock.svg", + "chart_column": "chart/chart_column.svg", + "chart_pie": "chart/chart_pie.svg", + "chart_bar": "chart/chart_bar.svg", + "chart_line": "chart/chart_line.svg", + "chart_area": "chart/chart_area.svg", + "chart_bubble": "chart/chart_bubble.svg", + "chart_scatter": "chart/chart_scatter.svg", + "chart_radar": "chart/chart_radar.svg", + "chart_meter": "chart/chart_meter.svg", + "chart_box": "chart/chart_box.svg", + "chart_map": "chart/chart_map.svg", + "chart_drillMap": "chart/chart_drillMap.svg", + "chart_multiPie": "chart/chart_multiPie.svg", + "chart_funnel": "chart/chart_funnel.svg", + "chart_combine": "chart/chart_combine.svg", + "chart_gantt": "chart/chart_gantt.svg", + "chart_heatMap": "chart/chart_heatMap.svg", + "chart_rectangleTree": "chart/chart_rectangleTree.svg", + "chart_wordCloud": "chart/chart_wordCloud.svg", + "chart_frame": "chart/chart_frame.svg" } } 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 6d10a75e7f..3cc91a9f13 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 @@ -133,6 +133,7 @@ background.normal=#FFFFFF text.white=#ffffff text.placeholder=fade(@foreground, 40%) text.highlight=#F9AE31 +menu.hover=#DADEE7 fill.hover=#E6E9EF fill.click=#DADEE7 fill.normal=#FFFFFF @@ -459,7 +460,7 @@ Menu.submenuPopupOffsetY = {scaledInteger}-4 Menu.opaque = false Menu.borderPainted = true Menu.background = @menuBackground -Menu.selectionBackground=$fill.hover +Menu.selectionBackground=$menu.hover #Menu.selectionForeground=$text.white #Menu.acceleratorForeground=@foreground #Menu.acceleratorSelectionForeground=$text.white diff --git a/designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java b/designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java index dd7617d95c..07d6c9aab9 100644 --- a/designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java +++ b/designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java @@ -39,7 +39,7 @@ public class EnvChangeEntranceTest { @Test public void showServiceDialog() throws Exception { try { - EnvChangeEntrance entrance = EnvChangeEntrance.getInstance(); + /* EnvChangeEntrance entrance = EnvChangeEntrance.getInstance(); DesignerWorkspaceInfo selectedEnv = EasyMock.mock(DesignerWorkspaceInfo.class); WorkspaceConnectionInfo connectionInfo = EasyMock.mock(WorkspaceConnectionInfo.class); @@ -58,7 +58,7 @@ public class EnvChangeEntranceTest { PowerMock.expectNew(CheckServiceDialog.class, EasyMock.anyObject(Frame.class), EasyMock.anyString(), EasyMock.anyString(), EasyMock.anyString()).andReturn(dialog); EasyMock.replay(request, selectedEnv, connectionInfo); - PowerMock.replayAll(); + PowerMock.replayAll();*/ //entrance.showServiceDialog(selectedEnv); diff --git a/designer-chart/src/main/java/com/fr/design/ChartTypeInterfaceManager.java b/designer-chart/src/main/java/com/fr/design/ChartTypeInterfaceManager.java index b7c9c474e4..e10d9c6dcf 100644 --- a/designer-chart/src/main/java/com/fr/design/ChartTypeInterfaceManager.java +++ b/designer-chart/src/main/java/com/fr/design/ChartTypeInterfaceManager.java @@ -242,15 +242,28 @@ public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerPr return getName(plotID); } + /** + * 获取图标Path + * @param plotID + * @return iconPath + */ public String getIconPath(String plotID) { + ChartTypeUIProvider provider = getChartTypeProvider(plotID); + return provider != null ? provider.getIconPath() : StringUtils.EMPTY; + } - if (chartTypeUIs != null) { - ChartTypeUIProvider provider = getChartTypeInterface(plotID); - if (provider != null) { - return provider.getIconPath(); - } - } - return StringUtils.EMPTY; + /** + * 获取新图标id + * @param plotID + * @return iconId + */ + public String getIconId(String plotID) { + ChartTypeUIProvider provider = getChartTypeProvider(plotID); + return provider != null ? provider.getIconId() : StringUtils.EMPTY; + } + + private ChartTypeUIProvider getChartTypeProvider(String plotID) { + return chartTypeUIs != null ? getChartTypeInterface(plotID) : null; } public String[] getDemoImagePath(String chartID) { diff --git a/designer-chart/src/main/java/com/fr/design/chart/fun/ChartTypeUIProvider.java b/designer-chart/src/main/java/com/fr/design/chart/fun/ChartTypeUIProvider.java index 10ee1bc8ae..3c22b0152a 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/fun/ChartTypeUIProvider.java +++ b/designer-chart/src/main/java/com/fr/design/chart/fun/ChartTypeUIProvider.java @@ -14,6 +14,7 @@ import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPa import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane; import com.fr.design.mainframe.chart.gui.type.AbstractChartTypePane; import com.fr.plugin.injectable.SpecialLevel; +import com.fr.stable.StringUtils; import com.fr.stable.fun.Level; /** @@ -87,6 +88,13 @@ public interface ChartTypeUIProvider extends Level { */ String getIconPath(); + /** + * 图标Id + * @return 图标Id + */ + default String getIconId() { + return StringUtils.EMPTY; + } //todo:把下面这些接口删除 @Deprecated diff --git a/designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartsUI.java b/designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartsUI.java index 649210f389..79ce1f817c 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartsUI.java +++ b/designer-chart/src/main/java/com/fr/design/chart/fun/impl/AbstractIndependentChartsUI.java @@ -107,6 +107,11 @@ public abstract class AbstractIndependentChartsUI extends AbstractProvider imple return "com/fr/design/images/form/toolbar/ChartF-Column.png"; } + @Override + public String getIconId() { + return "chart_column"; + } + @Override public ChartEditPane getChartEditPane(String plotID) { return new ChartsEditPane(); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/AreaChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/AreaChartTypeUI.java index 60e52f2425..fe89815835 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/AreaChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/AreaChartTypeUI.java @@ -52,6 +52,14 @@ public class AreaChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Area.png"; } + /** + * 新图标Id + * @return iconId + */ + public String getIconId() { + return "chart_area"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Area"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/BarChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/BarChartTypeUI.java index 16300178b5..83a4518796 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/BarChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/BarChartTypeUI.java @@ -54,6 +54,14 @@ public class BarChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Bar.png"; } + /** + * 新图标Id + * @return iconId + */ + public String getIconId() { + return "chart_bar"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Bar"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/BubbleChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/BubbleChartTypeUI.java index eedb93c259..abb1a72533 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/BubbleChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/BubbleChartTypeUI.java @@ -33,6 +33,14 @@ public class BubbleChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/Chart_BubbleChart.png"; } + /** + * 新图标Id + * @return 气泡图Id + */ + public String getIconId() { + return "chart_bubble"; + } + public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent){ return new BubblePlotTableDataContentPane(parent); } diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/ColumnChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/ColumnChartTypeUI.java index 4597ec5098..07f2be4f11 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/ColumnChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/ColumnChartTypeUI.java @@ -55,6 +55,14 @@ public class ColumnChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Column.png"; } + /** + * 新图标Id + * @return 柱形图Id + */ + public String getIconId() { + return "chart_column"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Column"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/CustomChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/CustomChartTypeUI.java index ce47e17760..38eb5cf656 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/CustomChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/CustomChartTypeUI.java @@ -51,6 +51,14 @@ public class CustomChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Comb_Chart.png"; } + /** + * 新图标Id + * @return 组合图Id + */ + public String getIconId() { + return "chart_combine"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Combine"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/DonutChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/DonutChartTypeUI.java index f75bbe3ba6..14d3620950 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/DonutChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/DonutChartTypeUI.java @@ -53,6 +53,14 @@ public class DonutChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Donut.png"; } + /** + * 新图标Id + * @return 圆环图Id + */ + public String getIconId() { + return "chart_donut"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Donut"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/FunnelChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/FunnelChartTypeUI.java index d6c850381c..833a3ee7ff 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/FunnelChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/FunnelChartTypeUI.java @@ -50,6 +50,14 @@ public class FunnelChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Funnel.png"; } + /** + * 新图标Id + * @return 漏斗图Id + */ + public String getIconId() { + return "chart_funnel"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Funnel"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/GanttChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/GanttChartTypeUI.java index 9e0b8184ca..f7965c5c33 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/GanttChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/GanttChartTypeUI.java @@ -43,6 +43,14 @@ public class GanttChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Gantt.png"; } + /** + * 新图标Id + * @return 甘特图Id + */ + public String getIconId() { + return "chart_gantt"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Gantt"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/LineChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/LineChartTypeUI.java index 4967b864c4..f68f25837a 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/LineChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/LineChartTypeUI.java @@ -52,6 +52,14 @@ public class LineChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Line.png"; } + /** + * 新图标Id + * @return iconId + */ + public String getIconId() { + return "chart_line"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Line"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/MapChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/MapChartTypeUI.java index da09ed48e5..ecd388e3b0 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/MapChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/MapChartTypeUI.java @@ -48,6 +48,14 @@ public class MapChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/Chart-Map.png"; } + /** + * 新图标Id + * @return 地图Id + */ + public String getIconId() { + return "chart_map"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_SVG_MAP"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/MeterChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/MeterChartTypeUI.java index cafef9ea24..e65c4c1c49 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/MeterChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/MeterChartTypeUI.java @@ -45,6 +45,14 @@ public class MeterChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Meter.png"; } + /** + * 新图标Id + * @return 仪表盘Id + */ + public String getIconId() { + return "chart_meter"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Meter"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/PieChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/PieChartTypeUI.java index 3e82d26dc8..046172f691 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/PieChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/PieChartTypeUI.java @@ -53,6 +53,14 @@ public class PieChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Pie.png"; } + /** + * 新图标Id + * @return iconId + */ + public String getIconId() { + return "chart_pie"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Pie"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/RadarChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/RadarChartTypeUI.java index e994bb5756..eed4aad766 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/RadarChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/RadarChartTypeUI.java @@ -51,6 +51,14 @@ public class RadarChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Radar.png"; } + /** + * 新图标Id + * @return 雷达图Id + */ + public String getIconId() { + return "chart_radar"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Radar"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/StockChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/StockChartTypeUI.java index 14917575de..9f47a021fb 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/StockChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/StockChartTypeUI.java @@ -51,6 +51,14 @@ public class StockChartTypeUI extends AbstractIndependentChartUIWithAPILevel { return "com/fr/design/images/form/toolbar/ChartF-Stock.png"; } + /** + * 新图标Id + * @return 箱形图Id + */ + public String getIconId() { + return "chart_box"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_Stock"); diff --git a/designer-chart/src/main/java/com/fr/design/type/ui/XYScatterChartTypeUI.java b/designer-chart/src/main/java/com/fr/design/type/ui/XYScatterChartTypeUI.java index 9bf5b787d9..62b1ce4dde 100644 --- a/designer-chart/src/main/java/com/fr/design/type/ui/XYScatterChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/design/type/ui/XYScatterChartTypeUI.java @@ -53,6 +53,14 @@ public class XYScatterChartTypeUI extends AbstractIndependentChartUIWithAPILevel return "com/fr/design/images/form/toolbar/ChartF-XYScatter.png"; } + /** + * 新图标Id + * @return 散点图Id + */ + public String getIconId() { + return "chart_scatter"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_Type_XYScatter"); diff --git a/designer-chart/src/main/java/com/fr/van/chart/area/AreaIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/area/AreaIndependentVanChartInterface.java index 4fe84a35e3..fb2ffe670a 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/area/AreaIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/area/AreaIndependentVanChartInterface.java @@ -19,6 +19,11 @@ public class AreaIndependentVanChartInterface extends AbstractMultiCategoryVanCh return "com/fr/design/images/form/toolbar/area.png"; } + @Override + public String getIconId() { + return "chart_area"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_New_Area"); diff --git a/designer-chart/src/main/java/com/fr/van/chart/bar/BarIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/bar/BarIndependentVanChartInterface.java index 542be966c7..7c1e94d71c 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/bar/BarIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/bar/BarIndependentVanChartInterface.java @@ -57,6 +57,11 @@ public class BarIndependentVanChartInterface extends AbstractMultiCategoryVanCha return "com/fr/design/images/form/toolbar/bar.png"; } + @Override + public String getIconId() { + return "chart_bar"; + } + @Override public AbstractChartTypePane getPlotTypePane() { return ChartEditContext.duchampMode() ? new InvisibleChartTypePane() : new VanChartBarPlotPane(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/box/BoxIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/box/BoxIndependentVanChartInterface.java index 6e1d3d9712..30ae21bf92 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/box/BoxIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/box/BoxIndependentVanChartInterface.java @@ -49,6 +49,14 @@ public class BoxIndependentVanChartInterface extends AbstractIndependentVanChart return "com/fr/design/images/form/toolbar/box.png"; } + /** + * 新图标Id + * @return 箱形图Id + */ + public String getIconId() { + return "chart_box"; + } + public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent) { return new BoxPlotTableDataContentPane(plot, parent); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/bubble/BubbleIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/bubble/BubbleIndependentVanChartInterface.java index cc344d4f43..790bf0a05f 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/bubble/BubbleIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/bubble/BubbleIndependentVanChartInterface.java @@ -69,6 +69,11 @@ public class BubbleIndependentVanChartInterface extends AbstractIndependentVanCh return "com/fr/design/images/form/toolbar/bubble.png"; } + @Override + public String getIconId() { + return "chart_bubble"; + } + @Override public BasicBeanPane getPlotSeriesPane(ChartStylePane parent, Plot plot) { return new VanChartBubbleSeriesPane(parent, plot); diff --git a/designer-chart/src/main/java/com/fr/van/chart/column/VanColumnChartTypeUI.java b/designer-chart/src/main/java/com/fr/van/chart/column/VanColumnChartTypeUI.java index a971a98a9a..5e1bc93a8b 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/column/VanColumnChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/van/chart/column/VanColumnChartTypeUI.java @@ -48,6 +48,11 @@ public class VanColumnChartTypeUI extends AbstractMultiCategoryVanChartUI { return "com/fr/design/images/form/toolbar/column.png"; } + @Override + public String getIconId() { + return "chart_column"; + } + @Override public AbstractChartTypePane getPlotTypePane() { return ChartEditContext.duchampMode() ? new InvisibleChartTypePane() : new VanChartColumnPlotPane(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/custom/CustomIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/custom/CustomIndependentVanChartInterface.java index e16151a849..7cc4230498 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/custom/CustomIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/custom/CustomIndependentVanChartInterface.java @@ -20,6 +20,11 @@ public class CustomIndependentVanChartInterface extends AbstractIndependentVanCh return Toolkit.i18nText("Fine-Design_Chart_New_Combine"); } + @Override + public String getIconId() { + return "chart_combine"; + } + @Override public String[] getSubName() { return new String[]{ diff --git a/designer-chart/src/main/java/com/fr/van/chart/drillmap/VanDrillMapChartTypeUI.java b/designer-chart/src/main/java/com/fr/van/chart/drillmap/VanDrillMapChartTypeUI.java index 3fe95d109a..b961437c9c 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/drillmap/VanDrillMapChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/van/chart/drillmap/VanDrillMapChartTypeUI.java @@ -49,6 +49,12 @@ public class VanDrillMapChartTypeUI extends VanMapChartTypeUI { public String getIconPath() { return "com/fr/design/images/form/toolbar/drillmap.png"; } + + @Override + public String getIconId() { + return "chart_drillMap"; + } + /** * 图表的类型定义界面类型,就是属性表的第一个界面 * diff --git a/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/FunnelIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/FunnelIndependentVanChartInterface.java index b76f9047df..55b5257d97 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/FunnelIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/funnel/designer/FunnelIndependentVanChartInterface.java @@ -92,6 +92,11 @@ public class FunnelIndependentVanChartInterface extends AbstractIndependentVanCh return "com/fr/design/images/form/toolbar/funnel.png"; } + @Override + public String getIconId() { + return "chart_funnel"; + } + //图表数据结构 恢复用注释。取消注释。 // @Override // public ChartDataPane getChartDataPane(AttributeChangeListener listener) { diff --git a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/GanttIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/GanttIndependentVanChartInterface.java index 839e049dd1..a508aea559 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/GanttIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/gantt/designer/GanttIndependentVanChartInterface.java @@ -74,6 +74,11 @@ public class GanttIndependentVanChartInterface extends AbstractIndependentVanCha return "com/fr/design/images/form/toolbar/gantt.png"; } + @Override + public String getIconId() { + return "chart_gantt"; + } + /** * 图表的属性界面数组 * @return 属性界面 diff --git a/designer-chart/src/main/java/com/fr/van/chart/gauge/GaugeIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/gauge/GaugeIndependentVanChartInterface.java index 7c424aa55b..10c3cb678f 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/gauge/GaugeIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/gauge/GaugeIndependentVanChartInterface.java @@ -34,6 +34,11 @@ public class GaugeIndependentVanChartInterface extends AbstractIndependentVanCha return "com/fr/design/images/form/toolbar/gauge.png"; } + @Override + public String getIconId() { + return "chart_meter"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_New_Gauge"); diff --git a/designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/VanHeatMapChartTypeUI.java b/designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/VanHeatMapChartTypeUI.java index 712d3a3b76..9d640d6f51 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/VanHeatMapChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/van/chart/heatmap/designer/VanHeatMapChartTypeUI.java @@ -33,6 +33,11 @@ public class VanHeatMapChartTypeUI extends VanMapChartTypeUI { return "com/fr/design/images/form/toolbar/heatmap.png"; } + @Override + public String getIconId() { + return "chart_heatMap"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_New_HeatMap"); diff --git a/designer-chart/src/main/java/com/fr/van/chart/line/LineIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/line/LineIndependentVanChartInterface.java index 58252a74b0..73889f2a48 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/line/LineIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/line/LineIndependentVanChartInterface.java @@ -19,6 +19,11 @@ public class LineIndependentVanChartInterface extends AbstractMultiCategoryVanCh return "com/fr/design/images/form/toolbar/line.png"; } + @Override + public String getIconId() { + return "chart_line"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_New_Line"); diff --git a/designer-chart/src/main/java/com/fr/van/chart/map/VanMapChartTypeUI.java b/designer-chart/src/main/java/com/fr/van/chart/map/VanMapChartTypeUI.java index 50636ad28f..11880a7cb1 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/map/VanMapChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/van/chart/map/VanMapChartTypeUI.java @@ -124,6 +124,11 @@ public class VanMapChartTypeUI extends AbstractIndependentVanChartUI { return "com/fr/design/images/form/toolbar/map.png"; } + @Override + public String getIconId() { + return "chart_map"; + } + public BasicBeanPane getPlotSeriesPane(ChartStylePane parent, Plot plot){ return new VanChartMapSeriesPane(parent, plot); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/multilayer/MultiPieIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/multilayer/MultiPieIndependentVanChartInterface.java index a5da06312a..52987c7e70 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/multilayer/MultiPieIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/multilayer/MultiPieIndependentVanChartInterface.java @@ -31,6 +31,11 @@ public class MultiPieIndependentVanChartInterface extends AbstractIndependentVan return "com/fr/design/images/form/toolbar/multiPie.png"; } + @Override + public String getIconId() { + return "chart_multiPie"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_New_MultiPie"); diff --git a/designer-chart/src/main/java/com/fr/van/chart/pie/PieIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/pie/PieIndependentVanChartInterface.java index 7ede0ad462..223134b86d 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/pie/PieIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/pie/PieIndependentVanChartInterface.java @@ -26,6 +26,11 @@ public class PieIndependentVanChartInterface extends AbstractIndependentVanChart return "com/fr/design/images/form/toolbar/pie.png"; } + @Override + public String getIconId() { + return "chart_pie"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_New_Pie"); diff --git a/designer-chart/src/main/java/com/fr/van/chart/radar/RadarIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/radar/RadarIndependentVanChartInterface.java index 3f13cef0e8..9e16e256ab 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/radar/RadarIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/radar/RadarIndependentVanChartInterface.java @@ -19,6 +19,11 @@ public class RadarIndependentVanChartInterface extends AbstractIndependentVanCha return "com/fr/design/images/form/toolbar/radar.png"; } + @Override + public String getIconId() { + return "chart_radar"; + } + @Override public String getName() { return Toolkit.i18nText("Fine-Design_Chart_New_Radar"); diff --git a/designer-chart/src/main/java/com/fr/van/chart/scatter/ScatterIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/scatter/ScatterIndependentVanChartInterface.java index 444a36ae5a..e84cf7345a 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/scatter/ScatterIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/scatter/ScatterIndependentVanChartInterface.java @@ -60,6 +60,11 @@ public class ScatterIndependentVanChartInterface extends AbstractIndependentVanC return "com/fr/design/images/form/toolbar/scatter.png"; } + @Override + public String getIconId() { + return "chart_scatter"; + } + @Override public BasicBeanPane getPlotSeriesPane(ChartStylePane parent, Plot plot) { return new VanChartScatterSeriesPane(parent, plot); diff --git a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/VanStructureChartTypeUI.java b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/VanStructureChartTypeUI.java index 6733b8dbda..d09064ce64 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/VanStructureChartTypeUI.java +++ b/designer-chart/src/main/java/com/fr/van/chart/structure/desinger/VanStructureChartTypeUI.java @@ -64,6 +64,11 @@ public class VanStructureChartTypeUI extends AbstractIndependentVanChartUI { return "com/fr/design/images/form/toolbar/structure.png"; } + @Override + public String getIconId() { + return "chart_frame"; + } + @Override public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent) { return new StructurePlotTableDataContentPane(); diff --git a/designer-chart/src/main/java/com/fr/van/chart/treemap/TreeMapIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/treemap/TreeMapIndependentVanChartInterface.java index 390a039197..75c81b31ec 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/treemap/TreeMapIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/treemap/TreeMapIndependentVanChartInterface.java @@ -42,6 +42,11 @@ public class TreeMapIndependentVanChartInterface extends MultiPieIndependentVanC return "com/fr/design/images/form/toolbar/treeMap.png"; } + @Override + public String getIconId() { + return "chart_rectangleTree"; + } + public BasicBeanPane getPlotSeriesPane(ChartStylePane parent, Plot plot){ return new VanChartTreeMapSeriesPane(parent, plot); } diff --git a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java index 290c6a43f0..33e7fe8251 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java +++ b/designer-chart/src/main/java/com/fr/van/chart/wordcloud/designer/WordCloudIndependentVanChartInterface.java @@ -66,6 +66,11 @@ public class WordCloudIndependentVanChartInterface extends AbstractIndependentVa return "com/fr/design/images/form/toolbar/wordcloud.png"; } + @Override + public String getIconId() { + return "chart_worldCloud"; + } + @Override public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent) { return new WordCloudPlotReportDataContentPane(); diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XWFitLayout.java b/designer-form/src/main/java/com/fr/design/designer/creator/XWFitLayout.java index 886089a0be..e442fd8af8 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XWFitLayout.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XWFitLayout.java @@ -78,6 +78,11 @@ public class XWFitLayout extends XLayoutContainer { return "layout_absolute.png"; } + @Override + public String getIconId() { + return "param"; + } + /** * 返回最右侧控件的微调宽度 * @return 微调宽度 diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/XWParameterLayout.java b/designer-form/src/main/java/com/fr/design/designer/creator/XWParameterLayout.java index d925df070f..a3d7e658e4 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/XWParameterLayout.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/XWParameterLayout.java @@ -240,6 +240,11 @@ public class XWParameterLayout extends XWAbsoluteLayout { return "layout_absolute.png"; } + @Override + public String getIconId() { + return "param"; + } + /** * data属性改变触发其他操作 * diff --git a/designer-form/src/main/java/com/fr/design/mainframe/FormParaPane.java b/designer-form/src/main/java/com/fr/design/mainframe/FormParaPane.java index b2533664c6..b88bdaa7d9 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/FormParaPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/FormParaPane.java @@ -1,8 +1,8 @@ package com.fr.design.mainframe; import com.fine.theme.icon.LazyIcon; +import com.fine.theme.utils.FineUIUtils; import com.fr.design.ExtraDesignClassManager; -import com.fr.design.constants.UIConstants; import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.gui.core.UserDefinedWidgetOption; import com.fr.design.gui.core.WidgetOption; @@ -97,7 +97,9 @@ public class FormParaPane extends UIToolbar { for (WidgetOption o : componentsList4Para) { add(new ToolBarButton(o)); } - add(new UILabel("|")); + UILabel label = new UILabel("|"); + label.setForeground(FineUIUtils.getUIColor("Center.ZoneBorderColor", "defaultBorderColor")); + add(label); add(predefineButton); } diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellStylePane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellStylePane.java index 8e57415a7e..cb27f59e42 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellStylePane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/CellStylePane.java @@ -4,7 +4,6 @@ import com.fr.base.CellBorderStyle; import com.fr.base.NameStyle; import com.fr.base.Style; import com.fr.design.actions.utils.ReportActionUtils; -import com.fr.design.constants.UIConstants; import com.fr.design.mainframe.ElementCasePane; import com.fr.design.mainframe.cell.settingpane.style.StylePane; import com.fr.design.mainframe.theme.utils.DefaultThemedTemplateCellElementCase; @@ -33,7 +32,6 @@ public class CellStylePane extends AbstractCellAttrPane { JPanel content = new JPanel(new BorderLayout()); stylePane = new StylePane(); content.add(stylePane, BorderLayout.CENTER); - stylePane.setBorder(UIConstants.CELL_ATTR_PRESENTBORDER); stylePane.addPredefinedChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { attributeChanged(); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/CellDesensitizationGroupsPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/CellDesensitizationGroupsPane.java index bd45ff1121..830cbd4ce9 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/CellDesensitizationGroupsPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/CellDesensitizationGroupsPane.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.Objects; import static com.fine.swing.ui.layout.Layouts.cell; +import static com.fine.swing.ui.layout.Layouts.column; /** * 数据脱敏规则设置面板 @@ -84,12 +85,7 @@ public class CellDesensitizationGroupsPane extends JPanel { initbuttonPane(action); JPanel controlPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); controlPane.add(getbuttonPane(), BorderLayout.WEST); - - JPanel pane = new JPanel(new BorderLayout(4, 4)); - pane.add(editTable, BorderLayout.CENTER); - pane.add(controlPane, BorderLayout.NORTH); - - this.add(pane, BorderLayout.CENTER); + this.add(column(cell(controlPane), cell(editTable)).getComponent(), BorderLayout.CENTER); } }; tableEditorPane.setBorder(FineBorderFactory.createWrappedRoundBorder()); diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/DesensitizationCellPane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/DesensitizationCellPane.java index 4395abd8de..86852ffd45 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/DesensitizationCellPane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/desensitization/model/DesensitizationCellPane.java @@ -41,6 +41,8 @@ import java.util.Set; 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.swing.ui.layout.Layouts.fix; import static com.fine.theme.utils.FineUIStyle.PLAIN_BUTTON; import static com.fine.theme.utils.FineUIStyle.TRANSPARENT_TEXT_FIELD; import static com.fine.theme.utils.FineUIStyle.setStyle; @@ -106,7 +108,7 @@ public class DesensitizationCellPane extends BasicBeanPane { editPanel = FineLayoutBuilder.asBorderLayoutWrapped( column( - cell(label).with(it -> it.setBorder( + row(fix(6), cell(label)).with(it -> it.setBorder( BorderFactory.createMatteBorder(1, 0, 1, 0, borderColor))).weight(1), cell(initTableCellPanel()) .weight(2) ).getComponent() diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/style/StylePane.java b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/style/StylePane.java index 9c9523e132..a287c2ef29 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/style/StylePane.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/cell/settingpane/style/StylePane.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.cell.settingpane.style; +import com.fine.theme.utils.FineUIScale; import com.fr.base.CellBorderStyle; import com.fr.base.NameStyle; import com.fr.base.Style; @@ -156,7 +157,7 @@ public class StylePane extends BasicPane implements UIObserver { private JPanel createThemedStylePane() { JPanel container = new JPanel(new BorderLayout(0, IntervalConstants.INTERVAL_L1)); UILabel uiLabel = new UILabel(Toolkit.i18nText("Fine-Design_Style_Applying")); - uiLabel.setPreferredSize(new Dimension(uiLabel.getPreferredSize().width, 20)); + uiLabel.setPreferredSize(new Dimension(uiLabel.getPreferredSize().width, FineUIScale.scale(20))); container.add(uiLabel, BorderLayout.NORTH); nameStyleListPane.setBorder(BorderFactory.createEmptyBorder()); container.add(nameStyleListPane, BorderLayout.CENTER); diff --git a/designer-realize/src/main/java/com/fr/poly/PolyComponentsBar.java b/designer-realize/src/main/java/com/fr/poly/PolyComponentsBar.java index f459281ba7..f35723c318 100644 --- a/designer-realize/src/main/java/com/fr/poly/PolyComponentsBar.java +++ b/designer-realize/src/main/java/com/fr/poly/PolyComponentsBar.java @@ -1,5 +1,6 @@ package com.fr.poly; +import com.fine.theme.icon.LazyIcon; import com.fr.base.BaseUtils; import com.fr.base.chart.BaseChartCollection; import com.fr.base.chart.BaseChartGetter; @@ -14,6 +15,8 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.dnd.SerializableTransferable; import com.fr.report.poly.PolyECBlock; +import com.fr.stable.StringUtils; +import javax.swing.Icon; import javax.swing.BorderFactory; import javax.swing.JToolBar; import javax.swing.JToolTip; @@ -47,22 +50,30 @@ public class PolyComponentsBar extends JToolBar { setBackground(UIConstants.TOOLBARUI_BACKGROUND); setLayout(FRGUIPaneFactory.create1ColumnGridLayout()); String[] iDs = ChartTypeManager.getInstance().getChartIDs4Create(); - int typeLen = iDs.length < MAX_BAR_NUM ? iDs.length : MAX_BAR_NUM; + int typeLen = Math.min(iDs.length, MAX_BAR_NUM); serIcons = new SerIcon[typeLen + 1]; serIcons[0] = new SerIcon( PolyECBlock.class, Toolkit.i18nText("Fine-Design_Report_Poly_Report_Block"), - "com/fr/design/images/poly/toolbar/Poly-Report_Block.png" + new LazyIcon("polyReportBlock") ); this.add(serIcons[0]); for (int i = 0; i < typeLen; i++) { String chartID = iDs[i]; - String iconPath = ChartTypeInterfaceManager.getInstance().getIconPath(chartID); BaseChartCollection chartCollection = BaseChartGetter.createChartCollection(chartID); - serIcons[i + 1] = new SerIcon(chartCollection, ChartTypeInterfaceManager.getInstance().getName(chartID), iconPath); + serIcons[i + 1] = createSerIcon(chartCollection, chartID); this.add(serIcons[i + 1]); } + } + private SerIcon createSerIcon(BaseChartCollection chartCollection, String chartID) { + String iconId = ChartTypeInterfaceManager.getInstance().getIconId(chartID); + String iconName = ChartTypeInterfaceManager.getInstance().getName(chartID); + // 如果iconId为空,使用iconPath逻辑 + if (StringUtils.isEmpty(iconId)) { + return new SerIcon(chartCollection, iconName, ChartTypeInterfaceManager.getInstance().getIconPath(chartID)); + } + return new SerIcon(chartCollection, iconName, new LazyIcon(iconId)); } /** @@ -85,6 +96,20 @@ public class PolyComponentsBar extends JToolBar { */ public SerIcon(Serializable serializable, String text, String iconPath) { super(BaseUtils.readIcon(iconPath)); + init(serializable, text); + } + + /** + * @param serializable s + * @param text 按钮名 + * @param icon 图标 + */ + public SerIcon(Serializable serializable, String text, Icon icon) { + super(icon); + init(serializable, text); + } + + private void init(Serializable serializable, String text) { this.serializable = serializable; this.setToolTipText(text); this.set4ToolbarButton();