Browse Source

Merge remote-tracking branch 'origin/fbp/release' into fbp/release

fbp/merge
Destiny.Lin 3 months ago
parent
commit
fd68507f54
  1. 21
      designer-base/src/main/java/com/fine/theme/light/ui/FineTableHeaderUI.java
  2. 4
      designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java
  3. 12
      designer-base/src/main/java/com/fr/design/actions/help/SystemInfoPane.java
  4. 10
      designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java
  5. 4
      designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java
  6. 20
      designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java
  7. 7
      designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/common/DesensitizationOpenPane.java
  8. 15
      designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRuleChoosePane.java
  9. 11
      designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java
  10. 111
      designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java
  11. 8
      designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java
  12. 14
      designer-base/src/main/java/com/fr/design/file/SaveSomeTemplatePane.java
  13. 40
      designer-base/src/main/java/com/fr/design/gui/frpane/tree/layer/config/LayerDependenceSettingPane.java
  14. 1
      designer-base/src/main/java/com/fr/design/gui/icombocheckbox/UIComboCheckBox.java
  15. 22
      designer-base/src/main/java/com/fr/design/gui/iscrollbar/UIBasicVerticalScrollBar.java
  16. 6
      designer-base/src/main/java/com/fr/design/gui/iscrollbar/UIScrollBarUI.java
  17. 33
      designer-base/src/main/java/com/fr/design/gui/itable/FineUITableCellEditor.java
  18. 2
      designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java
  19. 10
      designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java
  20. 23
      designer-base/src/main/java/com/fr/design/mainframe/DecodeDialog.java
  21. 3
      designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java
  22. 42
      designer-base/src/main/java/com/fr/design/write/submit/DBManipulationInWdigetEventNoCellPane.java
  23. 13
      designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java
  24. 7
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_area.svg
  25. 7
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_bubble.svg
  26. 7
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_column.svg
  27. 15
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_cuvette.svg
  28. 6
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_different_pie.svg
  29. 6
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_line.svg
  30. 10
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_pie.svg
  31. 35
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_pointer_180.svg
  32. 35
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_pointer_360.svg
  33. 7
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_radar.svg
  34. 13
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_ring.svg
  35. 6
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_same_pie.svg
  36. 9
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_scatter.svg
  37. 18
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_slot.svg
  38. 46
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_stack_radar.svg
  39. 3
      designer-base/src/main/resources/com/fine/theme/icon/tip/jump_to_references.svg
  40. 16
      designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json
  41. 1
      designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLaf.properties
  42. 1
      designer-base/src/main/resources/com/fr/design/i18n/dimension_en.properties
  43. 1
      designer-base/src/main/resources/com/fr/design/i18n/dimension_ja_JP.properties
  44. 1
      designer-base/src/main/resources/com/fr/design/i18n/dimension_ko_KR.properties
  45. 1
      designer-base/src/main/resources/com/fr/design/i18n/dimension_zh.properties
  46. 1
      designer-base/src/main/resources/com/fr/design/i18n/dimension_zh_TW.properties
  47. 1
      designer-chart/src/main/java/com/fr/design/chartx/component/correlation/AbstractCorrelationPane.java
  48. 45
      designer-chart/src/main/java/com/fr/van/chart/custom/component/ChartImageCheckOutPane.java
  49. 14
      designer-chart/src/main/java/com/fr/van/chart/custom/component/VanChartCustomPlotSelectPane.java
  50. 5
      designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeBeautyPane.java
  51. 11
      designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java
  52. 3
      designer-form/src/main/java/com/fr/design/designer/properties/EventPropertyTable.java
  53. 20
      designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java
  54. 65
      designer-realize/src/main/java/com/fr/design/sort/header/HeaderAreaPane.java
  55. 2
      designer-realize/src/main/java/com/fr/design/webattr/DragToolBarPane.java
  56. 4
      designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java

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

@ -17,6 +17,7 @@ import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;
import java.awt.Color;
import java.awt.Component;
import java.awt.FontMetrics;
import java.awt.Graphics;
/**
@ -87,7 +88,7 @@ public class FineTableHeaderUI extends FlatTableHeaderUI {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Class<?> columnClass = table.getColumnClass(0);
Border border;
if (column == table.getColumnCount() - 1) {
if (column == table.getColumnCount() - 1 && table.getAutoResizeMode() != JTable.AUTO_RESIZE_OFF) {
border = BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor")),
UIManager.getBorder("Table.cellNoFocusBorder"));
} else {
@ -101,8 +102,26 @@ public class FineTableHeaderUI extends FlatTableHeaderUI {
}
setBackground(selectionBackground);
setText(value == null ? StringUtils.BLANK : String.valueOf(value));
setToolTipText(table, value, column);
setBorder(border);
return this;
}
/**
* 显示不全的文字增加了 toolTip
* @param table
* @param value
* @param column
*/
private void setToolTipText(JTable table, Object value, int column) {
String tipText = value == null ? StringUtils.BLANK : String.valueOf(value);
FontMetrics fm = this.getFontMetrics(this.getFont());
int textWidth = fm.stringWidth(String.valueOf(value));
if (textWidth > table.getColumnModel().getColumn(column).getWidth()) {
setToolTipText(tipText);
} else {
setToolTipText(null);
}
}
}
}

4
designer-base/src/main/java/com/fr/design/actions/TableDataSourceAction.java

@ -9,6 +9,7 @@ import com.fr.design.data.datapane.TableDataTreePane;
import com.fr.design.data.tabledata.ResponseDataSourceChange;
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.i18n.DesignSizeI18nManager;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.menu.KeySetUtils;
@ -43,7 +44,8 @@ public class TableDataSourceAction extends TemplateComponentAction<JTemplate<?,
populate(tds);
}
};
final BasicDialog reportTableDataDialog = tableDataPane.showWindowWithCustomSize(SwingUtilities.getWindowAncestor(this.getEditingComponent()), null, new Dimension(1200, 600));
final BasicDialog reportTableDataDialog = tableDataPane.showWindowWithCustomSize(SwingUtilities.getWindowAncestor(this.getEditingComponent()), null,
DesignSizeI18nManager.getInstance().i18nDimension("com.fr.design.data.tabledata.dialog"));
reportTableDataDialog.addDialogActionListener(new DialogActionAdapter() {
@Override

12
designer-base/src/main/java/com/fr/design/actions/help/SystemInfoPane.java

@ -11,16 +11,20 @@ import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
import com.fr.design.gui.icontainer.UITableScrollPane;
import com.fr.design.gui.itable.FineUITable;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fanruan.product.ProductConstants;
import static com.fine.theme.utils.FineUIScale.scale;
public class SystemInfoPane extends JPanel {
public SystemInfoPane() {
super(FRGUIPaneFactory.createBorderLayout());
DefaultTableModel tableModel = new DefaultTableModel();
JTable table = new JTable(tableModel) {
FineUITable table = new FineUITable(tableModel) {
public boolean isCellEditable(int row, int column) {
return false;
}
@ -57,10 +61,10 @@ public class SystemInfoPane extends JPanel {
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumnModel columnModel = table.getColumnModel();
columnModel.getColumn(0).setPreferredWidth(160);
columnModel.getColumn(1).setPreferredWidth(240);
columnModel.getColumn(0).setPreferredWidth(scale(160));
columnModel.getColumn(1).setPreferredWidth(scale(240));
add(new JScrollPane(table), BorderLayout.CENTER);
add(new UITableScrollPane(table), BorderLayout.CENTER);
}
/**

10
designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java

@ -41,6 +41,8 @@ import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ilist.CheckBoxListWithPartialSelect;
import com.fr.design.gui.imenu.UIPopupMenu;
import com.fr.design.gui.iscrollbar.UIBasicVerticalScrollBar;
import com.fr.design.gui.iscrollbar.UIScrollBar;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.gui.itoolbar.UIToolbar;
import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode;
@ -75,6 +77,7 @@ import org.jetbrains.annotations.NotNull;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.SwingUtilities;
import javax.swing.SwingWorker;
import javax.swing.ToolTipManager;
@ -1108,7 +1111,12 @@ public class TableDataTreePane extends BasicTableDataTreePane {
}
// 可以半选的CheckBoxList
CheckBoxListWithPartialSelect tableDataCheckBoxPane = new CheckBoxListWithPartialSelect(selectedNameObjects);
UIScrollPane scrollPane = new UIScrollPane(tableDataCheckBoxPane);
UIScrollPane scrollPane = new UIScrollPane(tableDataCheckBoxPane) {
@Override
public UIScrollBar createVerticalScrollBar() {
return new UIBasicVerticalScrollBar(JScrollBar.VERTICAL);
}
};
UILabel tips = new UILabel(Toolkit.i18nText("Fine-Design_Basic_Select_Source_To_Remove"));
BasicPane basicPane = new BasicPane() {
@Override

4
designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java

@ -247,10 +247,10 @@ public class JDBCDefPane extends JPanel {
cell(driverComboBox).weight(3), flex(2)
).getComponent())
.addSupplier("odbc", () -> row(
cell(driverComboBox).weight(3), flex(0.2), cell(odbcTipsLink).weight(1.8)
cell(driverComboBox).weight(3), flex(0.2), row(cell(odbcTipsLink)).weight(1.8)
).getComponent())
.addSupplier("define", () -> row(
cell(driverLoaderBox).weight(3), flex(0.2), cell(driverManageLabel).weight(1.8)
cell(driverLoaderBox).weight(3), flex(0.2), row(cell(driverManageLabel)).weight(1.8)
).getComponent());
changeDriverRow();

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

@ -26,7 +26,7 @@ import com.fr.design.dialog.BasicPane;
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.frpane.FineTabbedPane;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icontainer.UITableScrollPane;
import com.fr.design.gui.ilable.UILabel;
@ -101,6 +101,7 @@ public class PreviewTablePane extends BasicPane {
private static final int PREVIEW_TABLE_MIN_COLUMN_WIDTH = FineUIScale.scale(75);
private static final int PREVIEW_TABLE_WIDTH = FineUIScale.scale(610);
private static final int TAB_MAX_COUNT_WITH_LINE = 7;
/**
* 用于refreshLabel的鼠标监听
@ -679,7 +680,7 @@ public class PreviewTablePane extends BasicPane {
public static void previewMultiDataModels(NameDataModel[] nameDataModels) {
// tab窗口
UITabbedPane tabbedPane = new UITabbedPane();
FineTabbedPane.TabPaneBuilder tabbedPane = new FineTabbedPane.TabPaneBuilder();
for (NameDataModel nameDataModel : nameDataModels) {
// 单个结果集的展示面板
@ -704,10 +705,23 @@ public class PreviewTablePane extends BasicPane {
};
previewPane.setLayout(FRGUIPaneFactory.createBorderLayout());
previewPane.add(tabbedPane, BorderLayout.CENTER);
if (nameDataModels.length > 0) {
previewPane.add(tabbedPane.withHeadRatio(0.8f).withTabLayout(buildTabLayout(nameDataModels)).build(), BorderLayout.CENTER);
}
previewPane.showWindow(new JFrame()).setVisible(true);
}
private static int[] buildTabLayout(NameDataModel[] nameDataModels) {
int length = nameDataModels.length;
int size = (length + TAB_MAX_COUNT_WITH_LINE - 1) / TAB_MAX_COUNT_WITH_LINE;
int[] tabLayout = new int[size];
int index = 0;
for (int i = 0; i < length; i += TAB_MAX_COUNT_WITH_LINE) {
tabLayout[index ++] = Math.min(TAB_MAX_COUNT_WITH_LINE, length - i);
}
return tabLayout;
}
/**
* 直接预览存储过程的所有返回数据集没有实际值和显示值
*

7
designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/common/DesensitizationOpenPane.java

@ -1,5 +1,6 @@
package com.fr.design.data.datapane.preview.desensitization.view.common;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIUtils;
import com.fr.base.svg.IconUtils;
import com.fr.design.border.UITitledBorder;
@ -23,6 +24,7 @@ import java.net.URL;
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;
/**
* 启用数据脱敏的面板
@ -56,7 +58,7 @@ public class DesensitizationOpenPane extends JPanel {
// 启用数据脱敏的勾选框
desensitizeOpenCheckBox = new UICheckBox(Toolkit.i18nText("Fine-Design_Report_Desensitization_Opened"));
// 跳转帮助文档Label
hyperlinkLabel = new UILabel(IconUtils.readIcon("/com/fr/design/standard/tip/tips"));
hyperlinkLabel = new UILabel(new LazyIcon("jump_to_references"));
hyperlinkLabel.setToolTipText(Toolkit.i18nText("Fine-Design_Report_Desensitization_Open_Tips"));
hyperlinkLabel.addMouseListener(new MouseAdapter() {
@Override
@ -70,8 +72,7 @@ public class DesensitizationOpenPane extends JPanel {
}
}
});
panel.add(desensitizeOpenCheckBox);
panel.add(hyperlinkLabel);
panel.add(row(4, cell(desensitizeOpenCheckBox), cell(hyperlinkLabel)).getComponent());
// 提示Label
tipsLabel = new UILabel(Toolkit.i18nText("Fine-Design_Report_Desensitization_Opened_Tooltips"));

15
designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/rule/DesensitizationRuleChoosePane.java

@ -2,6 +2,7 @@ package com.fr.design.data.datapane.preview.desensitization.view.rule;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.fr.base.svg.IconUtils;
import com.fr.data.desensitize.rule.DesensitizationRuleManager;
@ -12,6 +13,7 @@ import com.fr.design.data.datapane.preview.desensitization.view.common.ChooseMar
import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itable.FineUITableCellEditor;
import com.fr.design.gui.itableeditorpane.UITableEditAction;
import com.fr.design.gui.itableeditorpane.UITableEditorPane;
import com.fr.design.gui.itableeditorpane.UITableModelAdapter;
@ -20,12 +22,10 @@ import com.fr.design.i18n.Toolkit;
import com.fr.stable.StringUtils;
import com.fr.stable.collections.CollectionUtils;
import javax.swing.AbstractCellEditor;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import java.awt.CardLayout;
@ -195,17 +195,15 @@ public class DesensitizationRuleChoosePane extends JPanel {
/**
* 规则状态展示页面
*/
private class DesensitizationRuleStatusPane extends AbstractCellEditor implements TableCellEditor, TableCellRenderer {
private class DesensitizationRuleStatusPane extends FineUITableCellEditor {
private UILabel ruleStatusLabel;
DesensitizationRuleStatusPane() {
// 规则状态
this.ruleStatusLabel = new UILabel();
this.ruleStatusLabel.setForeground(Color.RED);
this.ruleStatusLabel.setOpaque(true);
this.ruleStatusLabel.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE));
this.ruleStatusLabel.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor")));
FineUIStyle.setStyle(ruleStatusLabel, FineUIStyle.LABEL_WARNING_TIP);
}
/**
@ -239,6 +237,9 @@ public class DesensitizationRuleChoosePane extends JPanel {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
refreshRuleStatus(getList().get(row));
JComponent c = (JComponent) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
ruleStatusLabel.setBorder(c.getBorder());
ruleStatusLabel.setBackground(c.getBackground());
return ruleStatusLabel;
}
}

11
designer-base/src/main/java/com/fr/design/data/datapane/preview/desensitization/view/setting/TableDataDesensitizationTableModel.java

@ -18,6 +18,7 @@ import com.fr.design.gui.icombobox.ComboCheckBox;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.icombocheckbox.UIComboCheckBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itable.FineUITableCellEditor;
import com.fr.design.gui.itableeditorpane.UITableEditAction;
import com.fr.design.gui.itableeditorpane.UITableModelAdapter;
import com.fr.design.gui.itextfield.UITextField;
@ -432,7 +433,6 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter<Tabl
protected void setLayoutAndAddComponents() {
// 使用BorderLayout,否则默认使用的FlowLayout会让整个下拉选框使用最小Size,然后TableCell这边会出现空白
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.add(getEditor(), BorderLayout.CENTER);
this.add(getLabel(), BorderLayout.EAST);
}
@ -449,17 +449,15 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter<Tabl
/**
* 规则状态展示页面
*/
private class DesensitizationRuleStatusPane extends AbstractCellEditor implements TableCellEditor, TableCellRenderer {
private class DesensitizationRuleStatusPane extends FineUITableCellEditor {
private UILabel ruleStatusLabel;
DesensitizationRuleStatusPane() {
// 规则状态
this.ruleStatusLabel = new UILabel();
this.ruleStatusLabel.setForeground(Color.RED);
this.ruleStatusLabel.setOpaque(true);
this.ruleStatusLabel.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE));
this.ruleStatusLabel.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIManager.getColor("defaultBorderColor")));
FineUIStyle.setStyle(ruleStatusLabel, FineUIStyle.LABEL_WARNING_TIP);
}
/**
@ -495,6 +493,9 @@ public class TableDataDesensitizationTableModel extends UITableModelAdapter<Tabl
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
refreshRuleStatus(getList().get(row));
JComponent c = (JComponent) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
ruleStatusLabel.setBorder(c.getBorder());
ruleStatusLabel.setBackground(c.getBackground());
return ruleStatusLabel;
}
}

111
designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java

@ -2,6 +2,7 @@ package com.fr.design.data.tabledata.tabledatapane;
import com.fine.theme.light.ui.FineTableHeaderUI;
import com.fine.theme.utils.FineUIScale;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.fr.data.impl.EmbeddedTableData;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.dialog.BasicDialog;
@ -18,18 +19,19 @@ import com.fr.stable.StringUtils;
import javax.swing.DefaultCellEditor;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableColumn;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
@ -67,6 +69,7 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableDa
// prepare the data in this way as default if no arguments is passed in
EmbeddedTableModel tableModel = new EmbeddedTableModel(new EmbeddedTableData());
dataJTable = new JTable(tableModel);
dataJTable.setBackground(FlatUIUtils.getUIColor("default.background", new Color(246, 248, 250)));
scrollPane = new UITableScrollPane(dataJTable);;
// 显示double,date类;渲染date类
@ -87,7 +90,6 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableDa
editbysingleclick(dataJTable, Integer.class);
// AUTO RESIZE
dataJTable.setAutoResizeMode(tableModel.getColumnCount() * PREVIEW_TABLE_MIN_COLUMN_WIDTH <= PREVIEW_TABLE_WIDTH ? JTable.AUTO_RESIZE_ALL_COLUMNS : JTable.AUTO_RESIZE_OFF);
dataJTable.setRowSelectionAllowed(true);
dataJTable.setColumnSelectionAllowed(true);
@ -102,6 +104,7 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableDa
selectedChanged();
}
});
addDataTableListener();
// 添加表模型监听器以监听行列变化更新按钮状态
tableModel.addTableModelListener(new TableModelListener() {
@ -113,37 +116,52 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableDa
this.add(column(LayoutConstants.VERTICAL_GAP, cell(getNorthPaneComponents()), cell(scrollPane).weight(1)).getComponent());
}
private void addDataTableListener() {
dataJTable.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
// kel:加上一个鼠标点击的监控,鼠标点击时,返回选中的行坐标和列坐标。
selectedChanged();
}
});
dataJTable.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
selectedChanged();
}
});
dataJTable.addComponentListener(new ComponentListener() {
@Override
public void componentResized(ComponentEvent e) {
adjustTableAutoResizeMode();
}
@Override
public void componentMoved(ComponentEvent e) {
}
@Override
public void componentShown(ComponentEvent e) {
}
@Override
public void componentHidden(ComponentEvent e) {
}
});
}
private void adjustTableAutoResizeMode() {
int previewTableWidth = scrollPane.getSize().width - FineUIScale.scale(MIN_CELL_WIDTH);
AbstractTableModel tableModel = (AbstractTableModel) dataJTable.getModel();
dataJTable.setAutoResizeMode((tableModel.getColumnCount() - 1) * PREVIEW_TABLE_MIN_COLUMN_WIDTH <= previewTableWidth ? JTable.AUTO_RESIZE_ALL_COLUMNS : JTable.AUTO_RESIZE_OFF);
}
private JPanel getNorthPaneComponents() {
// kel:在左上角加一个JLabel用来显示坐标,方便用户查看。
coordinatelabel = new UILabel("0/0,0/0");
coordinatelabel.setHorizontalAlignment(UILabel.CENTER);
// 表结构设置
UIButton columnSetButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Embedded_Table_Design"));
columnSetButton.setMnemonic('C');
columnSetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
final EmbeddedTableModel localDefaultModel = (EmbeddedTableModel) dataJTable.getModel();
final EmbeddedTableDataDefinedPane columnSetPane = new EmbeddedTableDataDefinedPane();
columnSetPane.populate(((EmbeddedTableModel) dataJTable.getModel()).getEditableTableData());
DialogActionAdapter l = new DialogActionAdapter() {
public void doOk() {
localDefaultModel.setEditableTableData(columnSetPane.update());
localDefaultModel.fireTableStructureChanged();
localDefaultModel.fireTableDataChanged();
tableStructureChanged();
selectedChanged();
dataJTable.setAutoResizeMode(localDefaultModel.getColumnCount() * PREVIEW_TABLE_MIN_COLUMN_WIDTH <= PREVIEW_TABLE_WIDTH ? JTable.AUTO_RESIZE_ALL_COLUMNS : JTable.AUTO_RESIZE_OFF);
dataJTable.repaint();
}
};
BasicDialog dlg = columnSetPane.showWindow(DesignerContext.getDesignerFrame(), l);
dlg.setAlwaysOnTop(true);
dlg.setVisible(true);
}
});
UIButton columnSetButton = initColumnSetButton();
// DataSourceEditor-Insert_Row
insertRowButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Utils_Insert_Row"));
@ -174,6 +192,35 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableDa
).getComponent();
}
private UIButton initColumnSetButton() {
UIButton columnSetButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tabledata_Embedded_Table_Design"));
columnSetButton.setMnemonic('C');
columnSetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
final EmbeddedTableModel localDefaultModel = (EmbeddedTableModel) dataJTable.getModel();
final EmbeddedTableDataDefinedPane columnSetPane = new EmbeddedTableDataDefinedPane();
columnSetPane.populate(((EmbeddedTableModel) dataJTable.getModel()).getEditableTableData());
DialogActionAdapter l = new DialogActionAdapter() {
public void doOk() {
localDefaultModel.setEditableTableData(columnSetPane.update());
localDefaultModel.fireTableStructureChanged();
localDefaultModel.fireTableDataChanged();
tableStructureChanged();
selectedChanged();
adjustTableAutoResizeMode();
dataJTable.repaint();
}
};
BasicDialog dlg = columnSetPane.showWindow(DesignerContext.getDesignerFrame(), l);
dlg.setAlwaysOnTop(true);
dlg.setVisible(true);
}
});
return columnSetButton;
}
/**
* 更新按钮状态
*/
@ -253,11 +300,11 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableDa
tableColumn.setCellRenderer(new CellRenderer());
tableColumn.setMaxWidth(FineUIScale.scale(Math.max(dataJTable.getColumnCount(), MIN_CELL_WIDTH)));
// 没有列数据的时候,压缩行号
// 没有列数据的时候, 隐藏行号列
if (dataJTable.getColumnModel().getColumnCount() > 1) {
dataJTable.getTableHeader().setPreferredSize(new Dimension(super.getWidth(), FineUIScale.scale((Integer) UIManager.get("Table.rowHeight"))));
dataJTable.getTableHeader().setVisible(true);
} else {
dataJTable.getTableHeader().setPreferredSize(new Dimension(super.getWidth(), FineUIScale.scale(4)));
dataJTable.getTableHeader().setVisible(false);
}
}

8
designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java

@ -56,7 +56,7 @@ public class UIDetailErrorLinkDialog extends UIDialog {
private static final String TAG_A_END = "</a>";
private static final double SCALE = 1.2;
private final Dimension dimension = new Dimension(360, 180);
private final Dimension dimension = new Dimension(360, 200);
public static Builder newBuilder() {
return new Builder();
@ -99,8 +99,10 @@ public class UIDetailErrorLinkDialog extends UIDialog {
contentPane.add(link, BorderLayout.SOUTH);
// 确定 + 取消
JPanel actionPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, GAP_10, GAP_8));
actionPane.add(createButton(Toolkit.i18nText("Fine-Design_Report_OK")));
JPanel actionPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, GAP_8, GAP_10));
UIButton okButton = createButton(Toolkit.i18nText("Fine-Design_Report_OK"));
FineUIStyle.setStyle(okButton, FineUIStyle.STYLE_PRIMARY);
actionPane.add(okButton);
actionPane.add(createButton(Toolkit.i18nText("Fine-Design_Basic_Cancel")));
this.getContentPane().add(column(10,

14
designer-base/src/main/java/com/fr/design/file/SaveSomeTemplatePane.java

@ -10,6 +10,8 @@ import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.ilist.UIList;
import com.fr.design.gui.iscrollbar.UIBasicVerticalScrollBar;
import com.fr.design.gui.iscrollbar.UIScrollBar;
import com.fr.design.gui.iscrollbar.UIScrollBarUI;
import com.fr.design.gui.itree.checkboxtree.NullTristateCheckBox;
import com.fr.design.gui.itree.checkboxtree.TristateCheckBox;
@ -21,10 +23,10 @@ import com.fr.log.FineLoggerFactory;
import org.jetbrains.annotations.Nullable;
import javax.swing.AbstractListModel;
import javax.swing.BorderFactory;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Window;
@ -83,11 +85,13 @@ public class SaveSomeTemplatePane extends BasicPane {
UILabel tip = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Select_The_Source_To_Save"));
this.add(tip, BorderLayout.NORTH);
templatesChoosePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
UIScrollPane scrollPane = new UIScrollPane(templatesChoosePane);
UIScrollPane scrollPane = new UIScrollPane(templatesChoosePane) {
@Override
public UIScrollBar createVerticalScrollBar() {
return new UIBasicVerticalScrollBar(JScrollBar.VERTICAL);
}
};
scrollPane.setBorder(new FineRoundBorder());
if (SystemInfo.isWindows) {
scrollPane.getVerticalScrollBar().setUI(new UIScrollBarUI());
}
this.add(scrollPane, BorderLayout.CENTER);
this.isJudgeCurrentEditingTemplate = isNeedTojudgeCurrent;
}

40
designer-base/src/main/java/com/fr/design/gui/frpane/tree/layer/config/LayerDependenceSettingPane.java

@ -1,9 +1,10 @@
package com.fr.design.gui.frpane.tree.layer.config;
import com.fine.theme.light.ui.FineTableHeaderUI;
import com.fr.design.data.tabledata.wrapper.TableDataWrapper;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.icontainer.UITableScrollPane;
import com.fr.design.present.dict.TableDataDictPane;
import com.fr.form.ui.tree.LayerDependence;
@ -126,7 +127,7 @@ public class LayerDependenceSettingPane extends JPanel implements ItemListener {
buttonPanel.add(delButton);
this.add(buttonPanel, BorderLayout.NORTH);
//添加Table的panel
JScrollPane tablePanel = new JScrollPane(dependenceTable);
UITableScrollPane tablePanel = new UITableScrollPane(dependenceTable);
this.add(tablePanel, BorderLayout.CENTER);
@ -177,23 +178,21 @@ public class LayerDependenceSettingPane extends JPanel implements ItemListener {
/**
* 第一列renderer
*/
private static final class FirstRenderer extends UILabel implements TableCellRenderer {
private static final class FirstRenderer extends FineTableHeaderUI.TableRenderer {
public FirstRenderer() {
this.setOpaque(true);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (value != null) {
//value是用户选择的字段索引值,从1开始的
this.setText(String.valueOf(value));
} else {
this.setText("");
}
if (hasFocus) {
this.setBorder(UIManager.getBorder("Table.focusCelHighlightBorder"));
label.setText(String.valueOf(value));
} else {
this.setBorder(null);
label.setText("");
}
return this;
return label;
}
}
@ -201,14 +200,14 @@ public class LayerDependenceSettingPane extends JPanel implements ItemListener {
* 第二列renderer
* 由于从model中获取的数据是数据集列的索引值,这里要转换为列的名称
*/
private static final class FieldRenderer extends UILabel implements TableCellRenderer {
private static final class FieldRenderer extends FineTableHeaderUI.TableRenderer {
//用于将字段索引转换为字段名;保存改pane,是为了当用户选择其他数据集时,renderer可同步更新
private TableDataDictPane tableDataDictPane;
public FieldRenderer(TableDataDictPane tableDataDictPane) {
this.tableDataDictPane = tableDataDictPane;
this.setOpaque(true);
}
/**
@ -217,20 +216,15 @@ public class LayerDependenceSettingPane extends JPanel implements ItemListener {
*/
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (value != null) {
List<String> columnNames = getColumnNameList(this.tableDataDictPane);
//value是用户选择的字段索引值,从1开始的
this.setText(columnNames.get(Integer.valueOf(String.valueOf(value))));
} else {
this.setText("");
}
if (hasFocus) {
this.setBorder(UIManager.getBorder("Table.focusCelHighlightBorder"));
label.setText(columnNames.get(Integer.valueOf(String.valueOf(value))));
} else {
this.setBorder(null);
label.setText("");
}
return this;
return label;
}
}

1
designer-base/src/main/java/com/fr/design/gui/icombocheckbox/UIComboCheckBox.java

@ -259,6 +259,7 @@ public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNam
private void togglePopup() {
if (this.arrowButton.isEnabled()) {
popup.setBorder(new FineRoundBorder());
popup.setPreferredSize(new Dimension(getWidth(), this.popup.getPreferredSize().height));
popup.show(this, 0, getHeight());
}
}

22
designer-base/src/main/java/com/fr/design/gui/iscrollbar/UIBasicVerticalScrollBar.java

@ -0,0 +1,22 @@
package com.fr.design.gui.iscrollbar;
/**
* 解决 Windows 下垂直滚动条不显示的临时方案替换 UI
*
* @author lemon
* @since
* Created on
*/
public class UIBasicVerticalScrollBar extends UIScrollBar {
private static final String UI_CLASS_ID = "BasicVerticalScrollBarUI";
private static final long serialVersionUID = 1L;
public UIBasicVerticalScrollBar(int orientation) {
super(orientation);
}
public String getUIClassID() {
return UI_CLASS_ID;
}
}

6
designer-base/src/main/java/com/fr/design/gui/iscrollbar/UIScrollBarUI.java

@ -56,6 +56,7 @@ public class UIScrollBarUI extends ScrollBarUI implements LayoutManager, SwingCo
protected Color thumbLightShadowColor;
protected Color thumbDarkShadowColor;
protected Color thumbColor;
protected Color pressedThumbColor;
protected Color trackColor;
protected Color trackHighlightColor;
@ -139,6 +140,7 @@ public class UIScrollBarUI extends ScrollBarUI implements LayoutManager, SwingCo
thumbLightShadowColor = UIManager.getColor("ScrollBar.thumbShadow");
thumbDarkShadowColor = UIManager.getColor("ScrollBar.thumbDarkShadow");
thumbColor = UIManager.getColor("ScrollBar.thumb");
pressedThumbColor = UIManager.getColor( "ScrollBar.pressedThumbColor" );
trackColor = UIManager.getColor("ScrollBar.track");
trackHighlightColor = UIManager.getColor("ScrollBar.trackHighlight");
}
@ -472,9 +474,9 @@ public class UIScrollBarUI extends ScrollBarUI implements LayoutManager, SwingCo
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.translate(thumbBounds.x, thumbBounds.y);
Color color = isPressing ? UIConstants.LINE_COLOR : UIConstants.BARNOMAL;
Color color = isPressing ? pressedThumbColor : thumbColor;
g2.setColor(color);
g2.fillRoundRect(1, 1, width - 2, height - 2, UIConstants.LARGEARC, UIConstants.LARGEARC);
g2.fillRoundRect(1, 1, width - 4, height - 4, UIConstants.LARGEARC, UIConstants.LARGEARC);
}

33
designer-base/src/main/java/com/fr/design/gui/itable/FineUITableCellEditor.java

@ -0,0 +1,33 @@
package com.fr.design.gui.itable;
import com.fine.theme.light.ui.FineTableHeaderUI;
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import java.awt.Component;
/**
* TableCellEditor 应用 {@link FineTableHeaderUI.TableRenderer}
*
* @author lemon
* @since
* Created on 2024/09/10
*/
public class FineUITableCellEditor extends AbstractCellEditor implements TableCellEditor, TableCellRenderer {
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
return null;
}
@Override
public Object getCellEditorValue() {
return null;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
return new FineTableHeaderUI.TableRenderer().getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
}

2
designer-base/src/main/java/com/fr/design/gui/itextfield/UITextField.java

@ -154,7 +154,7 @@ public class UITextField extends JTextField implements UIObserver, GlobalNameObs
* 设置变化的背景颜色
*/
public void setBackgroundUIColor(Color color) {
// ((UITextFieldUI) this.ui).setBackgroundColor4NoGiveNumber(color);
setBackground(color);
}
/**

10
designer-base/src/main/java/com/fr/design/javascript/ExportJavaScriptPane.java

@ -16,6 +16,7 @@ import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.icombobox.UIComboBoxRenderer;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itable.FineUITableCellEditor;
import com.fr.design.gui.itableeditorpane.ParameterTableModel;
import com.fr.design.gui.itableeditorpane.UITableEditAction;
import com.fr.design.gui.itableeditorpane.UITableEditorPane;
@ -301,9 +302,6 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane<ExportJavaScript
this.setDefaultEditor(ParameterCombobox.class, new ParameterCombobox());
this.setDefaultEditor(ParameterSettingButton.class, new ParameterSettingButton());
this.setDefaultRenderer(ParameterSettingButton.class, new ParameterSettingButton());
this.createTable().getColumnModel().getColumn(2).setMaxWidth(scale(60));
this.createTable().getColumnModel().getColumn(4).setMaxWidth(scale(60));
this.createTable().getColumnModel().getColumn(5).setMaxWidth(scale(50));
}
@Override
@ -643,7 +641,7 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane<ExportJavaScript
}
// 参数设置按钮
class ParameterSettingButton extends AbstractCellEditor implements TableCellEditor, TableCellRenderer {
class ParameterSettingButton extends FineUITableCellEditor {
private static final long serialVersionUID = 4021592871993049137L;
private UIButton paraButton;
@ -695,7 +693,7 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane<ExportJavaScript
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
if (getList().get(row) == null || getList().get(row).isExtendParameters()) {
return EMPTY_LABEL;
return null;
}
ParameterProvider[] providers = (ParameterProvider[]) value;
if (providers != null) {
@ -712,7 +710,7 @@ public class ExportJavaScriptPane extends AbstractHyperLinkPane<ExportJavaScript
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if (getList().get(row) == null || getList().get(row).isExtendParameters()) {
return EMPTY_LABEL;
return super.getTableCellRendererComponent(table, null, isSelected, hasFocus, row, column);
}
return paraButton;
}

23
designer-base/src/main/java/com/fr/design/mainframe/DecodeDialog.java

@ -1,7 +1,7 @@
package com.fr.design.mainframe;
import com.fr.design.constants.LayoutConstants;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@ -25,6 +25,7 @@ import com.fr.design.utils.gui.GUICoreUtils;
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;
public class DecodeDialog {
@ -37,20 +38,26 @@ public class DecodeDialog {
public DecodeDialog(final FILE file) {
this.file = file;
jd = new JDialog();
jd.setLayout(new BorderLayout());
UILabel newNameLable = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_ECP_Input_Pwd"));
JPanel contentPanel = new JPanel();
contentPanel.setLayout(new BorderLayout());
// 密码输入
UILabel newNameLabel = new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_ECP_Input_Pwd"));
jt = new UITextField(StringUtils.EMPTY);
jt.selectAll();
jd.add(row(20, cell(newNameLable), cell(jt)).getComponent(), BorderLayout.NORTH);
// 提示文本
hintsLabel = new UILabel();
hintsLabel.setForeground(Color.RED);
FineUIStyle.setStyle(hintsLabel, FineUIStyle.LABEL_WARNING_TIP);
hintsLabel.setVisible(false);
contentPanel.add(column(LayoutConstants.VERTICAL_GAP,
row(20, cell(newNameLabel), cell(jt).weight(1)),
cell(hintsLabel)
).getComponent());
contentPanel.setBorder(new ScaledEmptyBorder(30, 20, 10, 20));
confirmButton = new UIButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Confirm"));
FineUIStyle.setStyle(confirmButton, FineUIStyle.PLAIN_BUTTON);
confirmButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String key = jt.getText();
@ -76,8 +83,8 @@ public class DecodeDialog {
JPanel buttonPane = new JPanel(new BorderLayout());
buttonPane.setBorder(new ScaledEmptyBorder(10, 10, 10, 10));
buttonPane.add(row(8, cell(confirmButton), cell(cancelButton)).getComponent(), BorderLayout.EAST);
jd.add(contentPanel,BorderLayout.CENTER);
jd.add(buttonPane, BorderLayout.SOUTH);
jd.add(hintsLabel, BorderLayout.CENTER);
jd.setSize(340, 180);
jd.setModal(true);
jd.setTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_ECP_Decode"));

3
designer-base/src/main/java/com/fr/design/mainframe/check/CheckButton.java

@ -1,6 +1,7 @@
package com.fr.design.mainframe.check;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.BaseUtils;
import com.fr.design.dialog.FineJOptionPane;
@ -200,7 +201,7 @@ public class CheckButton extends UIButton {
dialog = new JDialog();
dialog.setTitle(Toolkit.i18nText("Fine_Designer_Check_Font"));
dialog.setModal(true);
dialog.setSize(DesignSizeI18nManager.getInstance().i18nDimension(this.getClass().getName()));
dialog.setSize(FineUIUtils.getScaledI18nDimension(this.getClass().getName()));
JPanel jp = new JPanel();
JPanel upPane = new JPanel();
JPanel downPane = new JPanel(new BorderLayout());

42
designer-base/src/main/java/com/fr/design/write/submit/DBManipulationInWdigetEventNoCellPane.java

@ -0,0 +1,42 @@
package com.fr.design.write.submit;
import com.fine.theme.utils.FineUIScale;
import com.fr.design.editor.editor.Editor;
import java.awt.BorderLayout;
import java.awt.Dimension;
import static com.fine.theme.utils.FineUIScale.scale;
/**
* 控件面板添加的控件绑定的提交入库事件面板
*
* @author Renekton
* @since 11.0
* Created on 2024/09/13
*/
public class DBManipulationInWdigetEventNoCellPane extends DBManipulationPane {
public DBManipulationInWdigetEventNoCellPane() {
super();
}
public DBManipulationInWdigetEventNoCellPane(Editor<?>[] vTypes) {
super(vTypes);
}
protected Dimension createEditTablePreferredSize() {
return scale(new Dimension(280, 150));
}
protected Dimension getPreferredScrollableViewportSize() {
return scale(new Dimension(280, 120));
}
protected Dimension createControlBtnPanePreferredSize(){
return FineUIScale.scale(new Dimension(110, 20));
}
protected String setControlBtnPanePosition(){
return BorderLayout.EAST;
}
}

13
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.FineRoundBorder;
import com.fine.theme.light.ui.FineTableHeaderUI;
import com.fine.theme.utils.FineClientProperties;
import com.fine.theme.utils.FineUIScale;
@ -175,7 +176,7 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
keyColumnValuesTable = new KeyColumnNameValueTable();
editTablePane.add(new UIVerticalScrollPane(keyColumnValuesTable), BorderLayout.CENTER);
keyColumnValuesTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
keyColumnValuesTable.setPreferredScrollableViewportSize(scale(new Dimension(280, 150)));
keyColumnValuesTable.setPreferredScrollableViewportSize(getPreferredScrollableViewportSize());
keyColumnValuesTable.setShowHorizontalLines(true);
northPane.add(column(10,
@ -200,6 +201,10 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
addListeners();
}
protected Dimension getPreferredScrollableViewportSize() {
return scale(new Dimension(280, 150));
}
public void setSubMitName(String subMitName) {
this.subMitName = subMitName;
}
@ -504,7 +509,9 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
return super.value2Text(value);
}
};
bPane.add(new JScrollPane(list), BorderLayout.CENTER);
JScrollPane scrollPane = new JScrollPane(list);
scrollPane.setBorder(new FineRoundBorder());
bPane.add(scrollPane, BorderLayout.CENTER);
BasicDialog dlg = bPane.showSmallWindow(SwingUtilities.getWindowAncestor(DBManipulationPane.this), new DialogActionAdapter() {
@Override
@ -884,7 +891,7 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
vPane = new ValueEditorPane(types);
this.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 45));
this.add(vPane);
vPane.setPreferredSize(new Dimension(220, 25));
vPane.setPreferredSize(scale(new Dimension(220, 25)));
}
@Override

7
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_area.svg

@ -0,0 +1,7 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 28L24.527 22.7037C24.5891 22.6794 24.6441 22.64 24.6871 22.589L37.8516 6.9648C38.0368 6.74496 38.3866 6.78646 38.5152 7.04354L47 24" stroke="#2576EF" stroke-width="1.2" stroke-linecap="round"/>
<path d="M24.527 22.7037L11.2542 27.9005C11.1009 27.9605 11 28.1083 11 28.273V38.1C11 38.3209 11.1791 38.5 11.4 38.5H46.6C46.8209 38.5 47 38.3209 47 38.1V24.0945C47 24.0324 46.9855 23.9711 46.9577 23.9155L38.5152 7.04354C38.3866 6.78646 38.0368 6.74496 37.8516 6.9648L24.6871 22.589C24.6441 22.64 24.5891 22.6794 24.527 22.7037Z" fill="#2576EF" fill-opacity="0.14"/>
<path d="M11 14L24.5969 26.4128C24.6199 26.4338 24.6454 26.4521 24.6727 26.4672L37.8787 33.7869C38.0849 33.9012 38.3447 33.8132 38.4391 33.5972L47 14" stroke="#7DD08A" stroke-width="1.2" stroke-linecap="round"/>
<path d="M24.5969 26.4128L11.6697 14.6114C11.4129 14.377 11 14.5591 11 14.9068V38.1C11 38.3209 11.1791 38.5 11.4 38.5H46.6C46.8209 38.5 47 38.3209 47 38.1V15.9149C47 15.4814 46.407 15.3576 46.2334 15.7548L38.4391 33.5972C38.3447 33.8132 38.0849 33.9012 37.8787 33.7869L24.6727 26.4672C24.6454 26.4521 24.6199 26.4338 24.5969 26.4128Z" fill="#7DD08A" fill-opacity="0.3"/>
<path d="M46.5 38H11.5C11.2239 38 11 38.2239 11 38.5C11 38.7761 11.2239 39 11.5 39H46.5C46.7761 39 47 38.7761 47 38.5C47 38.2239 46.7761 38 46.5 38Z" fill="#666666"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

7
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_bubble.svg

@ -0,0 +1,7 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M46.5 38H11.5C11.2239 38 11 38.2239 11 38.5C11 38.7761 11.2239 39 11.5 39H46.5C46.7761 39 47 38.7761 47 38.5C47 38.2239 46.7761 38 46.5 38Z" fill="#666666"/>
<circle cx="23" cy="18" r="4.5" fill="#B3CFF9" stroke="#2576EF"/>
<circle cx="34.5" cy="24.5" r="4" fill="#C1EFC5" stroke="#60C172"/>
<circle cx="43" cy="11" r="3.5" fill="#9FE4FD" stroke="#34B3FA"/>
<circle cx="14.5" cy="30.5" r="3" fill="#FFF0C0" stroke="#F9AE31"/>
</svg>

After

Width:  |  Height:  |  Size: 538 B

7
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_column.svg

@ -0,0 +1,7 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.5 30H14.5C14.22 30 14 30.22 14 30.5V38H20V30.5C20 30.22 19.78 30 19.5 30Z" fill="#2576EF"/>
<path d="M27.5 19H22.5C22.22 19 22 19.22 22 19.5V38H28V19.5C28 19.22 27.78 19 27.5 19Z" fill="#34B3FA"/>
<path d="M35.5 12H30.5C30.22 12 30 12.22 30 12.5V38H36V12.5C36 12.22 35.78 12 35.5 12Z" fill="#60C172"/>
<path d="M43.5 22H38.5C38.22 22 38 22.22 38 22.5V38H44V22.5C44 22.22 43.78 22 43.5 22Z" fill="#FEC148"/>
<path d="M46.5 38H11.5C11.2239 38 11 38.2239 11 38.5C11 38.7761 11.2239 39 11.5 39H46.5C46.7761 39 47 38.7761 47 38.5C47 38.2239 46.7761 38 46.5 38Z" fill="#666666"/>
</svg>

After

Width:  |  Height:  |  Size: 690 B

15
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_cuvette.svg

@ -0,0 +1,15 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M23.2812 32.0195C23.2812 32.319 23.2266 32.6003 23.1172 32.8633C23.0078 33.1263 22.8542 33.3477 22.6562 33.5273C22.4453 33.7201 22.2005 33.8672 21.9219 33.9688C21.6458 34.0703 21.3216 34.1211 20.9492 34.1211C20.6003 34.1211 20.2812 34.0742 19.9922 33.9805C19.7057 33.8841 19.4596 33.7383 19.2539 33.543C19.0169 33.319 18.8359 33.0299 18.7109 32.6758C18.5859 32.3216 18.5234 31.8984 18.5234 31.4062C18.5234 30.8958 18.582 30.4427 18.6992 30.0469C18.8164 29.651 19.0078 29.3008 19.2734 28.9961C19.5286 28.7044 19.8594 28.4779 20.2656 28.3164C20.6745 28.1549 21.1602 28.0742 21.7227 28.0742C21.9128 28.0742 22.1211 28.0872 22.3477 28.1133C22.5742 28.1393 22.7214 28.1589 22.7891 28.1719V29.3164H22.6406C22.5703 29.2826 22.4505 29.2448 22.2812 29.2031C22.1146 29.1589 21.9245 29.1367 21.7109 29.1367C21.2109 29.1367 20.8216 29.2591 20.543 29.5039C20.2643 29.7487 20.0964 30.0898 20.0391 30.5273C20.2396 30.4076 20.4505 30.3112 20.6719 30.2383C20.8958 30.1628 21.1367 30.125 21.3945 30.125C21.6211 30.125 21.8307 30.151 22.0234 30.2031C22.2188 30.2552 22.3997 30.3385 22.5664 30.4531C22.7826 30.6042 22.9557 30.8073 23.0859 31.0625C23.2161 31.3177 23.2812 31.6367 23.2812 32.0195ZM21.5039 32.8984C21.5846 32.8099 21.6484 32.7057 21.6953 32.5859C21.7448 32.4635 21.7695 32.2982 21.7695 32.0898C21.7695 31.8997 21.7422 31.7448 21.6875 31.625C21.6328 31.5026 21.5573 31.4049 21.4609 31.332C21.3672 31.2591 21.2565 31.2096 21.1289 31.1836C21.0013 31.1549 20.8698 31.1406 20.7344 31.1406C20.6198 31.1406 20.5 31.1536 20.375 31.1797C20.25 31.2057 20.1354 31.2383 20.0312 31.2773C20.0312 31.3034 20.0299 31.3464 20.0273 31.4062C20.0247 31.4661 20.0234 31.5417 20.0234 31.6328C20.0234 31.9531 20.0547 32.2174 20.1172 32.4258C20.1823 32.6315 20.2682 32.7891 20.375 32.8984C20.4479 32.9792 20.5339 33.0391 20.6328 33.0781C20.7318 33.1146 20.8385 33.1328 20.9531 33.1328C21.0391 33.1328 21.1341 33.1133 21.2383 33.0742C21.3424 33.0352 21.431 32.9766 21.5039 32.8984ZM28.9375 31.0898C28.9375 31.5794 28.8932 32.0182 28.8047 32.4062C28.7161 32.7917 28.5781 33.1081 28.3906 33.3555C28.1979 33.6081 27.9505 33.7995 27.6484 33.9297C27.3464 34.0573 26.974 34.1211 26.5312 34.1211C26.0964 34.1211 25.7253 34.056 25.418 33.9258C25.1107 33.7956 24.862 33.6029 24.6719 33.3477C24.4792 33.0924 24.3398 32.776 24.2539 32.3984C24.168 32.0182 24.125 31.5833 24.125 31.0938C24.125 30.5885 24.1693 30.1497 24.2578 29.7773C24.3464 29.4049 24.487 29.0898 24.6797 28.832C24.8724 28.5768 25.1224 28.3854 25.4297 28.2578C25.737 28.1302 26.1042 28.0664 26.5312 28.0664C26.9766 28.0664 27.3503 28.1328 27.6523 28.2656C27.9544 28.3958 28.2018 28.5911 28.3945 28.8516C28.5846 29.1068 28.7227 29.4219 28.8086 29.7969C28.8945 30.1693 28.9375 30.6003 28.9375 31.0898ZM27.4258 31.0898C27.4258 30.3867 27.3568 29.8867 27.2188 29.5898C27.0807 29.2904 26.8516 29.1406 26.5312 29.1406C26.2109 29.1406 25.9818 29.2904 25.8438 29.5898C25.7057 29.8867 25.6367 30.3893 25.6367 31.0977C25.6367 31.7878 25.707 32.2852 25.8477 32.5898C25.9883 32.8945 26.2161 33.0469 26.5312 33.0469C26.8464 33.0469 27.0742 32.8945 27.2148 32.5898C27.3555 32.2852 27.4258 31.7852 27.4258 31.0898ZM33.4727 29.9531C33.4727 30.6016 33.3229 31.082 33.0234 31.3945C32.724 31.707 32.2878 31.8633 31.7148 31.8633C31.1237 31.8633 30.6784 31.7057 30.3789 31.3906C30.082 31.0729 29.9336 30.599 29.9336 29.9688C29.9336 29.3255 30.0859 28.849 30.3906 28.5391C30.6953 28.2266 31.1367 28.0703 31.7148 28.0703C32.2982 28.0703 32.737 28.2266 33.0312 28.5391C33.3255 28.849 33.4727 29.3203 33.4727 29.9531ZM36.5195 28.1836L33.4727 34H32.4219L35.4688 28.1836H36.5195ZM38.9922 32.2109C38.9922 32.8594 38.8424 33.3398 38.543 33.6523C38.2435 33.9648 37.8073 34.1211 37.2344 34.1211C36.6432 34.1211 36.1979 33.9635 35.8984 33.6484C35.6016 33.3307 35.4531 32.8568 35.4531 32.2266C35.4531 31.5833 35.6055 31.1068 35.9102 30.7969C36.2148 30.4844 36.6562 30.3281 37.2344 30.3281C37.8177 30.3281 38.2565 30.4844 38.5508 30.7969C38.8451 31.1068 38.9922 31.5781 38.9922 32.2109ZM32.3203 29.9648C32.3203 29.5482 32.2721 29.2669 32.1758 29.1211C32.0794 28.9753 31.9219 28.9023 31.7031 28.9023C31.4844 28.9023 31.3268 28.9753 31.2305 29.1211C31.1341 29.2669 31.0859 29.5495 31.0859 29.9688C31.0859 30.388 31.1341 30.6706 31.2305 30.8164C31.3268 30.9622 31.4844 31.0352 31.7031 31.0352C31.9219 31.0352 32.0794 30.9622 32.1758 30.8164C32.2721 30.6706 32.3203 30.3867 32.3203 29.9648ZM37.8398 32.2227C37.8398 31.806 37.7917 31.5247 37.6953 31.3789C37.599 31.2331 37.4414 31.1602 37.2227 31.1602C37.0039 31.1602 36.8464 31.2331 36.75 31.3789C36.6536 31.5247 36.6055 31.8073 36.6055 32.2266C36.6055 32.6458 36.6536 32.9284 36.75 33.0742C36.8464 33.2201 37.0039 33.293 37.2227 33.293C37.4414 33.293 37.599 33.2201 37.6953 33.0742C37.7917 32.9284 37.8398 32.6445 37.8398 32.2227Z" fill="#3F506A"/>
<path d="M45 19H13C11.8954 19 11 19.8954 11 21C11 22.1046 11.8954 23 13 23H45C46.1046 23 47 22.1046 47 21C47 19.8954 46.1046 19 45 19Z" fill="#DDDDDD"/>
<path d="M31 19H13C11.8954 19 11 19.8954 11 21C11 22.1046 11.8954 23 13 23H31C32.1046 23 33 22.1046 33 21C33 19.8954 32.1046 19 31 19Z" fill="#34B3FA"/>
<path opacity="0.1" d="M13 20H45C45.93 20 46.71 20.64 46.93 21.5C46.97 21.34 47 21.17 47 21C47 19.9 46.1 19 45 19H13C11.9 19 11 19.9 11 21C11 21.17 11.03 21.34 11.07 21.5C11.29 20.64 12.07 20 13 20Z" fill="black" fill-opacity="0.47"/>
<path d="M31 24C32.6569 24 34 22.6569 34 21C34 19.3431 32.6569 18 31 18C29.3431 18 28 19.3431 28 21C28 22.6569 29.3431 24 31 24Z" fill="#2089CF"/>
<path d="M31 22.5C31.8284 22.5 32.5 21.8284 32.5 21C32.5 20.1716 31.8284 19.5 31 19.5C30.1716 19.5 29.5 20.1716 29.5 21C29.5 21.8284 30.1716 22.5 31 22.5Z" fill="white"/>
<path d="M13 14V17" stroke="#CCCCCC" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M18 15V17" stroke="#DADEE7" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M23 15V17" stroke="#DADEE7" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M35 15V17" stroke="#DADEE7" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M40 15V17" stroke="#DADEE7" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M29 14V17" stroke="#CCCCCC" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M45 14V17" stroke="#CCCCCC" stroke-miterlimit="10" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

6
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_different_pie.svg

@ -0,0 +1,6 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M30 26V10C21.16 10 14 17.16 14 26C14 30.42 15.79 34.42 18.68 37.32L30 26Z" fill="#2576EF" stroke="white" stroke-miterlimit="10"/>
<path d="M20.8101 35.19L30.0001 26L39.1901 35.19C34.1101 40.27 25.8801 40.27 20.8101 35.19Z" fill="#62B3F0" stroke="white" stroke-miterlimit="10"/>
<path d="M37.7795 33.78L29.9995 26L37.7795 18.22C42.0795 22.52 42.0795 29.48 37.7795 33.78Z" fill="#7DD08A" stroke="white" stroke-miterlimit="10"/>
<path d="M29.9997 18.0002C30.2697 18.0002 30.5497 18.0202 30.8197 18.0402C31.3497 18.0902 31.8797 18.2002 32.3797 18.3602C33.1297 18.6002 33.8297 18.9302 34.4697 19.3602C34.6797 19.5102 34.8897 19.6502 35.0797 19.8202C35.2797 19.9802 35.4697 20.1502 35.6497 20.3302L29.9897 25.9902V17.9902L29.9997 18.0002Z" fill="#F8CA7A" stroke="white" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 901 B

6
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_line.svg

@ -0,0 +1,6 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M46.5 38H11.5C11.2239 38 11 38.2239 11 38.5C11 38.7761 11.2239 39 11.5 39H46.5C46.7761 39 47 38.7761 47 38.5C47 38.2239 46.7761 38 46.5 38Z" fill="#666666"/>
<path d="M11 28L24.567 22.688C24.6032 22.6739 24.6372 22.6545 24.6678 22.6305L37.9174 12.2551C38.0956 12.1156 38.3538 12.1515 38.4872 12.3343L47 24" stroke="#2576EF" stroke-width="1.2" stroke-linecap="round"/>
<path d="M11 14L24.5969 26.4128C24.6199 26.4338 24.6454 26.4521 24.6727 26.4672L37.8787 33.7869C38.0849 33.9012 38.3447 33.8132 38.4391 33.5972L47 14" stroke="#7DD08A" stroke-width="1.2" stroke-linecap="round"/>
<path d="M11 20.3529L24.4521 15.5604C24.5599 15.522 24.679 15.5316 24.7793 15.5868L37.9015 22.8119C38.0916 22.9165 38.3305 22.8505 38.4399 22.6631L47 8" stroke="#F9AE31" stroke-width="1.2" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 906 B

10
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_pie.svg

@ -0,0 +1,10 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M29 40.5C20.45 40.5 13.5 33.55 13.5 25C13.5 16.45 20.45 9.5 29 9.5C37.55 9.5 44.5 16.45 44.5 25C44.5 33.55 37.55 40.5 29 40.5Z" fill="#2576EF"/>
<path d="M29 10C37.27 10 44 16.73 44 25C44 33.27 37.27 40 29 40C20.73 40 14 33.27 14 25C14 16.73 20.73 10 29 10ZM29 9C20.16 9 13 16.16 13 25C13 33.84 20.16 41 29 41C37.84 41 45 33.84 45 25C45 16.16 37.84 9 29 9Z" fill="white"/>
<path d="M28.9999 40.4999C25.0299 40.4999 21.2799 39.0199 18.3999 36.3099L40.3099 14.3999C43.0199 17.2799 44.4999 21.0299 44.4999 24.9999C44.4999 28.9699 42.8899 33.0299 39.9599 35.9599C37.0299 38.8899 33.1399 40.4999 28.9999 40.4999Z" fill="#62B3F0"/>
<path d="M40.2897 15.1199C45.4397 21.0099 45.2197 29.9899 39.6097 35.5999C36.7797 38.4299 33.0097 39.9899 28.9997 39.9899C25.3297 39.9899 21.8597 38.6799 19.1197 36.2799L40.2897 15.1099M40.3097 13.6899L17.6797 36.3199C20.7997 39.4399 24.8997 41.0099 28.9897 41.0099C33.0797 41.0099 37.1797 39.4499 40.2997 36.3199C46.5497 30.0699 46.5497 19.9399 40.2997 13.6899H40.3097Z" fill="white"/>
<path d="M29.5 24.5V9.51001C37.65 9.77001 44.23 16.35 44.49 24.5H29.5Z" fill="#F8CA7A"/>
<path d="M30 10.03C37.48 10.52 43.47 16.52 43.97 24H30V10.03ZM29 9V25H45C45 16.16 37.84 9 29 9Z" fill="white"/>
<path d="M29.71 25.0001L40.31 14.4001C45.89 20.3501 45.89 29.6501 40.31 35.6001L29.71 25.0001Z" fill="#7DD08A"/>
<path d="M40.29 15.1202C42.69 17.8602 44 21.3302 44 25.0002C44 28.6702 42.69 32.1402 40.29 34.8802L30.41 25.0002L40.29 15.1202ZM40.31 13.6902L29 25.0002L40.31 36.3102C46.56 30.0602 46.56 19.9302 40.31 13.6802V13.6902Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

35
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_pointer_180.svg

@ -0,0 +1,35 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M44 27.9399V29.9999C44 31.0999 43.1 31.9999 42 31.9999H15C13.9 31.9999 13 31.0999 13 29.9999V27.4999C13 18.6899 20.35 11.5999 29.25 12.0199C37.59 12.4099 44 19.5899 44 27.9399Z" fill="#FCFCFC"/>
<g opacity="0.1">
<path d="M28.5 12C28.75 12 29 12 29.25 12.02C37.59 12.41 44 19.59 44 27.94V30C44 31.1 43.1 32 42 32H15C13.9 32 13 31.1 13 30V27.5C13 18.94 19.94 12 28.5 12ZM28.5 11C19.4 11 12 18.4 12 27.5V30C12 31.65 13.35 33 15 33H42C43.65 33 45 31.65 45 30V27.94C45 18.87 38.1 11.44 29.3 11.02C29.03 11.01 28.77 11 28.5 11Z" fill="black"/>
</g>
<mask id="mask0_12902_32033" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="14" y="13" width="29" height="29">
<path d="M28.5 13C20.49 13 14 19.49 14 27.5C14 35.51 20.49 42 28.5 42C36.51 42 43 35.51 43 27.5C43 19.49 36.51 13 28.5 13ZM28.5 39C22.15 39 17 33.85 17 27.5C17 21.15 22.15 16 28.5 16C34.85 16 40 21.15 40 27.5C40 33.85 34.85 39 28.5 39Z" fill="white"/>
</mask>
<g mask="url(#mask0_12902_32033)">
<path d="M28.5 11V33" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M12 28.5H44" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M17.04 15.83L31.08 29.87" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M26.1299 30.07L39.6699 16.54" stroke="#DADEE7" stroke-miterlimit="10"/>
</g>
<path d="M19.3101 18.8101L27.7901 28.7101L29.2101 27.2901L19.3101 18.8101Z" fill="#E5715A"/>
<path d="M37.69 18.8101L27.79 27.2901L29.21 28.7101L37.69 18.8101Z" fill="#E5715A"/>
<path d="M28.5 29.6C29.6046 29.6 30.5 28.7045 30.5 27.6C30.5 26.4954 29.6046 25.6 28.5 25.6C27.3954 25.6 26.5 26.4954 26.5 27.6C26.5 28.7045 27.3954 29.6 28.5 29.6Z" fill="#656B6D"/>
<mask id="mask1_12902_32033" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="13" y="12" width="30" height="28">
<path d="M41.9 21.95C38.84 14.55 30.35 11.04 22.95 14.1C15.55 17.16 12.04 25.65 15.1 33.05C16.18 35.66 17.95 37.77 20.09 39.3C20.19 38.58 20.38 37.88 20.65 37.23C19.07 35.96 17.78 34.29 16.95 32.28C14.31 25.9 17.34 18.59 23.71 15.95C30.08 13.31 37.4 16.34 40.04 22.71C42.21 27.95 40.54 33.82 36.34 37.21C36.61 37.87 36.8 38.56 36.9 39.29C42.29 35.46 44.53 28.3 41.89 21.94L41.9 21.95Z" fill="white"/>
</mask>
<g mask="url(#mask1_12902_32033)">
<mask id="mask2_12902_32033" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="13" y="12" width="31" height="31">
<path d="M22.95 14.1C15.55 17.16 12.04 25.65 15.1 33.05C18.16 40.45 26.65 43.96 34.05 40.9C41.45 37.84 44.96 29.35 41.9 21.95C38.84 14.55 30.35 11.04 22.95 14.1ZM33.28 39.05C26.9 41.69 19.59 38.66 16.95 32.29C14.31 25.92 17.34 18.6 23.71 15.96C30.09 13.32 37.4 16.35 40.04 22.72C42.68 29.09 39.65 36.41 33.28 39.05Z" fill="white"/>
</mask>
<g mask="url(#mask2_12902_32033)">
<path d="M22.3804 12.7201L34.6204 42.2801" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M25.4902 29.2902L43.0102 22.0302" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M13.4502 21.1101L31.7902 28.7001" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M22.3804 42.6601L34.6204 13.1001" stroke="#DADEE7" stroke-miterlimit="10"/>
</g>
</g>
<path d="M31.18 19H30.82C30.3671 19 30 19.3671 30 19.82V21.18C30 21.6329 30.3671 22 30.82 22H31.18C31.6329 22 32 21.6329 32 21.18V19.82C32 19.3671 31.6329 19 31.18 19Z" fill="#CECECE"/>
<path d="M28.18 19H27.82C27.3671 19 27 19.3671 27 19.82V21.18C27 21.6329 27.3671 22 27.82 22H28.18C28.6329 22 29 21.6329 29 21.18V19.82C29 19.3671 28.6329 19 28.18 19Z" fill="#CECECE"/>
<path d="M25.18 19H24.82C24.3671 19 24 19.3671 24 19.82V21.18C24 21.6329 24.3671 22 24.82 22H25.18C25.6329 22 26 21.6329 26 21.18V19.82C26 19.3671 25.6329 19 25.18 19Z" fill="#CECECE"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

35
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_pointer_360.svg

@ -0,0 +1,35 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M28.5 40.1C37.0604 40.1 44 33.1604 44 24.6C44 16.0396 37.0604 9.09998 28.5 9.09998C19.9396 9.09998 13 16.0396 13 24.6C13 33.1604 19.9396 40.1 28.5 40.1Z" fill="#FCFCFC"/>
<g opacity="0.1">
<path d="M28.5 9.09998C37.06 9.09998 44 16.04 44 24.6C44 33.16 37.06 40.1 28.5 40.1C19.94 40.1 13 33.16 13 24.6C13 16.04 19.94 9.09998 28.5 9.09998ZM28.5 8.09998C19.4 8.09998 12 15.5 12 24.6C12 33.7 19.4 41.1 28.5 41.1C37.6 41.1 45 33.7 45 24.6C45 15.5 37.6 8.09998 28.5 8.09998Z" fill="black"/>
</g>
<mask id="mask0_12902_32032" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="14" y="10" width="29" height="30">
<path d="M28.5 10.1C20.49 10.1 14 16.59 14 24.6C14 32.61 20.49 39.1 28.5 39.1C36.51 39.1 43 32.61 43 24.6C43 16.59 36.51 10.1 28.5 10.1ZM28.5 36.1C22.15 36.1 17 30.95 17 24.6C17 18.25 22.15 13.1 28.5 13.1C34.85 13.1 40 18.25 40 24.6C40 30.95 34.85 36.1 28.5 36.1Z" fill="white"/>
</mask>
<g mask="url(#mask0_12902_32032)">
<path d="M28.5 9V31" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M12 25.5H44" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M17.04 12.9301L39.67 35.5601" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M17.04 36.27L39.67 13.64" stroke="#DADEE7" stroke-miterlimit="10"/>
</g>
<path d="M19.3101 15.8101L27.7901 25.7101L29.2101 24.2901L19.3101 15.8101Z" fill="#E5715A"/>
<path d="M37.69 15.8101L27.79 24.2901L29.21 25.7101L37.69 15.8101Z" fill="#E5715A"/>
<path d="M28.5 27.1C29.8807 27.1 31 25.9807 31 24.6C31 23.2193 29.8807 22.1 28.5 22.1C27.1193 22.1 26 23.2193 26 24.6C26 25.9807 27.1193 27.1 28.5 27.1Z" fill="#656B6D"/>
<mask id="mask1_12902_32032" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="13" y="10" width="30" height="27">
<path d="M41.9 19.45C38.84 12.05 30.35 8.54005 22.95 11.6C15.55 14.66 12.04 23.15 15.1 30.55C16.18 33.16 17.95 35.27 20.09 36.8C20.19 36.08 20.38 35.38 20.65 34.73C19.07 33.46 17.78 31.79 16.95 29.78C14.31 23.4 17.34 16.09 23.71 13.45C30.08 10.81 37.4 13.84 40.04 20.21C42.21 25.45 40.54 31.32 36.34 34.71C36.61 35.37 36.8 36.06 36.9 36.79C42.29 32.96 44.53 25.8 41.89 19.44L41.9 19.45Z" fill="white"/>
</mask>
<g mask="url(#mask1_12902_32032)">
<mask id="mask2_12902_32032" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="13" y="10" width="31" height="30">
<path d="M22.95 11.6C15.55 14.66 12.04 23.15 15.1 30.55C18.16 37.95 26.65 41.46 34.05 38.4C41.45 35.34 44.96 26.85 41.9 19.45C38.84 12.05 30.35 8.54005 22.95 11.6ZM33.28 36.55C26.9 39.19 19.59 36.16 16.95 29.79C14.31 23.42 17.34 16.1 23.71 13.46C30.08 10.82 37.4 13.85 40.04 20.22C42.68 26.59 39.65 33.91 33.28 36.55Z" fill="white"/>
</mask>
<g mask="url(#mask2_12902_32032)">
<path d="M22.3804 10.2201L34.6204 39.7801" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M13.4502 31.7802L43.0102 19.5302" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M13.4502 18.6101L43.0102 30.8501" stroke="#DADEE7" stroke-miterlimit="10"/>
<path d="M22.3804 40.1601L34.6204 10.6001" stroke="#DADEE7" stroke-miterlimit="10"/>
</g>
</g>
<path d="M32.18 31H31.82C31.3671 31 31 31.3671 31 31.82V33.18C31 33.6329 31.3671 34 31.82 34H32.18C32.6329 34 33 33.6329 33 33.18V31.82C33 31.3671 32.6329 31 32.18 31Z" fill="#CECECE"/>
<path d="M29.18 31H28.82C28.3671 31 28 31.3671 28 31.82V33.18C28 33.6329 28.3671 34 28.82 34H29.18C29.6329 34 30 33.6329 30 33.18V31.82C30 31.3671 29.6329 31 29.18 31Z" fill="#CECECE"/>
<path d="M26.18 31H25.82C25.3671 31 25 31.3671 25 31.82V33.18C25 33.6329 25.3671 34 25.82 34H26.18C26.6329 34 27 33.6329 27 33.18V31.82C27 31.3671 26.6329 31 26.18 31Z" fill="#CECECE"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

7
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_radar.svg

@ -0,0 +1,7 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M44.5 25C44.5 33.5604 37.5604 40.5 29 40.5C20.4396 40.5 13.5 33.5604 13.5 25C13.5 16.4396 20.4396 9.5 29 9.5C37.5604 9.5 44.5 16.4396 44.5 25Z" stroke="#CFD4DC"/>
<path d="M29 9.5V40.5" stroke="#CFD4DC" stroke-linecap="round"/>
<path d="M15.5767 17.2502L42.4234 32.7502" stroke="#CFD4DC" stroke-linecap="round"/>
<path d="M15.5767 32.7502L42.4234 17.2502" stroke="#CFD4DC" stroke-linecap="round"/>
<path d="M20.5 20L29 16L37 20L36 28.5L29 35.5L22 28.5L20.5 20Z" fill="#34B3FA" fill-opacity="0.2" stroke="#34B3FA" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 650 B

13
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_ring.svg

@ -0,0 +1,13 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_12902_32037)">
<path d="M29 41C37.8366 41 45 33.8366 45 25C45 16.1634 37.8366 9 29 9C20.1634 9 13 16.1634 13 25C13 33.8366 20.1634 41 29 41Z" fill="#DDDDDD"/>
<path d="M29 9C20.16 9 13 16.16 13 25C13 33.84 20.16 41 29 41C33.42 41 37.42 39.21 40.31 36.31L29 25V9Z" fill="#34B3FA"/>
<path d="M29 36C35.0751 36 40 31.0751 40 25C40 18.9249 35.0751 14 29 14C22.9249 14 18 18.9249 18 25C18 31.0751 22.9249 36 29 36Z" fill="white"/>
<path d="M24.1211 25.2671C24.1211 25.5291 24.0732 25.7752 23.9775 26.0054C23.8818 26.2355 23.7474 26.4292 23.5742 26.5864C23.3896 26.755 23.1755 26.8838 22.9316 26.9727C22.6901 27.0615 22.4064 27.106 22.0806 27.106C21.7752 27.106 21.4961 27.0649 21.2432 26.9829C20.9925 26.8986 20.7772 26.771 20.5972 26.6001C20.3898 26.4041 20.2314 26.1512 20.1221 25.8413C20.0127 25.5314 19.958 25.1611 19.958 24.7305C19.958 24.2839 20.0093 23.8874 20.1118 23.541C20.2144 23.1947 20.3818 22.8882 20.6143 22.6216C20.8376 22.3664 21.127 22.1681 21.4824 22.0269C21.8402 21.8856 22.2651 21.8149 22.7573 21.8149C22.9237 21.8149 23.106 21.8263 23.3042 21.8491C23.5024 21.8719 23.6312 21.889 23.6904 21.9004V22.9019H23.5605C23.499 22.8722 23.3942 22.8392 23.2461 22.8027C23.1003 22.764 22.9339 22.7446 22.7471 22.7446C22.3096 22.7446 21.9689 22.8517 21.7251 23.0659C21.4813 23.2801 21.3343 23.5786 21.2842 23.9614C21.4596 23.8566 21.6442 23.7723 21.8379 23.7085C22.0339 23.6424 22.2446 23.6094 22.4702 23.6094C22.6685 23.6094 22.8519 23.6322 23.0205 23.6777C23.1914 23.7233 23.3498 23.7962 23.4956 23.8965C23.6847 24.0286 23.8363 24.2064 23.9502 24.4297C24.0641 24.653 24.1211 24.9321 24.1211 25.2671ZM22.5659 26.0361C22.6366 25.9587 22.6924 25.8675 22.7334 25.7627C22.7767 25.6556 22.7983 25.5109 22.7983 25.3286C22.7983 25.1623 22.7744 25.0267 22.7266 24.9219C22.6787 24.8148 22.6126 24.7293 22.5283 24.6655C22.4463 24.6017 22.3494 24.5584 22.2378 24.5356C22.1261 24.5106 22.0111 24.498 21.8926 24.498C21.7923 24.498 21.6875 24.5094 21.5781 24.5322C21.4688 24.555 21.3685 24.5835 21.2773 24.6177C21.2773 24.6405 21.2762 24.6781 21.2739 24.7305C21.2716 24.7829 21.2705 24.849 21.2705 24.9287C21.2705 25.209 21.2979 25.4403 21.3525 25.6226C21.4095 25.8026 21.4847 25.9404 21.5781 26.0361C21.6419 26.1068 21.7171 26.1592 21.8037 26.1934C21.8903 26.2253 21.9837 26.2412 22.084 26.2412C22.1592 26.2412 22.2424 26.2241 22.3335 26.1899C22.4246 26.1558 22.5021 26.1045 22.5659 26.0361ZM29.0703 24.4536C29.0703 24.882 29.0316 25.266 28.9541 25.6055C28.8766 25.9427 28.7559 26.2196 28.5918 26.436C28.4232 26.6571 28.2067 26.8245 27.9424 26.9385C27.6781 27.0501 27.3522 27.106 26.9648 27.106C26.5843 27.106 26.2596 27.049 25.9907 26.9351C25.7218 26.8211 25.5042 26.6525 25.3379 26.4292C25.1693 26.2059 25.0474 25.929 24.9722 25.5986C24.897 25.266 24.8594 24.8854 24.8594 24.457C24.8594 24.015 24.8981 23.631 24.9756 23.3052C25.0531 22.9793 25.1761 22.7036 25.3447 22.478C25.5133 22.2547 25.7321 22.0872 26.001 21.9756C26.2699 21.8639 26.5911 21.8081 26.9648 21.8081C27.3545 21.8081 27.6815 21.8662 27.9458 21.9824C28.2101 22.0964 28.4266 22.2673 28.5952 22.4951C28.7616 22.7184 28.8823 22.9941 28.9575 23.3223C29.0327 23.6481 29.0703 24.0252 29.0703 24.4536ZM27.7476 24.4536C27.7476 23.8384 27.6872 23.4009 27.5664 23.1411C27.4456 22.8791 27.2451 22.748 26.9648 22.748C26.6846 22.748 26.484 22.8791 26.3633 23.1411C26.2425 23.4009 26.1821 23.8407 26.1821 24.4604C26.1821 25.0643 26.2437 25.4995 26.3667 25.7661C26.4897 26.0327 26.6891 26.166 26.9648 26.166C27.2406 26.166 27.4399 26.0327 27.563 25.7661C27.686 25.4995 27.7476 25.062 27.7476 24.4536ZM33.0386 23.459C33.0386 24.0264 32.9076 24.4468 32.6455 24.7202C32.3835 24.9937 32.0018 25.1304 31.5005 25.1304C30.9832 25.1304 30.5936 24.9925 30.3315 24.7168C30.0718 24.4388 29.9419 24.0241 29.9419 23.4727C29.9419 22.9098 30.0752 22.4928 30.3418 22.2217C30.6084 21.9482 30.9946 21.8115 31.5005 21.8115C32.0109 21.8115 32.3949 21.9482 32.6523 22.2217C32.9098 22.4928 33.0386 22.9053 33.0386 23.459ZM35.7046 21.9106L33.0386 27H32.1191L34.7852 21.9106H35.7046ZM37.8682 25.4346C37.8682 26.002 37.7371 26.4224 37.4751 26.6958C37.2131 26.9692 36.8314 27.106 36.3301 27.106C35.8128 27.106 35.4232 26.9681 35.1611 26.6924C34.9014 26.4144 34.7715 25.9997 34.7715 25.4482C34.7715 24.8854 34.9048 24.4684 35.1714 24.1973C35.438 23.9238 35.8242 23.7871 36.3301 23.7871C36.8405 23.7871 37.2244 23.9238 37.4819 24.1973C37.7394 24.4684 37.8682 24.8809 37.8682 25.4346ZM32.0303 23.4692C32.0303 23.1047 31.9881 22.8586 31.9038 22.731C31.8195 22.6034 31.6816 22.5396 31.4902 22.5396C31.2988 22.5396 31.161 22.6034 31.0767 22.731C30.9924 22.8586 30.9502 23.1058 30.9502 23.4727C30.9502 23.8395 30.9924 24.0868 31.0767 24.2144C31.161 24.342 31.2988 24.4058 31.4902 24.4058C31.6816 24.4058 31.8195 24.342 31.9038 24.2144C31.9881 24.0868 32.0303 23.8384 32.0303 23.4692ZM36.8599 25.4448C36.8599 25.0802 36.8177 24.8341 36.7334 24.7065C36.6491 24.5789 36.5112 24.5151 36.3198 24.5151C36.1284 24.5151 35.9906 24.5789 35.9062 24.7065C35.8219 24.8341 35.7798 25.0814 35.7798 25.4482C35.7798 25.8151 35.8219 26.0623 35.9062 26.1899C35.9906 26.3175 36.1284 26.3813 36.3198 26.3813C36.5112 26.3813 36.6491 26.3175 36.7334 26.1899C36.8177 26.0623 36.8599 25.814 36.8599 25.4448Z" fill="#3F506A"/>
</g>
<defs>
<clipPath id="clip0_12902_32037">
<rect width="58" height="50" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

6
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_same_pie.svg

@ -0,0 +1,6 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M38 26C38 21.58 34.42 18 30 18V26H38Z" fill="#F8CA7A" stroke="white" stroke-miterlimit="10"/>
<path d="M14 26C14 17.16 21.16 10 30 10V26H14Z" fill="#2576EF" stroke="white" stroke-miterlimit="10"/>
<path d="M40 26C40 31.52 35.52 36 30 36V26H40Z" fill="#7DD08A" stroke="white" stroke-miterlimit="10"/>
<path d="M17 26C17 33.18 22.82 39 30 39V26H17Z" fill="#62B3F0" stroke="white" stroke-miterlimit="10"/>
</svg>

After

Width:  |  Height:  |  Size: 515 B

9
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_scatter.svg

@ -0,0 +1,9 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M46.5 38H11.5C11.2239 38 11 38.2239 11 38.5C11 38.7761 11.2239 39 11.5 39H46.5C46.7761 39 47 38.7761 47 38.5C47 38.2239 46.7761 38 46.5 38Z" fill="#666666"/>
<circle cx="13.5" cy="29.5" r="2.5" fill="#2576EF"/>
<circle cx="23.5" cy="25.5" r="2.5" fill="#2576EF"/>
<circle cx="25.5" cy="16.5" r="2.5" fill="#2576EF"/>
<circle cx="34.5" cy="22.5" r="2.5" fill="#2576EF"/>
<circle cx="36.5" cy="14.5" r="2.5" fill="#2576EF"/>
<circle cx="44.5" cy="9.5" r="2.5" fill="#2576EF"/>
</svg>

After

Width:  |  Height:  |  Size: 587 B

18
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_slot.svg

@ -0,0 +1,18 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_12902_32036)">
<path d="M18.39 38.61C15.68 35.9 14 32.15 14 28C14 23.85 15.68 20.11 18.39 17.39C21.1 14.67 24.85 13 29 13C33.15 13 36.89 14.68 39.61 17.39C42.33 20.1 44 23.85 44 28C44 32.15 42.32 35.89 39.61 38.61" stroke="#DDDDDD" stroke-width="4" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M18.39 38.61C15.68 35.9 14 32.15 14 28C14 23.85 15.68 20.11 18.39 17.39C21.1 14.67 24.85 13 29 13C33.15 13 36.89 14.68 39.61 17.39" stroke="#34B3FA" stroke-width="4" stroke-miterlimit="10" stroke-linecap="round"/>
<g opacity="0.08">
<path d="M16.9802 16.98C20.1902 13.77 24.4602 12 29.0002 12C33.5402 12 37.8102 13.77 41.0202 16.98C44.1102 20.07 45.8502 24.15 45.9702 28.5C45.9702 28.33 45.9902 28.17 45.9902 28C45.9902 23.46 44.2202 19.19 41.0102 15.98C37.8002 12.77 33.5302 11 28.9902 11C24.4502 11 20.1802 12.77 16.9702 15.98C13.7602 19.19 11.9902 23.46 11.9902 28C11.9902 28.17 12.0102 28.33 12.0102 28.5C12.1402 24.15 13.8702 20.07 16.9702 16.98H16.9802Z" fill="black"/>
<path d="M16.02 28.5C16.02 28.67 16 28.83 16 29C16 32.47 17.35 35.74 19.81 38.19C20.07 38.45 20.24 38.77 20.32 39.1C20.49 38.44 20.32 37.7 19.81 37.19C17.47 34.85 16.15 31.78 16.03 28.5H16.02Z" fill="black"/>
<path d="M42 29C42 28.83 41.98 28.67 41.98 28.5C41.86 31.78 40.53 34.86 38.2 37.19C37.68 37.71 37.51 38.44 37.69 39.1C37.78 38.77 37.94 38.45 38.2 38.19C40.66 35.74 42.01 32.47 42.01 29H42Z" fill="black"/>
</g>
<path d="M39.6099 18.39C40.1621 18.39 40.6099 17.9423 40.6099 17.39C40.6099 16.8377 40.1621 16.39 39.6099 16.39C39.0576 16.39 38.6099 16.8377 38.6099 17.39C38.6099 17.9423 39.0576 18.39 39.6099 18.39Z" fill="white"/>
<path d="M24.1211 28.2671C24.1211 28.5291 24.0732 28.7752 23.9775 29.0054C23.8818 29.2355 23.7474 29.4292 23.5742 29.5864C23.3896 29.755 23.1755 29.8838 22.9316 29.9727C22.6901 30.0615 22.4064 30.106 22.0806 30.106C21.7752 30.106 21.4961 30.0649 21.2432 29.9829C20.9925 29.8986 20.7772 29.771 20.5972 29.6001C20.3898 29.4041 20.2314 29.1512 20.1221 28.8413C20.0127 28.5314 19.958 28.1611 19.958 27.7305C19.958 27.2839 20.0093 26.8874 20.1118 26.541C20.2144 26.1947 20.3818 25.8882 20.6143 25.6216C20.8376 25.3664 21.127 25.1681 21.4824 25.0269C21.8402 24.8856 22.2651 24.8149 22.7573 24.8149C22.9237 24.8149 23.106 24.8263 23.3042 24.8491C23.5024 24.8719 23.6312 24.889 23.6904 24.9004V25.9019H23.5605C23.499 25.8722 23.3942 25.8392 23.2461 25.8027C23.1003 25.764 22.9339 25.7446 22.7471 25.7446C22.3096 25.7446 21.9689 25.8517 21.7251 26.0659C21.4813 26.2801 21.3343 26.5786 21.2842 26.9614C21.4596 26.8566 21.6442 26.7723 21.8379 26.7085C22.0339 26.6424 22.2446 26.6094 22.4702 26.6094C22.6685 26.6094 22.8519 26.6322 23.0205 26.6777C23.1914 26.7233 23.3498 26.7962 23.4956 26.8965C23.6847 27.0286 23.8363 27.2064 23.9502 27.4297C24.0641 27.653 24.1211 27.9321 24.1211 28.2671ZM22.5659 29.0361C22.6366 28.9587 22.6924 28.8675 22.7334 28.7627C22.7767 28.6556 22.7983 28.5109 22.7983 28.3286C22.7983 28.1623 22.7744 28.0267 22.7266 27.9219C22.6787 27.8148 22.6126 27.7293 22.5283 27.6655C22.4463 27.6017 22.3494 27.5584 22.2378 27.5356C22.1261 27.5106 22.0111 27.498 21.8926 27.498C21.7923 27.498 21.6875 27.5094 21.5781 27.5322C21.4688 27.555 21.3685 27.5835 21.2773 27.6177C21.2773 27.6405 21.2762 27.6781 21.2739 27.7305C21.2716 27.7829 21.2705 27.849 21.2705 27.9287C21.2705 28.209 21.2979 28.4403 21.3525 28.6226C21.4095 28.8026 21.4847 28.9404 21.5781 29.0361C21.6419 29.1068 21.7171 29.1592 21.8037 29.1934C21.8903 29.2253 21.9837 29.2412 22.084 29.2412C22.1592 29.2412 22.2424 29.2241 22.3335 29.1899C22.4246 29.1558 22.5021 29.1045 22.5659 29.0361ZM29.0703 27.4536C29.0703 27.882 29.0316 28.266 28.9541 28.6055C28.8766 28.9427 28.7559 29.2196 28.5918 29.436C28.4232 29.6571 28.2067 29.8245 27.9424 29.9385C27.6781 30.0501 27.3522 30.106 26.9648 30.106C26.5843 30.106 26.2596 30.049 25.9907 29.9351C25.7218 29.8211 25.5042 29.6525 25.3379 29.4292C25.1693 29.2059 25.0474 28.929 24.9722 28.5986C24.897 28.266 24.8594 27.8854 24.8594 27.457C24.8594 27.015 24.8981 26.631 24.9756 26.3052C25.0531 25.9793 25.1761 25.7036 25.3447 25.478C25.5133 25.2547 25.7321 25.0872 26.001 24.9756C26.2699 24.8639 26.5911 24.8081 26.9648 24.8081C27.3545 24.8081 27.6815 24.8662 27.9458 24.9824C28.2101 25.0964 28.4266 25.2673 28.5952 25.4951C28.7616 25.7184 28.8823 25.9941 28.9575 26.3223C29.0327 26.6481 29.0703 27.0252 29.0703 27.4536ZM27.7476 27.4536C27.7476 26.8384 27.6872 26.4009 27.5664 26.1411C27.4456 25.8791 27.2451 25.748 26.9648 25.748C26.6846 25.748 26.484 25.8791 26.3633 26.1411C26.2425 26.4009 26.1821 26.8407 26.1821 27.4604C26.1821 28.0643 26.2437 28.4995 26.3667 28.7661C26.4897 29.0327 26.6891 29.166 26.9648 29.166C27.2406 29.166 27.4399 29.0327 27.563 28.7661C27.686 28.4995 27.7476 28.062 27.7476 27.4536ZM33.0386 26.459C33.0386 27.0264 32.9076 27.4468 32.6455 27.7202C32.3835 27.9937 32.0018 28.1304 31.5005 28.1304C30.9832 28.1304 30.5936 27.9925 30.3315 27.7168C30.0718 27.4388 29.9419 27.0241 29.9419 26.4727C29.9419 25.9098 30.0752 25.4928 30.3418 25.2217C30.6084 24.9482 30.9946 24.8115 31.5005 24.8115C32.0109 24.8115 32.3949 24.9482 32.6523 25.2217C32.9098 25.4928 33.0386 25.9053 33.0386 26.459ZM35.7046 24.9106L33.0386 30H32.1191L34.7852 24.9106H35.7046ZM37.8682 28.4346C37.8682 29.002 37.7371 29.4224 37.4751 29.6958C37.2131 29.9692 36.8314 30.106 36.3301 30.106C35.8128 30.106 35.4232 29.9681 35.1611 29.6924C34.9014 29.4144 34.7715 28.9997 34.7715 28.4482C34.7715 27.8854 34.9048 27.4684 35.1714 27.1973C35.438 26.9238 35.8242 26.7871 36.3301 26.7871C36.8405 26.7871 37.2244 26.9238 37.4819 27.1973C37.7394 27.4684 37.8682 27.8809 37.8682 28.4346ZM32.0303 26.4692C32.0303 26.1047 31.9881 25.8586 31.9038 25.731C31.8195 25.6034 31.6816 25.5396 31.4902 25.5396C31.2988 25.5396 31.161 25.6034 31.0767 25.731C30.9924 25.8586 30.9502 26.1058 30.9502 26.4727C30.9502 26.8395 30.9924 27.0868 31.0767 27.2144C31.161 27.342 31.2988 27.4058 31.4902 27.4058C31.6816 27.4058 31.8195 27.342 31.9038 27.2144C31.9881 27.0868 32.0303 26.8384 32.0303 26.4692ZM36.8599 28.4448C36.8599 28.0802 36.8177 27.8341 36.7334 27.7065C36.6491 27.5789 36.5112 27.5151 36.3198 27.5151C36.1284 27.5151 35.9906 27.5789 35.9062 27.7065C35.8219 27.8341 35.7798 28.0814 35.7798 28.4482C35.7798 28.8151 35.8219 29.0623 35.9062 29.1899C35.9906 29.3175 36.1284 29.3813 36.3198 29.3813C36.5112 29.3813 36.6491 29.3175 36.7334 29.1899C36.8177 29.0623 36.8599 28.814 36.8599 28.4448Z" fill="#3F506A"/>
</g>
<defs>
<clipPath id="clip0_12902_32036">
<rect width="58" height="50" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

46
designer-base/src/main/resources/com/fine/theme/icon/chart/icon_stack_radar.svg

@ -0,0 +1,46 @@
<svg width="58" height="50" viewBox="0 0 58 50" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M44.5 25C44.5 33.5604 37.5604 40.5 29 40.5C20.4396 40.5 13.5 33.5604 13.5 25C13.5 16.4396 20.4396 9.5 29 9.5C37.5604 9.5 44.5 16.4396 44.5 25Z" stroke="#CFD4DC"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.4997 9.5C29.4997 9.22386 29.2758 9 28.9997 9C28.7235 9 28.4997 9.22386 28.4997 9.5V23.063C28.6595 23.0219 28.8271 23 28.9998 23C29.1724 23 29.3399 23.0219 29.4997 23.063V9.5ZM30.4268 23.5988C30.6608 23.837 30.8355 24.1335 30.9273 24.4645L42.673 17.6831C42.9122 17.545 42.9941 17.2392 42.8561 17.0001C42.718 16.761 42.4122 16.679 42.173 16.8171L30.4268 23.5988ZM30.9272 25.5356C30.8354 25.8666 30.6607 26.1632 30.4267 26.4014L42.173 33.1831C42.4122 33.3212 42.718 33.2392 42.8561 33.0001C42.9941 32.7609 42.9122 32.4552 42.673 32.3171L30.9272 25.5356ZM29.4997 26.937C29.3399 26.9781 29.1724 27 28.9998 27C28.8271 27 28.6595 26.9781 28.4997 26.937V40.5C28.4997 40.7761 28.7235 41 28.9997 41C29.2758 41 29.4997 40.7761 29.4997 40.5V26.937ZM27.5727 26.4013C27.3388 26.1631 27.164 25.8665 27.0723 25.5355L15.3263 32.3171C15.0871 32.4552 15.0052 32.7609 15.1432 33.0001C15.2813 33.2392 15.5871 33.3212 15.8263 33.1831L27.5727 26.4013ZM27.0722 24.4646C27.164 24.1336 27.3387 23.8371 27.5726 23.5988L15.8263 16.8171C15.5871 16.679 15.2813 16.7609 15.1432 17.0001C15.0052 17.2392 15.0871 17.545 15.3263 17.6831L27.0722 24.4646Z" fill="#CFD4DC"/>
<path d="M33.4609 35.6659C32.0602 36.2518 30.5579 36.556 29.0398 36.5612C27.5216 36.5664 26.0172 36.2726 24.6126 35.6964L28.9999 25.0004L33.4609 35.6659Z" fill="#34B3FA"/>
<mask id="mask0_12902_32040" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="24" y="25" width="10" height="12">
<path d="M33.4609 35.6659C32.0602 36.2518 30.5579 36.556 29.0398 36.5612C27.5216 36.5664 26.0172 36.2726 24.6126 35.6964L28.9999 25.0004L33.4609 35.6659Z" fill="#34B3FA"/>
</mask>
<g mask="url(#mask0_12902_32040)">
<circle cx="29" cy="25.0004" r="6.97556" transform="rotate(-0.819297 29 25.0004)" fill="#7DD08A" stroke="white" stroke-width="0.5"/>
</g>
<path d="M40.001 26.2448C39.8375 27.6895 39.391 29.0879 38.6871 30.3601C37.9831 31.6323 37.0355 32.7533 35.8983 33.6593L28.9996 24.9995L40.001 26.2448Z" fill="#34B3FA"/>
<mask id="mask1_12902_32040" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="28" y="24" width="13" height="10">
<path d="M40.001 26.2448C39.8375 27.6895 39.391 29.0879 38.6871 30.3601C37.9831 31.6323 37.0355 32.7533 35.8983 33.6593L28.9996 24.9995L40.001 26.2448Z" fill="#34B3FA"/>
</mask>
<g mask="url(#mask1_12902_32040)">
<circle cx="28.9996" cy="24.9999" r="6.66979" transform="rotate(-61.6639 28.9996 24.9999)" fill="#7DD08A" stroke="white" stroke-width="0.5"/>
</g>
<path d="M34.9113 18.0353C35.826 18.8116 36.5789 19.7604 37.1269 20.8277C37.675 21.895 38.0074 23.0597 38.1053 24.2555L28.9999 25.0008L34.9113 18.0353Z" fill="#34B3FA"/>
<mask id="mask2_12902_32040" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="29" y="18" width="10" height="8">
<path d="M34.9113 18.0353C35.826 18.8116 36.5789 19.7604 37.1269 20.8277C37.675 21.895 38.0074 23.0597 38.1053 24.2555L28.9999 25.0008L34.9113 18.0353Z" fill="#34B3FA"/>
</mask>
<g mask="url(#mask2_12902_32040)">
<circle cx="28.9999" cy="25.0011" r="5.45993" transform="rotate(-117.802 28.9999 25.0011)" fill="#7DD08A" stroke="white" stroke-width="0.5"/>
</g>
<path d="M24.3272 13.2641C25.8684 12.6505 27.5154 12.3464 29.1741 12.3693C30.8328 12.3921 32.4708 12.7415 33.9945 13.3974L29 25.0003L24.3272 13.2641Z" fill="#34B3FA"/>
<mask id="mask3_12902_32040" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="24" y="12" width="10" height="14">
<path d="M24.3272 13.2641C25.8684 12.6505 27.5154 12.3464 29.1741 12.3693C30.8328 12.3921 32.4708 12.7415 33.9945 13.3974L29 25.0003L24.3272 13.2641Z" fill="#34B3FA"/>
</mask>
<g mask="url(#mask3_12902_32040)">
<circle cx="29.0001" cy="25.0005" r="7.64514" transform="rotate(-179.832 29.0001 25.0005)" fill="#7DD08A" stroke="white" stroke-width="0.5"/>
</g>
<path d="M18.9546 23.6754C19.1286 22.3562 19.5607 21.0842 20.2263 19.932C20.8918 18.7798 21.7778 17.7699 22.8336 16.9601L29.0002 25.0001L18.9546 23.6754Z" fill="#34B3FA"/>
<mask id="mask4_12902_32040" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="18" y="16" width="11" height="9">
<path d="M18.9546 23.6754C19.1286 22.3562 19.5607 21.0842 20.2263 19.932C20.8918 18.7798 21.7778 17.7699 22.8336 16.9601L29.0002 25.0001L18.9546 23.6754Z" fill="#34B3FA"/>
</mask>
<g mask="url(#mask4_12902_32040)">
<circle cx="29.0003" cy="25.0002" r="6.08283" transform="rotate(119.39 29.0003 25.0002)" fill="#7DD08A" stroke="white" stroke-width="0.5"/>
</g>
<path d="M23.5103 31.7807C22.6198 31.0598 21.88 30.1705 21.3332 29.1637C20.7864 28.1569 20.4432 27.0523 20.3233 25.9128L28.9999 24.9997L23.5103 31.7807Z" fill="#34B3FA"/>
<mask id="mask5_12902_32040" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="20" y="24" width="9" height="8">
<path d="M23.5103 31.7807C22.6198 31.0598 21.88 30.1705 21.3332 29.1637C20.7864 28.1569 20.4432 27.0523 20.3233 25.9128L28.9999 24.9997L23.5103 31.7807Z" fill="#34B3FA"/>
</mask>
<g mask="url(#mask5_12902_32040)">
<circle cx="29.0001" cy="24.9998" r="5.20286" transform="rotate(60.8704 29.0001 24.9998)" fill="#7DD08A" stroke="white" stroke-width="0.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

3
designer-base/src/main/resources/com/fine/theme/icon/tip/jump_to_references.svg

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.24687 23.3047C1.21273 17.3662 2.75654 9.28175 8.69507 5.24761C14.6336 1.21346 22.718 2.75727 26.7522 8.6958C30.7863 14.6343 29.2425 22.7188 23.304 26.7529C17.3655 30.7871 9.28102 29.2433 5.24687 23.3047ZM3.5925 24.4286C-1.06233 17.5764 0.719001 8.24806 7.57122 3.59323C14.4234 -1.0616 23.7517 0.719734 28.4066 7.57195C33.0614 14.4242 31.2801 23.7525 24.4279 28.4073C17.5756 33.0621 8.24733 31.2808 3.5925 24.4286ZM17.5 24.5C17.5 25.3284 16.8284 26 16 26C15.1716 26 14.5 25.3284 14.5 24.5C14.5 23.6716 15.1716 23 16 23C16.8284 23 17.5 23.6716 17.5 24.5ZM11.5529 13.4806C12.1537 13.4806 12.6201 12.9793 12.7368 12.39C13.1359 10.3744 14.8075 9.36148 16.6523 9.57434C18.3451 9.76965 19.2565 10.7137 19.3867 12.4064C19.2565 13.2527 18.5404 14.3269 17.2383 15.629C15.7409 17.1264 14.9922 18.4611 14.9922 19.6329V19.9747C14.9922 20.541 15.4513 21.0001 16.0176 21.0001H16.1641C16.6495 21.0001 17.043 20.6066 17.043 20.1212C17.043 19.0795 17.7917 17.8751 19.2891 16.5079C20.9167 15.0105 21.7305 13.6434 21.7305 12.4064C21.6003 9.21627 19.8099 7.55611 16.3594 7.4259C12.744 7.36663 10.8013 9.03395 10.5311 12.4278C10.4848 13.0102 10.9687 13.4806 11.5529 13.4806Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

16
designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json

@ -425,6 +425,21 @@
"chart_rectangleTree": "chart/chart_rectangleTree.svg",
"chart_wordCloud": "chart/chart_wordCloud.svg",
"chart_frame": "chart/chart_frame.svg",
"icon_area": "chart/icon_area.svg",
"icon_bubble": "chart/icon_bubble.svg",
"icon_cuvette": "chart/icon_cuvette.svg",
"icon_different_pie": "chart/icon_different_pie.svg",
"icon_line": "chart/icon_line.svg",
"icon_pie": "chart/icon_pie.svg",
"icon_pointer_180": "chart/icon_pointer_180.svg",
"icon_pointer_360": "chart/icon_pointer_360.svg",
"icon_radar": "chart/icon_radar.svg",
"icon_ring": "chart/icon_ring.svg",
"icon_same_pie": "chart/icon_same_pie.svg",
"icon_scatter": "chart/icon_scatter.svg",
"icon_slot": "chart/icon_slot.svg",
"icon_stack_radar": "chart/icon_stack_radar.svg",
"icon_column": "chart/icon_column.svg",
"out": "border/out.svg",
"in": "border/in.svg",
"bottom": "border/bottom.svg",
@ -445,6 +460,7 @@
"waiting":"tip/waiting.svg",
"information":"tip/information.svg",
"new_information":"tip/new_information.svg",
"jump_to_references":"tip/jump_to_references.svg",
"success":"tip/success.svg",
"warning":"tip/warning.svg",
"layout_top": "layout/layout_top.svg",

1
designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLaf.properties

@ -27,6 +27,7 @@ RadioButtonUI=com.formdev.flatlaf.ui.FlatRadioButtonUI
RadioButtonMenuItemUI=com.formdev.flatlaf.ui.FlatRadioButtonMenuItemUI
RootPaneUI=com.formdev.flatlaf.ui.FlatRootPaneUI
ScrollBarUI=com.formdev.flatlaf.ui.FlatScrollBarUI
BasicVerticalScrollBarUI=com.fr.design.gui.iscrollbar.UIScrollBarUI
ScrollPaneUI=com.formdev.flatlaf.ui.FlatScrollPaneUI
SeparatorUI=com.formdev.flatlaf.ui.FlatSeparatorUI
SliderUI=com.fine.theme.light.ui.FineSliderUI

1
designer-base/src/main/resources/com/fr/design/i18n/dimension_en.properties

@ -37,6 +37,7 @@ com.fr.design.ds.column.cellEditor.pane=900*600
com.fr.design.actions.reportWebAttr.dialog=800*630
com.fr.design.actions.printingSetting.dialog=700*600
com.fr.design.data.datapane.preview.dialog=700*600
com.fr.design.data.tabledata.dialog=1200*600

1
designer-base/src/main/resources/com/fr/design/i18n/dimension_ja_JP.properties

@ -36,6 +36,7 @@ com.fr.design.ds.column.cellEditor.pane=900*600
com.fr.design.actions.reportWebAttr.dialog=700*630
com.fr.design.actions.printingSetting.dialog=700*600
com.fr.design.data.datapane.preview.dialog=700*600
com.fr.design.data.tabledata.dialog=900*600

1
designer-base/src/main/resources/com/fr/design/i18n/dimension_ko_KR.properties

@ -36,6 +36,7 @@ com.fr.design.ds.column.cellEditor.pane=900*600
com.fr.design.actions.reportWebAttr.dialog=700*630
com.fr.design.actions.printingSetting.dialog=700*600
com.fr.design.data.datapane.preview.dialog=700*600
com.fr.design.data.tabledata.dialog=900*600

1
designer-base/src/main/resources/com/fr/design/i18n/dimension_zh.properties

@ -36,6 +36,7 @@ com.fr.design.ds.column.cellEditor.pane=700*600
com.fr.design.actions.reportWebAttr.dialog=660*600
com.fr.design.actions.printingSetting.dialog=660*600
com.fr.design.data.datapane.preview.dialog=660*600
com.fr.design.data.tabledata.dialog=900*600

1
designer-base/src/main/resources/com/fr/design/i18n/dimension_zh_TW.properties

@ -35,6 +35,7 @@ com.fr.design.ds.column.cellEditor.pane=700*600
com.fr.design.actions.reportWebAttr.dialog=700*630
com.fr.design.actions.printingSetting.dialog=700*600
com.fr.design.data.datapane.preview.dialog=700*600
com.fr.design.data.tabledata.dialog=900*600

1
designer-chart/src/main/java/com/fr/design/chartx/component/correlation/AbstractCorrelationPane.java

@ -81,6 +81,7 @@ public abstract class AbstractCorrelationPane<T> extends BasicBeanPane<T> {
@Override
public void actionPerformed(ActionEvent e) {
tablePane.addLine(createLine());
tablePane.doParentRepaintEvent();
fireTargetChanged();
}
};

45
designer-chart/src/main/java/com/fr/van/chart/custom/component/ChartImageCheckOutPane.java

@ -1,5 +1,6 @@
package com.fr.van.chart.custom.component;
import com.fine.theme.icon.LazyIcon;
import com.fr.design.constants.UIConstants;
import com.fr.design.dialog.BasicPane;
import com.fr.design.event.UIObserver;
@ -8,21 +9,30 @@ import com.fr.plugin.chart.custom.CustomPlotFactory;
import com.fr.plugin.chart.custom.type.CustomPlotType;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.Icon;
import javax.swing.JCheckBox;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Dimension;
import java.util.ArrayList;
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.flex;
/**
* Created by Fangjie on 2016/4/19.
*/
public class ChartImageCheckOutPane extends BasicPane implements UIObserver {
private JCheckBox checkBox;
private CustomPlotType customPlotType;
private ArrayList<ChangeListener> changeListeners = new ArrayList<ChangeListener>();
private Icon backgroundIcon;
private final CustomPlotType customPlotType;
private static final int ICON_WIDTH = 56;
private static final int ICON_HEIGHT = 50;
private final ArrayList<ChangeListener> changeListeners = new ArrayList<ChangeListener>();
public ChartImageCheckOutPane(CustomPlotType type){
this(type, false);
@ -30,40 +40,40 @@ public class ChartImageCheckOutPane extends BasicPane implements UIObserver {
public ChartImageCheckOutPane( CustomPlotType type, boolean isSelected){
this.customPlotType = type;
initComponent(isSelected);
}
initCheckBox(isSelected);
this.add(checkBox, BorderLayout.CENTER);
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (backgroundIcon != null) {
backgroundIcon.paintIcon(this, g, 0, 0);
}
}
public CustomPlotType getCustomPlotType() {
return customPlotType;
}
private void initCheckBox(boolean isSelected) {
private void initComponent(boolean isSelected) {
this.checkBox = new JCheckBox();
this.checkBox.setSelected(isSelected);
//设置提示
this.checkBox.setToolTipText(CustomPlotFactory.getTooltipText(this.customPlotType));
//背景
checkBox.setIcon(new ImageIcon(getClass().getResource(getIconPath(customPlotType,isSelected))));
//设置背景图标
this.backgroundIcon = new LazyIcon(getIconId(this.customPlotType), new Dimension(ICON_WIDTH, ICON_HEIGHT));
this.setLayout(new BorderLayout());
this.add(row(flex(), cell(checkBox)).getComponent(), BorderLayout.NORTH);
}
private String getIconPath(CustomPlotType customPlotType, boolean isSelected) {
return isSelected ? CustomPlotFactory.getTypeIconPath(customPlotType)[0] : CustomPlotFactory.getTypeIconPath(customPlotType)[1];
private String getIconId(CustomPlotType customPlotType) {
return CustomPlotFactory.getTypeIconId(customPlotType);
}
public JCheckBox getCheckBox() {
return checkBox;
}
public void checkIconImage(){
checkBox.setIcon(new ImageIcon(getClass().getResource(getIconPath(customPlotType, checkBox.isSelected()))));
}
public void setPaneBorder(boolean isRightLine, boolean isBottomLine){
this.setBorder(BorderFactory.createMatteBorder(1, 1, isBottomLine ? 1 : 0, isRightLine ? 1 : 0, UIConstants.LINE_COLOR));
}
@ -77,7 +87,6 @@ public class ChartImageCheckOutPane extends BasicPane implements UIObserver {
}
@Override
protected String title4PopupWindow() {
return null;

14
designer-chart/src/main/java/com/fr/van/chart/custom/component/VanChartCustomPlotSelectPane.java

@ -65,8 +65,6 @@ public class VanChartCustomPlotSelectPane extends BasicBeanPane<Chart> {
updateOldSelectedList();
addCheckBoxListener();
checkoutSelected();
}
private void updateOldSelectedList() {
@ -76,13 +74,6 @@ public class VanChartCustomPlotSelectPane extends BasicBeanPane<Chart> {
}
}
private void checkoutSelected() {
for (int i = 0; i < customTypeList.size(); i++){
//根据是否选中重置背景
customTypeList.get(i).checkIconImage();
}
}
private void initContentPane() {
content = FRGUIPaneFactory.createNColumnGridInnerContainer_Pane(CUSTOM_TYPE_NUM, 0, 0);
@ -124,9 +115,6 @@ public class VanChartCustomPlotSelectPane extends BasicBeanPane<Chart> {
//点击后更新已选顺序
checkoutSelectedPlotTypeList();
//点击后,更新背景
checkoutSelected();
//响应观察者事件,以便更新chart
fireDirty();
}
@ -169,8 +157,6 @@ public class VanChartCustomPlotSelectPane extends BasicBeanPane<Chart> {
populateCustomTypeList(customPlot);
populateSelectedPlotTypeList(customPlot);
checkoutSelected();
}
private void populateSelectedPlotTypeList(VanChartCustomPlot customPlot) {

5
designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeBeautyPane.java

@ -10,6 +10,7 @@ import com.fr.plugin.chart.type.GradientType;
import com.fr.van.chart.designer.component.VanChartBeautyPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
@ -57,7 +58,9 @@ public class VanChartGaugeBeautyPane extends VanChartBeautyPane {
}
private void checkGradientBarVisible() {
gradientBarPane.setVisible(getGradientTypeBox().getSelectedIndex() == 1);
SwingUtilities.invokeLater(() -> {
gradientBarPane.setVisible(getGradientTypeBox().getSelectedIndex() == 1);
});
}
protected String[] getNameArray() {

11
designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java

@ -119,17 +119,6 @@ public class VanChartGaugeSeriesPane extends VanChartMultiColorSeriesPane {
JPanel stylePane = valueFillStylePane == null ? new JPanel() : valueFillStylePane;
colorPickerPane = new ColorPickerPaneWithMaxMin(parentPane, "meterString", valueFillStylePane) {
protected int getBoundX() {
return 0;
}
protected int getBoundY() {
return 10;
}
protected int getPreferredMarginY() {
return 10;
}
protected double getDescriptionWidth() {
double descriptionWidth = super.getDescriptionWidth();

3
designer-form/src/main/java/com/fr/design/designer/properties/EventPropertyTable.java

@ -7,6 +7,7 @@ import com.fr.design.javascript.EmailPane;
import com.fr.design.javascript.JavaScriptActionPane;
import com.fr.design.mainframe.FormDesigner;
import com.fr.design.widget.EventCreator;
import com.fr.design.write.submit.DBManipulationInWdigetEventNoCellPane;
import com.fr.design.write.submit.DBManipulationPane;
import com.fr.design.editor.ValueEditorPaneFactory;
import com.fr.design.designer.creator.XCreator;
@ -44,7 +45,7 @@ public class EventPropertyTable extends UIListControlPane {
return new JavaScriptActionPane() {
@Override
protected DBManipulationPane createDBManipulationPane() {
return new DBManipulationPane(ValueEditorPaneFactory.formEditors());
return new DBManipulationInWdigetEventNoCellPane(ValueEditorPaneFactory.formEditors());
}
@Override

20
designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java

@ -7,7 +7,6 @@ import com.fr.base.background.ColorBackground;
import com.fr.design.event.UIObserver;
import com.fr.design.event.UIObserverListener;
import com.fr.design.file.HistoryTemplateListCache;
import com.fr.design.gui.frpane.AbstractAttrNoScrollPane;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.mainframe.ElementCasePane;
@ -26,7 +25,6 @@ import com.fr.stable.ColumnRow;
import com.fr.stable.EssentialUtils;
import com.fr.stable.StringUtils;
import javax.swing.Icon;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.BorderLayout;
@ -48,11 +46,8 @@ public class SortColumnRowPane extends JPanel implements UIObserver {
private CellSelection oldSelection;
private SelectionListener gridSelectionChangeListener;
UIObserverListener uiObserverListener;
private final static Icon DISABLED_ICON = new LazyIcon("cellSelect").disabled();
private final static Icon ENABLE_ICON = new LazyIcon("cellSelect");
private boolean enabled;
SelectActionListener selectActionListener;
private AbstractAttrNoScrollPane parent;
HeaderAreaPane.CellSelectionManager cellSelectionManager;
@ -65,13 +60,6 @@ public class SortColumnRowPane extends JPanel implements UIObserver {
initTextField();
initSelectButton();
initLayout();
//翻新前AbstractAttrNoScrollPane中递归注册已加载的Pane事件,UI翻新后部分面板未提前加载导致事件未注册,先主动调用下后续再重构
registerChangeListener(new UIObserverListener() {
@Override
public void doChange() {
parent.attributeChanged();
}
});
}
private void initLayout() {
@ -100,7 +88,7 @@ public class SortColumnRowPane extends JPanel implements UIObserver {
}
void initSelectButton() {
selectButton = new UIButton(ENABLE_ICON);
selectButton = new UIButton(new LazyIcon("cellSelect"));
selectActionListener = new SelectActionListener(this);
selectButton.addMouseListener(selectActionListener);
}
@ -123,12 +111,6 @@ public class SortColumnRowPane extends JPanel implements UIObserver {
colJTextField.setText(StringUtils.EMPTY);
rowJTextField.setText(StringUtils.EMPTY);
}
if (enabled) {
selectButton.setIcon(ENABLE_ICON);
} else {
selectButton.setIcon(DISABLED_ICON);
}
selectButton.setEnabled(false);
refresh();
}

65
designer-realize/src/main/java/com/fr/design/sort/header/HeaderAreaPane.java

@ -1,7 +1,6 @@
package com.fr.design.sort.header;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.gui.core.ReactiveCardPane;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
@ -23,6 +22,8 @@ import static com.fine.swing.ui.layout.Layouts.column;
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.flex;
import static com.fr.design.constants.LayoutConstants.LEFT_WEIGHT;
import static com.fr.design.constants.LayoutConstants.RIGHT_WEIGHT;
public class HeaderAreaPane extends JPanel {
@ -31,10 +32,8 @@ public class HeaderAreaPane extends JPanel {
private CellSelectionManager cellSelectionManager = new CellSelectionManager();
TemplateCellElement cellElement;
SortColumnRowPane columnRowPane;
ReactiveCardPane cardPane;
UIComboBox uiComboBox;
UILabel headerLabel;
boolean showHeaderArea;
JPanel sortColumnRowPanel;
HeaderAreaPane(int headerAreaPaneWidth, int headerAreaPaneRightWidth) {
this.headerAreaPaneWidth = headerAreaPaneWidth;
@ -43,59 +42,25 @@ public class HeaderAreaPane extends JPanel {
}
void initComponents() {
headerLabel = new UILabel(Toolkit.i18nText("Fine-Design_Sort_Header_Area"), SwingConstants.LEFT);
uiComboBox = new UIComboBox(new String[]{Toolkit.i18nText("Fine-Design_Basic_None"), Toolkit.i18nText("Fine-Design_Basic_Custom")});
columnRowPane = new SortColumnRowPane();
initCardPane();
initChangeListener();
sortColumnRowPanel = new JPanel(new BorderLayout());
sortColumnRowPanel.setBorder(new ScaledEmptyBorder(10, 0, 0, 0));
sortColumnRowPanel.add(row(flex(LEFT_WEIGHT), cell(columnRowPane).weight(RIGHT_WEIGHT)).getComponent());
this.setLayout(new BorderLayout());
this.add(cardPane);
this.add(column(
row(cell(new UILabel(Toolkit.i18nText("Fine-Design_Sort_Header_Area"))).weight(LEFT_WEIGHT), cell(uiComboBox).weight(RIGHT_WEIGHT)),
cell(sortColumnRowPanel)
).getComponent());
uiComboBox.setSelectedIndex(1);
initChangeListener();
}
private void initChangeListener() {
uiComboBox.addItemListener(e -> {
if ((showHeaderArea ? 1 : 0) != uiComboBox.getSelectedIndex()) {
triggerItemChanged();
}
sortColumnRowPanel.setVisible(uiComboBox.getSelectedIndex() == 1);
});
uiComboBox.setEnabled(false);
}
private void triggerItemChanged() {
if (uiComboBox.getSelectedIndex() == 0) {
cardPane.select("none").populate();
showHeaderArea = false;
cellSelectionManager.removeNotSelectables(columnRowPane.updateBean());
columnRowPane.cancelSelectState();
} else {
cardPane.select("custom").populate();
showHeaderArea = true;
ColumnRow columnRow = columnRowPane.updateBean();
if (cellSelectionManager.isNotSelectables(columnRow)) {
columnRowPane.setColumnRow(ColumnRow.ERROR);
} else {
cellSelectionManager.addNotSelectables(columnRow);
}
}
}
private void initCardPane() {
cardPane = ReactiveCardPane.create()
.addSupplier("none", () -> column(LayoutConstants.VERTICAL_GAP,
row(
cell(headerLabel).weight(1.2), cell(uiComboBox).weight(3)
)
).getComponent())
.addSupplier("custom", () -> column(LayoutConstants.VERTICAL_GAP,
row(
cell(headerLabel).weight(1.2), cell(uiComboBox).weight(3)
),
row(
flex(1.2), cell(columnRowPane).weight(3)
)
).getComponent());
cardPane.select("none").populate();
uiComboBox.setSelectedIndex(0);
}
public void populateBean(ColumnRow columnRow, boolean showHeaderArea, TemplateCellElement cellElement) {

2
designer-realize/src/main/java/com/fr/design/webattr/DragToolBarPane.java

@ -112,7 +112,7 @@ public class DragToolBarPane extends WidgetToolBarPane {
JPanel movePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
movePane.add(column(1,
cell(topToolbarPanel),
cell(toolbarButtonList),
cell(toolbarButtonList).weight(1),
cell(bottomToolbarPanel)
).getComponent());
this.add(new JScrollPane(movePane), BorderLayout.CENTER);

4
designer-realize/src/main/java/com/fr/design/write/submit/SmartInsertDBManipulationPane.java

@ -50,6 +50,8 @@ import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;
import static com.fine.theme.utils.FineUIScale.scale;
public class SmartInsertDBManipulationPane extends DBManipulationPane {
private static final Selection NO_SELECTION = new CellSelection(-1, -1, -1, -1);
private ElementCasePane ePane;
@ -352,7 +354,7 @@ public class SmartInsertDBManipulationPane extends DBManipulationPane {
* set Width
*/
TableColumn column0 = table.getColumnModel().getColumn(0);
column0.setMaxWidth(LEFT_COLUMN_MAX_WIDTH);
column0.setMaxWidth(scale(LEFT_COLUMN_MAX_WIDTH));
ColumnNameTableCellRenderer cellRenderer = new ColumnNameTableCellRenderer();
cellRenderer.setHorizontalAlignment(SwingConstants.LEFT);
column0.setCellRenderer(new BooleanRenderer());

Loading…
Cancel
Save