Browse Source

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

fbp/merge
Leo.Qin 4 months ago
parent
commit
8119b36232
  1. 2
      designer-base/src/main/java/com/fine/theme/light/ui/FineButtonBorder.java
  2. 2
      designer-base/src/main/java/com/fine/theme/light/ui/FinePopupMenuBorder.java
  3. 2
      designer-base/src/main/java/com/fine/theme/light/ui/FinePopupMenuUI.java
  4. 2
      designer-base/src/main/java/com/fine/theme/light/ui/FineReportComponentBorder.java
  5. 2
      designer-base/src/main/java/com/fine/theme/light/ui/FineReportComponentCompositeUI.java
  6. 12
      designer-base/src/main/java/com/fine/theme/light/ui/FineToggleButtonUI.java
  7. 85
      designer-base/src/main/java/com/fine/theme/utils/FineUIUtils.java
  8. 117
      designer-base/src/main/java/com/fr/design/DesignerEnvManager.java
  9. 4
      designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java
  10. 5
      designer-base/src/main/java/com/fr/design/condition/SingleConditionPane.java
  11. 2
      designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java
  12. 4
      designer-base/src/main/java/com/fr/design/data/datapane/connect/JDBCDefPane.java
  13. 2
      designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java
  14. 4
      designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java
  15. 7
      designer-base/src/main/java/com/fr/design/gui/ibutton/UICombinationButton.java
  16. 2
      designer-base/src/main/java/com/fr/design/javascript/Commit2DBJavaScriptPane.java
  17. 23
      designer-base/src/main/java/com/fr/design/mainframe/DecodeDialog.java
  18. 2
      designer-base/src/main/java/com/fr/design/mainframe/DesktopCardPane.java
  19. 21
      designer-base/src/main/java/com/fr/design/mainframe/JFormSliderPane.java
  20. 2
      designer-base/src/main/java/com/fr/design/mainframe/vcs/ui/EditFileVersionDialog.java
  21. 42
      designer-base/src/main/java/com/fr/design/write/submit/DBManipulationInWdigetEventNoCellPane.java
  22. 9
      designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java
  23. 16
      designer-base/src/main/java/com/fr/startup/ui/StartupPageConstants.java
  24. 3
      designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java
  25. 22
      designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java
  26. 7
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_area.svg
  27. 7
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_bubble.svg
  28. 7
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_column.svg
  29. 15
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_cuvette.svg
  30. 6
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_different_pie.svg
  31. 6
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_line.svg
  32. 10
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_pie.svg
  33. 35
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_pointer_180.svg
  34. 35
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_pointer_360.svg
  35. 7
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_radar.svg
  36. 13
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_ring.svg
  37. 6
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_same_pie.svg
  38. 9
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_scatter.svg
  39. 18
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_slot.svg
  40. 46
      designer-base/src/main/resources/com/fine/theme/icon/chart/icon_stack_radar.svg
  41. 15
      designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json
  42. 10
      designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties
  43. 2
      designer-base/src/main/resources/com/fr/env/jarVersion.properties
  44. 8
      designer-base/src/test/java/com/fr/design/gui/storybook/components/ButtonStoryBoard.java
  45. 28
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/series/UIColorPickerPane.java
  46. 3
      designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnConditionPane.java
  47. 45
      designer-chart/src/main/java/com/fr/van/chart/custom/component/ChartImageCheckOutPane.java
  48. 14
      designer-chart/src/main/java/com/fr/van/chart/custom/component/VanChartCustomPlotSelectPane.java
  49. 10
      designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/AbstractNormalMultiLineConditionPane.java
  50. 21
      designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/radar/RadarTableContentPane.java
  51. 5
      designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/radar/VanChartRadarYAxisPane.java
  52. 3
      designer-form/src/main/java/com/fr/design/designer/properties/EventPropertyTable.java
  53. 4
      designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java
  54. 52
      designer-realize/src/main/java/com/fr/design/mainframe/SheetNameTabPane.java
  55. 20
      designer-realize/src/main/java/com/fr/design/sort/common/SortColumnRowPane.java
  56. 65
      designer-realize/src/main/java/com/fr/design/sort/header/HeaderAreaPane.java
  57. 2
      designer-realize/src/main/java/com/fr/design/webattr/DragToolBarPane.java
  58. 38
      designer-realize/src/main/java/com/fr/grid/GridRowUI.java
  59. 3
      designer-realize/src/main/java/com/fr/start/CarinaDesigner.java

2
designer-base/src/main/java/com/fine/theme/light/ui/FineButtonBorder.java

@ -32,7 +32,7 @@ public class FineButtonBorder extends FlatButtonBorder {
return;
}
g2.setPaint(borderPaint);
FineUIUtils.paintPartRoundButtonBorder(c, g2, x, y, width, height, borderWidth, (float) getArc(c));
FineUIUtils.paintPartRoundButtonBorder(c, g2, x, y, width, height, borderWidth, getArc(c));
} else {
super.paintBorder(c, g, x, y, width, height);
}

2
designer-base/src/main/java/com/fine/theme/light/ui/FinePopupMenuBorder.java

@ -14,6 +14,6 @@ public class FinePopupMenuBorder extends FlatPopupMenuBorder {
@Override
public int getArc() {
return FineUIUtils.getAndScaleInt("PopupMenu.arc", 5);
return FineUIUtils.getAndScaleInt("PopupMenu.arc", 8);
}
}

2
designer-base/src/main/java/com/fine/theme/light/ui/FinePopupMenuUI.java

@ -19,7 +19,7 @@ import java.awt.geom.RoundRectangle2D;
*/
public class FinePopupMenuUI extends FlatPopupMenuUI {
private int arc;
private final int DEFAULT_ARC = 10;
private final int DEFAULT_ARC = 8;
/**
* 创建UI

2
designer-base/src/main/java/com/fine/theme/light/ui/FineReportComponentBorder.java

@ -18,7 +18,7 @@ public class FineReportComponentBorder extends FlatRoundBorder {
@Override
protected int getArc(Component c) {
return FineUIUtils.getAndScaleInt("Center.arc", 10);
return FineUIUtils.getAndScaleInt("Center.arc", 8);
}
@Override

2
designer-base/src/main/java/com/fine/theme/light/ui/FineReportComponentCompositeUI.java

@ -33,7 +33,7 @@ public class FineReportComponentCompositeUI extends FlatPanelUI {
@Override
protected void installDefaults(JPanel p) {
super.installDefaults(p);
this.arc = FineUIUtils.getAndScaleInt("Center.arc", 10);
this.arc = FineUIUtils.getAndScaleInt("Center.arc", 8);
}

12
designer-base/src/main/java/com/fine/theme/light/ui/FineToggleButtonUI.java

@ -111,7 +111,7 @@ public class FineToggleButtonUI extends FlatToggleButtonUI {
@Override
public void paint(Graphics g, JComponent c) {
if (isGroupButtonNotFit(c) || isTabButton(c)) {
((AbstractButton)c).setMargin(FineUIUtils.getUIInsets("ToggleButton.compact.margin", "ToggleButton.margin"));
((AbstractButton) c).setMargin(FineUIUtils.getUIInsets("ToggleButton.compact.margin", "ToggleButton.margin"));
}
super.paint(g, c);
}
@ -134,7 +134,7 @@ public class FineToggleButtonUI extends FlatToggleButtonUI {
// paint background
Color background;
if(c.isEnabled() && selected) {
if (c.isEnabled() && selected) {
background = tabSelectedBackground;
} else {
Color enabledColor = selected ? clientPropertyColor(c, TAB_BUTTON_SELECTED_BACKGROUND, tabSelectedBackground) : null;
@ -170,9 +170,7 @@ public class FineToggleButtonUI extends FlatToggleButtonUI {
float focusWidth = FlatUIUtils.getBorderFocusWidth(c);
FlatUIUtils.paintComponentBackground(g2, 0, 0, c.getWidth(), c.getHeight(), focusWidth, 0);
} else {
float arc = FlatUIUtils.getBorderArc( c ) / 2;
Shape path2D = getGroupButtonPath2D(c, position, arc);
g2.fill(path2D);
g2.fill(getGroupButtonPath2D(c, position, FlatUIUtils.getBorderArc(c)));
}
} finally {
g2.dispose();
@ -209,7 +207,7 @@ public class FineToggleButtonUI extends FlatToggleButtonUI {
@Override
protected Color getForeground(JComponent c) {
if (isGroupButton(c) && ((AbstractButton)c).isSelected()) {
if (isGroupButton(c) && ((AbstractButton) c).isSelected()) {
return groupSelectedForeground;
}
return super.getForeground(c);
@ -218,7 +216,7 @@ public class FineToggleButtonUI extends FlatToggleButtonUI {
@Override
protected Color getBackground(JComponent c) {
if (isGroupButton(c)) {
return ((AbstractButton)c).isSelected() ? groupSelectedBackground : groupBackground;
return ((AbstractButton) c).isSelected() ? groupSelectedBackground : groupBackground;
}
return super.getBackground(c);
}

85
designer-base/src/main/java/com/fine/theme/utils/FineUIUtils.java

@ -44,6 +44,9 @@ import static com.formdev.flatlaf.util.UIScale.scale;
*/
public class FineUIUtils {
public static final String LEFT = "LEFT";
public static final String RIGHT = "RIGHT";
public static final int RETINA_SCALE_FACTOR = 2;
/**
@ -183,10 +186,10 @@ public class FineUIUtils {
* @param background 背景色
* @param width 宽度
* @param height 高度
* @param radius 圆角
* @param arc 圆角
*/
public static void paintWithComposite(Graphics g, Composite composite, Color background,
int width, int height, int radius) {
int width, int height, int arc) {
Graphics2D g2d = (Graphics2D) g;
FlatUIUtils.setRenderingHints(g2d);
@ -194,7 +197,7 @@ public class FineUIUtils {
g2d.setComposite(composite);
g2d.setColor(background);
g2d.fill(new RoundRectangle2D.Float(0, 0, width, height, radius, radius));
g2d.fill(new RoundRectangle2D.Float(0, 0, width, height, arc, arc));
g2d.setComposite(oldComposite);
}
@ -212,17 +215,48 @@ public class FineUIUtils {
*/
public static void paintPartRoundButtonBorder(Component c, Graphics2D g2, int x, int y, int width, int height,
float borderWidth, float arc) {
if (isLeftRoundButton(c)) {
paintPartRoundButtonBorder(g2, x, y, width, height, borderWidth, arc, LEFT, false);
} else {
paintPartRoundButtonBorder(g2, x, y, width, height, borderWidth, arc, RIGHT, false);
}
}
/**
* 绘制部分圆角矩形边框
*
* @param g2 Graphics2D
* @param x x坐标
* @param y y坐标
* @param width 宽度
* @param height 高度
* @param borderWidth 边框宽度
* @param arc 圆角
* @param roundPart 圆角的方位当前只能设置一侧
* @param closedPath 是否封闭非圆角那一侧是否有边框是为有边框
*/
public static void paintPartRoundButtonBorder(Graphics2D g2, int x, int y, int width, int height,
float borderWidth, float arc, String roundPart, boolean closedPath) {
FlatUIUtils.setRenderingHints(g2);
arc = scale(arc);
float t = scale(borderWidth);
float t2x = t * 2;
Path2D path2D = new Path2D.Float(Path2D.WIND_EVEN_ODD);
if (isLeftRoundButton(c)) {
path2D.append(createLeftRoundRectangle(x, y, width, height, arc), false);
path2D.append(createLeftRoundRectangle(x + t, y + t, width - t, height - t2x, arc - t), false);
} else {
path2D.append(createRightRoundRectangle(x, y, width, height, arc), false);
path2D.append(createRightRoundRectangle(x, y + t, width - t, height - t2x, arc - t), false);
switch (roundPart) {
case LEFT: {
path2D.append(createLeftRoundRectangle(x, y, width, height, arc), false);
path2D.append(createLeftRoundRectangle(x + t, y + t,
width - (closedPath ? t2x : t), height - t2x, arc - t2x), false);
break;
}
case RIGHT:
default: {
path2D.append(createRightRoundRectangle(x, y, width, height, arc), false);
path2D.append(createRightRoundRectangle(x + (closedPath ? t : 0), y + t,
width - (closedPath ? t2x : t), height - t2x, arc - t2x), false);
break;
}
}
g2.fill(path2D);
}
@ -246,12 +280,18 @@ public class FineUIUtils {
float t2x = t * 2;
Path2D path2D = new Path2D.Float(Path2D.WIND_EVEN_ODD);
path2D.append(createTopRoundRectangle(x, y, width, height, arc), false);
path2D.append(createTopRoundRectangle(x + t, y + t, width - t2x, height - t, arc - t), false);
path2D.append(createTopRoundRectangle(x + t, y + t, width - t2x, height - t, arc - t2x), false);
g2.fill(path2D);
}
/**
* 创建一个部分圆角的矩形路径
* <p>
* 注意
* 在swing中UI的样式的 arc 数值是直径 css border-radius 为半径
* 因此我们配置的 arc 全部为 border-radius 的2倍但是使用 Path2D 绘制时
* 绘制方式其实是使用半径来进行计算的为了保持调用一致对外 API 还是以 arc
* 的形式因此方法内部需要对 arc 进行取半处理
*
* @param x x坐标
* @param y y坐标
@ -265,16 +305,20 @@ public class FineUIUtils {
*/
public static Path2D createPartRoundRectangle(double x, double y, double width, double height,
double arcTopLeft, double arcTopRight, double arcBottomRight, double arcBottomLeft) {
Path2D path = new Path2D.Double(Path2D.WIND_EVEN_ODD, 7);
path.moveTo(x + arcTopLeft, y);
path.lineTo(x + width - arcTopRight, y);
path.quadTo(x + width, y, x + width, y + arcTopRight);
path.lineTo(x + width, y + height - arcBottomRight);
path.quadTo(x + width, y + height, x + width - arcBottomRight, y + height);
path.lineTo(x + arcBottomLeft, y + height);
path.quadTo(x, y + height, x, y + height - arcBottomLeft);
path.lineTo(x, y + arcTopLeft);
path.quadTo(x, y, x + arcTopLeft, y);
double radiusTopLeft = arcTopLeft / 2;
double radiusTopRight = arcTopRight / 2;
double radiusBottomLeft = arcBottomLeft / 2;
double radiusBottomRight = arcBottomRight / 2;
Path2D path = new Path2D.Double(Path2D.WIND_EVEN_ODD, 10);
path.moveTo(x + radiusTopLeft, y);
path.lineTo(x + width - radiusTopRight, y);
path.quadTo(x + width, y, x + width, y + radiusTopRight);
path.lineTo(x + width, y + height - radiusBottomRight);
path.quadTo(x + width, y + height, x + width - radiusBottomRight, y + height);
path.lineTo(x + radiusBottomLeft, y + height);
path.quadTo(x, y + height, x, y + height - radiusBottomLeft);
path.lineTo(x, y + radiusTopLeft);
path.quadTo(x, y, x + radiusTopLeft, y);
path.closePath();
return path;
}
@ -452,6 +496,7 @@ public class FineUIUtils {
/**
* 创建一个支持自动换行的提示文本
*
* @param text 显示的文本内容
* @return 自动换行提示文本
*/

117
designer-base/src/main/java/com/fr/design/DesignerEnvManager.java

@ -104,12 +104,12 @@ import java.util.concurrent.atomic.AtomicBoolean;
* The manager of Designer GUI.
* 下面的作者日期都是随手写的具体作者已经无法考究
*
* @author anonymous
* @version 11.0
* @author anonymous
* @version 11.0
* created by anonymous on 2002/11/08
*/
public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReadable {
private static final int MAX_SHOW_NUM = 10;
private static final String VERSION_80 = "80";
private static final String VERSION_90 = "90";
@ -122,26 +122,26 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
* 指定默认工作空间
*/
public static final String DEFAULT_WORKSPACE_PATH = "fr.designer.workspace.default";
public static final String LAST_EAST_REGION_LAYOUT = "LastEastRegionLayout";
public static final String LAST_WEST_REGION_LAYOUT = "LastWestRegionLayout";
private static DesignerEnvManager designerEnvManager; // gui.
private String activationKey = null;
private String logLocation = null;
private Rectangle windowBounds = null; // window bounds.
private String DialogCurrentDirectory = null;
private String CurrentDirectoryPrefix = null;
private Map<String, List<String>> recentOpenedFileListMap = new HashMap<>();
private List<String> tempRecentOpenedFilePathList = new ArrayList<String>();
private XmlElement<Map<String, List<String>>> recentOpenedMapping = SimpleXmlElement.of(recentOpenedFileListMap);
private boolean showPaintToolBar = true;
private int maxNumberOrPreviewRow = 200;
private XmlElement<EnvConfiguration> envConfig = SimpleXmlElement.of(new EnvConfiguration());
private boolean showProjectPane = true;
private boolean showDataPane = true;
//p:这是当前选择的数据库连接的名字,这个在新建数据源的时候用到.
@ -195,12 +195,12 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
private boolean embedServerLazyStartup = false;
//最近使用的颜色
private ColorSelectConfigManager configManager = new ColorSelectConfigManager();
/**
* 环境检测配置
*/
private EnvDetectorConfig envDetectorConfig = EnvDetectorConfig.getInstance();
/**
* alphafine
*/
@ -214,11 +214,11 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
private DesignerPushUpdateConfigManager designerPushUpdateConfigManager = DesignerPushUpdateConfigManager.getInstance();
private VcsConfigManager vcsConfigManager = VcsConfigManager.getInstance();
private DesignerStartupConfig designerStartupConfig = DesignerStartupConfig.getInstance();
private SwitchForSwingChecker switchForSwingChecker = SwitchForSwingChecker.getInstance();
public static final String CAS_CERTIFICATE_PATH = "certificatePath";
public static final String CAS_CERTIFICATE_PASSWORD = "certificatePass";
@ -267,7 +267,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
designerEnvManager = new DesignerEnvManager();
//REPORT-15332有一个国际化调用比较早,需要在这边就设置好locale,由于后台GeneralContext默认是China
GeneralContext.setLocale(designerEnvManager.getLanguage());
if (!asyncInitEnvManager()) {
// 如果异步读取失败, 则恢复原来的逻辑
compatibleInitEnvManager();
@ -287,9 +287,9 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
return designerEnvManager;
}
private static void compatibleInitEnvManager() {
try {
XMLTools.readFileXML(designerEnvManager, designerEnvManager.getDesignerEnvFile());
} catch (FileNotFoundException e) {
@ -299,7 +299,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
/**
* 异步初始化环境管理, 提供配置, 帮助处理预期外的问题
* 1-当优化开启时才走异步逻辑
@ -308,7 +308,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
* @return /
*/
private static boolean asyncInitEnvManager() {
AtomicBoolean noEx = new AtomicBoolean(false);
OptimizeUtil.initiateOpen(DesignerEnvManager.class.getSimpleName().toLowerCase(), () -> {
try {
@ -326,7 +326,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
}
public static void checkNameEnvMap() {
if (designerEnvManager == null || designerEnvManager.getNameEnvMap().size() > 0) {
return;
}
@ -1060,11 +1060,11 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
public void setLanguage(Locale locale) {
this.language = locale;
}
public boolean isStartupPageEnabled() {
return this.designerStartupConfig.isEnabled();
}
public void setStartupPageEnabled(boolean enabled) {
this.designerStartupConfig.setEnabled(enabled);
}
@ -1191,9 +1191,9 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
public void setCurrentDirectoryPrefix(String prefix) {
this.CurrentDirectoryPrefix = prefix;
}
public List<String> getRecentOpenedFilePathList4Env(String envName) {
if (StringUtils.isEmpty(envName)) {
return tempRecentOpenedFilePathList;
} else {
@ -1201,7 +1201,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
recentOpenedMapping.getValue().put(envName, tempRecentOpenedFilePathList);
}
}
return recentOpenedMapping.getValue().get(envName);
}
@ -1209,7 +1209,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
* 返回最近打开的文件路径列表
*/
public List<String> getRecentOpenedFilePathList() {
return this.getRecentOpenedFilePathList4Env(getCurEnvName());
}
@ -1713,7 +1713,16 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
}
}
}
Carina.config(LanguageConfigProvider.class).setLocale(CommonUtils.localeToString(designerEnvManager.getLanguage()));
setLocale();
}
private static void setLocale() {
try {
Carina.config(LanguageConfigProvider.class)
.setLocale(CommonUtils.localeToString(designerEnvManager.getLanguage()));
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
@ -1853,10 +1862,10 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
public void setLayoutTemplateStyle(int layoutTemplateStyle) {
this.layoutTemplateStyle = layoutTemplateStyle;
}
@Override
public void initElements(File xmlFile) throws XmlException {
try {
backupOldXmlFile();
XmlInitialFactory xmlInitialFactory = XmlInitialFactory.create(xmlFile);
@ -1876,7 +1885,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
});
})
.init("EnvConfigMap", (e) -> {
final EnvConfiguration previousConfig = this.envConfig.getValue();
this.envConfig = AsyncXmlElement.of(DesignerStartupPool.common(), () -> {
DesignerEnvManager.this.readEnvConfigMap(e, previousConfig);
@ -1928,13 +1937,13 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
throw new XmlException(e);
}
}
/**
* 备份老的 xml 文件, 防止第一次修改存在问题
* 但是只备份一次其他都走老逻辑
*/
private void backupOldXmlFile() {
try {
File oldFile = getEnvFile();
String newFilePath = ProductConstants.getEnvHome() + File.separator + ProductConstants.APP_NAME + "Env_backup.xml";
@ -1948,7 +1957,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
} catch (Exception ignored) {
}
}
/**
* Read XML.<br>
* The method will be invoked when read data from XML file.<br>
@ -2040,16 +2049,16 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
}
private void readAlphaFineAttr(XMLableReader reader) {
AlphaFineConfigManager config = AlphaFineConfigManager.getInstance();
reader.readXMLObject(config);
this.alphaFineConfigManager = SimpleXmlElement.of(config);
}
private void readEnvDetectorConfig(XMLableReader reader) {
reader.readXMLObject(this.envDetectorConfig);
}
private void readStartupConfig(XMLableReader reader) {
reader.readXMLObject(this.designerStartupConfig);
}
@ -2165,9 +2174,9 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
this.setPaginationLineColor(new Color(Integer.parseInt(tmpVal)));
}
}
private void readEnvConfigMap(XMLableReader reader, EnvConfiguration envConfigs) {
String currentEnv = reader.getAttrAsString("currentEnv", StringUtils.EMPTY);
envConfigs.setCurEnvName(currentEnv);
reader.readXMLObject(new XMLReadable() {
@ -2232,15 +2241,15 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
}
});
}
private void readRecentOpenFileList(XMLableReader reader) {
readRecentOpenFileList0(reader);
checkRecentOpenedFileNum();
}
private void readRecentOpenFileList0(XMLableReader reader) {
reader.readXMLObject(new XMLReadable() {
@Override
public void readXML(XMLableReader reader) {
@ -2358,13 +2367,13 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
writer.end();
}
}
private void writeEnvDetectorConfig(XMLPrintWriter writer) {
if (this.envDetectorConfig != null) {
this.envDetectorConfig.writeXML(writer);
}
}
private void writeStartupConfig(XMLPrintWriter writer) {
if (this.designerStartupConfig != null) {
this.designerStartupConfig.writeXML(writer);
@ -2630,7 +2639,7 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
}
private void readFvsDesignerConfig(XMLableReader reader) {
SimpleDesignerConfig config = fvsDesignerConfig.getValue();
reader.readXMLObject(config);
fvsDesignerConfig = SimpleXmlElement.of(config);
@ -2672,39 +2681,39 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter, AsyncXmlReada
public SnapChatConfig getSnapChatConfig() {
return snapChatConfig;
}
private EnvConfiguration getEnvConfig() {
return envConfig.getValue();
}
private Map<String, DesignerWorkspaceInfo> getNameEnvMap() {
return getEnvConfig().getNameEnvMap();
}
private static class EnvConfiguration {
// name和Env的键值对
private Map<String, DesignerWorkspaceInfo> nameEnvMap = new ListMap<>();
// marks: 当前报表服务器名字
private String curEnvName = null;
public Map<String, DesignerWorkspaceInfo> getNameEnvMap() {
return nameEnvMap;
}
public void setNameEnvMap(Map<String, DesignerWorkspaceInfo> nameEnvMap) {
this.nameEnvMap = nameEnvMap;
}
public String getCurEnvName() {
return curEnvName;
}
public void setCurEnvName(String curEnvName) {
this.curEnvName = curEnvName;
}
}
}

4
designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java

@ -84,7 +84,7 @@ public abstract class ConditionAttributesPane<T> extends BasicBeanPane<T> {
selectedItemPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane();
// 选中的添加Itempane
// 选中的添加ItemPane
selectedItemScrollPane.setViewportView(selectedItemPane);
selectedItemScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
@ -93,7 +93,7 @@ public abstract class ConditionAttributesPane<T> extends BasicBeanPane<T> {
this.add(FineUIUtils.wrapComponentWithTitle(column(
10,
row(cell(addItemPane), flex()),
cell(selectedItemScrollPane).with(it -> it.setBorder(new FineRoundBorder())),
cell(selectedItemScrollPane).weight(1).with(it -> it.setBorder(new FineRoundBorder())),
fix(10)
).getComponent(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Property")), BorderLayout.NORTH);
}

5
designer-base/src/main/java/com/fr/design/condition/SingleConditionPane.java

@ -7,8 +7,6 @@ import java.awt.event.ActionListener;
import com.fine.theme.icon.LazyIcon;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.BaseUtils;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.dialog.BasicPane;
@ -31,9 +29,8 @@ public abstract class SingleConditionPane<T> extends BasicPane {
cancel = new UIButton(new LazyIcon("remove"));
cancel.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Action_Remove"));
cancel.addActionListener(cancleListener);
cancel.setMargin(new Insets(0, 0, 0, 0));
cancel.setBorder(new ScaledEmptyBorder(0, 0, 0, 10));
cancel.setBackground(FlatUIUtils.getUIColor("default.background", new Color(246, 248, 250, 255)));
cancel.setBorder(null);
}
addCancel();
}

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

@ -459,7 +459,7 @@ public class TableDataTreePane extends BasicTableDataTreePane {
if (!ComparatorUtils.equals(oldName, tdName)) {
map.put(oldName, tdName);
}
fireDSChanged(map);
DesignCacheManager.processByCacheTableData(() -> fireDSChanged(map));
tc.fireTargetModified();
tc.parameterChanged();
int[] rows = tableDataTree.getSelectionRows();

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();

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

@ -192,7 +192,7 @@ public class ProcedureDataPane extends AbstractTableDataPane<StoreProcedure> imp
if (StringUtils.isEmpty(name)) {
return false;
}
Connection connection = ConnectionInfoBeanHelper.createConnection(ConnectionRepository.getInstance().getByName(connectionTableProcedurePane.getSelectedDatabaseConnnectonName()));
Connection connection = ConnectionInfoBeanHelper.createConnection(ConnectionRepository.getInstance().getByName(name));
return connection != null && ArrayUtils.contains(DRIVERS, connection.getDriver());
}

4
designer-base/src/main/java/com/fr/design/file/TemplateTreePane.java

@ -3,7 +3,6 @@
*/
package com.fr.design.file;
import com.fr.base.FRContext;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.cache.DesignCacheManager;
import com.fr.design.dialog.FineJOptionPane;
@ -35,7 +34,6 @@ import com.fr.stable.StableUtils;
import com.fr.stable.project.ProjectConstants;
import com.fr.workspace.WorkContext;
import com.fr.report.lock.LockInfoOperator;
import java.util.UUID;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
@ -112,7 +110,7 @@ public class TemplateTreePane extends JPanel implements FileOperations {
@Override
public void mousePressed(MouseEvent evt) {
if (reportletsTree.getPathForLocation(evt.getX(), evt.getY()) != null && evt.getClickCount() == 2) {
if (evt.getClickCount() == 2) {
DesignCacheManager.processByCacheTableData(() -> openFile());
}
}

7
designer-base/src/main/java/com/fr/design/gui/ibutton/UICombinationButton.java

@ -1,10 +1,7 @@
package com.fr.design.gui.ibutton;
import com.fr.design.utils.gui.GUICoreUtils;
import javax.swing.Icon;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
@ -148,8 +145,4 @@ public class UICombinationButton extends JPanel {
rightButton.putClientProperty(BUTTON_TYPE, BUTTON_TYPE_TOOLBAR_BUTTON);
setStyle(rightButton, IN_TOOLBAR_RIGHT);
}
protected void showPopWindow(JPopupMenu menu) {
GUICoreUtils.showPopupMenu(menu, this, 0, getY() + getHeight() - 3);
}
}

2
designer-base/src/main/java/com/fr/design/javascript/Commit2DBJavaScriptPane.java

@ -59,7 +59,7 @@ public class Commit2DBJavaScriptPane extends FurtherBasicBeanPane<Commit2DBJavaS
btPane.setPreferredSize(createCallbackBtnPanePreferredSize());
addCallbackButton = javaScriptActionPane.createCallButton();
btPane.add(addCallbackButton);
this.add(column(5, cell(cardPane), row(cell(btPane), cell(new UILabel()))).getComponent());
this.add(column(4, cell(cardPane), row(cell(btPane), cell(new UILabel()))).getComponent());
}
protected Dimension createCallbackBtnPanePreferredSize(){

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"));

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

@ -148,6 +148,7 @@ public class DesktopCardPane extends BasicPane implements TargetModifiedListener
public void showForbiddenStatus() {
component.setVisible(false);
forbiddenPane.setVisible(true);
layeredPane.moveToFront(forbiddenPane);
forbidToolBar();
EastRegionContainerPane.getInstance().updateAllPropertyPane();
@ -156,6 +157,7 @@ public class DesktopCardPane extends BasicPane implements TargetModifiedListener
public void hideCover() {
recoverToolBar();
transparentPane.stop();
forbiddenPane.setVisible(false);
layeredPane.moveToFront(component);
EastRegionContainerPane.getInstance().updateAllPropertyPane();
JComponent downPane = WestRegionContainerPane.getInstance().getDownPane();

21
designer-base/src/main/java/com/fr/design/mainframe/JFormSliderPane.java

@ -164,7 +164,6 @@ public class JFormSliderPane extends JPanel {
}
private void showValFieldChange(int value) {
isButtonOrIsTxt = true;
showValue = getPreferredValue(value);
@ -172,7 +171,7 @@ public class JFormSliderPane extends JPanel {
refreshSlider();
}
private int getPreferredValue(int value){
private int getPreferredValue(int value) {
if (value > FOUR_HUNDRED) {
value = FOUR_HUNDRED;
}
@ -182,7 +181,7 @@ public class JFormSliderPane extends JPanel {
return value;
}
private void refreshShowValueFieldText(){
private void refreshShowValueFieldText() {
showValField.setValue(showValue);
setAdjustButtonStatus();
}
@ -211,7 +210,7 @@ public class JFormSliderPane extends JPanel {
slider.setValue(calSliderValue(showValue));
}
private void setAdjustButtonStatus(){
private void setAdjustButtonStatus() {
this.downButton.setEnabled(this.showValue > TEN);
this.upButton.setEnabled(this.showValue < FOUR_HUNDRED);
}
@ -230,8 +229,10 @@ public class JFormSliderPane extends JPanel {
@Override
public void paintComponent(Graphics g) {
int arc = FineUIUtils.getAndScaleInt("Center.arc", 10) / 2;
Path2D roundedPath = FineUIUtils.createPartRoundRectangle(0, 0, this.getWidth(), this.getHeight(), 0, 0, arc, 0);
int arc = FineUIUtils.getAndScaleInt("Center.arc", 8);
Path2D roundedPath = FineUIUtils.createPartRoundRectangle(0, 0,
this.getWidth(), this.getHeight(),
0, 0, arc, 0);
FlatUIUtils.setRenderingHints(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(getBackground());
@ -292,8 +293,12 @@ public class JFormSliderPane extends JPanel {
showValFieldChange(value);
}
public void addValueChangeListener(ChangeListener changeListener){
/**
* 添加值变化监听器
*
* @param changeListener 变化监听器
*/
public void addValueChangeListener(ChangeListener changeListener) {
this.slider.addChangeListener(changeListener);
}

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

@ -80,7 +80,7 @@ public class EditFileVersionDialog extends UIDialog {
new Component[]{fontPane, scrollPane}
};
double[] rowSizes = new double[]{25, 100};
double[] columnSizes = new double[]{70, 200};
double[] columnSizes = new double[]{70, 180};
JPanel pane = TableLayoutHelper.createTableLayoutPane(components, rowSizes, columnSizes);

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;
}
}

9
designer-base/src/main/java/com/fr/design/write/submit/DBManipulationPane.java

@ -175,7 +175,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 +200,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;
}
@ -272,7 +276,7 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
JPanel conditionPane = this.createConditionPane();
JPanel btPane = new JPanel(FRGUIPaneFactory.createBorderLayout());
btPane.add(column(5,
btPane.add(column(4,
cell(FineUIUtils.wrapComponentWithTitle(conditionPane, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Submit_Condition"))),
row(cell(eventPane), cell(new UILabel()))
).getComponent());
@ -320,6 +324,7 @@ public class DBManipulationPane extends BasicBeanPane<DBManipulation> {
jp.setVisible(setJpVisible());
String submitCondition = Toolkit.i18nText("Fine-Design_Basic_Set_Submit_Condition");
UIButton addSubmitConditionButton = new UIButton(submitCondition);
addSubmitConditionButton.setPreferredSize(createControlBtnPanePreferredSize());
addSubmitConditionButton.setToolTipText(submitCondition);
addSubmitConditionButton.addActionListener(new ActionListener() {
@Override

16
designer-base/src/main/java/com/fr/startup/ui/StartupPageConstants.java

@ -1,29 +1,17 @@
package com.fr.startup.ui;
import java.awt.Color;
/**
* created by Harrison on 2022/07/07
**/
public class StartupPageConstants {
/**
* 弧长度
* 角直径
*/
public static final int ARC_DIAMETER = 10;
public static final int ARC_DIAMETER = 16;
/**
* 内容宽度
*/
public static final int CONTENT_WIDTH = 850;
/**
* 边框的颜色
*/
public static final Color BORDER_COLOR = Color.WHITE;
/**
* 透明的颜色
*/
public static final Color TRANSPARENT_COLOR = new Color(0, 0, 0, 0);
}

3
designer-base/src/main/java/com/fr/startup/ui/StartupPageWindow.java

@ -292,7 +292,8 @@ public class StartupPageWindow extends JFrame {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setColor(color);
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 2 * StartupPageConstants.ARC_DIAMETER, 2 * StartupPageConstants.ARC_DIAMETER);
g2d.fillRoundRect(0, 0, getWidth(), getHeight(),
StartupPageConstants.ARC_DIAMETER, StartupPageConstants.ARC_DIAMETER);
}
};
recentOpenPanel.setLayout(new BorderLayout());

22
designer-base/src/main/java/com/fr/startup/ui/StartupPageWorkspacePanel.java

@ -23,7 +23,6 @@ import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JViewport;
import javax.swing.ScrollPaneConstants;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
@ -311,11 +310,10 @@ public class StartupPageWorkspacePanel extends JPanel {
if (borderColor != null) {
g2d.setColor(borderColor);
g2d.setStroke(new BasicStroke(BORDER_THIN));
FlatUIUtils.setRenderingHints(g2d);
Path2D path2D = FineUIUtils.createLeftRoundRectangle(0, 0,
getWidth() - BORDER_THIN, getHeight() - BORDER_THIN, ARC_DIAMETER);
g2d.draw(path2D);
FineUIUtils.paintPartRoundButtonBorder(g2d, 0, 0,
this.getWidth(), this.getHeight(),
BORDER_THIN, ARC_DIAMETER,
FineUIUtils.LEFT, true);
}
}
};
@ -415,7 +413,7 @@ public class StartupPageWorkspacePanel extends JPanel {
}
selectWorkspacePanel.setPreferredSize(SELECT_WORKSPACE_DIMENSION);
workspaceItemDesc.add(selectWorkspacePanel, BorderLayout.WEST);
workspaceItemDesc.add(selectWorkspacePanel, BorderLayout.CENTER);
}
private void layoutSelectAndCreatePanel(StartupWorkspaceBean workspaceInfo, JPanel workspaceItemDesc) {
@ -437,11 +435,11 @@ public class StartupPageWorkspacePanel extends JPanel {
Color borderColor = borderColorRef.get();
if (borderColor != null) {
g2d.setColor(borderColor);
g2d.setStroke(new BasicStroke(BORDER_THIN));
FlatUIUtils.setRenderingHints(g2d);
Path2D path2D = FineUIUtils.createRightRoundRectangle(0, 0,
getWidth() - BORDER_THIN, getHeight() - BORDER_THIN, ARC_DIAMETER);
g2d.draw(path2D);
FineUIUtils.paintPartRoundButtonBorder(g2d, 0, 0,
this.getWidth(), this.getHeight(),
BORDER_THIN, ARC_DIAMETER,
FineUIUtils.RIGHT, true
);
}
}

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

15
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",

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

@ -230,7 +230,7 @@ CombinationButton.arc = $Button.arc
#---- CheckBox ----
CheckBox.arc = 4
CheckBox.arc = $Component.arc
CheckBox.margin = 2,0,2,0
CheckBox.iconTextGap = 4
CheckBox.rollover = true
@ -330,7 +330,7 @@ Component.focusWidth = 0
Component.innerFocusWidth = 0.5
Component.innerOutlineWidth = 1
Component.borderWidth = 1
Component.arc = 5
Component.arc = 6
Component.minimumWidth = 64
# allowed values: chevron or triangle
Component.arrowType = chevron
@ -580,7 +580,7 @@ PopupMenu.background=$background.normal
PopupMenu.scrollArrowColor = @buttonArrowColor
PopupMenu.borderColor=$border.divider
PopupMenu.hoverScrollArrowBackground = darken(@background,5%)
PopupMenu.arc=10
PopupMenu.arc=8
#---- PopupMenuSeparator ----
PopupMenuSeparator.height=5
@ -887,7 +887,7 @@ TemplateTabPane.borderColor = $border.divider
TemplateTabPane.closeHoverBackground = $hover.deep
TemplateTabPane.tabInsets = 4,6,4,6
TemplateTabPane.borderWidth = 1
TemplateTabPane.tabArc = 5
TemplateTabPane.tabArc = 8
TemplateTabPane.separatorHeight = 14
TemplateTabPane.icon.hoverBackground = #B8BFCB
@ -1206,7 +1206,7 @@ Center.GridColumnRowEditedColor=#e9ecf1
Center.GridCornerFill=fade(#0A1C38, 47%)
Center.SpaceColor = #FFF
Center.border = 0, 10, 10, 10
Center.arc=10
Center.arc=8
#---- CellOtherSetPane ----
CellOtherSetPane.height=$Component.defaultHeight

2
designer-base/src/main/resources/com/fr/env/jarVersion.properties vendored

@ -1 +1 @@
report-engine-key=fine-report-engine-1.0.jar
report-engine-key=fine-report-engine-1.0.0.jar

8
designer-base/src/test/java/com/fr/design/gui/storybook/components/ButtonStoryBoard.java

@ -3,9 +3,11 @@ package com.fr.design.gui.storybook.components;
import com.fine.theme.icon.LazyIcon;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ibutton.UICombinationButton;
import com.fr.design.gui.ibutton.UISaveForbiddenButton;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.storybook.Story;
import com.fr.design.gui.storybook.StoryBoard;
import com.fr.design.i18n.Toolkit;
import com.fr.design.style.color.UIToolbarColorButton;
import javax.swing.JButton;
@ -177,7 +179,9 @@ public class ButtonStoryBoard extends StoryBoard {
.with(it -> setStyle(it, STYLE_PRIMARY)),
cell(new UICombinationButton("按钮2", new LazyIcon("triangle_down"))),
cell(new JButton("按钮", new LazyIcon("add"))),
cell(new JButton(new LazyIcon("multi")))
cell(new UICombinationButton(
new UISaveForbiddenButton(Toolkit.i18nText("Fine-Design_Basic_Preview"), new LazyIcon("run").white()),
new UISaveForbiddenButton(new LazyIcon("triangle_down").white()))).with(UICombinationButton::setPrimary)
),
row(20,
cell(new UIToolbarColorButton(new LazyIcon("foreground"))),
@ -189,7 +193,7 @@ public class ButtonStoryBoard extends StoryBoard {
);
}
public JComponent toolbar(){
public JComponent toolbar() {
JToolBar bar = new JToolBar();
UIToolbarColorButton foreground = new UIToolbarColorButton(new LazyIcon("foreground"));
bar.add(foreground);

28
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/series/UIColorPickerPane.java

@ -47,16 +47,15 @@ import java.util.List;
import static com.fine.theme.utils.FineUIScale.scale;
public class UIColorPickerPane extends BasicPane implements UIObserver {
private static final int MARGIN_TOP = scale(7);
private static final int MARGIN_LEFT = scale(5);
private static final int MARGIN_TOP = scale(10);
private static final int COLORGROUP_MARGIN_LEFT = scale(15);
private static final int OFF_HEIGHT = scale(6);
private static final int OFF_HEIGHT = scale(10);
private static final int COLOR_REC_HEIGHT = scale(40);
private static final int COLOR_REC_WIDTH = scale(30);
protected static final int TEXTFIELD_HEIGHT = scale(20);
protected static final int TEXTFIELD_WIDTH = scale(130);
protected static final int UPCONTROLPANE_WIDTH = scale(224);
private static final int LAYOUR_DET = scale(6);
private static final int LAYOUR_DET = scale(10);
public static final double VALUE = 100;
@ -610,10 +609,14 @@ public class UIColorPickerPane extends BasicPane implements UIObserver {
@Override
public void layoutContainer(Container parent) {
upControlPane.setBounds(getBoundX(), getBoundY(), UPCONTROLPANE_WIDTH, upControlPane.getPreferredSize().height + MARGIN_TOP);
stagePanel.setBounds(getBoundX(), upControlPane.getPreferredSize().height + scale(8) + getBoundY(), UPCONTROLPANE_WIDTH, stagePanel.getPreferredSize().height);
colorGroup.setBounds( getColorgroupMarginLeft (), 2 * getBoundY() + upControlPane.getPreferredSize().height + stagePanel.getPreferredSize().height + 2 * LAYOUR_DET, colorGroup.getPreferredSize().width, colorGroup.getPreferredSize().height + upControlPane.getPreferredSize().height);
textGroup.setBounds(colorGroup.getPreferredSize().width + getColorgroupMarginLeft (), upControlPane.getPreferredSize().height + stagePanel.getPreferredSize().height + 2 * LAYOUR_DET + getBoundY(), textGroup.getPreferredSize().width, textGroup.getPreferredSize().height);
upControlPane.setBounds(getBoundX(), getBoundY(),
getParent().getWidth(), upControlPane.getPreferredSize().height + LAYOUR_DET);
stagePanel.setBounds(getBoundX(), upControlPane.getPreferredSize().height + LAYOUR_DET + getBoundY(),
getParent().getWidth(), stagePanel.getPreferredSize().height);
colorGroup.setBounds( getColorgroupMarginLeft(), 2 * getBoundY() + upControlPane.getPreferredSize().height + stagePanel.getPreferredSize().height + 2 * LAYOUR_DET,
colorGroup.getPreferredSize().width, colorGroup.getPreferredSize().height + upControlPane.getPreferredSize().height);
textGroup.setBounds(colorGroup.getPreferredSize().width + getColorgroupMarginLeft(), upControlPane.getPreferredSize().height + stagePanel.getPreferredSize().height + 2 * LAYOUR_DET + getBoundY(),
textGroup.getPreferredSize().width, textGroup.getPreferredSize().height);
}
@Override
@ -640,9 +643,12 @@ public class UIColorPickerPane extends BasicPane implements UIObserver {
@Override
public void layoutContainer(Container parent) {
upControlPane.setBounds(getBoundX(), getBoundY(), getBoundWidth(), upControlPane.getPreferredSize().height);
colorGroup.setBounds(COLORGROUP_MARGIN_LEFT, 2 * MARGIN_TOP + upControlPane.getPreferredSize().height + LAYOUR_DET, colorGroup.getPreferredSize().width, colorGroup.getPreferredSize().height + upControlPane.getPreferredSize().height);
textGroup.setBounds(colorGroup.getPreferredSize().width + COLORGROUP_MARGIN_LEFT, MARGIN_TOP + upControlPane.getPreferredSize().height + LAYOUR_DET, textGroup.getPreferredSize().width, textGroup.getPreferredSize().height);
upControlPane.setBounds(getBoundX(), getBoundY(), getParent().getWidth(),
upControlPane.getPreferredSize().height);
colorGroup.setBounds(COLORGROUP_MARGIN_LEFT, 2 * MARGIN_TOP + upControlPane.getPreferredSize().height + LAYOUR_DET,
colorGroup.getPreferredSize().width, colorGroup.getPreferredSize().height + upControlPane.getPreferredSize().height);
textGroup.setBounds(colorGroup.getPreferredSize().width + COLORGROUP_MARGIN_LEFT, MARGIN_TOP + upControlPane.getPreferredSize().height + LAYOUR_DET,
textGroup.getPreferredSize().width, textGroup.getPreferredSize().height);
}
@Override

3
designer-chart/src/main/java/com/fr/van/chart/column/VanChartColumnConditionPane.java

@ -1,5 +1,6 @@
package com.fr.van.chart.column;
import com.fine.theme.utils.FineUIScale;
import com.fr.chart.base.AttrAlpha;
import com.fr.chart.base.AttrBackground;
import com.fr.chart.base.AttrBorder;
@ -41,7 +42,7 @@ public class VanChartColumnConditionPane extends DataSeriesConditionPane{
protected void initComponents() {
super.initComponents();
//添加全部条件属性后被遮挡
liteConditionPane.setPreferredSize(new Dimension(300, 400));
liteConditionPane.setPreferredSize(FineUIScale.scale(new Dimension(300, 400)));
}
@Override

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) {

10
designer-chart/src/main/java/com/fr/van/chart/designer/other/condition/item/AbstractNormalMultiLineConditionPane.java

@ -45,15 +45,17 @@ public abstract class AbstractNormalMultiLineConditionPane extends ConditionAttr
JPanel pane = FRGUIPaneFactory.createBorderLayout_S_Pane();
pane.add(initContentPane());
this.add(row(column(cell(nameLabel), flex()).weight(0.2),
row(cell(initContentPane()).weight(1), flex()).weight(0.8)).with(it -> it.setBorder(new ScaledEmptyBorder(5, 5, 5, 0))).getComponent());
this.add(row(
column(cell(nameLabel), flex()).weight(0.2),
cell(initContentPane()).weight(0.8)
).with(it -> it.setBorder(new ScaledEmptyBorder(5, 5, 5, 5))
).getComponent(), BorderLayout.CENTER);
}
/**
* 添加删除按钮
*/
public void addCancel() {
this.add(column(fix(5), cell(cancel), flex()).getComponent(), BorderLayout.EAST);
this.add(column(cell(cancel), flex()).getComponent(), BorderLayout.EAST);
}
}

21
designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/radar/RadarTableContentPane.java

@ -1,19 +1,16 @@
package com.fr.van.chart.designer.style.axis.radar;
import com.fine.theme.utils.FineLayoutBuilder;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
import com.fr.plugin.chart.radar.data.RadarYAxisTableDefinition;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.util.List;
public class RadarTableContentPane extends AbstractTableDataContentPane {
@ -29,13 +26,10 @@ public class RadarTableContentPane extends AbstractTableDataContentPane {
private void initAllComponent() {
categoryNameComboBox = new UIComboBox();
categoryNameComboBox.setPreferredSize(new Dimension(100, 20));
minValueComboBox = new UIComboBox();
minValueComboBox.setPreferredSize(new Dimension(100, 20));
maxValueComboBox = new UIComboBox();
maxValueComboBox.setPreferredSize(new Dimension(100, 20));
addAutoItem();
@ -47,18 +41,13 @@ public class RadarTableContentPane extends AbstractTableDataContentPane {
}
private JPanel getContentPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] row = {p, p, p};
double[] col = {p, f};
Component[][] components = new Component[][]{
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Category") + ":", SwingConstants.RIGHT), categoryNameComboBox},
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Min_Value") + ":", SwingConstants.RIGHT), minValueComboBox},
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Max_Value") + ":", SwingConstants.RIGHT), maxValueComboBox}
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Category")), categoryNameComboBox},
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Min_Value")), minValueComboBox},
new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Max_Value")), maxValueComboBox}
};
return TableLayoutHelper.createTableLayoutPane(components, row, col);
return FineLayoutBuilder.commonLeftRightLayout(components);
}
@Override

5
designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/radar/VanChartRadarYAxisPane.java

@ -6,6 +6,7 @@ import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.design.gui.icombobox.LineComboBox;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.plugin.chart.attr.axis.VanChartAxis;
import com.fr.plugin.chart.attr.axis.VanChartValueAxis;
import com.fr.stable.CoreConstants;
@ -38,7 +39,7 @@ public class VanChartRadarYAxisPane extends VanChartValueAxisPane {
new Component[]{createValueStylePane(), null},
};
return FineLayoutBuilder.compatibleTableLayout(10, components, new double[]{1.2, 3});
return FineLayoutBuilder.compatibleTableLayout(0, components, new double[]{1, 0});
}
protected LineComboBox createLineComboBox() {
@ -57,7 +58,7 @@ public class VanChartRadarYAxisPane extends VanChartValueAxisPane {
centerPane.add(commenPane, Toolkit.i18nText("Fine-Design_Chart_Axis_Unified_Count"));
centerPane.add(tableDataPane, Toolkit.i18nText("Fine-Design_Chart_Respectively_Specified"));
JPanel contentPane = new JPanel(new BorderLayout());
JPanel contentPane = new JPanel(FRGUIPaneFactory.createScaledBorderLayout(0, 10));
contentPane.add(valueStyle, BorderLayout.NORTH);
contentPane.add(centerPane, BorderLayout.CENTER);
valueStyle.addActionListener(new ActionListener() {

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

4
designer-realize/src/main/java/com/fanruan/boot/init/DesignWorkContextComponent.java

@ -11,6 +11,7 @@ import com.fanruan.workplace.conetxt.CompatiblePool;
import com.fanruan.workplace.http.HttpConstants;
import com.fanruan.workplace.http.RepositoryManager;
import com.fanruan.workplace.http.WorkspaceHeartBeatShell;
import com.fanruan.workplace.http.exception.DefaultRemoteExceptionHandler;
import com.fr.report.UnLockedHandler;
import com.fr.workspace.engine.exception.RemoteDesignLoginLockHandler;
import com.fr.workspace.engine.exception.RemoteDesignNoAuthHandler;
@ -50,6 +51,7 @@ import com.fr.workspace.engine.base.FineObjectPool;
import com.fr.workspace.engine.client.heartbeart.FineWorkspaceHeartbeat;
import com.fr.workspace.engine.client.heartbeart.WorkspaceHeartbeat;
import com.fr.workspace.engine.exception.RemoteDriverUnExistHandler;
import com.fr.workspace.engine.exception.RemoteProcedureErrorHandler;
import com.fr.workspace.engine.resource.FineWorkResource;
import com.fr.workspace.engine.resource.FineWorkResourceAdaptor;
import com.fr.workspace.pool.WorkRPCRegister;
@ -82,6 +84,7 @@ import com.fr.workspace.server.repository.widget.ShareRepository;
public class DesignWorkContextComponent {
private static final String VERSION_NUM = "01";
private static final String ERROR_CODE = "11300024";
/**
@ -157,6 +160,7 @@ public class DesignWorkContextComponent {
RemoteExceptionConvert.registerException(HttpConstants.LOGIN_LOCK, new RemoteDesignLoginLockHandler());
RemoteExceptionConvert.registerException(HttpConstants.TPL_HAS_BEAN_UNLOCK, new UnLockedHandler());
RemoteExceptionConvert.registerException(HttpConstants.DRIVER_NOT_EXIST, new RemoteDriverUnExistHandler());
DefaultRemoteExceptionHandler.getInstance().registerMatchMsg(ERROR_CODE, new RemoteProcedureErrorHandler());
}
private void supplementalCommon() {

52
designer-realize/src/main/java/com/fr/design/mainframe/SheetNameTabPane.java

@ -201,8 +201,9 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
}
}
});
listener = new ComponentAdapter(){
@Override public void componentResized(ComponentEvent e) {
listener = new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
for (int i = 0; i < lastOneIndex * NUM; i++) {
moveLeft();
}
@ -277,7 +278,7 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
* @param oldIndex
*/
protected void doBeforeChange(int oldIndex) {
reportComposite.doBeforeChange(oldIndex);
reportComposite.doBeforeChange(oldIndex);
}
/**
@ -286,7 +287,7 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
* @param newIndex
*/
protected void doAfterChange(int newIndex) {
reportComposite.doAfterChange(newIndex);
reportComposite.doAfterChange(newIndex);
}
/**
@ -328,10 +329,11 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
/**
* 抽出来方便OEM
*
* @return
*/
public Icon getAddWorkSheet(){
return ADD_WORK_SHEET;
public Icon getAddWorkSheet() {
return ADD_WORK_SHEET;
}
/**
@ -368,8 +370,10 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
private void paintBackgroundAndLine(Graphics2D g2d, double textHeight, double maxWidth, int charWidth, int textAscent) {
int arc = FineUIUtils.getAndScaleInt("Center.arc", 10) / 2;
Path2D roundedPath = FineUIUtils.createPartRoundRectangle(0, 0, this.getWidth(), this.getHeight(), 0, 0, 0, arc);
int arc = FineUIUtils.getAndScaleInt("Center.arc", 8);
Path2D roundedPath = FineUIUtils.createPartRoundRectangle(0, 0,
this.getWidth(), this.getHeight(),
0, 0, 0, arc);
FlatUIUtils.setRenderingHints(g2d);
g2d.setColor(getBackground());
g2d.fill(roundedPath);
@ -415,8 +419,8 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
paintAddButton(g2d);
}
protected void paintAddButton(Graphics2D g2d){
getAddWorkSheet().paintIcon(this, g2d, iconLocation, 3);
protected void paintAddButton(Graphics2D g2d) {
getAddWorkSheet().paintIcon(this, g2d, iconLocation, 3);
ADD_POLY_SHEET.paintIcon(this, g2d, iconLocation + getAddWorkSheet().getIconWidth() + iconSepDistance, 3);
}
@ -559,41 +563,41 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
}
if (SwingUtilities.isLeftMouseButton(evt)) {
processLeftMouseButton(evtX);
processLeftMouseButton(evtX);
}
if (isBlank) {
return;
}
if (SwingUtilities.isRightMouseButton(evt) && !isAuthorityEditing) {
processRightMouseButton(evtX, evtY);
processRightMouseButton(evtX, evtY);
}
}
private void processRightMouseButton(int evtX, int evtY){
private void processRightMouseButton(int evtX, int evtY) {
MenuDef def = new MenuDef();
addInsertGridShortCut(def);
def.addShortCut(new PolyReportInsertAction(), SeparatorDef.DEFAULT, new RemoveSheetAction(), new RenameSheetAction(),
new CopySheetAction());
def.addShortCut(new PolyReportInsertAction(), SeparatorDef.DEFAULT, new RemoveSheetAction(), new RenameSheetAction(),
new CopySheetAction());
JPopupMenu tabPop = def.createJMenu().getPopupMenu();
def.updateMenu();
GUICoreUtils.showPopupMenu(tabPop, this, evtX - 1, evtY - 1);
}
private void processLeftMouseButton(int evtX){
private void processLeftMouseButton(int evtX) {
if (evtX > iconLocation && evtX < iconLocation + scale(GRID_TOSHEET_RIGHT)) {
firstInsertActionPerformed();
firstInsertActionPerformed();
} else if (evtX > iconLocation + scale(POLY_TOSHEET_LEFT) && evtX < iconLocation + scale(POLY_TOSHEET_RIGHT)) {
new PolyReportInsertAction().actionPerformed(null);
}
}
protected void addInsertGridShortCut(MenuDef def){
def.addShortCut(new GridReportInsertAction());
protected void addInsertGridShortCut(MenuDef def) {
def.addShortCut(new GridReportInsertAction());
}
protected void firstInsertActionPerformed(){
new GridReportInsertAction().actionPerformed(null);
protected void firstInsertActionPerformed() {
new GridReportInsertAction().actionPerformed(null);
}
@ -645,7 +649,7 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
* 右移动
*
* @param moveRighttDistance 右侧移动距离
* @param si 宽度坐标
* @param si 宽度坐标
*/
private void move2Right(int moveRighttDistance, int si) {
int reportcount = reportComposite.getEditingWorkBook().getReportCount();
@ -671,7 +675,7 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
* 左移动
*
* @param moveLeftDistance 左侧距离
* @param si 宽度坐标
* @param si 宽度坐标
*/
private void move2Left(int moveLeftDistance, int si) {
if (selectedIndex > 0) {
@ -746,7 +750,7 @@ public class SheetNameTabPane extends JPanel implements MouseListener, MouseMoti
scrollIndex++;
}
JTemplate<?,?> template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
JTemplate<?, ?> template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
TemplateTheme theme = template.getTemplateTheme();
TemplateReport templateReport = newTemplateReport();

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);

38
designer-realize/src/main/java/com/fr/grid/GridRowUI.java

@ -24,6 +24,7 @@ import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.font.FontRenderContext;
import java.awt.font.TextLayout;
import java.awt.geom.Rectangle2D;
/**
@ -31,15 +32,15 @@ import java.awt.geom.Rectangle2D;
* @since 2012-3-22下午5:54:21
*/
public class GridRowUI extends ComponentUI {
private Color detailsBackground = UIManager.getColor("Center.GridColumnRowColor");
private static final int OFFSET = 2;
protected Color editedBackground = UIManager.getColor("Center.GridColumnRowEditedColor");
protected Color selectedBackground = UIManager.getColor("Center.GridColumnRowSelectedColor");
private int resolution ;
private final int resolution;
GridRowUI(int resolution){
if (resolution == 0){
resolution = DesignerUIModeConfig.getInstance().getScreenResolution();
GridRowUI(int resolution) {
if (resolution == 0) {
resolution = DesignerUIModeConfig.getInstance().getScreenResolution();
}
this.resolution = resolution;
}
@ -49,12 +50,12 @@ public class GridRowUI extends ComponentUI {
if (!(c instanceof GridRow)) {
throw new IllegalArgumentException("The component c to paint must be a GridColumn!");
}
Graphics2D g2d = (Graphics2D) g;
Graphics2D g2d = (Graphics2D) g.create();
GridRow gridRow = (GridRow) c;
ElementCasePane reportPane = gridRow.getElementCasePane();
// size
Dimension size = gridRow.getSize();
float time = (float)resolution/DesignerUIModeConfig.getInstance().getScreenResolution();
float time = (float) resolution / DesignerUIModeConfig.getInstance().getScreenResolution();
g2d.setFont(gridRow.getFont().deriveFont(gridRow.getFont().getSize2D() * time));
ElementCase elementCase = reportPane.getEditingElementCase();
@ -135,7 +136,7 @@ public class GridRowUI extends ComponentUI {
paintText += "(F)";
}
}
drawNormalContent(i, g2d, gridRow, paintText, tmpIncreaseHeight, isSelectedBounds, elementCase, size, tmpHeight1);
drawNormalContent(g2d, gridRow, paintText, tmpIncreaseHeight, isSelectedBounds, size, tmpHeight1);
}
}
@ -154,16 +155,19 @@ public class GridRowUI extends ComponentUI {
}
private void drawNormalContent(int i, Graphics2D g2d, GridRow gridRow, String paintText, double tmpIncreaseHeight, boolean isSelectedBounds
, ElementCase elementCase, Dimension size, double tmpHeight1) {
private void drawNormalContent(Graphics2D g2d, GridRow gridRow, String paintText,
double increaseHeight, boolean isSelectedBounds,
Dimension size, double y) {
// FontMetrics
FontRenderContext fontRenderContext = g2d.getFontRenderContext();
float time = (float)resolution/DesignerUIModeConfig.getInstance().getScreenResolution();
float fmAscent = GraphHelper.getFontMetrics(gridRow.getFont()).getAscent() * time;
float time = (float) resolution / DesignerUIModeConfig.getInstance().getScreenResolution();
double stringWidth = gridRow.getFont().getStringBounds(paintText, fontRenderContext).getWidth() * time;
double stringHeight = gridRow.getFont().getStringBounds(paintText, fontRenderContext).getHeight() * time;
// 为了居中获取可视边界
Rectangle2D bounds = new TextLayout(paintText, gridRow.getFont(), fontRenderContext).getBounds();
double stringHeight = bounds.getHeight() * time;
// 如果高度太小了就不画了
if (stringHeight <= tmpIncreaseHeight + 2) {
if (stringHeight <= increaseHeight + OFFSET) {
if (isSelectedBounds) {
g2d.setColor(gridRow.getSelectedForeground());
} else {
@ -175,8 +179,10 @@ public class GridRowUI extends ComponentUI {
}
}
GraphHelper.drawString(g2d, paintText, (size.width - stringWidth) / 2, tmpHeight1 + (tmpIncreaseHeight - stringHeight) / 2 + GridHeader.SIZE_ADJUST / 2 + fmAscent - 2);
GraphHelper.drawString(g2d, paintText,
(size.width - stringWidth) / 2,
y + (increaseHeight - stringHeight) / 2.0 + stringHeight);
}
}
}
}

3
designer-realize/src/main/java/com/fr/start/CarinaDesigner.java

@ -41,6 +41,7 @@ public class CarinaDesigner extends MainDesigner{
* main
*/
public static void main(String[] args) {
installUIDevModeTools();
DesignerStartupContext.getRecorder().start();
PartitionManager manager = new PartitionManagerImpl();
StateHubContext.setReady(false);
@ -66,8 +67,6 @@ public class CarinaDesigner extends MainDesigner{
DesignerStartupContext.getRecorder().stop();
SwitchForSwingChecker.initThreadMonitoring();
DesignerLatencyMetric.getInstance().start();
installUIDevModeTools();
}
/**

Loading…
Cancel
Save