diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_bottom_align.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_bottom_align.svg new file mode 100644 index 0000000000..25544d99e1 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_bottom_align.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_bottom_align_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_bottom_align_disable.svg new file mode 100644 index 0000000000..a3f5e89fb5 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_bottom_align_disable.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_center.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_center.svg new file mode 100644 index 0000000000..0686dc97bf --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_center.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_center_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_center_disable.svg new file mode 100644 index 0000000000..15185165ab --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_center_disable.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_distribute.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_distribute.svg new file mode 100644 index 0000000000..0cb2dba130 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_distribute.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_distribute_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_distribute_disable.svg new file mode 100644 index 0000000000..bdbc4cb218 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_horizontal_distribute_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_left_align.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_left_align.svg new file mode 100644 index 0000000000..f611b29c34 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_left_align.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_left_align_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_left_align_disable.svg new file mode 100644 index 0000000000..2dad9aa3c1 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_left_align_disable.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_right_align.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_right_align.svg new file mode 100644 index 0000000000..d914b29fef --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_right_align.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_right_align_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_right_align_disable.svg new file mode 100644 index 0000000000..1e2368cc87 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_right_align_disable.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_top_align.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_top_align.svg new file mode 100644 index 0000000000..efc6bd391d --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_top_align.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_top_align_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_top_align_disable.svg new file mode 100644 index 0000000000..2087739095 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_top_align_disable.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_center.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_center.svg new file mode 100644 index 0000000000..0fd18a1aa4 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_center.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_center_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_center_disable.svg new file mode 100644 index 0000000000..0479e03629 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_center_disable.svg @@ -0,0 +1,4 @@ + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_distribute.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_distribute.svg new file mode 100644 index 0000000000..45c0fdea12 --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_distribute.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_distribute_disable.svg b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_distribute_disable.svg new file mode 100644 index 0000000000..4c799c85cf --- /dev/null +++ b/designer-base/src/main/resources/com/fine/theme/icon/arrange/arrange_vertical_distribute_disable.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json b/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json index 3d09c571bf..475c24d733 100644 --- a/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json +++ b/designer-base/src/main/resources/com/fine/theme/light/ui/fine_light.icon.json @@ -472,7 +472,14 @@ "layout_top_right": "layout/layout_top_right.svg", "theme_edit": "theme_edit.svg", "folder_half_authority" : "filetree/folder_half_authority.svg", - "folder_half_authority_open" : "filetree/folder_half_authority_open.svg" - + "folder_half_authority_open" : "filetree/folder_half_authority_open.svg", + "arrange_left_align": "arrange/arrange_left_align.svg", + "arrange_horizontal_center": "arrange/arrange_horizontal_center.svg", + "arrange_right_align": "arrange/arrange_right_align.svg", + "arrange_top_align": "arrange/arrange_top_align.svg", + "arrange_vertical_center": "arrange/arrange_vertical_center.svg", + "arrange_bottom_align": "arrange/arrange_bottom_align.svg", + "arrange_horizontal_distribute": "arrange/arrange_horizontal_distribute.svg", + "arrange_vertical_distribute": "arrange/arrange_vertical_distribute.svg" } } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/AbstractMultiSelectionArrangementButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/AbstractMultiSelectionArrangementButton.java index 9474295049..2bfd21a30c 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/AbstractMultiSelectionArrangementButton.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/AbstractMultiSelectionArrangementButton.java @@ -1,10 +1,13 @@ package com.fr.design.mainframe.widget.arrangement.buttons; +import com.fine.theme.icon.LazyIcon; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.mainframe.MultiSelectionArrangement; +import com.fr.stable.StringUtils; +import javax.swing.Icon; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -16,11 +19,21 @@ public abstract class AbstractMultiSelectionArrangementButton extends UIButton i public AbstractMultiSelectionArrangementButton(MultiSelectionArrangement arrangement) { super(); this.arrangement = arrangement; - this.setNormalPainted(false); - this.setBorderPaintedOnlyWhenPressed(true); - this.setIcon(getIcon()); this.setToolTipText(getTipText()); this.addActionListener(getActionListener()); + setBorderPainted(false); + setBackground(null); + setBackground(null); + } + + @Override + public Icon getIcon() { + LazyIcon icon = new LazyIcon(getIconId()); + return isEnabled() ? icon : icon.disabled(); + } + + public String getIconId() { + return StringUtils.EMPTY; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/BottomAlignButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/BottomAlignButton.java index 97974298a5..8cacba2055 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/BottomAlignButton.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/BottomAlignButton.java @@ -3,9 +3,6 @@ package com.fr.design.mainframe.widget.arrangement.buttons; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.ArrangementType; import com.fr.design.mainframe.MultiSelectionArrangement; -import com.fr.general.IOUtils; - -import javax.swing.Icon; public class BottomAlignButton extends AbstractMultiSelectionArrangementButton { private static final long serialVersionUID = 2397455240682353024L; @@ -15,8 +12,8 @@ public class BottomAlignButton extends AbstractMultiSelectionArrangementButton { } @Override - public Icon getIcon() { - return IOUtils.readIcon("/com/fr/design/images/buttonicon/multi_selection_bottom_align.png"); + public String getIconId() { + return "arrange_bottom_align"; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalCenterButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalCenterButton.java index ec8f315df2..d55cd0b0c9 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalCenterButton.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalCenterButton.java @@ -3,9 +3,6 @@ package com.fr.design.mainframe.widget.arrangement.buttons; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.ArrangementType; import com.fr.design.mainframe.MultiSelectionArrangement; -import com.fr.general.IOUtils; - -import javax.swing.Icon; public class HorizontalCenterButton extends AbstractMultiSelectionArrangementButton { private static final long serialVersionUID = 6290178236460051049L; @@ -15,8 +12,8 @@ public class HorizontalCenterButton extends AbstractMultiSelectionArrangementBut } @Override - public Icon getIcon() { - return IOUtils.readIcon("/com/fr/design/images/buttonicon/multi_selection_horizontal_center_align.png"); + public String getIconId() { + return "arrange_horizontal_center"; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalDistributionButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalDistributionButton.java index 0702248ed4..3b2c057b41 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalDistributionButton.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/HorizontalDistributionButton.java @@ -3,9 +3,6 @@ package com.fr.design.mainframe.widget.arrangement.buttons; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.ArrangementType; import com.fr.design.mainframe.MultiSelectionArrangement; -import com.fr.general.IOUtils; - -import javax.swing.Icon; public class HorizontalDistributionButton extends AbstractMultiSelectionArrangementButton { private static final long serialVersionUID = 5052092252720664954L; @@ -15,8 +12,8 @@ public class HorizontalDistributionButton extends AbstractMultiSelectionArrangem } @Override - public Icon getIcon() { - return IOUtils.readIcon("/com/fr/design/images/buttonicon/multi_selection_horizontal_auto_spacing.png"); + public String getIconId() { + return "arrange_horizontal_distribute"; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/LeftAlignButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/LeftAlignButton.java index 02a6a2c796..09f2a282cd 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/LeftAlignButton.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/LeftAlignButton.java @@ -3,9 +3,6 @@ package com.fr.design.mainframe.widget.arrangement.buttons; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.ArrangementType; import com.fr.design.mainframe.MultiSelectionArrangement; -import com.fr.general.IOUtils; - -import javax.swing.Icon; public class LeftAlignButton extends AbstractMultiSelectionArrangementButton { private static final long serialVersionUID = -8177637788632733710L; @@ -15,8 +12,8 @@ public class LeftAlignButton extends AbstractMultiSelectionArrangementButton { } @Override - public Icon getIcon() { - return IOUtils.readIcon("/com/fr/design/images/buttonicon/multi_selection_left_align.png"); + public String getIconId() { + return "arrange_left_align"; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/RightAlignButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/RightAlignButton.java index 1b047b6ba8..2112758564 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/RightAlignButton.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/RightAlignButton.java @@ -3,9 +3,6 @@ package com.fr.design.mainframe.widget.arrangement.buttons; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.ArrangementType; import com.fr.design.mainframe.MultiSelectionArrangement; -import com.fr.general.IOUtils; - -import javax.swing.Icon; public class RightAlignButton extends AbstractMultiSelectionArrangementButton { private static final long serialVersionUID = -8698936349956288409L; @@ -15,8 +12,8 @@ public class RightAlignButton extends AbstractMultiSelectionArrangementButton { } @Override - public Icon getIcon() { - return IOUtils.readIcon("/com/fr/design/images/buttonicon/multi_selection_right_align.png"); + public String getIconId() { + return "arrange_right_align"; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/TopAlignButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/TopAlignButton.java index 0adfb9378e..fb551282d7 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/TopAlignButton.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/TopAlignButton.java @@ -3,9 +3,6 @@ package com.fr.design.mainframe.widget.arrangement.buttons; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.ArrangementType; import com.fr.design.mainframe.MultiSelectionArrangement; -import com.fr.general.IOUtils; - -import javax.swing.Icon; public class TopAlignButton extends AbstractMultiSelectionArrangementButton { private static final long serialVersionUID = 2896267783075870924L; @@ -15,8 +12,8 @@ public class TopAlignButton extends AbstractMultiSelectionArrangementButton { } @Override - public Icon getIcon() { - return IOUtils.readIcon("/com/fr/design/images/buttonicon/multi_selection_top_align.png"); + public String getIconId() { + return "arrange_top_align"; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalCenterButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalCenterButton.java index 4fb8b62a28..77c1255cbd 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalCenterButton.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalCenterButton.java @@ -3,9 +3,6 @@ package com.fr.design.mainframe.widget.arrangement.buttons; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.ArrangementType; import com.fr.design.mainframe.MultiSelectionArrangement; -import com.fr.general.IOUtils; - -import javax.swing.Icon; public class VerticalCenterButton extends AbstractMultiSelectionArrangementButton { public VerticalCenterButton(MultiSelectionArrangement arrangement) { @@ -13,8 +10,8 @@ public class VerticalCenterButton extends AbstractMultiSelectionArrangementButto } @Override - public Icon getIcon() { - return IOUtils.readIcon("/com/fr/design/images/buttonicon/multi_selection_vertical_center_align.png"); + public String getIconId() { + return "arrange_vertical_center"; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalDistributionButton.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalDistributionButton.java index 76dcf9427a..8906923c37 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalDistributionButton.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/arrangement/buttons/VerticalDistributionButton.java @@ -3,9 +3,6 @@ package com.fr.design.mainframe.widget.arrangement.buttons; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.ArrangementType; import com.fr.design.mainframe.MultiSelectionArrangement; -import com.fr.general.IOUtils; - -import javax.swing.Icon; public class VerticalDistributionButton extends AbstractMultiSelectionArrangementButton { public VerticalDistributionButton(MultiSelectionArrangement arrangement) { @@ -13,8 +10,8 @@ public class VerticalDistributionButton extends AbstractMultiSelectionArrangemen } @Override - public Icon getIcon() { - return IOUtils.readIcon("/com/fr/design/images/buttonicon/multi_selection_vertical_auto_spacing.png"); + public String getIconId() { + return "arrange_vertical_distribute"; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormMultiWidgetCardPane.java b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormMultiWidgetCardPane.java index cf59b595c5..b4c0776e38 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormMultiWidgetCardPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/widget/ui/FormMultiWidgetCardPane.java @@ -1,5 +1,8 @@ package com.fr.design.mainframe.widget.ui; +import com.fine.theme.icon.LazyIcon; +import com.fine.theme.utils.FineLayoutBuilder; +import com.formdev.flatlaf.util.ScaledEmptyBorder; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.ibutton.UIButton; @@ -24,7 +27,6 @@ import com.fr.general.IOUtils; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; -import javax.swing.BorderFactory; import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Component; @@ -43,93 +45,46 @@ public class FormMultiWidgetCardPane extends FormWidgetCardPane { public void initPropertyPane() { arrangement = new MultiSelectionArrangement(designer); - content.setBorder(BorderFactory.createEmptyBorder(0, 15, 0, 0)); content.add(createArrangementLayoutPane(), BorderLayout.CENTER); - this.listener = new AttributeChangeListener() { - @Override - public void attributeChange() { - designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_RESIZED); - } - }; + setBorder(new ScaledEmptyBorder(10, 0, 0, 0)); + this.listener = () -> designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_RESIZED); } - // 整个排列分布面板的layout,可以看成一个三行一列的表格,第一行是分布,第二行是自动间距,第三行是手动间距 + /** + * 整个排列分布面板的layout,可以看成一个两行一列的表格,第一行是分布,第二行是自动间距 + */ private JPanel createArrangementLayoutPane() { - double[] rowSize = {TableLayout.PREFERRED, TableLayout.PREFERRED, TableLayout.PREFERRED}; - double[] columnSize = {TableLayout.PREFERRED}; - Component[][] components = new Component[][] { - new Component[] { - createAlignmentPane() - }, - new Component[] { - createAutoSpacingPane() - } - }; - return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 0, 16); + return FineLayoutBuilder.createVerticalLayout(10, createAlignmentPane(), createAutoSpacingPane()); } // 对齐 private JPanel createAlignmentPane() { - double[] rowSize = {TableLayout.PREFERRED}; - double[] columnSize = { - TableLayout.PREFERRED, - TableLayout.PREFERRED, - TableLayout.PREFERRED, - TableLayout.PREFERRED, - TableLayout.PREFERRED, - TableLayout.PREFERRED - }; - Component[][] components = new Component[][] { - new Component[] { - new LeftAlignButton(arrangement), - new HorizontalCenterButton(arrangement), - new RightAlignButton(arrangement), - new TopAlignButton(arrangement), - new VerticalCenterButton(arrangement), - new BottomAlignButton(arrangement) - } - }; - JPanel centerPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 18, 0); + JPanel centerPane = FineLayoutBuilder.createHorizontalLayout(16, + new LeftAlignButton(arrangement), + new HorizontalCenterButton(arrangement), + new RightAlignButton(arrangement), + new TopAlignButton(arrangement), + new VerticalCenterButton(arrangement), + new BottomAlignButton(arrangement)); + return createTitleLayout(Toolkit.i18nText("Fine-Design_Multi_Selection_Align"), centerPane); } // 自动间距 private JPanel createAutoSpacingPane() { - double[] rowSize = {TableLayout.PREFERRED}; - double[] columnSize = { - TableLayout.PREFERRED, - TableLayout.PREFERRED - }; UIButton horizontalAutoSpacingBtn = new HorizontalDistributionButton(arrangement); UIButton verticalAutoSpacingBtn = new VerticalDistributionButton(arrangement); if (designer.getSelectionModel().getSelection().size() < 3) { horizontalAutoSpacingBtn.setEnabled(false); verticalAutoSpacingBtn.setEnabled(false); } - Component[][] components = new Component[][] { - new Component[] { - horizontalAutoSpacingBtn, - verticalAutoSpacingBtn - } - }; - JPanel centerPane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, 18, 0); + JPanel centerPane = FineLayoutBuilder.createHorizontalLayout(16, horizontalAutoSpacingBtn, verticalAutoSpacingBtn); - - UILabel tip = new UILabel(IOUtils.readIcon("/com/fr/design/images/buttonicon/multi_selection_auto_spacing_tip.png")); + UILabel tip = new UILabel(new LazyIcon("jumpHelp", 12)); tip.setToolTipText(Toolkit.i18nText("Fine-Design_Multi_Selection_Auto_Spacing_Tip")); - Component[][] titleComponents = new Component[][] { - new Component[] { - new UILabel(Toolkit.i18nText("Fine-Design_Multi_Selection_Auto_Spacing")), - tip - } - }; - JPanel northPane = TableLayoutHelper.createGapTableLayoutPane(titleComponents, rowSize, columnSize, 5, 0); + JPanel northPane = FineLayoutBuilder.createHorizontalLayout(5, new UILabel(Toolkit.i18nText("Fine-Design_Multi_Selection_Auto_Spacing")), tip); - JPanel jPanel = new JPanel(); - jPanel.setLayout(new BorderLayout(0, 8)); - jPanel.add(northPane, BorderLayout.NORTH); - jPanel.add(centerPane, BorderLayout.CENTER); - return jPanel; + return FineLayoutBuilder.createVerticalLayout(10, northPane, centerPane); } // 手动间距 @@ -195,13 +150,11 @@ public class FormMultiWidgetCardPane extends FormWidgetCardPane { } } - // 创建一个BorderLayout布局,上面是标题,例如“对齐”,下面是个容器 + /** + * 创建一个面板,上面是标题,例如“对齐”,下面是个容器 + */ private JPanel createTitleLayout(String title, JPanel centerPane) { - JPanel jPanel = new JPanel(); - jPanel.setLayout(new BorderLayout(0, 8)); - jPanel.add(new UILabel(title), BorderLayout.NORTH); - jPanel.add(centerPane, BorderLayout.CENTER); - return jPanel; + return FineLayoutBuilder.createVerticalLayout(10, new UILabel(title), centerPane); } @Override