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..2dc2b53392 --- /dev/null +++ b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java @@ -0,0 +1,98 @@ +package com.fine.theme.light.ui; + +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.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() { + } + + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + Border border = DefaultLookup.getBorder(this, this.ui, "TableHeader.cellBorder"); + this.setText(value == null ? "" : value.toString()); + this.setHorizontalAlignment(SwingConstants.LEFT); + this.setBorder(border); + 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) { + Border border; + if (column == table.getColumnCount() - 1) { + border = BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor")), + UIManager.getBorder("Table.cellNoFocusBorder")); + } else { + 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 new file mode 100644 index 0000000000..9e18e17b45 --- /dev/null +++ b/designer-base/src/main/java/com/fine/theme/light/ui/FineTableScrollBarPaneUI.java @@ -0,0 +1,40 @@ +package com.fine.theme.light.ui; + +import com.formdev.flatlaf.ui.FlatScrollBarUI; + +import javax.swing.JComponent; +import javax.swing.JTable; +import java.awt.Graphics; +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); + } + + @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 e85aff674a..a98d062021 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,10 @@ public interface FineUIStyle { String PASTEL_BUTTON = "pastelButton"; String BREADCRUMB_BUTTON = "breadcrumbButton"; + String DEFAULT_TABLE = "defaultTable"; + String WHITE_BUTTON = "whiteButton"; + String ORIGINAL_BUTTON = "originalButton"; + /** * 添加组件的样式类,类似css,该方法会接在原样式后方 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/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/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..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; @@ -34,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 TreeTableDataDictPane extends BasicPane implements Previewable { @@ -52,6 +52,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); @@ -59,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); @@ -69,13 +69,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 +118,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 +176,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/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/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..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 @@ -4,7 +4,10 @@ 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.FineUIStyle; import com.fine.theme.utils.FineUIUtils; import com.fr.base.TableData; import com.fr.data.TableDataSource; @@ -25,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; @@ -88,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; @@ -104,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) { @@ -208,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); } @@ -308,8 +304,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 +401,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 +509,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..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,16 +1,16 @@ package com.fr.design.data.datapane.preview.desensitization.view; import com.fine.theme.icon.LazyIcon; +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.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.Component; @@ -47,7 +47,7 @@ public class PreviewTableDesensitizationPane extends JPanel { /** * 脱敏效果预览按钮 */ - private UIToggleButton previewToggle; + private UIButton previewToggle; public PreviewTableDesensitizationPane(PreviewTablePane previewTablePane) { @@ -100,10 +100,12 @@ 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); + FineUIStyle.setStyle(previewToggle, FineUIStyle.ORIGINAL_BUTTON); 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 { 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/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/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 @@ -219,8 +217,8 @@ public class FileTableDataPane extends AbstractTableDataPane { cell(urlText).weight(urlWidthRatio), cell(testConnection).weight(0.75 - urlWidthRatio) ), - cell(tips).weight(1) - ).with(it -> it.setBorder(new ScaledEmptyBorder(0,0,0,10))).getComponent(); + cell(tips) + ).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/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/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 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/AbstractTemplateServerSettingPane.java b/designer-base/src/main/java/com/fr/design/dialog/AbstractTemplateServerSettingPane.java index 6ae979c303..15a758e64e 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,9 @@ 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; +import static com.fine.theme.utils.FineClientProperties.ADAPTIVE_COMBO_BOX; +import static com.fine.theme.utils.FineClientProperties.COMBO_BOX_TYPE; /** * 封装了"为该模版单独设置、采用服务器设置"选项功能的设置面板 @@ -40,12 +41,13 @@ public abstract class AbstractTemplateServerSettingPane extends BasicPane { private void initComponents() { chooseComboBox = new UIComboBox(CHOOSEITEM); chooseComboBox.addItemListener(itemListener); + chooseComboBox.putClientProperty(COMBO_BOX_TYPE, ADAPTIVE_COMBO_BOX); //以下设置,部分面板通用 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), + 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..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,9 +1,11 @@ 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; +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,18 +307,23 @@ 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")); 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(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)); + 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/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/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/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/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/icombocheckbox/UIComboCheckBox.java b/designer-base/src/main/java/com/fr/design/gui/icombocheckbox/UIComboCheckBox.java index 1925fb988d..904d1041ea 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombocheckbox/UIComboCheckBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icombocheckbox/UIComboCheckBox.java @@ -1,24 +1,23 @@ package com.fr.design.gui.icombocheckbox; +import com.fine.theme.icon.LazyIcon; import com.fine.theme.light.ui.FineRoundBorder; import com.fine.theme.utils.FineUIScale; -import com.fr.base.BaseUtils; import com.fr.design.event.GlobalNameListener; import com.fr.design.event.GlobalNameObserver; +import com.fr.design.event.HoverAware; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; -import com.fr.design.icon.IconPathConstants; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.stable.StringUtils; -import javax.swing.BorderFactory; import javax.swing.Icon; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; -import javax.swing.UIManager; import javax.swing.event.PopupMenuEvent; import javax.swing.event.PopupMenuListener; import java.awt.BorderLayout; @@ -42,8 +41,12 @@ import java.util.Map; * 支持全选、半选 * 可以设置悬停颜色、一页最多显示单选框个数 * 可以省略显示 + * + * @author + * @since + * Created on */ -public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNameObserver { +public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNameObserver, HoverAware { //下拉框的值 private Object[] values; //已经选中的值 @@ -53,6 +56,7 @@ public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNam private UICheckListPopup popup; private UITextField editor; private UIButton arrowButton; + private UILabel label; //选中的值之间显示的分隔符 private String valueSperator; private static final String DEFAULT_VALUE_SPERATOR = ","; @@ -121,8 +125,13 @@ public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNam this.popup.addActionListener(new PopupAction()); this.editor = createEditor(); this.arrowButton = createArrowButton(); + this.label = new UILabel(getIcon()); + label.setPreferredSize(FineUIScale.scale(new Dimension(24, 24))); + setLayoutAndAddComponents(); setText(); + + addPopupListener(this); } /** @@ -155,12 +164,14 @@ public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNam return arrowButton; } + public UILabel getLabel() { + return label; + } + private UIButton createArrowButton() { final UIButton arrowBtn = new UIButton(); arrowBtn.setNormalPainted(false); arrowBtn.setPreferredSize(FineUIScale.scale(new Dimension(20, 5))); - arrowBtn.setBorder(BorderFactory.createMatteBorder(1, 0, 1, 1, UIManager.getColor("defaultBorderColor"))); - arrowBtn.setOpaque(true); arrowBtn.setIcon(getIcon()); arrowBtn.setExtraPainted(false); addPopupListener(arrowBtn); @@ -171,8 +182,6 @@ public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNam private UITextField createEditor() { UITextField editor = new TextField(); editor.setEditable(false); - editor.setPreferredSize(FineUIScale.scale(new Dimension(110, 20))); - editor.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 0, UIManager.getColor("defaultBorderColor"))); addPopupListener(editor); return editor; @@ -213,6 +222,11 @@ public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNam return popup.getSelectedValues(); } + @Override + public boolean isHovered() { + return true; + } + private class PopupAction implements ActionListener { @Override @@ -229,7 +243,6 @@ public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNam private void togglePopup() { if (this.arrowButton.isEnabled()) { popup.setBorder(new FineRoundBorder()); - popup.setPreferredSize(new Dimension(FineUIScale.scale(this.getWidth()), (int) popup.getPreferredSize().getHeight())); popup.show(this, 0, getHeight()); } } @@ -352,7 +365,7 @@ public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNam } private Icon getIcon() { - return BaseUtils.readIcon(IconPathConstants.ARROW_ICON_PATH); + return new LazyIcon("down_arrow"); } /** 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/itable/SortableJTable.java b/designer-base/src/main/java/com/fr/design/gui/itable/SortableJTable.java index fd22f74521..99a919d0ee 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itable/SortableJTable.java +++ b/designer-base/src/main/java/com/fr/design/gui/itable/SortableJTable.java @@ -1,5 +1,7 @@ package com.fr.design.gui.itable; +import com.fine.theme.light.ui.FineTableHeaderUI; + import javax.swing.JTable; public class SortableJTable extends JTable{ @@ -7,5 +9,6 @@ public class SortableJTable extends JTable{ super(tableModel); tableModel.setTableHeader(getTableHeader()); setShowGrid(true); + getTableHeader().setUI(new FineTableHeaderUI()); } } \ No newline at end of file diff --git a/designer-base/src/main/java/com/fr/design/gui/itable/TableSorter.java b/designer-base/src/main/java/com/fr/design/gui/itable/TableSorter.java index 3a11edfbf6..817ac54520 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itable/TableSorter.java +++ b/designer-base/src/main/java/com/fr/design/gui/itable/TableSorter.java @@ -14,10 +14,10 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import javax.swing.Icon; - import com.fr.common.inputevent.InputEventBaseOnOS; import com.fr.design.gui.ilable.UILabel; + +import javax.swing.Icon; import javax.swing.JTable; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/ParameterTableModel.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/ParameterTableModel.java index 8eab9405fe..72480a8121 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/ParameterTableModel.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/ParameterTableModel.java @@ -1,7 +1,7 @@ package com.fr.design.gui.itableeditorpane; +import com.fine.theme.light.ui.FineTableHeaderUI; import com.fine.theme.utils.FineUIStyle; -import com.formdev.flatlaf.ui.FlatUIUtils; import com.fr.base.Parameter; import com.fr.design.editor.ValueEditorPane; import com.fr.design.editor.ValueEditorPaneFactory; @@ -14,7 +14,6 @@ import com.fr.stable.StringUtils; import javax.swing.*; import javax.swing.event.CellEditorListener; import javax.swing.event.ChangeEvent; -import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.TableCellEditor; import java.awt.*; import java.awt.event.ActionEvent; @@ -231,11 +230,10 @@ public class ParameterTableModel 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..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,41 +1,27 @@ package com.fr.design.gui.itableeditorpane; +import com.fine.swing.ui.layout.Layouts; 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.constants.LayoutConstants; 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(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)); } - /** - * 组合 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; } @@ -132,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(); @@ -140,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); } } @@ -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/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/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/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/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/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 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; } @@ -366,6 +370,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/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/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/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/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/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/java/com/fr/design/write/submit/DBManipulationPane.java b/designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java index f7f20e311c..c4ceaef668 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.FineClientProperties; import com.fine.theme.utils.FineUIScale; import com.fine.theme.utils.FineUIUtils; @@ -55,12 +56,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; @@ -70,17 +74,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; @@ -172,9 +173,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"))), @@ -700,7 +699,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()); @@ -1187,7 +1186,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); @@ -1203,7 +1202,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); @@ -1224,4 +1223,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/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/cell/selectedMark.svg b/designer-base/src/main/resources/com/fine/theme/icon/cell/selectedMark.svg new file mode 100644 index 0000000000..20a19e8095 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/cell/selectedMark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + 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_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/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/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/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 d51a85d4d5..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 @@ -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,8 @@ "cellHyperLinkAttr": "cell/cellHyperLinkAttr.svg", "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", @@ -351,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 b821261643..c4d0559d4e 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 @@ -427,9 +428,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 @@ -458,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 @@ -742,8 +744,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 @@ -898,7 +900,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 @@ -913,13 +915,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 @@ -1148,6 +1151,10 @@ Tree.icon.closedColor = @icon Tree.icon.openColor = @icon Tree.hash = darken($Tree.background,10%) +# ---- DottedLine ---- +DottedLine.defaultColor=@BrandColor + + #---- West ---- West.border = $defaultBorderColor #---- ExpandablePane ---- @@ -1362,3 +1369,14 @@ chart.selectedBorderColor = #2576EF hoverBackground: #E6E9EF; \ pressedBackground: #DADEE7; \ selectedBackground: null + +[style]Table.defaultTable = \ + background: $Table.default.background + +[style]Button.whiteButton = \ + border: com.fine.theme.light.ui.FineRoundBorder; \ + background: $fill.normal + +[style]Button.originalButton = \ + border: 4,4,4,4; \ + background: null; \ No newline at end of file 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-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-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/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/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-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 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/actions/server/TemplateThemeManagerAction.java b/designer-realize/src/main/java/com/fr/design/actions/server/TemplateThemeManagerAction.java index 12779c4d2e..20e252820e 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/server/TemplateThemeManagerAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/server/TemplateThemeManagerAction.java @@ -1,12 +1,12 @@ package com.fr.design.actions.server; +import com.fine.theme.icon.LazyIcon; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.theme.TemplateThemeGridPagesPane; import com.fr.design.mainframe.theme.dialog.TemplateThemeManageDialog; import com.fr.design.menu.MenuKeySet; import com.fr.design.menu.SnapChatUpdateAction; import com.fr.design.notification.SnapChatAllTypes; -import com.fr.general.IOUtils; import javax.swing.KeyStroke; import java.awt.event.ActionEvent; @@ -23,7 +23,7 @@ public class TemplateThemeManagerAction extends SnapChatUpdateAction { this.setMenuKeySet(TEMPLATE_THEMES_MANAGER); this.setName(getMenuKeySet().getMenuKeySetName() + "..."); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(IOUtils.readIcon("/com/fr/design/icon/icon_predefined_style.png")); + this.setSmallIcon(new LazyIcon("templateThemeManager")); this.generateAndSetSearchText(TemplateThemeGridPagesPane.class.getName()); } 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..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 @@ -3,6 +3,8 @@ package com.fr.design.cell.smartaction; 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; @@ -60,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() { @@ -73,9 +76,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/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/expand/ExpandFatherPane.java b/designer-realize/src/main/java/com/fr/design/expand/ExpandFatherPane.java index ac226425b0..9a296fb6b1 100644 --- a/designer-realize/src/main/java/com/fr/design/expand/ExpandFatherPane.java +++ b/designer-realize/src/main/java/com/fr/design/expand/ExpandFatherPane.java @@ -49,7 +49,7 @@ public abstract class ExpandFatherPane extends JPanel implements GlobalNameObser } }; - UIButton imageButton = new UIButton(new LazyIcon("select")); + UIButton imageButton = new UIButton(new LazyIcon("cellSelect")); JPanel cc = new JPanel(new BorderLayout(LayoutConstants.HGAP_SMALL, 0)); cc.add(customParentColumnRowPane, BorderLayout.CENTER); cc.add(imageButton, BorderLayout.EAST); 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 a6e3000e61..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); //是否定义选中的类型 @@ -203,10 +203,10 @@ public abstract class HeaderFooterPane extends BasicPane { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - if (value != null && value instanceof Integer) { + if (value instanceof Integer) { int reportHFType = (Integer) value; - this.setIcon(new LazyIcon("cpt_icon")); + this.setIcon(new LazyIcon("logo")); if (reportHFType == ReportConstants.REPORTPAGE_DEFAULT) { this.setText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_HF_Default_Page")); } else if (reportHFType == ReportConstants.REPORTPAGE_FIRST) { @@ -222,18 +222,13 @@ public abstract class HeaderFooterPane extends BasicPane { if (reportHFHash != null) { Object obj = reportHFHash.get(new Integer(reportHFType)); if (obj == null) { - this.setIcon(new LazyIcon("cpt_icon").disabled()); + this.setIcon(new LazyIcon("logo").disabled()); } } } 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/mainframe/JWorkBook.java b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java index 2d55945bf3..2ca53cb682 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/JWorkBook.java @@ -707,9 +707,9 @@ public class JWorkBook extends JTemplate { 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/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/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); 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/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); 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(); 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()); }