Browse Source

Pull request #14731: REPORT-132587 & REPORT-132446 & REPORT-132500 & REPORT-132390 & REPORT-132241 & REPORT-132184 & REPORT-132024 & REPORT-131936 & REPORT-132003 & REPORT-130281 & REPORT-130711 & REPORT-131086 fix: 部分提示弹窗、远程设计权限管理翻新,其余布局调整

Merge in DESIGN/design from ~ZONGYU.WANG/design:fbp/release to fbp/release

* commit 'e1724969d271fac021210847d0f75d7fb9bf1664':
  REPORT-127437 fix: 规约问题
  REPORT-127437 fix: fbp 测试问题修复:部分弹窗、远程设计权限管理翻新,其余布局调整
fbp/merge
Zongyu.Wang-王宗雨 5 months ago
parent
commit
e642c990de
  1. 107
      designer-base/src/main/java/com/fine/theme/light/ui/FineOptionPaneUI.java
  2. 1
      designer-base/src/main/java/com/fine/theme/utils/FineUIStyle.java
  3. 28
      designer-base/src/main/java/com/fr/design/components/notification/NotificationDialog.java
  4. 2
      designer-base/src/main/java/com/fr/design/data/datapane/TableDataTreePane.java
  5. 2
      designer-base/src/main/java/com/fr/design/data/datapane/preview/PreviewTablePane.java
  6. 12
      designer-base/src/main/java/com/fr/design/data/tabledata/tabledatapane/EmbeddedTableDataPane.java
  7. 115
      designer-base/src/main/java/com/fr/design/dialog/FineJOptionPane.java
  8. 35
      designer-base/src/main/java/com/fr/design/dialog/UIDetailErrorLinkDialog.java
  9. 5
      designer-base/src/main/java/com/fr/design/formula/FormulaPane.java
  10. 2
      designer-base/src/main/java/com/fr/design/gui/controlpane/JListControlPane.java
  11. 4
      designer-base/src/main/java/com/fr/design/gui/controlpane/ListControlPaneHelper.java
  12. 3
      designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/RTextAreaBase.java
  13. 27
      designer-base/src/main/java/com/fr/design/lock/LockInfoDialog.java
  14. 5
      designer-base/src/main/java/com/fr/design/parameter/ParameterInputPane.java
  15. 3
      designer-base/src/main/java/com/fr/design/remote/button/IconButton.java
  16. 21
      designer-base/src/main/java/com/fr/design/remote/ui/AbstractListControlPane.java
  17. 36
      designer-base/src/main/java/com/fr/design/remote/ui/AbstractManagerPane.java
  18. 13
      designer-base/src/main/java/com/fr/design/remote/ui/AuthorityEditorPane.java
  19. 3
      designer-base/src/main/java/com/fr/design/remote/ui/AuthorityListCustomRolePane.java
  20. 3
      designer-base/src/main/java/com/fr/design/remote/ui/AuthorityListUserPane.java
  21. 9
      designer-base/src/main/java/com/fr/design/remote/ui/AuthorityManagerPane.java
  22. 37
      designer-base/src/main/java/com/fr/design/remote/ui/CustomRoleManagerPane.java
  23. 36
      designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java
  24. 15
      designer-base/src/main/java/com/fr/design/remote/ui/list/AddedMemberListCellRender.java
  25. 21
      designer-base/src/main/java/com/fr/design/remote/ui/list/AddingMemberListCellRender.java
  26. 5
      designer-base/src/main/java/com/fr/design/remote/ui/list/AuthorityListCellRenderer.java
  27. 3
      designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AddedCustomRoleListCellRender.java
  28. 3
      designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AddedUserListCellRender.java
  29. 3
      designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AddingCustomRoleListCellRender.java
  30. 3
      designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AddingUserListCellRender.java
  31. 3
      designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AuthorityCustomRoleListCellRender.java
  32. 3
      designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AuthorityUserListCellRender.java
  33. 3
      designer-base/src/main/java/com/fr/design/remote/ui/tree/FileAuthorityTree.java
  34. 52
      designer-base/src/main/java/com/fr/design/style/color/ColorAdjustPane.java
  35. 3
      designer-base/src/main/java/com/fr/design/style/color/ColorButton.java
  36. 3
      designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java
  37. 11
      designer-base/src/main/resources/com/fine/theme/icon/close/platform_close_disable.svg
  38. 3
      designer-base/src/main/resources/com/fine/theme/icon/toolbar/member.svg
  39. 3
      designer-base/src/main/resources/com/fine/theme/icon/toolbar/role.svg
  40. 3
      designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json
  41. 7
      designer-base/src/main/resources/com/fine/theme/light/ui/laf/FineLightLaf.properties
  42. 2
      designer-base/src/main/resources/com/fr/design/i18n/dimension_en.properties
  43. 2
      designer-base/src/main/resources/com/fr/design/i18n/dimension_ja_JP.properties
  44. 2
      designer-base/src/main/resources/com/fr/design/i18n/dimension_ko_KR.properties
  45. 6
      designer-base/src/main/resources/com/fr/design/i18n/dimension_zh.properties
  46. 2
      designer-base/src/main/resources/com/fr/design/i18n/dimension_zh_TW.properties
  47. 6
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/style/series/UIColorPickerPane.java
  48. 3
      designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java
  49. 17
      designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java
  50. 8
      designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTrendLinePane.java
  51. 2
      designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartGaugeLabelDetailPane.java
  52. 1
      designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/series/VanChartGanttSeriesPane.java
  53. 2
      designer-chart/src/main/java/com/fr/van/chart/gauge/VanChartGaugeSeriesPane.java

107
designer-base/src/main/java/com/fine/theme/light/ui/FineOptionPaneUI.java

@ -1,14 +1,33 @@
package com.fine.theme.light.ui; package com.fine.theme.light.ui;
import com.fine.swing.ui.layout.Layouts;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle; import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.ui.FlatOptionPaneUI; import com.formdev.flatlaf.ui.FlatOptionPaneUI;
import com.fr.design.gui.ilable.UILabel;
import sun.swing.DefaultLookup;
import javax.swing.Icon;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.UIManager; import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.plaf.ComponentUI; import javax.swing.plaf.ComponentUI;
import java.awt.BorderLayout;
import java.awt.Component; import java.awt.Component;
import java.awt.Container; import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.column;
import static com.fine.swing.ui.layout.Layouts.flex;
import static com.fine.swing.ui.layout.Layouts.row;
/** /**
* @author Renekton * @author Renekton
@ -35,4 +54,92 @@ public class FineOptionPaneUI extends FlatOptionPaneUI {
} }
} }
} }
protected void installComponents() {
optionPane.setLayout(new BorderLayout());
optionPane.add(createMessageArea());
optionPane.add(createButtonArea(), BorderLayout.SOUTH);
optionPane.applyComponentOrientation(optionPane.getComponentOrientation());
}
protected Container createMessageArea() {
JPanel top = new JPanel();
Border topBorder = (Border) DefaultLookup.get(optionPane, this,
"OptionPane.messageAreaBorder");
if (topBorder != null) {
top.setBorder(topBorder);
}
top.setLayout(new BorderLayout());
/* Fill the body. */
Container body = new JPanel(new GridBagLayout());
Container realBody = new JPanel(new BorderLayout());
body.setName("OptionPane.body");
realBody.setName("OptionPane.realBody");
realBody.add(body, BorderLayout.NORTH);
GridBagConstraints cons = new GridBagConstraints();
cons.gridx = cons.gridy = 0;
cons.gridwidth = GridBagConstraints.REMAINDER;
cons.gridheight = 1;
cons.anchor = DefaultLookup.getInt(optionPane, this,
"OptionPane.messageAnchor", GridBagConstraints.CENTER);
cons.insets = new Insets(0,0,3,0);
addMessageComponents(body, cons, getMessage(),
getMaxCharactersPerLineCount(), false);
top.add(realBody, BorderLayout.CENTER);
addIcon(top);
top.setAlignmentX(Component.CENTER_ALIGNMENT);
return row(flex(), column(flex(), cell(top), flex()), flex()).getComponent();
}
@Override
protected void addIcon(Container top) {
Icon sideIcon = getIcon();
if (sideIcon != null) {
UILabel iconLabel = new UILabel(sideIcon);
iconLabel.setName("OptionPane.iconLabel");
iconLabel.setVerticalAlignment(SwingConstants.TOP);
top.add(row(cell(iconLabel), Layouts.fix(10)).getComponent(), BorderLayout.BEFORE_LINE_BEGINS);
}
}
@Override
protected Icon getIconForType(int messageType) {
String iconId = null;
switch (messageType) {
case 0:
iconId = "error";
break;
case 1:
iconId = "information";
break;
case 2:
iconId = "warning";
break;
case 3:
iconId = "question";
break;
default:
break;
}
if (iconId != null) {
return new LazyIcon(iconId, 20);
}
return null;
}
public Dimension getPreferredSize(JComponent c) {
if (c == optionPane) {
Dimension size = super.getPreferredSize(c);
size.width = Math.max(FineUIScale.scale(360), size.width);
size.height = Math.max(FineUIScale.scale(130), size.height);
return size;
}
return null;
}
} }

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

@ -28,6 +28,7 @@ public interface FineUIStyle {
String BRAND_COLOR_LABEL = "brandColorLabel"; String BRAND_COLOR_LABEL = "brandColorLabel";
String BUTTON_TAB_ACTION = "tabAction"; String BUTTON_TAB_ACTION = "tabAction";
String LABEL_BOLD = "boldLabel"; String LABEL_BOLD = "boldLabel";
String LABEL_TIP_WINDOW_TITLE = "tipWindowTitleLabel";
String LABEL_SECONDARY = "secondaryLabel"; String LABEL_SECONDARY = "secondaryLabel";
String LABEL_TIP = "tipLabel"; String LABEL_TIP = "tipLabel";
String LABEL_WARNING_TIP = "warningTipLabel"; String LABEL_WARNING_TIP = "warningTipLabel";

28
designer-base/src/main/java/com/fr/design/components/notification/NotificationDialog.java

@ -1,5 +1,8 @@
package com.fr.design.components.notification; package com.fr.design.components.notification;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIScale;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.function.ThrowableRunnable; import com.fr.base.function.ThrowableRunnable;
import com.fr.base.svg.IconUtils; import com.fr.base.svg.IconUtils;
import com.fr.design.components.page.PageControlModel; import com.fr.design.components.page.PageControlModel;
@ -53,7 +56,7 @@ public class NotificationDialog extends JDialog {
*/ */
private static final int CONTENT_SCROLL_WIDTH = 280; private static final int CONTENT_SCROLL_WIDTH = 280;
private static final int CONTENT_WIDTH = 300; private static final int CONTENT_WIDTH = 360;
private static final int CONTENT_HEIGHT = 100; private static final int CONTENT_HEIGHT = 100;
/** /**
* 通知框的外部宽高 * 通知框的外部宽高
@ -148,21 +151,20 @@ public class NotificationDialog extends JDialog {
protected JPanel createContentPanel() { protected JPanel createContentPanel() {
JPanel contentPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel contentPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
contentPanel.setBorder(BorderFactory.createEmptyBorder(8, 10, 8, 10)); contentPanel.setBorder(new ScaledEmptyBorder(8, 10, 8, 10));
contentPanel.setName("contentPanel"); contentPanel.setName("contentPanel");
NotificationModel model = getCurrentModel(); NotificationModel model = getCurrentModel();
UILabel icon = new UILabel(getIconForType(model.getType())); UILabel icon = new UILabel(getIconForType(model.getType()));
icon.setPreferredSize(new Dimension(16, 16));
JPanel iconPanel = FRGUIPaneFactory.createBorderLayout_L_Pane(); JPanel iconPanel = FRGUIPaneFactory.createBorderLayout_L_Pane();
iconPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 10, 8)); iconPanel.setBorder(new ScaledEmptyBorder(0, 5, 10, 8));
iconPanel.add(icon, BorderLayout.NORTH); iconPanel.add(icon, BorderLayout.NORTH);
contentPanel.add(iconPanel, BorderLayout.WEST); contentPanel.add(iconPanel, BorderLayout.WEST);
JPanel centerPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel centerPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
centerPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 5, 5)); centerPanel.setBorder(new ScaledEmptyBorder(0, 0, 5, 5));
NotificationMessage[] messages = model.getMessages(); NotificationMessage[] messages = model.getMessages();
List<? extends JComponent> messageComponents = Arrays.stream(messages) List<? extends JComponent> messageComponents = Arrays.stream(messages)
@ -213,7 +215,7 @@ public class NotificationDialog extends JDialog {
jScrollPane.setBorder(BorderFactory.createEmptyBorder()); jScrollPane.setBorder(BorderFactory.createEmptyBorder());
centerPanel.add(jScrollPane, BorderLayout.CENTER); centerPanel.add(jScrollPane, BorderLayout.CENTER);
centerPanel.setPreferredSize(CONTENT_SIZE); centerPanel.setPreferredSize(FineUIScale.scale(CONTENT_SIZE));
contentPanel.add(centerPanel, BorderLayout.CENTER); contentPanel.add(centerPanel, BorderLayout.CENTER);
@ -282,7 +284,7 @@ public class NotificationDialog extends JDialog {
NotificationAction action = currentModel.getAction(); NotificationAction action = currentModel.getAction();
if (action != null) { if (action != null) {
UIButton actionButton = new UIButton(action.name()); UIButton actionButton = new UIButton(action.name());
actionButton.setPreferredSize(BUTTON_DIMENSION); actionButton.setPreferredSize(FineUIScale.scale(BUTTON_DIMENSION));
actionButton.addActionListener(new ActionListener() { actionButton.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -293,7 +295,7 @@ public class NotificationDialog extends JDialog {
} }
UIButton knowButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Know")); UIButton knowButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Know"));
knowButton.setPreferredSize(BUTTON_DIMENSION); knowButton.setPreferredSize(FineUIScale.scale(BUTTON_DIMENSION));
knowButton.addActionListener(new ActionListener() { knowButton.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -359,21 +361,21 @@ public class NotificationDialog extends JDialog {
protected Icon getIconForType(NotificationType type) { protected Icon getIconForType(NotificationType type) {
String iconPath; String iconId;
switch (type) { switch (type) {
case ERROR: case ERROR:
iconPath = "/com/fr/design/standard/reminder/reminder_error.svg"; iconId = "error";
break; break;
case INFO: case INFO:
iconPath = "/com/fr/design/standard/reminder/reminder_success.svg"; iconId = "success";
break; break;
case WARNING: case WARNING:
iconPath = "/com/fr/design/standard/reminder/reminder_warning.svg"; iconId = "warning";
break; break;
default: default:
return null; return null;
} }
return IconUtils.readIcon(iconPath); return new LazyIcon(iconId, 20);
} }
private void destroy() { private void destroy() {

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

@ -1,6 +1,7 @@
package com.fr.design.data.datapane; package com.fr.design.data.datapane;
import com.fine.theme.icon.LazyIcon; import com.fine.theme.icon.LazyIcon;
import com.fine.theme.light.ui.FineRoundBorder;
import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.TableData; import com.fr.base.TableData;
import com.fr.data.MultiResultTableData; import com.fr.data.MultiResultTableData;
@ -1117,6 +1118,7 @@ public class TableDataTreePane extends BasicTableDataTreePane {
}; };
basicPane.setLayout(new BorderLayout()); basicPane.setLayout(new BorderLayout());
basicPane.add(tips, BorderLayout.NORTH); basicPane.add(tips, BorderLayout.NORTH);
scrollPane.setBorder(new FineRoundBorder());
basicPane.add(scrollPane, BorderLayout.CENTER); basicPane.add(scrollPane, BorderLayout.CENTER);
BasicDialog basicDialog = basicPane.showSmallWindow(SwingUtilities.getWindowAncestor(TableDataTreePane.this), new DialogActionAdapter() { BasicDialog basicDialog = basicPane.showSmallWindow(SwingUtilities.getWindowAncestor(TableDataTreePane.this), new DialogActionAdapter() {
@Override @Override

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

@ -102,7 +102,7 @@ public class PreviewTablePane extends BasicPane {
private PreviewTableDesensitizationPane desensitizationPane; private PreviewTableDesensitizationPane desensitizationPane;
private static final int PREVIEW_TABLE_MIN_COLUMN_WIDTH = FineUIScale.scale(75); private static final int PREVIEW_TABLE_MIN_COLUMN_WIDTH = FineUIScale.scale(75);
private static final int PREVIEW_TABLE_WIDTH = FineUIScale.scale(600); private static final int PREVIEW_TABLE_WIDTH = FineUIScale.scale(610);
/** /**
* 用于refreshLabel的鼠标监听 * 用于refreshLabel的鼠标监听

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

@ -1,5 +1,6 @@
package com.fr.design.data.tabledata.tabledatapane; package com.fr.design.data.tabledata.tabledatapane;
import com.fine.theme.light.ui.FineTableHeaderUI;
import com.fine.theme.utils.FineUIScale; import com.fine.theme.utils.FineUIScale;
import com.fr.data.impl.EmbeddedTableData; import com.fr.data.impl.EmbeddedTableData;
import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.LayoutConstants;
@ -40,9 +41,9 @@ import static com.fine.swing.ui.layout.Layouts.column;
import static com.fine.swing.ui.layout.Layouts.flex; import static com.fine.swing.ui.layout.Layouts.flex;
public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableData> { public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableData> {
private static final int MIN_CELL_WIDTH = 30; private static final int MIN_CELL_WIDTH = FineUIScale.scale(30);
private static final int PREVIEW_TABLE_MIN_COLUMN_WIDTH = FineUIScale.scale(75); private static final int PREVIEW_TABLE_MIN_COLUMN_WIDTH = FineUIScale.scale(75);
private static final int PREVIEW_TABLE_WIDTH = FineUIScale.scale(600); private static final int PREVIEW_TABLE_WIDTH = FineUIScale.scale(860);
private JTable dataJTable ; private JTable dataJTable ;
private UITableScrollPane scrollPane; private UITableScrollPane scrollPane;
private UILabel coordinatelabel; private UILabel coordinatelabel;
@ -68,7 +69,8 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableDa
// 显示double,date类;渲染date类 // 显示double,date类;渲染date类
dataJTable.setDefaultRenderer(Double.class, new DoubleRenderer()); dataJTable.setDefaultRenderer(Double.class, new DoubleRenderer());
dataJTable.setDefaultRenderer(Date.class, new DateRenderer()); dataJTable.setDefaultRenderer(Date.class, new FineTableHeaderUI.TableRenderer());
dataJTable.setDefaultRenderer(Integer.class, new DateRenderer());
dataJTable.setDefaultEditor(Date.class, new DateEditor(new UIDatePicker(UIDatePicker.STYLE_CN_DATE1))); dataJTable.setDefaultEditor(Date.class, new DateEditor(new UIDatePicker(UIDatePicker.STYLE_CN_DATE1)));
tableStructureChanged(); tableStructureChanged();
@ -249,14 +251,14 @@ public class EmbeddedTableDataPane extends AbstractTableDataPane<EmbeddedTableDa
tableColumn.setMaxWidth(Math.max(dataJTable.getColumnCount(), MIN_CELL_WIDTH)); tableColumn.setMaxWidth(Math.max(dataJTable.getColumnCount(), MIN_CELL_WIDTH));
} }
private class DoubleRenderer extends DefaultTableCellRenderer { private class DoubleRenderer extends FineTableHeaderUI.TableRenderer {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setHorizontalAlignment(RIGHT); setHorizontalAlignment(RIGHT);
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
} }
} }
private class DateRenderer extends DefaultTableCellRenderer { private class DateRenderer extends FineTableHeaderUI.TableRenderer {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Date date2Format = DateUtils.object2Date(value, true); Date date2Format = DateUtils.object2Date(value, true);
return super.getTableCellRendererComponent(table, date2Format == null ? StringUtils.EMPTY : DateUtils.DATEFORMAT1.format(date2Format), isSelected, hasFocus, row, return super.getTableCellRendererComponent(table, date2Format == null ? StringUtils.EMPTY : DateUtils.DATEFORMAT1.format(date2Format), isSelected, hasFocus, row,

115
designer-base/src/main/java/com/fr/design/dialog/FineJOptionPane.java

@ -1,5 +1,6 @@
package com.fr.design.dialog; package com.fr.design.dialog;
import com.fine.theme.icon.LazyIcon;
import com.fr.invoke.Reflect; import com.fr.invoke.Reflect;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
@ -31,6 +32,8 @@ public class FineJOptionPane extends JOptionPane {
//选项类型optionType 和 选项字符串数组 一一对应 //选项类型optionType 和 选项字符串数组 一一对应
private final static Map<Integer, String[]> OPTION_MAP = new HashMap<>(); private final static Map<Integer, String[]> OPTION_MAP = new HashMap<>();
public Icon successMessageIcon;
static { static {
OPTION_MAP.put(DEFAULT_OPTION, OPTION_DEFAULT); OPTION_MAP.put(DEFAULT_OPTION, OPTION_DEFAULT);
OPTION_MAP.put(YES_NO_OPTION, OPTION_YES_NO); OPTION_MAP.put(YES_NO_OPTION, OPTION_YES_NO);
@ -42,6 +45,17 @@ public class FineJOptionPane extends JOptionPane {
private final static String CONFIRM_DIALOG_TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dialog_Prompt"); private final static String CONFIRM_DIALOG_TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Dialog_Prompt");
private final static String INPUT_DIALOG_TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips"); private final static String INPUT_DIALOG_TITLE = com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Tool_Tips");
public FineJOptionPane(Object message, int messageType, int optionType,
Icon icon, Object[] options, Object initialValue,
boolean successMessage) {
super(message, messageType, optionType, icon, options, initialValue);
if (successMessage) {
successMessageIcon = new LazyIcon("success", 20);
}
}
/** /**
* 使用默认 标题 消息类型 的消息提示弹出框 * 使用默认 标题 消息类型 的消息提示弹出框
* @param parentComponent 父容器 * @param parentComponent 父容器
@ -54,6 +68,34 @@ public class FineJOptionPane extends JOptionPane {
INFORMATION_MESSAGE); INFORMATION_MESSAGE);
} }
/**
* 使用 success 图标 默认 标题 消息类型 的消息提示弹出框
* @param parentComponent 父容器
* @param message 具体的提示消息
* @throws HeadlessException
*/
public static void showSuccessMessageDialog(Component parentComponent, Object message)
throws HeadlessException {
showMessageDialog(parentComponent, message, MESSAGE_DIALOG_TITLE, INFORMATION_MESSAGE, true);
}
/**
* 使用默认 标题 消息类型 的消息提示弹出框
* @param parentComponent 父容器
* @param message 具体的提示消息
* @param title 标题
* @param messageType 消息类型
* @param isSuccessMessage 是否使用 success 图标如果不是则根据消息类型生成图标
* @throws HeadlessException
*/
public static void showMessageDialog(Component parentComponent, Object message,
String title, int messageType, boolean isSuccessMessage)
throws HeadlessException {
showOptionDialog(parentComponent, message, title, DEFAULT_OPTION,
messageType, null, OPTION_DEFAULT, null, isSuccessMessage);
}
/** /**
* 使用默认 Icon 的消息提示弹出框 * 使用默认 Icon 的消息提示弹出框
* @param parentComponent 父容器 * @param parentComponent 父容器
@ -101,7 +143,7 @@ public class FineJOptionPane extends JOptionPane {
Icon icon, Object[] options, Object initialValue) Icon icon, Object[] options, Object initialValue)
throws HeadlessException { throws HeadlessException {
showOptionDialog(parentComponent, message, title, optionType, showOptionDialog(parentComponent, message, title, optionType,
messageType, icon, options, initialValue); messageType, icon, options, initialValue, false);
} }
/** /**
@ -182,7 +224,7 @@ public class FineJOptionPane extends JOptionPane {
Object[] options, Object initialValue) Object[] options, Object initialValue)
throws HeadlessException { throws HeadlessException {
return showOptionDialog(parentComponent, message, title, optionType, return showOptionDialog(parentComponent, message, title, optionType,
messageType, icon, options, initialValue); messageType, icon, options, initialValue, false);
} }
/** /**
@ -199,7 +241,7 @@ public class FineJOptionPane extends JOptionPane {
String title, Icon icon, Object initialValue, ActionListener listener) String title, Icon icon, Object initialValue, ActionListener listener)
throws HeadlessException { throws HeadlessException {
int val = showOptionDialog(parentComponent, message, title, JOptionPane.DEFAULT_OPTION, int val = showOptionDialog(parentComponent, message, title, JOptionPane.DEFAULT_OPTION,
FineJOptionPane.WARNING_MESSAGE, icon, OPTION_OK_CANCEL, initialValue); FineJOptionPane.WARNING_MESSAGE, icon, OPTION_OK_CANCEL, initialValue, false);
if (val == JOptionPane.OK_OPTION && listener!=null) { if (val == JOptionPane.OK_OPTION && listener!=null) {
listener.actionPerformed(null); listener.actionPerformed(null);
} }
@ -315,4 +357,71 @@ public class FineJOptionPane extends JOptionPane {
return value; return value;
} }
/**
* 根据 message type 生成 icon
* @return
*/
public Icon getIcon() {
if (successMessageIcon != null) {
return successMessageIcon;
}
switch (messageType) {
case ERROR_MESSAGE:
return new LazyIcon("error", 20);
case WARNING_MESSAGE:
return new LazyIcon("warning", 20);
case INFORMATION_MESSAGE:
return new LazyIcon("information", 20);
case QUESTION_MESSAGE:
return new LazyIcon("question", 20);
default:
return icon;
}
}
/**
* 自定义的确认弹出框
* @param parentComponent 父容器
* @param message 具体的提示消息
* @param title 标题
* @param optionType 选项类型
* @param messageType 消息类型
* @param icon 图标
* @param options 选项
* @param initialValue 初始选项
* @param isSuccessMessage 是否使用 success 图标
*/
public static int showOptionDialog(Component parentComponent, Object message,
String title, int optionType, int messageType,
Icon icon, Object[] options, Object initialValue,
boolean isSuccessMessage) {
FineJOptionPane pane = new FineJOptionPane(message, messageType, optionType, icon, options, initialValue, isSuccessMessage);
pane.setInitialValue(initialValue);
pane.setComponentOrientation(((parentComponent == null) ? getRootFrame() : parentComponent).getComponentOrientation());
JDialog dialog = pane.createDialog(parentComponent, title);
pane.selectInitialValue();
dialog.show();
dialog.dispose();
Object selectedValue = pane.getValue();
if (selectedValue == null){
return CLOSED_OPTION;
}
if (options == null) {
if (selectedValue instanceof Integer) {
return ((Integer) selectedValue).intValue();
}
return CLOSED_OPTION;
}
for(int counter = 0, maxCounter = options.length;
counter < maxCounter; counter++) {
if (options[counter].equals(selectedValue)) {
return counter;
}
}
return CLOSED_OPTION;
}
} }

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

@ -1,5 +1,9 @@
package com.fr.design.dialog; package com.fr.design.dialog;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.GraphHelper; import com.fr.base.GraphHelper;
import com.fr.design.dialog.link.MessageWithLink; import com.fr.design.dialog.link.MessageWithLink;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
@ -7,6 +11,7 @@ import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextarea.UITextArea; import com.fr.design.gui.itextarea.UITextArea;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.DesignUtils; import com.fr.design.utils.DesignUtils;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
@ -30,6 +35,11 @@ import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.column;
import static com.fine.swing.ui.layout.Layouts.fix;
import static com.fine.swing.ui.layout.Layouts.row;
/** /**
* 带链接的错误详情弹窗 * 带链接的错误详情弹窗
* *
@ -40,13 +50,13 @@ import javax.swing.SwingUtilities;
public class UIDetailErrorLinkDialog extends UIDialog { public class UIDetailErrorLinkDialog extends UIDialog {
private static final Color LINK_COLOR = new Color(51, 152, 253); private static final Color LINK_COLOR = new Color(51, 152, 253);
private static final int GAP_5 = 5; private static final int GAP_8 = 8;
private static final int GAP_10 = 10; private static final int GAP_10 = 10;
private static final String TAG_A_START = "<a>"; private static final String TAG_A_START = "<a>";
private static final String TAG_A_END = "</a>"; private static final String TAG_A_END = "</a>";
private static final double SCALE = 1.2; private static final double SCALE = 1.2;
private final Dimension dimension = new Dimension(300, 180); private final Dimension dimension = new Dimension(360, 180);
public static Builder newBuilder() { public static Builder newBuilder() {
return new Builder(); return new Builder();
@ -65,15 +75,12 @@ public class UIDetailErrorLinkDialog extends UIDialog {
private void init(Builder builder) { private void init(Builder builder) {
this.setTitle(builder.title); this.setTitle(builder.title);
// 顶部 图标和提示 // 顶部 图标和提示
UILabel errorIcon = new UILabel(IOUtils.readIcon("com/fr/design/images/lookandfeel/Information_Icon_Error_32x32.png")); UILabel errorIcon = new UILabel(new LazyIcon("error", 20));
UILabel errorInfo= new UILabel(builder.reason); UILabel errorInfo= new UILabel(builder.reason);
JPanel topPane = new JPanel(new FlowLayout(FlowLayout.LEFT, GAP_10, GAP_5)); FineUIStyle.setStyle(errorInfo, FineUIStyle.LABEL_TIP_WINDOW_TITLE);
topPane.add(errorIcon);
topPane.add(errorInfo);
// 中部 详细内容 // 中部 详细内容
JPanel contentPane = new JPanel(new BorderLayout()); JPanel contentPane = new JPanel(FRGUIPaneFactory.createScaledBorderLayout(GAP_10, GAP_10));
contentPane.setBorder(BorderFactory.createEmptyBorder(0, GAP_5,0,0));
UILabel errorCodeLabel = new UILabel(Toolkit.i18nText("Fine_Design_Basic_Error_Code", builder.errorCode)); UILabel errorCodeLabel = new UILabel(Toolkit.i18nText("Fine_Design_Basic_Error_Code", builder.errorCode));
UILabel link = new UILabel(Toolkit.i18nText("Fine_Design_Basic_Show_Error_Stack")); UILabel link = new UILabel(Toolkit.i18nText("Fine_Design_Basic_Show_Error_Stack"));
link.setForeground(LINK_COLOR); link.setForeground(LINK_COLOR);
@ -92,13 +99,17 @@ public class UIDetailErrorLinkDialog extends UIDialog {
contentPane.add(link, BorderLayout.SOUTH); contentPane.add(link, BorderLayout.SOUTH);
// 确定 + 取消 // 确定 + 取消
JPanel actionPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, GAP_10, GAP_5)); JPanel actionPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, GAP_10, GAP_8));
actionPane.add(createButton(Toolkit.i18nText("Fine-Design_Report_OK"))); actionPane.add(createButton(Toolkit.i18nText("Fine-Design_Report_OK")));
actionPane.add(createButton(Toolkit.i18nText("Fine-Design_Basic_Cancel"))); actionPane.add(createButton(Toolkit.i18nText("Fine-Design_Basic_Cancel")));
this.getContentPane().add(topPane, BorderLayout.NORTH);
this.getContentPane().add(contentPane, BorderLayout.CENTER); this.getContentPane().add(column(10,
row(10, cell(errorIcon), cell(errorInfo)),
row(10, fix(20), cell(contentPane))
).with(it -> it.setBorder(new ScaledEmptyBorder(GAP_10, GAP_10, GAP_10, GAP_10))).getComponent());
this.getContentPane().add(actionPane, BorderLayout.SOUTH); this.getContentPane().add(actionPane, BorderLayout.SOUTH);
this.setSize(dimension); this.setSize(FineUIScale.scale(dimension));
this.setResizable(false); this.setResizable(false);
this.setModal(true); this.setModal(true);
GUICoreUtils.centerWindow(this); GUICoreUtils.centerWindow(this);

5
designer-base/src/main/java/com/fr/design/formula/FormulaPane.java

@ -41,6 +41,7 @@ import com.fr.design.gui.itextarea.UITextArea;
import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.RSyntaxTextArea;
import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants; import com.fr.design.gui.syntax.ui.rsyntaxtextarea.SyntaxConstants;
import com.fr.design.i18n.DesignSizeI18nManager;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
@ -743,7 +744,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
} }
public BasicDialog showLargeWindow(Window window, DialogActionListener l) { public BasicDialog showLargeWindow(Window window, DialogActionListener l) {
Dimension dimension = new Dimension(900, 640); Dimension dimension = DesignSizeI18nManager.getInstance().i18nDimension("com.fr.design.formula.FormulaPane");
BasicDialog basicDialog = super.showWindowWithCustomSize(window, l, dimension); BasicDialog basicDialog = super.showWindowWithCustomSize(window, l, dimension);
basicDialog.setResizable(true); basicDialog.setResizable(true);
return basicDialog; return basicDialog;
@ -915,7 +916,7 @@ public class FormulaPane extends BasicPane implements KeyListener, UIFormula {
private void showMessageDialog(String message, boolean formulaValid, boolean calException) { private void showMessageDialog(String message, boolean formulaValid, boolean calException) {
if (formulaValid && !calException) { if (formulaValid && !calException) {
FineJOptionPane.showMessageDialog( FineJOptionPane.showSuccessMessageDialog(
FormulaPane.this, FormulaPane.this,
message); message);
} else { } else {

2
designer-base/src/main/java/com/fr/design/gui/controlpane/JListControlPane.java

@ -383,7 +383,7 @@ public abstract class JListControlPane extends JControlPane implements ListContr
@Override @Override
public Component getListCellRendererComponent(JList list, Object value, public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) { int index, boolean isSelected, boolean cellHasFocus) {
setPreferredSize(FineUIScale.scale(new Dimension(list.getWidth(), 24))); setPreferredSize(new Dimension(list.getWidth(), FineUIScale.scale(24)));
if (value instanceof ListModelElement) { if (value instanceof ListModelElement) {
ListModelElement element = ((ListModelElement) value); ListModelElement element = ((ListModelElement) value);
Nameable nameable = element.wrapper; Nameable nameable = element.wrapper;

4
designer-base/src/main/java/com/fr/design/gui/controlpane/ListControlPaneHelper.java

@ -1,5 +1,6 @@
package com.fr.design.gui.controlpane; package com.fr.design.gui.controlpane;
import com.fine.theme.utils.FineUIScale;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.dialog.FineJOptionPane; import com.fr.design.dialog.FineJOptionPane;
import com.fr.design.gui.ilist.JNameEdList; import com.fr.design.gui.ilist.JNameEdList;
@ -38,6 +39,7 @@ import java.util.Map;
*/ */
class ListControlPaneHelper { class ListControlPaneHelper {
private static final int EDIT_RANGE = 25; // 编辑按钮的x坐标范围 private static final int EDIT_RANGE = 25; // 编辑按钮的x坐标范围
private static final int DIALOG_GAP = 25; // 编辑按钮的x坐标范围
private ListControlPaneProvider listControlPane; private ListControlPaneProvider listControlPane;
@ -160,7 +162,7 @@ class ListControlPaneHelper {
// 不能太低 // 不能太低
int maxY = frame.getLocationOnScreen().y + frame.getHeight() - popupEditDialog.getHeight(); int maxY = frame.getLocationOnScreen().y + frame.getHeight() - popupEditDialog.getHeight();
if (resultPos.y > maxY) { if (resultPos.y > maxY) {
resultPos.y = maxY; resultPos.y = maxY - FineUIScale.scale(DIALOG_GAP);
} }
// 也不能太高 // 也不能太高
int minY = frame.getLocationOnScreen().y + EDIT_RANGE; int minY = frame.getLocationOnScreen().y + EDIT_RANGE;

3
designer-base/src/main/java/com/fr/design/gui/syntax/ui/rtextarea/RTextAreaBase.java

@ -24,6 +24,7 @@ import java.awt.event.MouseEvent;
import java.awt.event.MouseListener; import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener; import java.awt.event.MouseMotionListener;
import javax.swing.JTextArea; import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.event.CaretEvent; import javax.swing.event.CaretEvent;
import javax.swing.plaf.ColorUIResource; import javax.swing.plaf.ColorUIResource;
import javax.swing.plaf.TextUI; import javax.swing.plaf.TextUI;
@ -73,7 +74,7 @@ int currentCaretY; // Used to know when to rehighlight current line.
private RTAMouseListener mouseListener; private RTAMouseListener mouseListener;
private static final Color DEFAULT_CARET_COLOR = new ColorUIResource(255,51,51); private static final Color DEFAULT_CARET_COLOR = new ColorUIResource(255,51,51);
private static final Color DEFAULT_CURRENT_LINE_HIGHLIGHT_COLOR = new Color(255,255,170); private static final Color DEFAULT_CURRENT_LINE_HIGHLIGHT_COLOR = UIManager.getColor("TextArea.currentLineHighlightColor");
private static final Color DEFAULT_MARGIN_LINE_COLOR = new Color(255,224,224); private static final Color DEFAULT_MARGIN_LINE_COLOR = new Color(255,224,224);
private static final int DEFAULT_TAB_SIZE = 4; private static final int DEFAULT_TAB_SIZE = 4;
private static final int DEFAULT_MARGIN_LINE_POSITION = 80; private static final int DEFAULT_MARGIN_LINE_POSITION = 80;

27
designer-base/src/main/java/com/fr/design/lock/LockInfoDialog.java

@ -1,7 +1,11 @@
package com.fr.design.lock; package com.fr.design.lock;
import com.fine.theme.icon.LazyIcon;
import com.fine.theme.utils.FineUIScale;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.file.TemplateTreePane; import com.fr.design.file.TemplateTreePane;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.DesignSizeI18nManager; import com.fr.design.i18n.DesignSizeI18nManager;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
@ -39,12 +43,12 @@ public class LockInfoDialog extends JDialog {
super(DesignerContext.getDesignerFrame()); super(DesignerContext.getDesignerFrame());
this.saveEnum = saveEnum; this.saveEnum = saveEnum;
JPanel panel = new JPanel(new BorderLayout()); JPanel panel = new JPanel(new BorderLayout());
panel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0)); panel.setBorder(new ScaledEmptyBorder(0, 10, 0, 0));
panel.add(createContentPane(userInfo), BorderLayout.CENTER); panel.add(createContentPane(userInfo), BorderLayout.CENTER);
panel.add(createControlPane(), BorderLayout.SOUTH); panel.add(createControlPane(), BorderLayout.SOUTH);
this.getContentPane().add(panel); this.getContentPane().add(panel);
this.setTitle(Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Title_Hint")); this.setTitle(Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Title_Hint"));
this.setSize(DesignSizeI18nManager.getInstance().i18nDimension("com.fr.design.lock.LockInfoDialog")); this.setSize(FineUIScale.scale(DesignSizeI18nManager.getInstance().i18nDimension("com.fr.design.lock.LockInfoDialog")));
this.setResizable(false); this.setResizable(false);
this.setModal(true); this.setModal(true);
GUICoreUtils.centerWindow(this); GUICoreUtils.centerWindow(this);
@ -53,40 +57,37 @@ public class LockInfoDialog extends JDialog {
private JPanel createContentPane(UserInfo userInfo) { private JPanel createContentPane(UserInfo userInfo) {
JPanel contentPanel = new JPanel(new BorderLayout()); JPanel contentPanel = new JPanel(new BorderLayout());
contentPanel.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0)); contentPanel.setBorder(new ScaledEmptyBorder(10, 0, 10, 10));
JPanel messagePane = new JPanel(new BorderLayout(13, 0)); JPanel messagePane = FRGUIPaneFactory.createScaledBorderLayout_S_Pane(10, 0);
UILabel iconLabel = new UILabel(IOUtils.readIcon("/com/fr/design/images/warnings/warning32.png")); UILabel iconLabel = new UILabel(new LazyIcon("warning", 20));
iconLabel.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));
messagePane.add(iconLabel, BorderLayout.WEST); messagePane.add(iconLabel, BorderLayout.WEST);
UILabel tipLabel = new UILabel(Toolkit.i18nText("Fine-Design_Template_Lock_And_SaveAs_Tip")); UILabel tipLabel = new UILabel(Toolkit.i18nText("Fine-Design_Template_Lock_And_SaveAs_Tip"));
tipLabel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
messagePane.add(tipLabel, BorderLayout.CENTER); messagePane.add(tipLabel, BorderLayout.CENTER);
contentPanel.add(messagePane, BorderLayout.NORTH); contentPanel.add(messagePane, BorderLayout.NORTH);
JPanel detailInfoPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); JPanel detailInfoPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane();
detailInfoPane.setBorder(BorderFactory.createEmptyBorder(0, 45, 0,0)); detailInfoPane.setBorder(new ScaledEmptyBorder(0, 30, 0,0));
if (userInfo != null && StringUtils.isNotEmpty(userInfo.getUserName())) { if (userInfo != null && StringUtils.isNotEmpty(userInfo.getUserName())) {
UILabel label = createLabel(Toolkit.i18nText("Fine-Design_Template_Lock_Holder", userInfo.getUserName())); UILabel label = createLabel(Toolkit.i18nText("Fine-Design_Template_Lock_Holder", userInfo.getUserName()));
label .setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
detailInfoPane.add(label); detailInfoPane.add(label);
} }
if (userInfo != null && StringUtils.isNotEmpty(userInfo.getIp())) { if (userInfo != null && StringUtils.isNotEmpty(userInfo.getIp())) {
detailInfoPane.add(createLabel(Toolkit.i18nText("Fine-Design_Template_Lock_Holder_Ip", userInfo.getIp()) )); detailInfoPane.add(createLabel(Toolkit.i18nText("Fine-Design_Template_Lock_Holder_Ip", userInfo.getIp()) ));
} }
detailInfoPane.add(createLabel(Toolkit.i18nText("Fine-Design_Template_Lock_Get_Time", FORMATTER.format(LocalDateTime.now())))); detailInfoPane.add(createLabel(Toolkit.i18nText("Fine-Design_Template_Lock_Get_Time", FORMATTER.format(LocalDateTime.now()))));
contentPanel.add(detailInfoPane, BorderLayout.CENTER); contentPanel.add(new UIScrollPane(detailInfoPane), BorderLayout.CENTER);
return contentPanel; return contentPanel;
} }
private UILabel createLabel(String text) { private UILabel createLabel(String text) {
UILabel label = new UILabel(text); UILabel label = new UILabel(text);
label.setForeground(Color.GRAY); label.setForeground(Color.GRAY);
label.setBorder(BorderFactory.createEmptyBorder(8, 0, 0, 0)); label.setBorder(new ScaledEmptyBorder(10, 0, 0, 0));
return label; return label;
} }
private JPanel createControlPane() { private JPanel createControlPane() {
JPanel controlPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, 10, 5)); JPanel controlPane = new JPanel(new FlowLayout(FlowLayout.RIGHT, FineUIScale.scale(10), 0));
controlPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0,5)); controlPane.setBorder(new ScaledEmptyBorder(0, 0, 10,10));
UIButton saveAsButton = new UIButton(Toolkit.i18nText("Fine_Design_Template_Lock_Save_As")); UIButton saveAsButton = new UIButton(Toolkit.i18nText("Fine_Design_Template_Lock_Save_As"));
UIButton cancelButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Button_Cancel")); UIButton cancelButton = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Button_Cancel"));
saveAsButton.addActionListener(new ActionListener() { saveAsButton.addActionListener(new ActionListener() {

5
designer-base/src/main/java/com/fr/design/parameter/ParameterInputPane.java

@ -3,6 +3,7 @@
*/ */
package com.fr.design.parameter; package com.fr.design.parameter;
import com.fine.theme.utils.FineUIUtils;
import com.fr.base.BaseFormula; import com.fr.base.BaseFormula;
import com.fr.base.StoreProcedureParameter; import com.fr.base.StoreProcedureParameter;
import com.fr.base.Utils; import com.fr.base.Utils;
@ -75,8 +76,8 @@ public class ParameterInputPane extends BasicPane {
//Content Pane. //Content Pane.
JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane();
this.add(new JScrollPane(contentPane), BorderLayout.CENTER); this.add(FineUIUtils.wrapComponentWithTitle(new JScrollPane(
contentPane.setBorder(BorderFactory.createTitledBorder(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Parameters") + ":")); contentPane), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Parameters")), BorderLayout.CENTER);
flowTableLayoutHelper = new FlowTableLayoutHelper(); flowTableLayoutHelper = new FlowTableLayoutHelper();

3
designer-base/src/main/java/com/fr/design/remote/button/IconButton.java

@ -1,5 +1,6 @@
package com.fr.design.remote.button; package com.fr.design.remote.button;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
@ -26,7 +27,7 @@ public final class IconButton extends JButton {
} }
public IconButton() { public IconButton() {
this(BaseUtils.readIcon("com/fr/design/remote/images/icon_tab_close_normal.png")); this(new LazyIcon("close"));
} }
@Override @Override

21
designer-base/src/main/java/com/fr/design/remote/ui/AbstractListControlPane.java

@ -1,8 +1,12 @@
package com.fr.design.remote.ui; package com.fr.design.remote.ui;
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.base.BaseUtils;
import com.fr.design.actions.UpdateAction; import com.fr.design.actions.UpdateAction;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.border.FineBorderFactory;
import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
@ -35,8 +39,7 @@ import javax.swing.ListSelectionModel;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionListener;
import java.awt.BorderLayout; import java.awt.*;
import java.awt.CardLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -100,7 +103,6 @@ public abstract class AbstractListControlPane extends BasicPane {
// 左右分割布局 // 左右分割布局
JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, leftPane, cardPane); JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, leftPane, cardPane);
mainSplitPane.setBorder(BorderFactory.createLineBorder(GUICoreUtils.getTitleLineBorderColor()));
mainSplitPane.setOneTouchExpandable(true); mainSplitPane.setOneTouchExpandable(true);
add(mainSplitPane, BorderLayout.CENTER); add(mainSplitPane, BorderLayout.CENTER);
mainSplitPane.setDividerLocation(shortCuts.length * SHORT_WIDTH); mainSplitPane.setDividerLocation(shortCuts.length * SHORT_WIDTH);
@ -120,6 +122,12 @@ public abstract class AbstractListControlPane extends BasicPane {
toolbarDef.addShortCut(sj.getShortCut()); toolbarDef.addShortCut(sj.getShortCut());
} }
toolBar = ToolBarDef.createJToolBar(); toolBar = ToolBarDef.createJToolBar();
toolBar.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE));
toolBar.setBorder(BorderFactory.createCompoundBorder(
FineBorderFactory.createUnderlineBorder(FlatUIUtils.getUIColor("defaultBorderColor", Color.GRAY)),
new ScaledEmptyBorder(3, 0, 3, 0)
));
toolBar.setBorderPainted(true);
toolbarDef.updateToolBar(toolBar); toolbarDef.updateToolBar(toolBar);
leftPane.add(toolBar, BorderLayout.NORTH); leftPane.add(toolBar, BorderLayout.NORTH);
} }
@ -128,7 +136,9 @@ public abstract class AbstractListControlPane extends BasicPane {
private void initLeftList(JPanel leftPane) { private void initLeftList(JPanel leftPane) {
authorityList = createList(); authorityList = createList();
authorityList.setName(LIST_NAME); authorityList.setName(LIST_NAME);
authorityList.setBackground(FlatUIUtils.getUIColor("background.normal", Color.WHITE));
leftPane.add(new UIScrollPane(authorityList), BorderLayout.CENTER); leftPane.add(new UIScrollPane(authorityList), BorderLayout.CENTER);
leftPane.setBorder(FineBorderFactory.createWrappedRoundBorder());
authorityList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); authorityList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
@ -503,7 +513,7 @@ public abstract class AbstractListControlPane extends BasicPane {
AddItemUpdateAction() { AddItemUpdateAction() {
this.setName(Toolkit.i18nText("Fine-Design_Basic_Action_Choose")); this.setName(Toolkit.i18nText("Fine-Design_Basic_Action_Choose"));
this.setMnemonic('A'); this.setMnemonic('A');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/add.png")); this.setSmallIcon(new LazyIcon("add_popup"));
} }
@Override @Override
@ -572,8 +582,7 @@ public abstract class AbstractListControlPane extends BasicPane {
RemoveItemAction() { RemoveItemAction() {
this.setName(Toolkit.i18nText("Fine-Design_Basic_Action_Remove")); this.setName(Toolkit.i18nText("Fine-Design_Basic_Action_Remove"));
this.setMnemonic('R'); this.setMnemonic('R');
this.setSmallIcon(BaseUtils this.setSmallIcon(new LazyIcon("remove"));
.readIcon(IconPathConstants.TD_REMOVE_ICON_PATH));
} }
@Override @Override

36
designer-base/src/main/java/com/fr/design/remote/ui/AbstractManagerPane.java

@ -1,5 +1,11 @@
package com.fr.design.remote.ui; package com.fr.design.remote.ui;
import com.fine.theme.light.ui.FineRoundBorder;
import com.fine.theme.utils.FineUIScale;
import com.fine.theme.utils.FineUIStyle;
import com.fine.theme.utils.FineUIUtils;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.LayoutConstants;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
@ -46,6 +52,9 @@ import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.row;
/** /**
* 选择设计角色用户面板的基类 * 选择设计角色用户面板的基类
@ -197,7 +206,7 @@ public abstract class AbstractManagerPane extends BasicPane {
public AbstractManagerPane() { public AbstractManagerPane() {
this.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 4)); this.setBorder(new ScaledEmptyBorder(10, 10, 10, 10));
this.setLayout(new BorderLayout()); this.setLayout(new BorderLayout());
this.add( this.add(
TableLayoutHelper.createCommonTableLayoutPane( TableLayoutHelper.createCommonTableLayoutPane(
@ -235,22 +244,19 @@ public abstract class AbstractManagerPane extends BasicPane {
} }
protected abstract JPanel leftPanel(); protected abstract JPanel leftPanel();
protected abstract String leftPanelTitle();
private JPanel createLeftPanel() { private JPanel createLeftPanel() {
JPanel content = leftPanel(); JPanel content = leftPanel();
// 搜索 // 搜索
JPanel searchPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 5)); JPanel searchPanel = new JPanel(new BorderLayout());
searchPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));
keyField.setPreferredSize(new Dimension(270, 20));
keyField.requestFocus(); keyField.requestFocus();
keyField.addKeyListener(keyFieldKeyListener); keyField.addKeyListener(keyFieldKeyListener);
keyField.getDocument().addDocumentListener(documentListener); keyField.getDocument().addDocumentListener(documentListener);
keyButton.setIcon(BaseUtils.readIcon("com/fr/design/images/buttonicon/user_search_normal.png")); keyButton.setText(Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Search"));
keyButton.setToolTipText(Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Search"));
keyButton.addActionListener(keyButtonActionListener); keyButton.addActionListener(keyButtonActionListener);
searchPanel.add(keyField); searchPanel.add(row(10, cell(keyField).weight(0.45), cell(keyButton).weight(0.1)).getComponent());
searchPanel.add(keyButton);
// 内容列表 // 内容列表
addingListModel = new DefaultListModel<>(); addingListModel = new DefaultListModel<>();
@ -283,7 +289,10 @@ public abstract class AbstractManagerPane extends BasicPane {
content.add(searchPanel, BorderLayout.NORTH); content.add(searchPanel, BorderLayout.NORTH);
content.add(listPane, BorderLayout.CENTER); content.add(listPane, BorderLayout.CENTER);
return content;
JPanel pane = new JPanel(new BorderLayout());
pane.add(FineUIUtils.wrapComponentWithTitle(content, leftPanelTitle()));
return pane;
} }
protected abstract AddingMemberListCellRender getAddingMemberListCellRender(); protected abstract AddingMemberListCellRender getAddingMemberListCellRender();
@ -291,6 +300,7 @@ public abstract class AbstractManagerPane extends BasicPane {
protected abstract AddedMemberListCellRender getAddedMemberListCellRender(); protected abstract AddedMemberListCellRender getAddedMemberListCellRender();
protected abstract JPanel rightPanel(); protected abstract JPanel rightPanel();
protected abstract String rightPanelTitle();
private JPanel createRightPanel() { private JPanel createRightPanel() {
JPanel content = rightPanel(); JPanel content = rightPanel();
@ -301,8 +311,8 @@ public abstract class AbstractManagerPane extends BasicPane {
Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Selected_Member_Count", Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Selected_Member_Count",
String.valueOf(addedMembers.size())) String.valueOf(addedMembers.size()))
); );
countLabel.setBorder(BorderFactory.createEmptyBorder(7, 12, 8, 0)); FineUIStyle.setStyle(countLabel, FineUIStyle.LABEL_TIP);
countLabel.setForeground(new Color(0x8F8F92)); countLabel.setPreferredSize(new Dimension((int) countLabel.getPreferredSize().getWidth(), FineUIScale.scale(20)));
addedListModel = new DefaultListModel<>(); addedListModel = new DefaultListModel<>();
addedList = new AddedMemberList(addedListModel); addedList = new AddedMemberList(addedListModel);
@ -316,7 +326,9 @@ public abstract class AbstractManagerPane extends BasicPane {
content.add(countLabel, BorderLayout.NORTH); content.add(countLabel, BorderLayout.NORTH);
content.add(listPane, BorderLayout.CENTER); content.add(listPane, BorderLayout.CENTER);
return content; JPanel pane = new JPanel(new BorderLayout());
pane.add(FineUIUtils.wrapComponentWithTitle(content, rightPanelTitle()));
return pane;
} }

13
designer-base/src/main/java/com/fr/design/remote/ui/AuthorityEditorPane.java

@ -1,5 +1,7 @@
package com.fr.design.remote.ui; package com.fr.design.remote.ui;
import com.fine.theme.utils.FineUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.border.UITitledBorder; import com.fr.design.border.UITitledBorder;
import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.icontainer.UIScrollPane;
@ -30,20 +32,13 @@ public class AuthorityEditorPane extends BasicBeanPane<DesignAuthority> {
// 模板设计权限配置 // 模板设计权限配置
public AuthorityEditorPane() { public AuthorityEditorPane() {
this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.setBorder(
BorderFactory.createCompoundBorder(
new EmptyBorder(6, 0, 6, 6),
UITitledBorder.createBorderWithTitle(
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Template_Authority_Config")
)
)
);
IOFileNodeFilter filter = new IOFileNodeFilter(new String[]{".cptx", ".cpt", ".class", ".frm", ".form"}); IOFileNodeFilter filter = new IOFileNodeFilter(new String[]{".cptx", ".cpt", ".class", ".frm", ".form"});
tree.setDigIn(true); tree.setDigIn(true);
tree.setFileNodeFilter(filter); tree.setFileNodeFilter(filter);
UIScrollPane scrollPane = new UIScrollPane(tree); UIScrollPane scrollPane = new UIScrollPane(tree);
scrollPane.setBorder(BorderFactory.createEmptyBorder()); scrollPane.setBorder(BorderFactory.createEmptyBorder());
this.add(scrollPane, BorderLayout.CENTER); this.add(FineUIUtils.wrapComponentWithTitle(scrollPane, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Template_Authority_Config")), BorderLayout.CENTER);
this.setBorder(new ScaledEmptyBorder(0, 15, 0, 0));
tree.refreshEnv(); tree.refreshEnv();
} }

3
designer-base/src/main/java/com/fr/design/remote/ui/AuthorityListCustomRolePane.java

@ -1,5 +1,6 @@
package com.fr.design.remote.ui; package com.fr.design.remote.ui;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.remote.RemoteDesignAuthorityCreator; import com.fr.design.remote.RemoteDesignAuthorityCreator;
@ -15,7 +16,7 @@ public class AuthorityListCustomRolePane extends AbstractListControlPane {
new RemoteDesignAuthorityCreator( new RemoteDesignAuthorityCreator(
// 远程设计用户 // 远程设计用户
Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Custom"), Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Custom"),
BaseUtils.readIcon("com/fr/design/remote/images/icon_Member_normal@1x.png"), new LazyIcon("member"),
DesignAuthority.class, DesignAuthority.class,
AuthorityEditorPane.class) AuthorityEditorPane.class)
}; };

3
designer-base/src/main/java/com/fr/design/remote/ui/AuthorityListUserPane.java

@ -1,5 +1,6 @@
package com.fr.design.remote.ui; package com.fr.design.remote.ui;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.remote.RemoteDesignAuthorityCreator; import com.fr.design.remote.RemoteDesignAuthorityCreator;
@ -15,7 +16,7 @@ public class AuthorityListUserPane extends AbstractListControlPane {
new RemoteDesignAuthorityCreator( new RemoteDesignAuthorityCreator(
// 远程设计用户 // 远程设计用户
Toolkit.i18nText("Fine-Design_Basic_Remote_Design_User"), Toolkit.i18nText("Fine-Design_Basic_Remote_Design_User"),
BaseUtils.readIcon("com/fr/design/remote/images/icon_Member_normal@1x.png"), new LazyIcon("member"),
DesignAuthority.class, DesignAuthority.class,
AuthorityEditorPane.class) AuthorityEditorPane.class)
}; };

9
designer-base/src/main/java/com/fr/design/remote/ui/AuthorityManagerPane.java

@ -1,6 +1,7 @@
package com.fr.design.remote.ui; package com.fr.design.remote.ui;
import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.frpane.FineTabbedPane;
import com.fr.design.gui.frpane.UITabbedPane; import com.fr.design.gui.frpane.UITabbedPane;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
@ -18,12 +19,12 @@ public class AuthorityManagerPane extends BasicPane {
this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setLayout(FRGUIPaneFactory.createBorderLayout());
//Tabbed Pane //Tabbed Pane
UITabbedPane tabbedPane = new UITabbedPane(); FineTabbedPane tabbedPane = FineTabbedPane.builder()
.addTab(Toolkit.i18nText("Fine-Design_Basic_User"), userList)
.addTab(Toolkit.i18nText("Fine-Design_Basic_Role"), roleList)
.withHeadRatio(0.2f).build();
this.add(tabbedPane, BorderLayout.CENTER); this.add(tabbedPane, BorderLayout.CENTER);
tabbedPane.addTab(Toolkit.i18nText("Fine-Design_Basic_User"), userList);
tabbedPane.addTab(Toolkit.i18nText("Fine-Design_Basic_Role"), roleList);
} }
@Override @Override

37
designer-base/src/main/java/com/fr/design/remote/ui/CustomRoleManagerPane.java

@ -1,7 +1,9 @@
package com.fr.design.remote.ui; package com.fr.design.remote.ui;
import com.fine.theme.utils.FineUIUtils;
import com.fr.design.border.UITitledBorder; import com.fr.design.border.UITitledBorder;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.remote.ui.list.AddedMemberListCellRender; import com.fr.design.remote.ui.list.AddedMemberListCellRender;
import com.fr.design.remote.ui.list.AddingMemberListCellRender; import com.fr.design.remote.ui.list.AddingMemberListCellRender;
import com.fr.design.remote.ui.list.cell.AddedCustomRoleListCellRender; import com.fr.design.remote.ui.list.cell.AddedCustomRoleListCellRender;
@ -30,37 +32,26 @@ public class CustomRoleManagerPane extends AbstractManagerPane {
@Override @Override
protected JPanel rightPanel(){ protected JPanel rightPanel(){
JPanel content = new JPanel(new BorderLayout()); JPanel content = new JPanel(FRGUIPaneFactory.createScaledBorderLayout(0, 10));
content.setBorder(
BorderFactory.createCompoundBorder(
new EmptyBorder(6, 0, 0, 0),
UITitledBorder.createBorderWithTitle(
// 已选择的设计角色
Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Selected_Custom"),
4
)
)
);
return content; return content;
} }
@Override @Override
protected JPanel leftPanel(){ protected String rightPanelTitle() {
JPanel content = new JPanel(new BorderLayout()); return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Selected_Custom");
}
content.setBorder( @Override
BorderFactory.createCompoundBorder( protected JPanel leftPanel(){
new EmptyBorder(6, 0, 0, 0), JPanel content = new JPanel(FRGUIPaneFactory.createScaledBorderLayout(0, 10));
UITitledBorder.createBorderWithTitle(
// 决策系统角色
Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Decision_Custom"),
4)
)
);
return content; return content;
} }
@Override
protected String leftPanelTitle() {
return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Decision_Custom");
}
@Override @Override
protected AddingMemberListCellRender getAddingMemberListCellRender() { protected AddingMemberListCellRender getAddingMemberListCellRender() {
return new AddingCustomRoleListCellRender(); return new AddingCustomRoleListCellRender();

36
designer-base/src/main/java/com/fr/design/remote/ui/UserManagerPane.java

@ -2,6 +2,7 @@ package com.fr.design.remote.ui;
import com.fr.design.border.UITitledBorder; import com.fr.design.border.UITitledBorder;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.remote.ui.list.AddedMemberListCellRender; import com.fr.design.remote.ui.list.AddedMemberListCellRender;
import com.fr.design.remote.ui.list.AddingMemberListCellRender; import com.fr.design.remote.ui.list.AddingMemberListCellRender;
import com.fr.design.remote.ui.list.cell.AddedUserListCellRender; import com.fr.design.remote.ui.list.cell.AddedUserListCellRender;
@ -30,37 +31,26 @@ public class UserManagerPane extends AbstractManagerPane {
@Override @Override
protected JPanel rightPanel(){ protected JPanel rightPanel(){
JPanel content = new JPanel(new BorderLayout()); JPanel content = new JPanel(FRGUIPaneFactory.createScaledBorderLayout(0, 10));
content.setBorder(
BorderFactory.createCompoundBorder(
new EmptyBorder(6, 0, 0, 0),
UITitledBorder.createBorderWithTitle(
// 已选择的设计用户
Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Selected_User"),
4
)
)
);
return content; return content;
} }
@Override @Override
protected JPanel leftPanel(){ protected String rightPanelTitle() {
JPanel content = new JPanel(new BorderLayout()); return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Selected_User");
}
content.setBorder( @Override
BorderFactory.createCompoundBorder( protected JPanel leftPanel(){
new EmptyBorder(6, 0, 0, 0), JPanel content = new JPanel(FRGUIPaneFactory.createScaledBorderLayout(0, 10));
UITitledBorder.createBorderWithTitle(
// 决策系统用户
Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Decision_User"),
4)
)
);
return content; return content;
} }
@Override
protected String leftPanelTitle() {
return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Decision_User");
}
@Override @Override
protected AddingMemberListCellRender getAddingMemberListCellRender() { protected AddingMemberListCellRender getAddingMemberListCellRender() {
return new AddingUserListCellRender(); return new AddingUserListCellRender();

15
designer-base/src/main/java/com/fr/design/remote/ui/list/AddedMemberListCellRender.java

@ -1,5 +1,8 @@
package com.fr.design.remote.ui.list; package com.fr.design.remote.ui.list;
import com.fine.swing.ui.layout.Layouts;
import com.fine.theme.utils.FineUIScale;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.remote.button.IconButton; import com.fr.design.remote.button.IconButton;
import com.fr.workspace.server.authority.RemoteDesignMember; import com.fr.workspace.server.authority.RemoteDesignMember;
@ -9,9 +12,9 @@ import javax.swing.Icon;
import javax.swing.JList; import javax.swing.JList;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.ListCellRenderer; import javax.swing.ListCellRenderer;
import java.awt.BorderLayout;
import java.awt.Component; import java.awt.Component;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.FlowLayout;
public abstract class AddedMemberListCellRender extends JPanel implements ListCellRenderer<RemoteDesignMember> { public abstract class AddedMemberListCellRender extends JPanel implements ListCellRenderer<RemoteDesignMember> {
@ -19,16 +22,14 @@ public abstract class AddedMemberListCellRender extends JPanel implements ListCe
private UILabel label; private UILabel label;
public AddedMemberListCellRender() { public AddedMemberListCellRender() {
this.setBorder(BorderFactory.createEmptyBorder()); this.setBorder(new ScaledEmptyBorder(0, 4, 0, 0));
this.setLayout(new FlowLayout(FlowLayout.LEFT)); this.setLayout(new BorderLayout());
label = new UILabel(); label = new UILabel();
label.setPreferredSize(new Dimension(264, 20));
this.setPreferredSize(new Dimension(this.getPreferredSize().width, 25));
label.setIcon(getMemberIcon()); label.setIcon(getMemberIcon());
this.add(label); this.add(Layouts.row(Layouts.cell(label), Layouts.flex(), Layouts.cell(new IconButton()))
this.add(new IconButton()); .with(it -> it.setPreferredSize(new Dimension((int) it.getPreferredSize().getWidth(), FineUIScale.scale( 20)))).getComponent());
} }
@Override @Override

21
designer-base/src/main/java/com/fr/design/remote/ui/list/AddingMemberListCellRender.java

@ -1,7 +1,11 @@
package com.fr.design.remote.ui.list; package com.fr.design.remote.ui.list;
import com.fine.swing.ui.layout.Layouts;
import com.fine.theme.utils.FineUIScale;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.remote.button.IconButton;
import com.fr.workspace.server.authority.RemoteDesignMember; import com.fr.workspace.server.authority.RemoteDesignMember;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
@ -10,9 +14,7 @@ import javax.swing.JList;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.ListCellRenderer; import javax.swing.ListCellRenderer;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import java.awt.Component; import java.awt.*;
import java.awt.Dimension;
import java.awt.FlowLayout;
public abstract class AddingMemberListCellRender extends JPanel implements ListCellRenderer<RemoteDesignMember> { public abstract class AddingMemberListCellRender extends JPanel implements ListCellRenderer<RemoteDesignMember> {
@ -21,20 +23,21 @@ public abstract class AddingMemberListCellRender extends JPanel implements ListC
public AddingMemberListCellRender() { public AddingMemberListCellRender() {
this.setBorder(BorderFactory.createEmptyBorder()); this.setBorder(new ScaledEmptyBorder(0, 4, 0, 0));
this.setLayout(new FlowLayout(FlowLayout.LEFT)); this.setLayout(new BorderLayout());
label = new UILabel(); label = new UILabel();
label.setPreferredSize(new Dimension(260, 20));
this.setPreferredSize(new Dimension(this.getPreferredSize().width, 25));
label.setIcon(getMemberIcon()); label.setIcon(getMemberIcon());
check = new UICheckBox(); check = new UICheckBox();
check.setSelected(false); check.setSelected(false);
check.setEnabled(true); check.setEnabled(true);
this.add(label); label = new UILabel();
this.add(check); label.setIcon(getMemberIcon());
this.add(Layouts.row(Layouts.cell(label), Layouts.flex(), Layouts.cell(check))
.with(it -> it.setPreferredSize(new Dimension((int) it.getPreferredSize().getWidth(), FineUIScale.scale( 20)))).getComponent());
} }

5
designer-base/src/main/java/com/fr/design/remote/ui/list/AuthorityListCellRenderer.java

@ -1,5 +1,7 @@
package com.fr.design.remote.ui.list; package com.fr.design.remote.ui.list;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.report.DesignAuthority; import com.fr.report.DesignAuthority;
import sun.swing.DefaultLookup; import sun.swing.DefaultLookup;
@ -9,8 +11,7 @@ import javax.swing.JList;
import javax.swing.ListCellRenderer; import javax.swing.ListCellRenderer;
import javax.swing.border.Border; import javax.swing.border.Border;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import java.awt.Color; import java.awt.*;
import java.awt.Component;
public abstract class AuthorityListCellRenderer extends public abstract class AuthorityListCellRenderer extends
JLabel implements ListCellRenderer<DesignAuthority> { JLabel implements ListCellRenderer<DesignAuthority> {

3
designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AddedCustomRoleListCellRender.java

@ -1,5 +1,6 @@
package com.fr.design.remote.ui.list.cell; package com.fr.design.remote.ui.list.cell;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.remote.constants.MemberIcon; import com.fr.design.remote.constants.MemberIcon;
import com.fr.design.remote.ui.list.AddedMemberListCellRender; import com.fr.design.remote.ui.list.AddedMemberListCellRender;
@ -15,7 +16,7 @@ import javax.swing.Icon;
public class AddedCustomRoleListCellRender extends AddedMemberListCellRender { public class AddedCustomRoleListCellRender extends AddedMemberListCellRender {
@Override @Override
protected Icon getMemberIcon() { protected Icon getMemberIcon() {
return BaseUtils.readIcon(MemberIcon.CUSTOM_ROLE_ICON); return new LazyIcon("role");
} }
@Override @Override

3
designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AddedUserListCellRender.java

@ -1,5 +1,6 @@
package com.fr.design.remote.ui.list.cell; package com.fr.design.remote.ui.list.cell;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.remote.constants.MemberIcon; import com.fr.design.remote.constants.MemberIcon;
import com.fr.design.remote.ui.list.AddedMemberListCellRender; import com.fr.design.remote.ui.list.AddedMemberListCellRender;
@ -15,7 +16,7 @@ import javax.swing.Icon;
public class AddedUserListCellRender extends AddedMemberListCellRender { public class AddedUserListCellRender extends AddedMemberListCellRender {
@Override @Override
protected Icon getMemberIcon() { protected Icon getMemberIcon() {
return BaseUtils.readIcon(MemberIcon.USER_ICON); return new LazyIcon("member");
} }
@Override @Override

3
designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AddingCustomRoleListCellRender.java

@ -1,5 +1,6 @@
package com.fr.design.remote.ui.list.cell; package com.fr.design.remote.ui.list.cell;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.remote.constants.MemberIcon; import com.fr.design.remote.constants.MemberIcon;
import com.fr.design.remote.ui.list.AddingMemberListCellRender; import com.fr.design.remote.ui.list.AddingMemberListCellRender;
@ -15,7 +16,7 @@ import javax.swing.Icon;
public class AddingCustomRoleListCellRender extends AddingMemberListCellRender { public class AddingCustomRoleListCellRender extends AddingMemberListCellRender {
@Override @Override
protected Icon getMemberIcon() { protected Icon getMemberIcon() {
return BaseUtils.readIcon(MemberIcon.CUSTOM_ROLE_ICON); return new LazyIcon("role");
} }
@Override @Override

3
designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AddingUserListCellRender.java

@ -1,5 +1,6 @@
package com.fr.design.remote.ui.list.cell; package com.fr.design.remote.ui.list.cell;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.remote.constants.MemberIcon; import com.fr.design.remote.constants.MemberIcon;
import com.fr.design.remote.ui.list.AddingMemberListCellRender; import com.fr.design.remote.ui.list.AddingMemberListCellRender;
@ -15,7 +16,7 @@ import javax.swing.Icon;
public class AddingUserListCellRender extends AddingMemberListCellRender { public class AddingUserListCellRender extends AddingMemberListCellRender {
@Override @Override
protected Icon getMemberIcon() { protected Icon getMemberIcon() {
return BaseUtils.readIcon(MemberIcon.USER_ICON); return new LazyIcon("member");
} }
@Override @Override

3
designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AuthorityCustomRoleListCellRender.java

@ -1,5 +1,6 @@
package com.fr.design.remote.ui.list.cell; package com.fr.design.remote.ui.list.cell;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.remote.constants.MemberIcon; import com.fr.design.remote.constants.MemberIcon;
import com.fr.design.remote.ui.list.AuthorityListCellRenderer; import com.fr.design.remote.ui.list.AuthorityListCellRenderer;
@ -15,7 +16,7 @@ import javax.swing.Icon;
public class AuthorityCustomRoleListCellRender extends AuthorityListCellRenderer { public class AuthorityCustomRoleListCellRender extends AuthorityListCellRenderer {
@Override @Override
protected Icon getMemberIcon() { protected Icon getMemberIcon() {
return BaseUtils.readIcon(MemberIcon.CUSTOM_ROLE_ICON); return new LazyIcon("role");
} }
@Override @Override

3
designer-base/src/main/java/com/fr/design/remote/ui/list/cell/AuthorityUserListCellRender.java

@ -1,5 +1,6 @@
package com.fr.design.remote.ui.list.cell; package com.fr.design.remote.ui.list.cell;
import com.fine.theme.icon.LazyIcon;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.remote.constants.MemberIcon; import com.fr.design.remote.constants.MemberIcon;
import com.fr.design.remote.ui.list.AuthorityListCellRenderer; import com.fr.design.remote.ui.list.AuthorityListCellRenderer;
@ -15,7 +16,7 @@ import javax.swing.Icon;
public class AuthorityUserListCellRender extends AuthorityListCellRenderer { public class AuthorityUserListCellRender extends AuthorityListCellRenderer {
@Override @Override
protected Icon getMemberIcon() { protected Icon getMemberIcon() {
return BaseUtils.readIcon(MemberIcon.USER_ICON); return new LazyIcon("member");
} }
@Override @Override

3
designer-base/src/main/java/com/fr/design/remote/ui/tree/FileAuthorityTree.java

@ -32,6 +32,9 @@ public class FileAuthorityTree extends TemplateFileTree {
for (int i = 0, len = treeNode.getChildCount(); i < len; i++) { for (int i = 0, len = treeNode.getChildCount(); i < len; i++) {
ExpandMutableTreeNode childTreeNode = (ExpandMutableTreeNode) treeNode.getChildAt(i); ExpandMutableTreeNode childTreeNode = (ExpandMutableTreeNode) treeNode.getChildAt(i);
for (String path : paths) { for (String path : paths) {
if (path == null) {
continue;
}
TreePath tPath = getSelectingPath(childTreeNode, StringUtils.EMPTY, path, model); TreePath tPath = getSelectingPath(childTreeNode, StringUtils.EMPTY, path, model);
if (tPath != null) { if (tPath != null) {
res.add(tPath); res.add(tPath);

52
designer-base/src/main/java/com/fr/design/style/color/ColorAdjustPane.java

@ -14,7 +14,6 @@ import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics; import java.awt.Graphics;
@ -27,6 +26,8 @@ import java.awt.image.BufferedImage;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.fine.theme.utils.FineUIScale.scale;
/** /**
* 配色方案选择组合色之后可以调整颜色的组件 * 配色方案选择组合色之后可以调整颜色的组件
* *
@ -38,7 +39,11 @@ public class ColorAdjustPane extends JPanel implements UIObserver {
public static final Color[] DEFAULT_COLORS = ChartConstants.NEW_FEATURES; public static final Color[] DEFAULT_COLORS = ChartConstants.NEW_FEATURES;
private static final int COUNT_OF_ROW = 12; private int defaultMaxCountOfRow = 8;
private int maxCountOfRow = defaultMaxCountOfRow;
public static final int WIDTH = scale(20);
private static final int MAX_BUTTON = 40; private static final int MAX_BUTTON = 40;
@ -53,6 +58,12 @@ public class ColorAdjustPane extends JPanel implements UIObserver {
this(DEFAULT_COLORS); this(DEFAULT_COLORS);
} }
public ColorAdjustPane(int maxCountOfRow) {
this(DEFAULT_COLORS);
this.defaultMaxCountOfRow = maxCountOfRow;
this.maxCountOfRow = maxCountOfRow;
}
public ColorAdjustPane(Color[] colors) { public ColorAdjustPane(Color[] colors) {
iniListener(); iniListener();
createColorButton(colors); createColorButton(colors);
@ -80,22 +91,49 @@ public class ColorAdjustPane extends JPanel implements UIObserver {
this.repaint(); this.repaint();
} }
/**
* 如果颜色块长度超过当前区域则重绘 contentPane
*/
public void repaint() {
adjustCountOfRowAndRepaint();
super.repaint();
}
private void adjustCountOfRowAndRepaint() {
int size = super.getSize().width;
if (size == 0) {
return;
}
int preferSize = (colorButtons.size() + 1) * WIDTH;
int oldMaxCountOfRow = maxCountOfRow;
if (preferSize > size) {
maxCountOfRow = size / WIDTH;
} else {
maxCountOfRow = defaultMaxCountOfRow;
}
if (oldMaxCountOfRow != maxCountOfRow) {
this.removeAll();
createContentPane();
}
}
private void createContentPane() { private void createContentPane() {
VerticalFlowLayout layout = new VerticalFlowLayout(0, 0, 0); VerticalFlowLayout layout = new VerticalFlowLayout(0, 0, 0);
layout.setAlignLeft(true); layout.setAlignLeft(true);
this.setLayout(layout); this.setLayout(layout);
for (int i = 0, size = colorButtons.size(); i < size; i += COUNT_OF_ROW) { for (int i = 0, size = colorButtons.size(); i < size; i += maxCountOfRow) {
JPanel panel = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane(2, 2); JPanel panel = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane(scale(2), scale(2));
int count = i + COUNT_OF_ROW > colorButtons.size() ? colorButtons.size() : i + COUNT_OF_ROW; int count = Math.min(i + maxCountOfRow, colorButtons.size());
for (int j = i; j < count; j++) { for (int j = i; j < count; j++) {
colorButtons.get(j).setLastButton(false); colorButtons.get(j).setLastButton(false);
panel.add(colorButtons.get(j)); panel.add(colorButtons.get(j));
} }
if (i + COUNT_OF_ROW > colorButtons.size()) { if (i + maxCountOfRow > colorButtons.size()) {
panel.add(new AddColorButton()); panel.add(new AddColorButton());
this.add(panel); this.add(panel);
} else if (i + COUNT_OF_ROW == colorButtons.size() && colorButtons.size() != MAX_BUTTON) { } else if (i + maxCountOfRow == colorButtons.size() && colorButtons.size() != MAX_BUTTON) {
this.add(panel); this.add(panel);
this.add(new AddColorButton()); this.add(new AddColorButton());
} else { } else {

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

@ -1,5 +1,6 @@
package com.fr.design.style.color; package com.fr.design.style.color;
import com.fine.theme.utils.FineUIScale;
import com.fr.base.BaseUtils; import com.fr.base.BaseUtils;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
@ -25,7 +26,7 @@ public class ColorButton extends JComponent implements ColorSelectable {
private static final double DEL_WIDTH = 7; private static final double DEL_WIDTH = 7;
public static final int WIDTH = 18; public static final int WIDTH = FineUIScale.scale(18);
private BufferedImage closeIcon = BaseUtils.readImageWithCache("com/fr/design/images/toolbarbtn/chartChangeClose.png"); private BufferedImage closeIcon = BaseUtils.readImageWithCache("com/fr/design/images/toolbarbtn/chartChangeClose.png");

3
designer-base/src/main/java/com/fr/design/versioncheck/VersionCheckUtils.java

@ -1,5 +1,6 @@
package com.fr.design.versioncheck; package com.fr.design.versioncheck;
import com.fine.theme.utils.FineUIScale;
import com.fr.base.FRContext; import com.fr.base.FRContext;
import com.fr.design.DesignerEnvManager; import com.fr.design.DesignerEnvManager;
import com.fr.design.dialog.NotificationDialog; import com.fr.design.dialog.NotificationDialog;
@ -146,7 +147,7 @@ public class VersionCheckUtils {
CheckServiceDialog checkServiceDialog = new CheckServiceDialog(DesignerContext.getDesignerFrame(), GeneralUtils.readFullBuildNO(), getRemoteBranch(envName), getNoExistServiceDescription(envName)); CheckServiceDialog checkServiceDialog = new CheckServiceDialog(DesignerContext.getDesignerFrame(), GeneralUtils.readFullBuildNO(), getRemoteBranch(envName), getNoExistServiceDescription(envName));
checkServiceDialog.setVisible(true); checkServiceDialog.setVisible(true);
} }
},DesignSizeI18nManager.getInstance().i18nDimension("com.fr.design.version.check.dialog")); }, FineUIScale.scale(DesignSizeI18nManager.getInstance().i18nDimension("com.fr.design.version.check.dialog")));
notificationDialog.setVisible(true); notificationDialog.setVisible(true);
} }

11
designer-base/src/main/resources/com/fine/theme/icon/close/platform_close_disable.svg

@ -0,0 +1,11 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_6669_103730)">
<circle cx="16" cy="16" r="16" fill="#0A1C38" fill-opacity="0.29"/>
<path d="M7.51451 7.51479C7.08493 7.94436 7.08493 8.64085 7.51451 9.07042L14.4442 16.0001L7.51457 22.9296C7.085 23.3592 7.085 24.0557 7.51457 24.4853C7.94415 24.9149 8.64063 24.9149 9.07021 24.4853L15.9998 17.5557L22.9294 24.4854C23.359 24.9149 24.0555 24.9149 24.4851 24.4854C24.9146 24.0558 24.9146 23.3593 24.4851 22.9297L17.5554 16.0001L24.4851 9.07035C24.9147 8.64077 24.9147 7.94429 24.4851 7.51471C24.0556 7.08514 23.3591 7.08514 22.9295 7.51471L15.9998 14.4444L9.07014 7.51479C8.64057 7.08521 7.94409 7.08521 7.51451 7.51479Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_6669_103730">
<rect width="32" height="32" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 871 B

3
designer-base/src/main/resources/com/fine/theme/icon/toolbar/member.svg

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.5003 10.5C22.5003 14.0899 19.5902 17 16.0003 17C12.4105 17 9.50031 14.0899 9.50031 10.5C9.50031 6.91015 12.4105 4 16.0003 4C19.5902 4 22.5003 6.91015 22.5003 10.5ZM20.4603 17.7373C22.8847 16.2401 24.5003 13.5587 24.5003 10.5C24.5003 5.80558 20.6947 2 16.0003 2C11.3059 2 7.50031 5.80558 7.50031 10.5C7.50031 13.5483 9.1049 16.2218 11.5155 17.7219C6.59805 19.3691 2.89784 23.6715 2.11765 28.9264C2.03196 29.5035 2.49632 30 3.0798 30C3.60332 30 4.0348 29.5968 4.11792 29.0799C5.03694 23.3652 9.99126 19 15.9651 19C21.939 19 26.8933 23.3652 27.8124 29.0799C27.8955 29.5968 28.327 30 28.8505 30C29.434 30 29.8983 29.5035 29.8126 28.9264C29.0348 23.6878 25.3551 19.3957 20.4603 17.7373Z" fill="#0A1C38" fill-opacity="0.9"/>
</svg>

After

Width:  |  Height:  |  Size: 875 B

3
designer-base/src/main/resources/com/fine/theme/icon/toolbar/role.svg

@ -0,0 +1,3 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.0003 17C19.5902 17 22.5003 14.0899 22.5003 10.5C22.5003 6.91015 19.5902 4 16.0003 4C12.4105 4 9.50031 6.91015 9.50031 10.5C9.50031 14.0899 12.4105 17 16.0003 17ZM24.5003 10.5C24.5003 13.5587 22.8847 16.2401 20.4603 17.7373C25.3551 19.3957 29.0348 23.6878 29.8126 28.9264C29.8983 29.5035 29.434 30 28.8505 30C28.327 30 27.8955 29.5968 27.8124 29.0799C26.9716 23.8516 22.7531 19.7528 17.4665 19.093L18.9349 25.1019C18.9754 25.2679 18.9284 25.4431 18.8102 25.5665L16.3611 28.1231C16.1642 28.3286 15.8358 28.3286 15.6389 28.1231L13.1898 25.5665C13.0716 25.4431 13.0246 25.2679 13.0651 25.1019L14.5357 19.0843C9.21541 19.7158 4.96252 23.828 4.11792 29.0799C4.0348 29.5968 3.60332 30 3.0798 30C2.49632 30 2.03196 29.5035 2.11765 28.9264C2.89784 23.6715 6.59805 19.3691 11.5155 17.7219C9.1049 16.2218 7.50031 13.5483 7.50031 10.5C7.50031 5.80558 11.3059 2 16.0003 2C20.6947 2 24.5003 5.80558 24.5003 10.5Z" fill="#23334C"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

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

@ -288,6 +288,8 @@
"templateStore": "toolbar/templateStore.svg", "templateStore": "toolbar/templateStore.svg",
"bug": "toolbar/bug.svg", "bug": "toolbar/bug.svg",
"need": "toolbar/need.svg", "need": "toolbar/need.svg",
"member": "toolbar/member.svg",
"role": "toolbar/role.svg",
"workOrderCenter": "toolbar/workOrderCenter.svg", "workOrderCenter": "toolbar/workOrderCenter.svg",
"actCenter": "toolbar/actCenter.svg", "actCenter": "toolbar/actCenter.svg",
"sign": "toolbar/sign.svg", "sign": "toolbar/sign.svg",
@ -324,6 +326,7 @@
"close_round": "close/close_round.svg", "close_round": "close/close_round.svg",
"closeTag": "close/closeTag.svg", "closeTag": "close/closeTag.svg",
"platform_close": "close/platform_close.svg", "platform_close": "close/platform_close.svg",
"platform_close_disabled": "close/platform_close_disable.svg",
"add_parenthesis": "font/add_parenthesis.svg", "add_parenthesis": "font/add_parenthesis.svg",
"remove_parenthesis": "font/remove_parenthesis.svg", "remove_parenthesis": "font/remove_parenthesis.svg",
"shadow": "font/shadow.svg", "shadow": "font/shadow.svg",

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

@ -33,14 +33,17 @@
# font weights # font weights
# Windows # Windows
[win]defaultFont = "Microsoft YaHei", "Microsoft JhengHei", MingLiU, Arial [win]defaultFont = "Microsoft YaHei", "Microsoft JhengHei", MingLiU, Arial
[win]titleFont = 14, "Microsoft YaHei", "Microsoft JhengHei", MingLiU, Arial
[win]light.font = "Microsoft YaHei", "Microsoft JhengHei", MingLiU, "Arial [win]light.font = "Microsoft YaHei", "Microsoft JhengHei", MingLiU, "Arial
[win]semibold.font = "Microsoft YaHei", "Microsoft JhengHei", MingLiU, Arial [win]semibold.font = "Microsoft YaHei", "Microsoft JhengHei", MingLiU, Arial
# macOS # macOS
[mac]defaultFont = 12 "PingFang SC", "Apple LiGothic", "Apple LiSun", Arial [mac]defaultFont = 12 "PingFang SC", "Apple LiGothic", "Apple LiSun", Arial
[mac]titleFont = 14 "PingFang SC", "Apple LiGothic", "Apple LiSun", Arial
[mac]light.font = "PingFang SC", "Apple LiGothic", "Apple LiSun", Arial [mac]light.font = "PingFang SC", "Apple LiGothic", "Apple LiSun", Arial
[mac]semibold.font = "PingFang SC", "Apple LiGothic", "Apple LiSun", Arial [mac]semibold.font = "PingFang SC", "Apple LiGothic", "Apple LiSun", Arial
# Linux # Linux
[linux]defaultFont = 12 "Noto SansCJK", SimHei, Arial, Ubuntu [linux]defaultFont = 12 "Noto SansCJK", SimHei, Arial, Ubuntu
[linux]titleFont = 14 "Noto SansCJK", SimHei, Arial, Ubuntu
[linux]light.font = "Noto SansCJK", SimHei, Arial, Ubuntu [linux]light.font = "Noto SansCJK", SimHei, Arial, Ubuntu
[linux]semibold.font = "Noto SansCJK", SimHei, Arial, Ubuntu [linux]semibold.font = "Noto SansCJK", SimHei, Arial, Ubuntu
@ -944,6 +947,7 @@ TextArea.selectionBackground=$color.brand4
TextArea.selectionForeground=$text.white TextArea.selectionForeground=$text.white
TextArea.inactiveForeground=fade(@foreground, 29%) TextArea.inactiveForeground=fade(@foreground, 29%)
TextArea.disabledBackground=$fill.disabled TextArea.disabledBackground=$fill.disabled
TextArea.currentLineHighlightColor=#fffae8
#---- TextComponent ---- #---- TextComponent ----
@ -1336,6 +1340,9 @@ chart.selectedBorderColor = #2576EF
[style]Label.boldLabel = \ [style]Label.boldLabel = \
font: bold $defaultFont font: bold $defaultFont
[style]Label.tipWindowTitleLabel = \
font: bold $titleFont
[style]Label.tipLabel = \ [style]Label.tipLabel = \
foreground: $Label.tipColor foreground: $Label.tipColor

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

@ -25,7 +25,7 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600 com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=350*65 com.fr.design.file.MultiTemplateTabPane.popUpMenu=350*65
com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600 com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600
com.fr.design.formula.FormulaPane=900*600 com.fr.design.formula.FormulaPane=1200*640
com.fr.design.formula.FormulaPaneWhenReserveFormula=1200*600 com.fr.design.formula.FormulaPaneWhenReserveFormula=1200*600
com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=130*20 com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=130*20
com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=140*20 com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=140*20

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

@ -24,7 +24,7 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600 com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=240*65 com.fr.design.file.MultiTemplateTabPane.popUpMenu=240*65
com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600 com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600
com.fr.design.formula.FormulaPane=900*600 com.fr.design.formula.FormulaPane=900*640
com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600 com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600
com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=100*20 com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=100*20
com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=130*20 com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=130*20

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

@ -24,7 +24,7 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600 com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=240*65 com.fr.design.file.MultiTemplateTabPane.popUpMenu=240*65
com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600 com.fr.design.data.datapane.preview.desensitization.view.rule.DesensitizationRuleChoosePane.ruleEditPane=800*600
com.fr.design.formula.FormulaPane=900*600 com.fr.design.formula.FormulaPane=900*640
com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600 com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600
com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=75*20 com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=75*20
com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=100*20 com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=100*20

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

@ -4,7 +4,7 @@ com.fr.design.mainframe.check.CheckFontInfoDialog.collapse=360*185
com.fr.design.mainframe.check.CheckFontInfoDialog.messageWithLink=325*31 com.fr.design.mainframe.check.CheckFontInfoDialog.messageWithLink=325*31
com.fr.design.mainframe.check.CheckFontInfoDialog.unfold=360*280 com.fr.design.mainframe.check.CheckFontInfoDialog.unfold=360*280
com.fr.env.RemoteEnvPane.dialog=308*132 com.fr.env.RemoteEnvPane.dialog=308*132
com.fr.design.version.check.dialog=230*95 com.fr.design.version.check.dialog=360*160
com.fr.design.version.detail.label=450*30 com.fr.design.version.detail.label=450*30
com.fr.design.version.detail.dialog=600*500 com.fr.design.version.detail.dialog=600*500
com.fr.env.SyncFailedPluginsDialog.messageWithLink=316*20 com.fr.env.SyncFailedPluginsDialog.messageWithLink=316*20
@ -13,7 +13,7 @@ com.fr.design.actions.server.dialog=660*600
com.fr.design.report.fit.templatePane.dialog=600*400 com.fr.design.report.fit.templatePane.dialog=600*400
com.fr.design.report.fit.firstColumn=80*20 com.fr.design.report.fit.firstColumn=80*20
com.fr.design.report.fit.column=100*20 com.fr.design.report.fit.column=100*20
com.fr.design.lock.LockInfoDialog=400*180 com.fr.design.lock.LockInfoDialog=360*160
com.fr.design.mainframe.ForbiddenPane.refreshButton=68*24 com.fr.design.mainframe.ForbiddenPane.refreshButton=68*24
com.fr.start.common.DesignerOpenEmptyPanel.createButton=70*24 com.fr.start.common.DesignerOpenEmptyPanel.createButton=70*24
com.fr.design.cell.expand.sort.pane=227*155 com.fr.design.cell.expand.sort.pane=227*155
@ -24,7 +24,7 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.dialog=600*500
com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369 com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=660*600 com.fr.design.report.WatermarkSettingPane=660*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=170*65 com.fr.design.file.MultiTemplateTabPane.popUpMenu=170*65
com.fr.design.formula.FormulaPane=900*600 com.fr.design.formula.FormulaPane=900*640
com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600 com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600
com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=75*20 com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=75*20
com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=100*20 com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=100*20

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

@ -23,7 +23,7 @@ com.fr.design.plugin.remind.PluginInvalidateRemindDialog.dialog=600*500
com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369 com.fr.design.plugin.remind.PluginInvalidateRemindDialog.centerPane=580*369
com.fr.design.report.WatermarkSettingPane=720*600 com.fr.design.report.WatermarkSettingPane=720*600
com.fr.design.file.MultiTemplateTabPane.popUpMenu=170*65 com.fr.design.file.MultiTemplateTabPane.popUpMenu=170*65
com.fr.design.formula.FormulaPane=900*600 com.fr.design.formula.FormulaPane=900*640
com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600 com.fr.design.formula.FormulaPaneWhenReserveFormula=900*600
com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=75*20 com.fr.design.mainframe.mobile.ui.MobileStyleDefinePane.configLabel=75*20
com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=100*20 com.fr.design.mainframe.mobile.utils.DesignerUtils.configLabel=100*20

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

@ -1,6 +1,7 @@
package com.fr.design.mainframe.chart.gui.style.series; package com.fr.design.mainframe.chart.gui.style.series;
import com.fine.theme.utils.FineLayoutBuilder; import com.fine.theme.utils.FineLayoutBuilder;
import com.fine.theme.utils.FineUIScale;
import com.fr.base.BaseFormula; import com.fr.base.BaseFormula;
import com.fr.chart.base.AreaColor; import com.fr.chart.base.AreaColor;
import com.fr.chart.base.ChartBaseUtils; import com.fr.chart.base.ChartBaseUtils;
@ -44,6 +45,7 @@ import java.awt.event.MouseEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.theme.utils.FineUIScale.scale; import static com.fine.theme.utils.FineUIScale.scale;
public class UIColorPickerPane extends BasicPane implements UIObserver { public class UIColorPickerPane extends BasicPane implements UIObserver {
@ -55,7 +57,7 @@ public class UIColorPickerPane extends BasicPane implements UIObserver {
private static final int COLOR_REC_WIDTH = scale(30); private static final int COLOR_REC_WIDTH = scale(30);
protected static final int TEXTFIELD_HEIGHT = scale(20); protected static final int TEXTFIELD_HEIGHT = scale(20);
protected static final int TEXTFIELD_WIDTH = scale(130); protected static final int TEXTFIELD_WIDTH = scale(130);
protected static final int UPCONTROLPANE_WIDTH = scale(218); protected static final int UPCONTROLPANE_WIDTH = scale(224);
private static final int LAYOUR_DET = scale(6); private static final int LAYOUR_DET = scale(6);
public static final double VALUE = 100; public static final double VALUE = 100;
@ -652,7 +654,7 @@ public class UIColorPickerPane extends BasicPane implements UIObserver {
}; };
protected int getBoundX() { protected int getBoundX() {
return MARGIN_LEFT; return 0;
} }
protected int getBoundY() { protected int getBoundY() {

3
designer-chart/src/main/java/com/fr/design/module/ChartPreFillStylePane.java

@ -50,6 +50,7 @@ public class ChartPreFillStylePane extends BasicBeanPane<ChartColorMatching> {
private final Integer COLOR_ADJUST_PANE_WIDTH = 240; private final Integer COLOR_ADJUST_PANE_WIDTH = 240;
private final Integer COLOR_ADJUST_PANE_HEIGHT = 88; private final Integer COLOR_ADJUST_PANE_HEIGHT = 88;
private final Integer MAX_COLOR_COUNT_OF_ROW = 12;
public ChartPreFillStylePane() { public ChartPreFillStylePane() {
initComponents(); initComponents();
@ -62,7 +63,7 @@ public class ChartPreFillStylePane extends BasicBeanPane<ChartColorMatching> {
groupButton.setSelectedIndex(0); groupButton.setSelectedIndex(0);
changeColorSetPane = new JPanel(cardLayout = new CardLayout()); changeColorSetPane = new JPanel(cardLayout = new CardLayout());
changeColorSetPane.add(colorGradient = new FixedGradientBarNoTheme(4, 150), "gradient"); changeColorSetPane.add(colorGradient = new FixedGradientBarNoTheme(4, 150), "gradient");
changeColorSetPane.add(colorAdjustPane = new ColorAdjustPane(), "acc"); changeColorSetPane.add(colorAdjustPane = new ColorAdjustPane(MAX_COLOR_COUNT_OF_ROW), "acc");
cardLayout.show(changeColorSetPane, "acc"); cardLayout.show(changeColorSetPane, "acc");
colorGradient.getSelectColorPointBtnP1().setColorInner(Color.WHITE); colorGradient.getSelectColorPointBtnP1().setColorInner(Color.WHITE);

17
designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java

@ -1,7 +1,9 @@
package com.fr.van.chart.designer.component; package com.fr.van.chart.designer.component;
import com.fine.swing.ui.layout.Layouts;
import com.fine.theme.utils.FineLayoutBuilder; import com.fine.theme.utils.FineLayoutBuilder;
import com.fine.theme.utils.FineUIScale; import com.fine.theme.utils.FineUIScale;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.design.beans.BasicBeanPane; import com.fr.design.beans.BasicBeanPane;
import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicDialog;
import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.DialogActionAdapter;
@ -52,10 +54,6 @@ import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.fine.swing.ui.layout.Layouts.cell;
import static com.fine.swing.ui.layout.Layouts.column;
import static com.fine.swing.ui.layout.Layouts.row;
/** /**
* 数据点提示内容界面含有通用设置富文本编辑器自定义JS界面 * 数据点提示内容界面含有通用设置富文本编辑器自定义JS界面
*/ */
@ -300,7 +298,8 @@ public class VanChartTooltipContentPane extends BasicBeanPane<AttrTooltipContent
new Component[]{new UILabel(getLabelContentTitle()), formatContent} new Component[]{new UILabel(getLabelContentTitle()), formatContent}
}; };
return FineLayoutBuilder.compatibleTableLayout(0, components, new double[]{1.2, 3}); return Layouts.cell(FineLayoutBuilder.compatibleTableLayout(0, components, new double[]{1.2, 3}))
.with(it ->it.setBorder(new ScaledEmptyBorder(0, 0, 10, 0))).getComponent();
} }
public JPanel createCommonStylePane() { public JPanel createCommonStylePane() {
@ -310,11 +309,11 @@ public class VanChartTooltipContentPane extends BasicBeanPane<AttrTooltipContent
}); });
textAttrPane = createChartTextAttrPane(); textAttrPane = createChartTextAttrPane();
stylePanel = column(10, stylePanel = Layouts.column(10,
row( Layouts.row(
cell(new UILabel(Toolkit.i18nText("Fine-Design_Chart_Widget_Style"))).weight(1.2), cell(styleButton).weight(3) Layouts.cell(new UILabel(Toolkit.i18nText("Fine-Design_Chart_Widget_Style"))).weight(1.2), Layouts.cell(styleButton).weight(3)
), ),
cell(textAttrPane) Layouts.cell(textAttrPane)
).getComponent(); ).getComponent();
initStyleButtonListener(); initStyleButtonListener();

8
designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTrendLinePane.java

@ -1,6 +1,7 @@
package com.fr.van.chart.designer.component; package com.fr.van.chart.designer.component;
import com.fine.theme.utils.FineLayoutBuilder; import com.fine.theme.utils.FineLayoutBuilder;
import com.formdev.flatlaf.util.ScaledEmptyBorder;
import com.fr.chart.base.AttrColor; import com.fr.chart.base.AttrColor;
import com.fr.chart.base.AttrLineStyle; import com.fr.chart.base.AttrLineStyle;
import com.fr.chart.base.LineStyleInfo; import com.fr.chart.base.LineStyleInfo;
@ -69,14 +70,15 @@ public class VanChartTrendLinePane extends BasicPane{
afterPeriod = new UISpinner(0, Integer.MAX_VALUE, 1, 0); afterPeriod = new UISpinner(0, Integer.MAX_VALUE, 1, 0);
double[] r = {p, p}; double[] r = {p, p};
double[] c = {f, p, f, p}; double[] c = {p, f, p};
Component[][] periodComps = new Component[][]{ Component[][] periodComps = new Component[][]{
new Component[]{prePeriod, new UILabel(Toolkit.i18nText("Fine-Design_Chart_Cycle")), afterPeriod, new UILabel(Toolkit.i18nText("Fine-Design_Chart_Cycle"))}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_TrendLine_Forward")), prePeriod, new UILabel(Toolkit.i18nText("Fine-Design_Chart_Cycle"))},
new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_TrendLine_Forward")), null, new UILabel(Toolkit.i18nText("Fine-Design_Chart_After_Period")), null}, new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_After_Period")), afterPeriod, new UILabel(Toolkit.i18nText("Fine-Design_Chart_Cycle"))},
}; };
JPanel periodPane = TableLayoutHelper.createTableLayoutPane(periodComps, r, c); JPanel periodPane = TableLayoutHelper.createTableLayoutPane(periodComps, r, c);
UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Period")); UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Period"));
label.setBorder(new ScaledEmptyBorder(3, 0, 3, 0));
label.setVerticalAlignment(SwingConstants.TOP); label.setVerticalAlignment(SwingConstants.TOP);
Component[][] components = new Component[][]{ Component[][] components = new Component[][]{

2
designer-chart/src/main/java/com/fr/van/chart/designer/style/label/VanChartGaugeLabelDetailPane.java

@ -31,7 +31,6 @@ import java.awt.event.ActionListener;
*/ */
public class VanChartGaugeLabelDetailPane extends VanChartPlotLabelDetailPane { public class VanChartGaugeLabelDetailPane extends VanChartPlotLabelDetailPane {
private static final int TEXT_FONT_PANE_HEIGHT = 50;
private GaugeStyle gaugeStyle; private GaugeStyle gaugeStyle;
private UIButtonGroup<Integer> align; private UIButtonGroup<Integer> align;
private JPanel alignPane; private JPanel alignPane;
@ -210,7 +209,6 @@ public class VanChartGaugeLabelDetailPane extends VanChartPlotLabelDetailPane {
protected void checkStyleUse() { protected void checkStyleUse() {
textFontPane.setVisible(true); textFontPane.setVisible(true);
textFontPane.setPreferredSize(new Dimension(0, TEXT_FONT_PANE_HEIGHT));
} }
protected boolean hasLabelAlign() { protected boolean hasLabelAlign() {

1
designer-chart/src/main/java/com/fr/van/chart/gantt/designer/style/series/VanChartGanttSeriesPane.java

@ -42,6 +42,7 @@ public class VanChartGanttSeriesPane extends VanChartAbstractPlotSeriesPane {
contentPane = FineLayoutBuilder.createVerticalLayout(0, contentPane = FineLayoutBuilder.createVerticalLayout(0,
createGanntStylePane(), createGanntStylePane(),
createLinkLinePane(), createLinkLinePane(),
createMarkerPane(),
createLargeDataModelPane(), createLargeDataModelPane(),
createGuideLinePane() createGuideLinePane()
); );

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

@ -115,7 +115,7 @@ public class VanChartGaugeSeriesPane extends VanChartMultiColorSeriesPane {
} }
protected JPanel createColorDividePane() { protected JPanel createColorDividePane() {
JPanel panel = new JPanel(new BorderLayout(0, 0)); JPanel panel = new JPanel(new BorderLayout(0, FineUIScale.scale(10)));
valueFillStylePane = getVanChartFillStylePane(); valueFillStylePane = getVanChartFillStylePane();
JPanel stylePane = valueFillStylePane == null ? new JPanel() : valueFillStylePane; JPanel stylePane = valueFillStylePane == null ? new JPanel() : valueFillStylePane;

Loading…
Cancel
Save